aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2023-07-10 10:36:42 -0700
committerGitHub <noreply@github.com>2023-07-10 10:36:42 -0700
commited0a63ea4ffea691e753ba1410d78961b80dc739 (patch)
treec74987f3d737778ac04eaa3395525b965b44938e
parentfb7a4a7a0e1372cde0e920d75679ba1541e52c77 (diff)
parent4b18e0781afed3e40e9b7d14cbd76b0063dc823d (diff)
downloadriscv-tests-ed0a63ea4ffea691e753ba1410d78961b80dc739.zip
riscv-tests-ed0a63ea4ffea691e753ba1410d78961b80dc739.tar.gz
riscv-tests-ed0a63ea4ffea691e753ba1410d78961b80dc739.tar.bz2
Merge pull request #486 from en-sc/en-sc/warning-repeat-read
change warning check in RepeatReadTest
-rwxr-xr-xdebug/gdbserver.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/debug/gdbserver.py b/debug/gdbserver.py
index d0302fb..46d65df 100755
--- a/debug/gdbserver.py
+++ b/debug/gdbserver.py
@@ -9,6 +9,7 @@ import tempfile
import time
import os
import re
+import itertools
import targets
import testlib
@@ -904,6 +905,9 @@ class RepeatReadTest(DebugTest):
def early_applicable(self):
return self.target.supports_clint_mtime
+ warning_re = re.compile(r"\[(?P<target_name>[^\]]+)\] Re-reading memory "
+ r"from addresses 0x(?P<addr>[\da-f]+) and 0x(?P=addr)\.")
+
def test(self):
self.gdb.b("main:start")
self.gdb.c()
@@ -912,8 +916,17 @@ class RepeatReadTest(DebugTest):
output = self.gdb.command(
f"monitor riscv repeat_read {count} 0x{mtime_addr:x} 4")
values = []
- for line in output.splitlines():
- # Ignore warnings
+ def is_valid_warning(line):
+ match = self.warning_re.match(line)
+ if match is None:
+ return False
+ assertEqual(int(match["addr"], 16), mtime_addr,
+ "The repeat read is reading from the wrong address")
+ return True
+
+ for line in itertools.dropwhile(is_valid_warning, output.splitlines()):
+ # This `if` is to be removed after
+ # https://github.com/riscv/riscv-openocd/pull/871 is merged.
if line.startswith("Batch memory"):
continue
for v in line.split():