Rename gdbserver-smoke.py to gdbserver.py.
authorTim Newsome <tim@sifive.com>
Wed, 16 Mar 2016 18:07:50 +0000 (11:07 -0700)
committerTim Newsome <tim@sifive.com>
Mon, 23 May 2016 19:12:10 +0000 (12:12 -0700)
It's not really a smoketest anymore.

Makefile.in
tests/gdbserver-smoke.py [deleted file]
tests/gdbserver.py [new file with mode: 0755]

index 1e7183955f9cc1cf67351ce1a688f56b8476854f..5f0102a2ada51ba84730f6d9e58652b26d415eb3 100644 (file)
@@ -121,7 +121,7 @@ INSTALL_EXE   := $(INSTALL) -m 555
 STOW          := @stow@
 
 # Tests
-bintests = tests/gdbserver-smoke.py
+bintests = tests/gdbserver.py
 
 #-------------------------------------------------------------------------
 # Include subproject makefile fragments
diff --git a/tests/gdbserver-smoke.py b/tests/gdbserver-smoke.py
deleted file mode 100755 (executable)
index 16af626..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/bin/python
-
-import os
-import testlib
-import unittest
-import tempfile
-import time
-
-class DebugTest(unittest.TestCase):
-    def setUp(self):
-        self.binary = testlib.compile("debug.c")
-        self.spike = testlib.spike(self.binary, halted=False)
-        self.gdb = testlib.Gdb()
-        self.gdb.command("file %s" % self.binary)
-        self.gdb.command("target extended-remote localhost:9824")
-        self.gdb.command("p i=0");
-
-    def tearDown(self):
-        self.spike.kill()
-        self.spike.wait()
-
-    def test_turbostep(self):
-        """Single step a bunch of times."""
-        last_pc = None
-        for _ in range(100):
-            self.gdb.command("stepi")
-            pc = self.gdb.command("p $pc")
-            self.assertNotEqual(last_pc, pc)
-            last_pc = pc
-
-    def test_exit(self):
-        output = self.gdb.command("c")
-        self.assertIn("Continuing", output)
-        self.assertIn("Remote connection closed", output)
-
-    def test_breakpoint(self):
-        self.gdb.command("b print_row")
-        # The breakpoint should be hit exactly 10 times.
-        for _ in range(10):
-            output = self.gdb.command("c")
-            self.assertIn("Continuing", output)
-            self.assertIn("Breakpoint 1", output)
-        output = self.gdb.command("c")
-        self.assertIn("Continuing", output)
-        self.assertIn("Remote connection closed", output)
-
-    def test_registers(self):
-        # Try both forms to test gdb.
-        for cmd in ("info all-registers", "info registers all"):
-            output = self.gdb.command(cmd)
-            self.assertNotIn("Could not", output)
-            for reg in ('zero', 'ra', 'sp', 'gp', 'tp'):
-                self.assertIn(reg, output)
-        # mcpuid is one of the few registers that should have the high bit set
-        # (for rv64).
-        self.assertRegexpMatches(output, ".*mcpuid *0x80")
-
-        # The time register should always be changing.
-        last_time = None
-        for _ in range(5):
-            time = self.gdb.p("$time")
-            self.assertNotEqual(time, last_time)
-            last_time = time
-            self.gdb.command("stepi")
-
-class RegsTest(unittest.TestCase):
-    def setUp(self):
-        self.binary = testlib.compile("regs.s")
-        self.spike = testlib.spike(self.binary, halted=False)
-        self.gdb = testlib.Gdb()
-        self.gdb.command("file %s" % self.binary)
-        self.gdb.command("target extended-remote localhost:9824")
-
-    def tearDown(self):
-        self.spike.kill()
-        self.spike.wait()
-
-    def test_write_gprs(self):
-        # Note a0 is missing from this list since it's used to hold the
-        # address.
-        regs = ("ra", "sp", "gp", "tp", "t0", "t1", "t2", "fp", "s1",
-                "a1", "a2", "a3", "a4", "a5", "a6", "a7", "s2", "s3", "s4",
-                "s5", "s6", "s7", "s8", "s9", "s10", "s11", "t3", "t4", "t5",
-                "t6")
-
-        self.gdb.command("p $pc=write_regs")
-        for i, r in enumerate(regs):
-            self.gdb.command("p $%s=%d" % (r, i*0xdeadbeef+17))
-        self.gdb.command("p $a0=data")
-        self.gdb.command("b all_done")
-        output = self.gdb.command("c")
-        self.assertIn("Breakpoint 1", output)
-
-        for n in range(len(regs)):
-            self.assertEqual(self.gdb.x("data+%d" % (8*n), 'g'),
-                    n*0xdeadbeef+17)
-
-    def test_write_csrs(self):
-        # As much a test of gdb as of the simulator.
-        self.gdb.p("$mscratch=0")
-        self.gdb.stepi()
-        self.assertEqual(self.gdb.p("$mscratch"), 0)
-        self.gdb.p("$mscratch=123")
-        self.gdb.stepi()
-        self.assertEqual(self.gdb.p("$mscratch"), 123)
-
-if __name__ == '__main__':
-    unittest.main()
diff --git a/tests/gdbserver.py b/tests/gdbserver.py
new file mode 100755 (executable)
index 0000000..16af626
--- /dev/null
@@ -0,0 +1,108 @@
+#!/usr/bin/python
+
+import os
+import testlib
+import unittest
+import tempfile
+import time
+
+class DebugTest(unittest.TestCase):
+    def setUp(self):
+        self.binary = testlib.compile("debug.c")
+        self.spike = testlib.spike(self.binary, halted=False)
+        self.gdb = testlib.Gdb()
+        self.gdb.command("file %s" % self.binary)
+        self.gdb.command("target extended-remote localhost:9824")
+        self.gdb.command("p i=0");
+
+    def tearDown(self):
+        self.spike.kill()
+        self.spike.wait()
+
+    def test_turbostep(self):
+        """Single step a bunch of times."""
+        last_pc = None
+        for _ in range(100):
+            self.gdb.command("stepi")
+            pc = self.gdb.command("p $pc")
+            self.assertNotEqual(last_pc, pc)
+            last_pc = pc
+
+    def test_exit(self):
+        output = self.gdb.command("c")
+        self.assertIn("Continuing", output)
+        self.assertIn("Remote connection closed", output)
+
+    def test_breakpoint(self):
+        self.gdb.command("b print_row")
+        # The breakpoint should be hit exactly 10 times.
+        for _ in range(10):
+            output = self.gdb.command("c")
+            self.assertIn("Continuing", output)
+            self.assertIn("Breakpoint 1", output)
+        output = self.gdb.command("c")
+        self.assertIn("Continuing", output)
+        self.assertIn("Remote connection closed", output)
+
+    def test_registers(self):
+        # Try both forms to test gdb.
+        for cmd in ("info all-registers", "info registers all"):
+            output = self.gdb.command(cmd)
+            self.assertNotIn("Could not", output)
+            for reg in ('zero', 'ra', 'sp', 'gp', 'tp'):
+                self.assertIn(reg, output)
+        # mcpuid is one of the few registers that should have the high bit set
+        # (for rv64).
+        self.assertRegexpMatches(output, ".*mcpuid *0x80")
+
+        # The time register should always be changing.
+        last_time = None
+        for _ in range(5):
+            time = self.gdb.p("$time")
+            self.assertNotEqual(time, last_time)
+            last_time = time
+            self.gdb.command("stepi")
+
+class RegsTest(unittest.TestCase):
+    def setUp(self):
+        self.binary = testlib.compile("regs.s")
+        self.spike = testlib.spike(self.binary, halted=False)
+        self.gdb = testlib.Gdb()
+        self.gdb.command("file %s" % self.binary)
+        self.gdb.command("target extended-remote localhost:9824")
+
+    def tearDown(self):
+        self.spike.kill()
+        self.spike.wait()
+
+    def test_write_gprs(self):
+        # Note a0 is missing from this list since it's used to hold the
+        # address.
+        regs = ("ra", "sp", "gp", "tp", "t0", "t1", "t2", "fp", "s1",
+                "a1", "a2", "a3", "a4", "a5", "a6", "a7", "s2", "s3", "s4",
+                "s5", "s6", "s7", "s8", "s9", "s10", "s11", "t3", "t4", "t5",
+                "t6")
+
+        self.gdb.command("p $pc=write_regs")
+        for i, r in enumerate(regs):
+            self.gdb.command("p $%s=%d" % (r, i*0xdeadbeef+17))
+        self.gdb.command("p $a0=data")
+        self.gdb.command("b all_done")
+        output = self.gdb.command("c")
+        self.assertIn("Breakpoint 1", output)
+
+        for n in range(len(regs)):
+            self.assertEqual(self.gdb.x("data+%d" % (8*n), 'g'),
+                    n*0xdeadbeef+17)
+
+    def test_write_csrs(self):
+        # As much a test of gdb as of the simulator.
+        self.gdb.p("$mscratch=0")
+        self.gdb.stepi()
+        self.assertEqual(self.gdb.p("$mscratch"), 0)
+        self.gdb.p("$mscratch=123")
+        self.gdb.stepi()
+        self.assertEqual(self.gdb.p("$mscratch"), 123)
+
+if __name__ == '__main__':
+    unittest.main()