From 7d98645fe8efcb446079a8a3cd8721ef5e27ee79 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Wed, 30 Jul 2014 19:21:52 +0200 Subject: [PATCH] Added "make -j{N}" support to "make test" --- Makefile | 20 ++++++++++---------- tests/asicworld/run-test.sh | 2 +- tests/hana/run-test.sh | 2 +- tests/simple/run-test.sh | 2 +- tests/tools/autotest.mk | 8 ++++++++ tests/tools/autotest.sh | 21 +++++++++++++++------ tests/vloghtb/run-test.sh | 6 +++--- 7 files changed, 39 insertions(+), 22 deletions(-) create mode 100644 tests/tools/autotest.mk diff --git a/Makefile b/Makefile index 73d448337..4436be3de 100644 --- a/Makefile +++ b/Makefile @@ -218,15 +218,15 @@ yosys-abc: abc/abc-$(ABCREV) $(P) cp abc/abc-$(ABCREV) yosys-abc test: $(TARGETS) $(EXTRA_TARGETS) - cd tests/simple && bash run-test.sh - cd tests/hana && bash run-test.sh - cd tests/asicworld && bash run-test.sh - cd tests/realmath && bash run-test.sh - cd tests/share && bash run-test.sh - cd tests/techmap && bash run-test.sh - cd tests/memories && bash run-test.sh - cd tests/various && bash run-test.sh - cd tests/sat && bash run-test.sh + +cd tests/simple && bash run-test.sh + +cd tests/hana && bash run-test.sh + +cd tests/asicworld && bash run-test.sh + +cd tests/realmath && bash run-test.sh + +cd tests/share && bash run-test.sh + +cd tests/techmap && bash run-test.sh + +cd tests/memories && bash run-test.sh + +cd tests/various && bash run-test.sh + +cd tests/sat && bash run-test.sh @echo "" @echo " Passed \"make test\"." @echo "" @@ -240,7 +240,7 @@ vgtest: $(TARGETS) $(EXTRA_TARGETS) @echo "" vloghtb: $(TARGETS) $(EXTRA_TARGETS) - cd tests/vloghtb && bash run-test.sh + +cd tests/vloghtb && bash run-test.sh @echo "" @echo " Passed \"make vloghtb\"." @echo "" diff --git a/tests/asicworld/run-test.sh b/tests/asicworld/run-test.sh index a204360d7..2477181a6 100755 --- a/tests/asicworld/run-test.sh +++ b/tests/asicworld/run-test.sh @@ -1,2 +1,2 @@ #!/bin/bash -exec bash ../tools/autotest.sh -G *.v +exec ${MAKE:-make} -f ../tools/autotest.mk *.v diff --git a/tests/hana/run-test.sh b/tests/hana/run-test.sh index 89be6d052..410f9b4d7 100755 --- a/tests/hana/run-test.sh +++ b/tests/hana/run-test.sh @@ -1,2 +1,2 @@ #!/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 diff --git a/tests/simple/run-test.sh b/tests/simple/run-test.sh index ec1802cbd..6531d51ae 100755 --- a/tests/simple/run-test.sh +++ b/tests/simple/run-test.sh @@ -6,4 +6,4 @@ if ! which iverilog > /dev/null ; then exit 1 fi -exec bash ../tools/autotest.sh -G *.v +exec ${MAKE:-make} -f ../tools/autotest.mk *.v diff --git a/tests/tools/autotest.mk b/tests/tools/autotest.mk new file mode 100644 index 000000000..f65002cef --- /dev/null +++ b/tests/tools/autotest.mk @@ -0,0 +1,8 @@ + +EXTRA_FLAGS= + +$(MAKECMDGOALS): + @$(basename $(MAKEFILE_LIST)).sh -G -j $(EXTRA_FLAGS) $@ + +.PHONY: $(MAKECMDGOALS) + diff --git a/tests/tools/autotest.sh b/tests/tools/autotest.sh index 1130bbb70..781dc1671 100755 --- a/tests/tools/autotest.sh +++ b/tests/tools/autotest.sh @@ -6,6 +6,7 @@ use_xsim=false use_modelsim=false verbose=false keeprunning=false +makejmode=false frontend="verilog" backend_opts="-noattr -noexpr" 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 fi -while getopts xmGl:wkvrf:s:p: opt; do +while getopts xmGl:wkjvrf:s:p: opt; do case "$opt" in x) use_xsim=true ;; @@ -31,6 +32,8 @@ while getopts xmGl:wkvrf:s:p: opt; do genvcd=true ;; k) keeprunning=true ;; + j) + makejmode=true ;; v) verbose=true ;; r) @@ -43,7 +46,7 @@ while getopts xmGl:wkvrf:s:p: opt; do p) 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 esac done @@ -83,7 +86,13 @@ do exit 1 fi [[ "$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} mkdir -p ${bn}.out @@ -144,12 +153,12 @@ do if [ -f ${bn}.log ]; then mv ${bn}.err ${bn}.log - echo "-> ok" + echo "${status_prefix}-> ok" elif [ -f ${bn}.skip ]; then mv ${bn}.err ${bn}.skip - echo "-> skip" + echo "${status_prefix}-> skip" else - echo "-> ERROR!" + echo "${status_prefix}-> ERROR!" if $warn_iverilog_git; then echo "Note: Make sure that 'iverilog' is an up-to-date git checkout of icarus verilog." fi diff --git a/tests/vloghtb/run-test.sh b/tests/vloghtb/run-test.sh index b1b205a22..ad99226e7 100755 --- a/tests/vloghtb/run-test.sh +++ b/tests/vloghtb/run-test.sh @@ -9,7 +9,7 @@ tar --strip=1 -xjf vloghammer_tb.tar.bz2 make clean rm -rf log_test_* -make -j4 EXIT_ON_ERROR=1 YOSYS_BIN=$PWD/../../yosys YOSYS_SCRIPT="proc;;" check_yosys -make -j4 -f test_makefile MODE=share -make -j4 -f test_makefile MODE=mapopt +${MAKE:-make} EXIT_ON_ERROR=1 YOSYS_BIN=$PWD/../../yosys YOSYS_SCRIPT="proc;;" check_yosys +${MAKE:-make} -f test_makefile MODE=share +${MAKE:-make} -f test_makefile MODE=mapopt