aboutsummaryrefslogtreecommitdiff
path: root/debug/gdbserver.py
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2016-10-31 13:30:44 -0700
committerTim Newsome <tim@sifive.com>2016-10-31 13:30:44 -0700
commitce405b436277a52f764aa15551603e6dce3f568f (patch)
tree8bd4e6a253e2752c388e80498c6295ae21767275 /debug/gdbserver.py
parentf204b5c2b6b8914060614cd77ea10509968c3fa4 (diff)
downloadriscv-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-xdebug/gdbserver.py22
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)