aboutsummaryrefslogtreecommitdiff
path: root/debug/gdbserver.py
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2022-12-01 11:47:25 -0800
committerTim Newsome <tim@sifive.com>2023-01-06 11:38:15 -0800
commitfc771ea11b3eea0b17ded6dbb9bacd574891567b (patch)
treecdd644cf32ff8f617b964ede45a4e8bbb3c3aa74 /debug/gdbserver.py
parentd244110a591307a648ce8eaa88018f5418524491 (diff)
downloadriscv-tests-fc771ea11b3eea0b17ded6dbb9bacd574891567b.zip
riscv-tests-fc771ea11b3eea0b17ded6dbb9bacd574891567b.tar.gz
riscv-tests-fc771ea11b3eea0b17ded6dbb9bacd574891567b.tar.bz2
debug: Add Itrigger test.
Diffstat (limited to 'debug/gdbserver.py')
-rwxr-xr-xdebug/gdbserver.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/debug/gdbserver.py b/debug/gdbserver.py
index 1ffb15f..64554d3 100755
--- a/debug/gdbserver.py
+++ b/debug/gdbserver.py
@@ -1973,6 +1973,32 @@ class EtriggerTest(DebugTest):
assertIn("breakpoint", output)
assertIn("trap_entry", self.gdb.where())
+class ItriggerTest(GdbSingleHartTest):
+ compile_args = ("programs/interrupt.c",)
+
+ def early_applicable(self):
+ return self.target.supports_clint_mtime
+
+ def setup(self):
+ self.gdb.load()
+
+ def test(self):
+ self.gdb.command(f"monitor targets {self.hart.id}")
+ output = self.gdb.command("monitor riscv itrigger set 0x80")
+ assertIn("Doesn't make sense", output)
+ output = self.gdb.command("monitor riscv itrigger set m 0")
+ assertIn("Doesn't make sense", output)
+ output = self.gdb.command("monitor riscv itrigger clear")
+ assertIn("No itrigger is set", output)
+ self.gdb.command("monitor riscv itrigger set m 0x80")
+
+ self.gdb.c()
+ assertIn("trap_entry", self.gdb.where())
+
+ self.gdb.command("monitor riscv itrigger clear")
+ self.gdb.p("keep_running=0")
+ self.exit()
+
parsed = None
def main():
parser = argparse.ArgumentParser(