3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-13 04:28:18 +00:00

Added "make -j{N}" support to "make test"

This commit is contained in:
Clifford Wolf 2014-07-30 19:21:52 +02:00
parent ceecf5b153
commit 7d98645fe8
7 changed files with 39 additions and 22 deletions

View file

@ -218,15 +218,15 @@ yosys-abc: abc/abc-$(ABCREV)
$(P) cp abc/abc-$(ABCREV) yosys-abc $(P) cp abc/abc-$(ABCREV) yosys-abc
test: $(TARGETS) $(EXTRA_TARGETS) test: $(TARGETS) $(EXTRA_TARGETS)
cd tests/simple && bash run-test.sh +cd tests/simple && bash run-test.sh
cd tests/hana && bash run-test.sh +cd tests/hana && bash run-test.sh
cd tests/asicworld && bash run-test.sh +cd tests/asicworld && bash run-test.sh
cd tests/realmath && bash run-test.sh +cd tests/realmath && bash run-test.sh
cd tests/share && bash run-test.sh +cd tests/share && bash run-test.sh
cd tests/techmap && bash run-test.sh +cd tests/techmap && bash run-test.sh
cd tests/memories && bash run-test.sh +cd tests/memories && bash run-test.sh
cd tests/various && bash run-test.sh +cd tests/various && bash run-test.sh
cd tests/sat && bash run-test.sh +cd tests/sat && bash run-test.sh
@echo "" @echo ""
@echo " Passed \"make test\"." @echo " Passed \"make test\"."
@echo "" @echo ""
@ -240,7 +240,7 @@ vgtest: $(TARGETS) $(EXTRA_TARGETS)
@echo "" @echo ""
vloghtb: $(TARGETS) $(EXTRA_TARGETS) vloghtb: $(TARGETS) $(EXTRA_TARGETS)
cd tests/vloghtb && bash run-test.sh +cd tests/vloghtb && bash run-test.sh
@echo "" @echo ""
@echo " Passed \"make vloghtb\"." @echo " Passed \"make vloghtb\"."
@echo "" @echo ""

View file

@ -1,2 +1,2 @@
#!/bin/bash #!/bin/bash
exec bash ../tools/autotest.sh -G *.v exec ${MAKE:-make} -f ../tools/autotest.mk *.v

View file

@ -1,2 +1,2 @@
#!/bin/bash #!/bin/bash
exec bash ../tools/autotest.sh -G -l hana_vlib.v test_*.v exec ${MAKE:-make} -f ../tools/autotest.mk EXTRA_FLAGS="-l hana_vlib.v" test_*.v

View file

@ -6,4 +6,4 @@ if ! which iverilog > /dev/null ; then
exit 1 exit 1
fi fi
exec bash ../tools/autotest.sh -G *.v exec ${MAKE:-make} -f ../tools/autotest.mk *.v

8
tests/tools/autotest.mk Normal file
View file

@ -0,0 +1,8 @@
EXTRA_FLAGS=
$(MAKECMDGOALS):
@$(basename $(MAKEFILE_LIST)).sh -G -j $(EXTRA_FLAGS) $@
.PHONY: $(MAKECMDGOALS)

View file

@ -6,6 +6,7 @@ use_xsim=false
use_modelsim=false use_modelsim=false
verbose=false verbose=false
keeprunning=false keeprunning=false
makejmode=false
frontend="verilog" frontend="verilog"
backend_opts="-noattr -noexpr" backend_opts="-noattr -noexpr"
scriptfiles="" scriptfiles=""
@ -17,7 +18,7 @@ if [ ! -f $toolsdir/cmp_tbdata -o $toolsdir/cmp_tbdata.c -nt $toolsdir/cmp_tbdat
( set -ex; gcc -Wall -o $toolsdir/cmp_tbdata $toolsdir/cmp_tbdata.c; ) || exit 1 ( set -ex; gcc -Wall -o $toolsdir/cmp_tbdata $toolsdir/cmp_tbdata.c; ) || exit 1
fi fi
while getopts xmGl:wkvrf:s:p: opt; do while getopts xmGl:wkjvrf:s:p: opt; do
case "$opt" in case "$opt" in
x) x)
use_xsim=true ;; use_xsim=true ;;
@ -31,6 +32,8 @@ while getopts xmGl:wkvrf:s:p: opt; do
genvcd=true ;; genvcd=true ;;
k) k)
keeprunning=true ;; keeprunning=true ;;
j)
makejmode=true ;;
v) v)
verbose=true ;; verbose=true ;;
r) r)
@ -43,7 +46,7 @@ while getopts xmGl:wkvrf:s:p: opt; do
p) p)
scriptopt="$OPTARG" ;; scriptopt="$OPTARG" ;;
*) *)
echo "Usage: $0 [-x|-m] [-w] [-k] [-v] [-r] [-l libs] [-f frontend] [-s script] [-p cmdstring] verilog-files\n" >&2 echo "Usage: $0 [-x|-m] [-w] [-k] [-j] [-v] [-r] [-l libs] [-f frontend] [-s script] [-p cmdstring] verilog-files\n" >&2
exit 1 exit 1
esac esac
done done
@ -83,7 +86,13 @@ do
exit 1 exit 1
fi fi
[[ "$bn" == *_tb ]] && continue [[ "$bn" == *_tb ]] && continue
echo -n "Test: $bn "
if $makejmode; then
status_prefix="Test: $bn "
else
status_prefix=""
echo -n "Test: $bn "
fi
rm -f ${bn}.{err,log,sikp} rm -f ${bn}.{err,log,sikp}
mkdir -p ${bn}.out mkdir -p ${bn}.out
@ -144,12 +153,12 @@ do
if [ -f ${bn}.log ]; then if [ -f ${bn}.log ]; then
mv ${bn}.err ${bn}.log mv ${bn}.err ${bn}.log
echo "-> ok" echo "${status_prefix}-> ok"
elif [ -f ${bn}.skip ]; then elif [ -f ${bn}.skip ]; then
mv ${bn}.err ${bn}.skip mv ${bn}.err ${bn}.skip
echo "-> skip" echo "${status_prefix}-> skip"
else else
echo "-> ERROR!" echo "${status_prefix}-> ERROR!"
if $warn_iverilog_git; then if $warn_iverilog_git; then
echo "Note: Make sure that 'iverilog' is an up-to-date git checkout of icarus verilog." echo "Note: Make sure that 'iverilog' is an up-to-date git checkout of icarus verilog."
fi fi

View file

@ -9,7 +9,7 @@ tar --strip=1 -xjf vloghammer_tb.tar.bz2
make clean make clean
rm -rf log_test_* rm -rf log_test_*
make -j4 EXIT_ON_ERROR=1 YOSYS_BIN=$PWD/../../yosys YOSYS_SCRIPT="proc;;" check_yosys ${MAKE:-make} EXIT_ON_ERROR=1 YOSYS_BIN=$PWD/../../yosys YOSYS_SCRIPT="proc;;" check_yosys
make -j4 -f test_makefile MODE=share ${MAKE:-make} -f test_makefile MODE=share
make -j4 -f test_makefile MODE=mapopt ${MAKE:-make} -f test_makefile MODE=mapopt