aboutsummaryrefslogtreecommitdiff
path: root/debug/gdbserver.py
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2022-11-10 13:04:20 -0800
committerTim Newsome <tim@sifive.com>2022-12-14 16:54:29 -0800
commitc4a61a51b9c92adeaa825abdda1e48fc55f8eab1 (patch)
treebdbcac818542a847570dd1193ab3b12e1f79ddc2 /debug/gdbserver.py
parentb08e2ee7fab0f66bc9bb643db0375fb360c326f3 (diff)
downloadriscv-tests-c4a61a51b9c92adeaa825abdda1e48fc55f8eab1.zip
riscv-tests-c4a61a51b9c92adeaa825abdda1e48fc55f8eab1.tar.gz
riscv-tests-c4a61a51b9c92adeaa825abdda1e48fc55f8eab1.tar.bz2
debug: Add CeaseRunTest
Test that we work correctly when the hart we're debugging ceases to respond while it's running.
Diffstat (limited to 'debug/gdbserver.py')
-rwxr-xr-xdebug/gdbserver.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/debug/gdbserver.py b/debug/gdbserver.py
index 6f27871..af8ddcf 100755
--- a/debug/gdbserver.py
+++ b/debug/gdbserver.py
@@ -1856,6 +1856,29 @@ class CeaseStepiTest(ProgramTest):
except CouldNotReadRegisters:
pass
+class CeaseRunTest(ProgramTest):
+ """Test that we work correctly when the hart we're debugging ceases to
+ respond."""
+ def early_applicable(self):
+ return self.hart.support_cease
+
+ def test(self):
+ self.gdb.b("main")
+ output = self.gdb.c()
+ assertIn("Breakpoint", output)
+ assertIn("main", output)
+
+ self.gdb.p("$pc=precease")
+ self.gdb.c(wait=False)
+ self.gdb.expect(r"\S+ became unavailable.")
+ self.gdb.interrupt()
+ try:
+ self.gdb.p("$pc")
+ assert False, ("Registers shouldn't be accessible when the hart is "
+ "unavailable.")
+ except CouldNotReadRegisters:
+ pass
+
class FreeRtosTest(GdbTest):
def early_applicable(self):
return self.target.freertos_binary