aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorParshintsev Anatoly <anatoly.parshintsev@syntacore.com>2024-01-31 00:14:44 +0300
committerParshintsev Anatoly <anatoly.parshintsev@syntacore.com>2024-02-01 21:36:29 +0300
commit9b04ba41669e8f408f89148fb13f41a196f1fd14 (patch)
tree56e86f13987556dd26efae62f0458ef9a78c26f4
parent67e775962321ef48f77e7ab5aa4f40ce3cf82b08 (diff)
downloadriscv-tests-9b04ba41669e8f408f89148fb13f41a196f1fd14.zip
riscv-tests-9b04ba41669e8f408f89148fb13f41a196f1fd14.tar.gz
riscv-tests-9b04ba41669e8f408f89148fb13f41a196f1fd14.tar.bz2
[debug tests] print selected seed for PRNG
Previously the seed was not printed and this created problems with reproduction of the issues. It's still not an ideal - meaning interactions between spike/gdb/openocd are inherently non-determistic (since time is involved), but at least we should get the same sources for the same seed now.
-rwxr-xr-xdebug/gdbserver.py9
-rw-r--r--debug/testlib.py3
2 files changed, 12 insertions, 0 deletions
diff --git a/debug/gdbserver.py b/debug/gdbserver.py
index 5450adb..f457b86 100755
--- a/debug/gdbserver.py
+++ b/debug/gdbserver.py
@@ -11,6 +11,7 @@ import os
import re
import itertools
+from datetime import datetime
import targets
import testlib
from testlib import assertEqual, assertNotEqual
@@ -2194,6 +2195,14 @@ def main():
module = sys.modules[__name__]
+ # initialize PRNG
+ selected_seed = parsed.seed
+ if parsed.seed is None:
+ selected_seed = int(datetime.now().timestamp())
+ print(f"PRNG seed for {target.name} is generated automatically")
+ print(f"PRNG seed for {target.name} is {selected_seed}")
+ random.seed(selected_seed)
+
return testlib.run_all_tests(module, target, parsed)
# TROUBLESHOOTING TIPS
diff --git a/debug/testlib.py b/debug/testlib.py
index 7f28186..a50a488 100644
--- a/debug/testlib.py
+++ b/debug/testlib.py
@@ -1232,6 +1232,9 @@ def add_test_run_options(parser):
help="Specify yaml file listing tests to exclude")
parser.add_argument("--target-timeout",
help="Override the base target timeout.", default=None, type=int)
+ parser.add_argument("--seed",
+ help="Use user-specified seed value for PRNG.", default=None,
+ type=int)
parser.add_argument("--hart",
help="Run tests against this hart in multihart tests.",
default=None, type=int)