Simplify test_function_call.
authorTim Newsome <tim@sifive.com>
Mon, 15 Aug 2016 19:52:03 +0000 (12:52 -0700)
committerTim Newsome <tim@sifive.com>
Tue, 16 Aug 2016 19:01:59 +0000 (12:01 -0700)
Now it doesn't rely on malloc, which can be tricky to get to work in and
of itself.

debug/gdbserver.py
debug/programs/debug.c

index d7527a278554dbb38fa2cd0e47c7b4e84bdb225b..ede7869428ac0b16aa0462909535755a5a846049 100755 (executable)
@@ -224,9 +224,8 @@ class DebugTest(DeleteServer):
     def test_function_call(self):
         self.gdb.b("main:start")
         self.gdb.c()
-        text = "Howdy, Earth!"
-        gdb_length = self.gdb.p('strlen("%s")' % text)
-        self.assertEqual(gdb_length, len(text))
+        self.assertEqual(self.gdb.p('fib(6)'), 8)
+        self.assertEqual(self.gdb.p('fib(7)'), 13)
         self.exit()
 
     def test_change_string(self):
index 20b1cdcf29f18d6e042884f18c3f86ad915dde5a..3ba51bca9249cd768ee298515ac2456477eccdad 100644 (file)
@@ -5,6 +5,24 @@
 
 unsigned int crc32a(uint8_t *message, unsigned int size);
 
+unsigned int fib(unsigned int n)
+{
+    if (n == 0) {
+        return 0;
+    }
+
+    unsigned int a = 0;
+    unsigned int b = 1;
+
+    for (unsigned int i = 1; i < n; i++) {
+        unsigned int next = a + b;
+        a = b;
+        b = next;
+    }
+
+    return b;
+}
+
 void rot13(char *buf)
 {
     while (*buf) {