Add MemTestWriteInvalid.
[riscv-tests.git] / debug / gdbserver.py
index 81aafa345a1e60c2d24163bb742de0e50ad48906..318428daba3407d70038c95fa6e2255a6479a0b4 100755 (executable)
@@ -293,6 +293,28 @@ class MemTest64(SimpleMemoryTest):
     def test(self):
         self.access_test(8, 'long long')
 
+class MemTestReadInvalid(SimpleMemoryTest):
+    def test(self):
+        # This test relies on 'gdb_report_data_abort enable' being executed in
+        # the openocd.cfg file.
+        try:
+            self.gdb.p("*((int*)0xdeadbeef)")
+            assert False, "Read should have failed."
+        except testlib.CannotAccess as e:
+            assertEqual(e.address, 0xdeadbeef)
+        self.gdb.p("*((int*)0x%x)" % self.target.ram)
+
+class MemTestWriteInvalid(SimpleMemoryTest):
+    def test(self):
+        # This test relies on 'gdb_report_data_abort enable' being executed in
+        # the openocd.cfg file.
+        try:
+            self.gdb.p("*((int*)0xdeadbeef)=8675309")
+            assert False, "Write should have failed."
+        except testlib.CannotAccess as e:
+            assertEqual(e.address, 0xdeadbeef)
+        self.gdb.p("*((int*)0x%x)=6874742" % self.target.ram)
+
 class MemTestBlock(GdbTest):
     def test(self):
         length = 1024