From aa15f70c071a03b428621990142f6c049a656526 Mon Sep 17 00:00:00 2001 From: liangzhen Date: Tue, 24 Oct 2023 09:29:53 +0800 Subject: [PATCH] Support instruction count limit in IcountTest This is taking into account that the hardware limits count to 1. Signed-off-by: liangzhen --- debug/gdbserver.py | 8 ++++++-- debug/targets.py | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/debug/gdbserver.py b/debug/gdbserver.py index 86359c814..5450adb1e 100755 --- a/debug/gdbserver.py +++ b/debug/gdbserver.py @@ -2129,9 +2129,13 @@ def setup(self): def test(self): # Execute 2 instructions. output = self.gdb.command("monitor riscv icount set m 2") - assertNotIn("Failed", output) + if self.target.icount_limit > 1: + assertNotIn("Failed", output) + else: + assertIn("Failed", output) + self.gdb.b("main_post_csrr") output = self.gdb.c() - assertIn("breakpoint", output) + assertIn("main_post_csrr", output) main_post_csrr = self.gdb.p("&main_post_csrr") assertEqual(self.gdb.p("$pc"), main_post_csrr) diff --git a/debug/targets.py b/debug/targets.py index 189d79b5a..bb7a5cf15 100644 --- a/debug/targets.py +++ b/debug/targets.py @@ -138,6 +138,9 @@ class Target: # Supports controlling hart availability through DMCUSTOM. support_unavailable_control = False + # Instruction count limit + icount_limit = 4 + # Internal variables: directory = None temporary_files = []