diff options
author | Tim Newsome <tim@sifive.com> | 2016-10-31 13:30:44 -0700 |
---|---|---|
committer | Tim Newsome <tim@sifive.com> | 2016-10-31 13:30:44 -0700 |
commit | ce405b436277a52f764aa15551603e6dce3f568f (patch) | |
tree | 8bd4e6a253e2752c388e80498c6295ae21767275 /debug/gdbserver.py | |
parent | f204b5c2b6b8914060614cd77ea10509968c3fa4 (diff) | |
download | riscv-tests-ce405b436277a52f764aa15551603e6dce3f568f.zip riscv-tests-ce405b436277a52f764aa15551603e6dce3f568f.tar.gz riscv-tests-ce405b436277a52f764aa15551603e6dce3f568f.tar.bz2 |
Add basic floating point register test.
Diffstat (limited to 'debug/gdbserver.py')
-rwxr-xr-x | debug/gdbserver.py | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/debug/gdbserver.py b/debug/gdbserver.py index f506640..d236a97 100755 --- a/debug/gdbserver.py +++ b/debug/gdbserver.py @@ -9,8 +9,8 @@ import time import targets import testlib -from testlib import assertEqual, assertNotEqual, assertIn, assertNotIn -from testlib import assertGreater, assertTrue, assertRegexpMatches +from testlib import assertEqual, assertNotEqual, assertIn +from testlib import assertGreater, assertTrue, assertRegexpMatches, assertLess MSTATUS_UIE = 0x00000001 MSTATUS_SIE = 0x00000002 @@ -134,6 +134,23 @@ class SimpleT1Test(SimpleRegisterTest): def test(self): self.check_reg("t1") +class SimpleF18Test(SimpleRegisterTest): + def check_reg(self, name): + a = random.random() + b = random.random() + self.gdb.p_raw("$%s=%f" % (name, a)) + self.gdb.stepi() + assertLess(abs(float(self.gdb.p_raw("$%s" % name)) - a), .001) + self.gdb.p_raw("$%s=%f" % (name, b)) + self.gdb.stepi() + assertLess(abs(float(self.gdb.p_raw("$%s" % name)) - b), .001) + + def test(self): + misa = self.gdb.p("$misa") + if not misa & (1<<(ord('F')-ord('A'))): + return 'not_applicable' + self.check_reg("f18") + class SimpleMemoryTest(GdbTest): def access_test(self, size, data_type): assertEqual(self.gdb.p("sizeof(%s)" % data_type), size) @@ -367,7 +384,6 @@ class Registers(DebugTest): # Try both forms to test gdb. for cmd in ("info all-registers", "info registers all"): output = self.gdb.command(cmd) - assertNotIn("Could not", output) for reg in ('zero', 'ra', 'sp', 'gp', 'tp'): assertIn(reg, output) |