3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-03-23 04:49:15 +00:00

Convert bram tests

This commit is contained in:
nella 2026-03-20 16:24:54 +01:00
parent e7cc04954d
commit a54c0149bf
3 changed files with 24 additions and 50 deletions

View file

@ -61,7 +61,7 @@ MK_TEST_DIRS += ./share
MK_TEST_DIRS += ./opt_share
MK_TEST_DIRS += ./fsm
MK_TEST_DIRS += ./memlib
#SH_TEST_DIRS += ./bram
MK_TEST_DIRS += ./bram
#SH_TEST_DIRS += ./svinterfaces
MK_TEST_DIRS += ./xprop
MK_TEST_DIRS += ./select

View file

@ -4,6 +4,10 @@ import argparse
import os
import sys
import random
import glob
sys.path.append("..")
import gen_tests_makefile
debug_mode = False
@ -287,9 +291,11 @@ if args.seed is not None:
else:
seed = (int(os.times()[4]*100) + os.getpid()) % 900000 + 100000
print("PRNG seed: %d" % seed)
print("bram PRNG seed: %d" % seed)
random.seed(seed)
os.makedirs("temp", exist_ok=True)
for k1 in range(args.count):
dsc_f = open("temp/brams_%02d.txt" % k1, "w")
sim_f = open("temp/brams_%02d.v" % k1, "w")
@ -303,3 +309,19 @@ for k1 in range(args.count):
for k2 in range(lenk2):
create_bram(dsc_f, sim_f, ref_f, tb_f, k1, k2, random.randrange(2 if k2+1 < lenk2 else 1))
configs = sorted(set(
os.path.basename(f).replace("brams_", "").replace(".txt", "")
for f in glob.glob("temp/brams_*.txt")
))
def create_tests():
for i in configs:
for j in configs:
if i != j:
gen_tests_makefile.generate_cmd_test(
f"bram_{i}_{j}",
f"bash run-single.sh {i} {j} >/dev/null 2>&1"
)
gen_tests_makefile.generate_custom(create_tests)

View file

@ -1,48 +0,0 @@
#!/usr/bin/env bash
source ../common-env.sh
# run this test many times:
# 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:dS:" 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 $debug -c $count $seed
{
echo -n "all:"
for i in $( ls temp/brams_*.txt | sed 's,.*_,,; s,\..*,,;' ); do
for j in $( ls temp/brams_*.txt | sed 's,.*_,,; s,\..*,,;' | grep -v $i ); do
echo -n " temp/job_${i}_${j}.ok"
done; done
echo
for i in $( ls temp/brams_*.txt | sed 's,.*_,,; s,\..*,,;' ); do
for j in $( ls temp/brams_*.txt | sed 's,.*_,,; s,\..*,,;' | grep -v $i ); do
echo "temp/job_${i}_${j}.ok:"
echo " @bash run-single.sh ${i} ${j}"
echo " @echo 'Passed memory_bram test ${i}_${j}.'"
echo " @touch \$@"
done; done
} > temp/makefile
echo "running tests.."
${MAKE:-make} -f temp/makefile
exit 0