From 82a955b035250b8e775c46a74b66e5d755515b29 Mon Sep 17 00:00:00 2001 From: Ole Richter Date: Sun, 10 Apr 2022 15:44:45 +0200 Subject: [PATCH] changed run sripts --- test/repeat_unit.sh | 157 +++++++++++++++++++++++--------------------- test/run.sh | 3 +- 2 files changed, 83 insertions(+), 77 deletions(-) diff --git a/test/repeat_unit.sh b/test/repeat_unit.sh index 3fc8095..8ce12b6 100755 --- a/test/repeat_unit.sh +++ b/test/repeat_unit.sh @@ -1,85 +1,90 @@ -# repeatedly run prsim on one unit_test's PRs +#!/bin/sh +fail=0 +faildirs="" +proc="" bold=$(tput bold) normal=$(tput sgr0) und=$(tput smul) -i=${unit} -proc="$i<>" -echo "" -echo "${bold}******************************************" -echo "* ${i} repetitions , show warnings=${warning}*" -echo "******************************************${normal}" +faildirs="" +failed=0 +iteration=0 +numberofruns=100 + +# +# run_test name [option] +# +run_test () { + echo "Testing ${bold}$1 ${normal} for $2 random delay runs" + # clear run directory + if [ -d $1/run ]; then + rm -rf $1/run + fi + mkdir $1/run + cp init.prs $1/run/test.prs + if aflat -ref=1 $1/test.act >> $1/run/test.prs; then + echo "random_seed $2" > $1/run/prsim.in + cat init_qdi.prsim $1/test.prsim >> $1/run/prsim.in + cat $1/run/prsim.in | prsim -r $1/run/test.prs > $1/run/prsim.out + if egrep '(WRONG|WARNING|Node)' $1/run/prsim.out >/dev/null; then + echo "${bold}*** simulation failed seed: $2 ***${normal}" + faildirs="${faildirs} ${1}-sim" + failed=1 + echo + fi + else + echo "${bold}*** circuit construction failed ***${normal}" + faildirs="${faildirs} ${1}-ckt" + failed=1 + echo + fi +} + +if [ ! $(command -v aflat) ]; then #&& ! command -v prsim ]; then + echo "${bold}Error:${bold} aflat & prsim necessary for tests." + exit 1 +fi + +if [ ! -d "unit_tests" ]; +then + echo "${bold}Error:${bold} no unit_tests directory." + exit 1 +fi cd "unit_tests" -echo "${bold}... checking aflat${normal}" -# check aflat -if ($ACT_HOME/bin/aflat "$i/test_final.act" > "$i/test.prs"); -then - echo "${bold}... aflat complete, checking in prsim${normal}" - - # run prsim on prs - (($ACT_HOME/bin/prsim "$i/test.prs" < "$i/test.prsim") > "$i/prsim.out"); - if (cat "$i/prsim.out" | grep -e "WRONG ASSERT" -e "FATAL" -e "not found") - then - echo "FAILED in first prsim" - else - - # show warnings setting - if [ "${warning}" = "1" ]; - then - echo "${bold}Exit on prsim warnings turned ON${normal}" - else - echo "${bold}Exit on prsim warnings turned OFF${normal}" - fi - echo "" - - # begin prsim test loop - has_failed=0 - iter=0 - echo "${bold}using random_seed${normal}" - echo "\nusing random_seed" >> "$i/prsim.out" - while [ has_failed=0 ] - do - # write prsim test file with random seed appended to top of file - (echo "random_seed $iter \nrandom" > "$i/test_rand.prsim"); - (cat "$i/test.prsim" >> "$i/test_rand.prsim"); - (echo "\nTEST $iter\n" >> "$i/prsim.out"); - - # validate prsim output - if (($ACT_HOME/bin/prsim "$i/test.prs" < "$i/test_rand.prsim") >> "$i/prsim.out"); - then - if [ "${warning}" = "1" ]; - then - if (cat "$i/prsim.out" | grep -e "WRONG ASSERT" -e "FATAL" -e "not found" -e "WARNING:"); - then - echo "${bold}==> test #${iter} ${und}FAILED in prsim${normal}" - has_failed=1 - exit 0 - else - echo "==> passed test #${iter}" - iter=$(($iter + 1)) - fi - else - if (cat "$i/prsim.out" | grep -e "WRONG ASSERT" -e "FATAL" -e "not found"); - then - echo "${bold}==> test #${iter} ${und}FAILED in prsim${normal}" - has_failed=1 - exit 0 - else - echo "==> passed test #${iter}" - iter=$(($iter + 1)) - fi - fi - else - has_failed=1 - exit 0 - fi - done - (cd ".."; pwd); - exit 1 - fi -else - echo "FAILED in aflat conversion" +# run all test except single one is specified +if [ ! -z $2 ]; then + $numberofruns = $2 fi + +if [ -z $1 ]; then + for i in * + do + if [ -d $i -a -f $i/test.act ]; then + while [ $failed = 0 ] && [ $iteration < $numberofruns ] + do + run_test $iteration + done + fi + done +else + + while [ $failed = 0 ] && [ $iteration < $numberofruns ] + do + run_test $1 $iteration + done + +fi + +if [ $failed -eq 1 ]; then + echo "" + echo "${bold}*********************************" + echo "* FAILED DIRECTORIES:${normal}$faildirs ${bold}*" + echo "*********************************${normal}" +fi + +exit $failed + + diff --git a/test/run.sh b/test/run.sh index 1d922f1..4f6834d 100755 --- a/test/run.sh +++ b/test/run.sh @@ -22,7 +22,8 @@ run_test () { mkdir $1/run cp init.prs $1/run/test.prs if aflat -ref=1 $1/test.act >> $1/run/test.prs; then - cat init_qdi.prsim $1/test.prsim | prsim -r $1/run/test.prs > $1/run/prsim.out + cat init_qdi.prsim $1/test.prsim > $1/run/prsim.in + cat $1/run/prsim.in | prsim -r $1/run/test.prs > $1/run/prsim.out if egrep '(WRONG|WARNING|Node)' $1/run/prsim.out >/dev/null; then echo "${bold}*** simulation failed ***${normal}" faildirs="${faildirs} ${1}-sim"