diff options
author | Tim Newsome <tim@sifive.com> | 2016-08-15 12:52:03 -0700 |
---|---|---|
committer | Tim Newsome <tim@sifive.com> | 2016-08-16 12:01:59 -0700 |
commit | 87b55cae7014a375588a3d24d03903ca170f6d7e (patch) | |
tree | 4bfc1e749f07da46bd2861483d100a6cb0ccf444 | |
parent | 22541b6099cb176fd3ec34f9e893da9e2baaa297 (diff) | |
download | riscv-tests-87b55cae7014a375588a3d24d03903ca170f6d7e.zip riscv-tests-87b55cae7014a375588a3d24d03903ca170f6d7e.tar.gz riscv-tests-87b55cae7014a375588a3d24d03903ca170f6d7e.tar.bz2 |
Simplify test_function_call.
Now it doesn't rely on malloc, which can be tricky to get to work in and
of itself.
-rwxr-xr-x | debug/gdbserver.py | 5 | ||||
-rw-r--r-- | debug/programs/debug.c | 18 |
2 files changed, 20 insertions, 3 deletions
diff --git a/debug/gdbserver.py b/debug/gdbserver.py index d7527a2..ede7869 100755 --- a/debug/gdbserver.py +++ b/debug/gdbserver.py @@ -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): diff --git a/debug/programs/debug.c b/debug/programs/debug.c index 20b1cdc..3ba51bc 100644 --- a/debug/programs/debug.c +++ b/debug/programs/debug.c @@ -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) { |