changed run sripts

This commit is contained in:
Ole Richter 2022-04-10 15:44:45 +02:00
parent b47d306a27
commit 82a955b035
2 changed files with 83 additions and 77 deletions

View File

@ -1,85 +1,90 @@
# repeatedly run prsim on one unit_test's PRs #!/bin/sh
fail=0
faildirs=""
proc=""
bold=$(tput bold) bold=$(tput bold)
normal=$(tput sgr0) normal=$(tput sgr0)
und=$(tput smul) und=$(tput smul)
i=${unit}
proc="$i<>"
echo "" faildirs=""
echo "${bold}******************************************" failed=0
echo "* ${i} repetitions , show warnings=${warning}*" iteration=0
echo "******************************************${normal}" numberofruns=100
cd "unit_tests" #
echo "${bold}... checking aflat${normal}" # run_test name [option]
#
# check aflat run_test () {
if ($ACT_HOME/bin/aflat "$i/test_final.act" > "$i/test.prs"); echo "Testing ${bold}$1 ${normal} for $2 random delay runs"
then # clear run directory
echo "${bold}... aflat complete, checking in prsim${normal}" if [ -d $1/run ]; then
rm -rf $1/run
# 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 fi
echo "" mkdir $1/run
cp init.prs $1/run/test.prs
# begin prsim test loop if aflat -ref=1 $1/test.act >> $1/run/test.prs; then
has_failed=0 echo "random_seed $2" > $1/run/prsim.in
iter=0 cat init_qdi.prsim $1/test.prsim >> $1/run/prsim.in
echo "${bold}using random_seed${normal}" cat $1/run/prsim.in | prsim -r $1/run/test.prs > $1/run/prsim.out
echo "\nusing random_seed" >> "$i/prsim.out" if egrep '(WRONG|WARNING|Node)' $1/run/prsim.out >/dev/null; then
while [ has_failed=0 ] echo "${bold}*** simulation failed seed: $2 ***${normal}"
do faildirs="${faildirs} ${1}-sim"
# write prsim test file with random seed appended to top of file failed=1
(echo "random_seed $iter \nrandom" > "$i/test_rand.prsim"); echo
(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 fi
else else
if (cat "$i/prsim.out" | grep -e "WRONG ASSERT" -e "FATAL" -e "not found"); echo "${bold}*** circuit construction failed ***${normal}"
then faildirs="${faildirs} ${1}-ckt"
echo "${bold}==> test #${iter} ${und}FAILED in prsim${normal}" failed=1
has_failed=1 echo
exit 0
else
echo "==> passed test #${iter}"
iter=$(($iter + 1))
fi fi
fi }
else
has_failed=1 if [ ! $(command -v aflat) ]; then #&& ! command -v prsim ]; then
exit 0 echo "${bold}Error:${bold} aflat & prsim necessary for tests."
fi
done
(cd ".."; pwd);
exit 1 exit 1
fi fi
else
echo "FAILED in aflat conversion" if [ ! -d "unit_tests" ];
then
echo "${bold}Error:${bold} no unit_tests directory."
exit 1
fi fi
cd "unit_tests"
# 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

View File

@ -22,7 +22,8 @@ run_test () {
mkdir $1/run mkdir $1/run
cp init.prs $1/run/test.prs cp init.prs $1/run/test.prs
if aflat -ref=1 $1/test.act >> $1/run/test.prs; then 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 if egrep '(WRONG|WARNING|Node)' $1/run/prsim.out >/dev/null; then
echo "${bold}*** simulation failed ***${normal}" echo "${bold}*** simulation failed ***${normal}"
faildirs="${faildirs} ${1}-sim" faildirs="${faildirs} ${1}-sim"