aboutsummaryrefslogtreecommitdiff
path: root/debug/testlib.py
diff options
context:
space:
mode:
Diffstat (limited to 'debug/testlib.py')
-rw-r--r--debug/testlib.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/debug/testlib.py b/debug/testlib.py
index 1f107be..0279b08 100644
--- a/debug/testlib.py
+++ b/debug/testlib.py
@@ -1,6 +1,7 @@
import collections
import os
import os.path
+import random
import re
import shlex
import subprocess
@@ -9,6 +10,8 @@ import tempfile
import time
import traceback
+from datetime import datetime
+
import tty
import pexpect
import yaml
@@ -134,6 +137,9 @@ class Spike:
else:
isa = f"RV{self.harts[0].xlen}G"
+ if 'V' in isa[2:]:
+ isa += f"_Zvl{self.vlen}b_Zve{self.elen}d"
+
cmd += ["--isa", isa]
cmd += ["--dm-auth"]
@@ -159,8 +165,6 @@ class Spike:
if not self.support_haltgroups:
cmd.append("--dm-no-halt-groups")
- if 'V' in isa[2:]:
- cmd.append(f"--varch=vlen:{self.vlen},elen:{self.elen}")
assert len(set(t.ram for t in self.harts)) == 1, \
"All spike harts must have the same RAM layout"
@@ -1160,6 +1164,14 @@ def run_all_tests(module, target, parsed):
excluded_tests = load_excluded_tests(parsed.exclude_tests, target.name)
target.skip_tests += excluded_tests
+ # 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)
+
results, count = run_tests(parsed, target, todo)
header(f"ran {count} tests in {time.time() - overall_start:.0f}s", dash=':')
@@ -1292,7 +1304,6 @@ class BaseTest:
if not hart is None:
self.hart = hart
else:
- import random # pylint: disable=import-outside-toplevel
self.hart = random.choice(target.harts)
#self.hart = target.harts[-1]
self.server = None