From f4240cc8a4545e4d2e2f926a72aa911d5373ab95 Mon Sep 17 00:00:00 2001 From: Eric Smith Date: Thu, 15 Sep 2016 02:00:29 -0600 Subject: Add optional SEED=n command line option to Makefile, and -S n command line option to test scripts, for deterministic regression tests. --- tests/bram/generate.py | 19 ++++++++++++++++--- tests/bram/run-test.sh | 17 ++++++++++++++++- 2 files changed, 32 insertions(+), 4 deletions(-) (limited to 'tests/bram') diff --git a/tests/bram/generate.py b/tests/bram/generate.py index 05a7ed027..cab81255c 100644 --- a/tests/bram/generate.py +++ b/tests/bram/generate.py @@ -1,11 +1,11 @@ #!/usr/bin/env python3 +import argparse import os import sys import random debug_mode = False -seed = (int(os.times()[4]*100) + os.getpid()) % 900000 + 100000 def create_bram(dsc_f, sim_f, ref_f, tb_f, k1, k2, or_next): while True: @@ -243,10 +243,23 @@ def create_bram(dsc_f, sim_f, ref_f, tb_f, k1, k2, or_next): print(" end", file=tb_f) print("endmodule", file=tb_f) -print("Rng seed: %d" % seed) +parser = argparse.ArgumentParser(formatter_class = argparse.ArgumentDefaultsHelpFormatter) +parser.add_argument('-S', '--seed', type = int, help = 'seed for PRNG') +parser.add_argument('-c', '--count', type = int, default = 5, help = 'number of test cases to generate') +parser.add_argument('-d', '--debug', action='store_true') +args = parser.parse_args() + +debug_mode = args.debug + +if args.seed is not None: + seed = args.seed +else: + seed = (int(os.times()[4]*100) + os.getpid()) % 900000 + 100000 + +print("PRNG seed: %d" % seed) random.seed(seed) -for k1 in range(5): +for k1 in range(args.count): dsc_f = open("temp/brams_%02d.txt" % k1, "w") sim_f = open("temp/brams_%02d.v" % k1, "w") ref_f = open("temp/brams_%02d_ref.v" % k1, "w") diff --git a/tests/bram/run-test.sh b/tests/bram/run-test.sh index f0bf0131e..a30416787 100755 --- a/tests/bram/run-test.sh +++ b/tests/bram/run-test.sh @@ -4,11 +4,26 @@ # MAKE="make -j8" time bash -c 'for ((i=0; i<100; i++)); do echo "-- $i --"; bash run-test.sh || exit 1; done' set -e + +OPTIND=1 +count=5 +seed="" # default to no seed specified +debug="" +while getopts "c:S:" opt +do + case "$opt" in + c) count="$OPTARG" ;; + d) debug="-d" ;; + S) seed="-S $OPTARG" ;; + esac +done +shift "$((OPTIND-1))" + rm -rf temp mkdir -p temp echo "generating tests.." -python3 generate.py +python3 generate.py $debug -c $count $seed { echo -n "all:" -- cgit v1.2.3