3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-08-09 04:31:25 +00:00

Add optional SEED=n command line option to Makefile, and -S n command line option to test scripts, for deterministic regression tests.

This commit is contained in:
Eric Smith 2016-09-15 02:00:29 -06:00
parent d8ad889594
commit f4240cc8a4
14 changed files with 175 additions and 24 deletions

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python3
import argparse
import sys
import random
from contextlib import contextmanager
@ -36,7 +37,16 @@ def random_expression(depth = 3, maxparam = 0):
return op + '(' + recursion() + ', ' + recursion() + ')'
raise
for idx in range(100):
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 = 100, help = 'number of test cases to generate')
args = parser.parse_args()
if args.seed is not None:
print("PRNG seed: %d" % args.seed)
random.seed(args.seed)
for idx in range(args.count):
with open('temp/uut_%05d.v' % idx, 'w') as f:
with redirect_stdout(f):
print('module uut_%05d(output [63:0] %s);\n' % (idx, ', '.join(['y%02d' % i for i in range(100)])))

View file

@ -1,14 +1,26 @@
#!/bin/bash
set -e
OPTIND=1
count=100
seed="" # default to no seed specified
while getopts "c:S:" opt
do
case "$opt" in
c) count="$OPTARG" ;;
S) seed="-S $OPTARG" ;;
esac
done
shift "$((OPTIND-1))"
rm -rf temp
mkdir -p temp
echo "generating tests.."
python3 generate.py
python3 generate.py -c $count $seed
cd temp
echo "running tests.."
for ((i = 0; i < 100; i++)); do
for ((i = 0; i < $count; i++)); do
echo -n "[$i]"
idx=$( printf "%05d" $i )
../../../yosys -qq uut_${idx}.ys