diff --git a/Makefile b/Makefile index 20ec7346f..937acb668 100644 --- a/Makefile +++ b/Makefile @@ -936,26 +936,24 @@ SH_ABC_TEST_DIRS += tests/alumacc seed-tests: $(SH_TEST_DIRS:%=seed-tests/%) .PHONY: seed-tests/% seed-tests/%: %/run-test.sh $(TARGETS) $(EXTRA_TARGETS) - +cd $* && bash run-test.sh $(SEEDOPT) - +@echo "...passed tests in $*" + +cd $* && /usr/bin/env time -f "PASS $* in %e seconds" sh -c 'bash run-test.sh $(SEEDOPT) 2>/dev/null >/dev/null' # abcopt-tests/ is a dummy string, not a directory .PHONY: abcopt-tests abcopt-tests: $(SH_ABC_TEST_DIRS:%=abcopt-tests/%) abcopt-tests/%: %/run-test.sh $(TARGETS) $(EXTRA_TARGETS) - +cd $* && bash run-test.sh $(ABCOPT) $(SEEDOPT) - +@echo "...passed tests in $*" + +cd $* && /usr/bin/env time -f "PASS $* in %e seconds" sh -c 'bash run-test.sh $(ABCOPT) $(SEEDOPT) 2>/dev/null >/dev/null' # makefile-tests/ is a dummy string, not a directory .PHONY: makefile-tests makefile-tests: $(MK_TEST_DIRS:%=makefile-tests/%) # this target actually emits .mk files +.NOTINTERMEDIATE: %.mk %.mk: +cd $(dir $*) && bash run-test.sh # this one spawns submake on each makefile-tests/%: %/run-test.mk $(TARGETS) $(EXTRA_TARGETS) stdbuf -oL -eL $(MAKE) -C $* -f run-test.mk - +@echo "...passed tests in $*" test: makefile-tests abcopt-tests seed-tests @echo "" diff --git a/tests/gen-tests-makefile.sh b/tests/gen-tests-makefile.sh index f7de58087..677f39a5d 100755 --- a/tests/gen-tests-makefile.sh +++ b/tests/gen-tests-makefile.sh @@ -9,7 +9,7 @@ generate_target() { echo "all: $target_name" echo ".PHONY: $target_name" echo "$target_name:" - printf "\t@/usr/bin/env time -f \"PASS $target_name %%e seconds\" $test_command >/dev/null 2>/dev/null\n" + printf "\t@/usr/bin/env time -f \"PASS $target_name %%e seconds\" sh -c %q\n" "{ $test_command ;} >/dev/null 2>/dev/null" } # $ generate_ys_test ys_file [yosys_args]