From 9b04ba41669e8f408f89148fb13f41a196f1fd14 Mon Sep 17 00:00:00 2001 From: Parshintsev Anatoly Date: Wed, 31 Jan 2024 00:14:44 +0300 Subject: [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. --- debug/gdbserver.py | 9 +++++++++ debug/testlib.py | 3 +++ 2 files changed, 12 insertions(+) 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) -- cgit v1.1