diff options
author | Tim Newsome <tim@sifive.com> | 2022-12-27 10:55:01 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-27 10:55:01 -0800 |
commit | 48491dadafcd59442c5bf22603fb0a7f1c589cb9 (patch) | |
tree | bdbcac818542a847570dd1193ab3b12e1f79ddc2 /debug/gdbserver.py | |
parent | 55bbcc8c06637a31cc01970881ba8072838a9121 (diff) | |
parent | c4a61a51b9c92adeaa825abdda1e48fc55f8eab1 (diff) | |
download | riscv-tests-48491dadafcd59442c5bf22603fb0a7f1c589cb9.zip riscv-tests-48491dadafcd59442c5bf22603fb0a7f1c589cb9.tar.gz riscv-tests-48491dadafcd59442c5bf22603fb0a7f1c589cb9.tar.bz2 |
Merge pull request #442 from riscv-software-src/ceasetest
Add CeaseStepiTest and CeaseRunTest
Diffstat (limited to 'debug/gdbserver.py')
-rwxr-xr-x | debug/gdbserver.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/debug/gdbserver.py b/debug/gdbserver.py index 6d7c197..af8ddcf 100755 --- a/debug/gdbserver.py +++ b/debug/gdbserver.py @@ -18,6 +18,7 @@ from testlib import assertGreater, assertRegex, assertLess from testlib import GdbTest, GdbSingleHartTest, TestFailed from testlib import TestNotApplicable, CompileError from testlib import UnknownThread +from testlib import CouldNotReadRegisters MSTATUS_UIE = 0x00000001 MSTATUS_SIE = 0x00000002 @@ -1832,6 +1833,51 @@ class CeaseMultiTest(GdbTest): self.gdb.p("$pc=_start") self.exit() +class CeaseStepiTest(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=cease") + self.gdb.stepi(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 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): |