diff --git a/Makefile b/Makefile index df72a493858..10c8aa9b0ab 100644 --- a/Makefile +++ b/Makefile @@ -842,80 +842,69 @@ else ABCOPT="" endif - -########################### -# TESTS THAT GENERATE .MK # -########################### -PARALLEL_TEST_DIRS = -PARALLEL_TEST_DIRS += tests/arch/anlogic -PARALLEL_TEST_DIRS += tests/arch/ecp5 -PARALLEL_TEST_DIRS += tests/arch/efinix -PARALLEL_TEST_DIRS += tests/arch/gatemate -PARALLEL_TEST_DIRS += tests/arch/gowin -PARALLEL_TEST_DIRS += tests/arch/ice40 -PARALLEL_TEST_DIRS += tests/arch/intel_alm -PARALLEL_TEST_DIRS += tests/arch/machxo2 -PARALLEL_TEST_DIRS += tests/arch/microchip -PARALLEL_TEST_DIRS += tests/arch/nanoxplore -PARALLEL_TEST_DIRS += tests/arch/nexus -PARALLEL_TEST_DIRS += tests/arch/quicklogic/pp3 -PARALLEL_TEST_DIRS += tests/arch/quicklogic/qlf_k6n10f -PARALLEL_TEST_DIRS += tests/arch/xilinx -PARALLEL_TEST_DIRS += tests/opt -PARALLEL_TEST_DIRS += tests/sat -PARALLEL_TEST_DIRS += tests/sim -PARALLEL_TEST_DIRS += tests/svtypes -PARALLEL_TEST_DIRS += tests/techmap -PARALLEL_TEST_DIRS += tests/various -PARALLEL_TEST_DIRS += tests/verific -PARALLEL_TEST_DIRS += tests/verilog -# FIXME: Removed YOSYS_NOVERIFIC - temporarily? -# PARALLEL_TEST_DIRS += verific/extensions/tests/passing - -################################## -# TESTS THAT DO NOT GENERATE .MK # -################################## -SEED_TEST_DIRS = -SEED_TEST_DIRS += tests/simple -SEED_TEST_DIRS += tests/simple_abc9 -SEED_TEST_DIRS += tests/hana -SEED_TEST_DIRS += tests/asicworld -# TODO dig up why is this commented out -# SEED_TEST_DIRS += tests/realmath -SEED_TEST_DIRS += tests/share -SEED_TEST_DIRS += tests/opt_share -SEED_TEST_DIRS += tests/fsm -SEED_TEST_DIRS += tests/memlib -SEED_TEST_DIRS += tests/bram -SEED_TEST_DIRS += tests/svinterfaces -SEED_TEST_DIRS += tests/xprop -SEED_TEST_DIRS += tests/select -SEED_TEST_DIRS += tests/proc -SEED_TEST_DIRS += tests/blif -SEED_TEST_DIRS += tests/arch -SEED_TEST_DIRS += tests/rpc -SEED_TEST_DIRS += tests/memfile -SEED_TEST_DIRS += tests/fmt -SEED_TEST_DIRS += tests/cxxrtl +# Tests that generate .mk with tests/gen-tests-makefile.sh +MK_TEST_DIRS = +MK_TEST_DIRS += tests/arch/anlogic +MK_TEST_DIRS += tests/arch/ecp5 +MK_TEST_DIRS += tests/arch/efinix +MK_TEST_DIRS += tests/arch/gatemate +MK_TEST_DIRS += tests/arch/gowin +MK_TEST_DIRS += tests/arch/ice40 +MK_TEST_DIRS += tests/arch/intel_alm +MK_TEST_DIRS += tests/arch/machxo2 +MK_TEST_DIRS += tests/arch/microchip +MK_TEST_DIRS += tests/arch/nanoxplore +MK_TEST_DIRS += tests/arch/nexus +MK_TEST_DIRS += tests/arch/quicklogic/pp3 +MK_TEST_DIRS += tests/arch/quicklogic/qlf_k6n10f +MK_TEST_DIRS += tests/arch/xilinx +MK_TEST_DIRS += tests/opt +MK_TEST_DIRS += tests/sat +MK_TEST_DIRS += tests/sim +MK_TEST_DIRS += tests/svtypes +MK_TEST_DIRS += tests/techmap +MK_TEST_DIRS += tests/various +ifeq ($(ENABLE_VERIFIC),1) +ifneq ($(YOSYS_NOVERIFIC),1) +MK_TEST_DIRS += tests/verific +endif +endif +MK_TEST_DIRS += tests/verilog + +# Tests that don't generate .mk +SH_TEST_DIRS = +SH_TEST_DIRS += tests/simple +SH_TEST_DIRS += tests/simple_abc9 +SH_TEST_DIRS += tests/hana +SH_TEST_DIRS += tests/asicworld +# SH_TEST_DIRS += tests/realmath +SH_TEST_DIRS += tests/share +SH_TEST_DIRS += tests/opt_share +SH_TEST_DIRS += tests/fsm +SH_TEST_DIRS += tests/memlib +SH_TEST_DIRS += tests/bram +SH_TEST_DIRS += tests/svinterfaces +SH_TEST_DIRS += tests/xprop +SH_TEST_DIRS += tests/select +SH_TEST_DIRS += tests/proc +SH_TEST_DIRS += tests/blif +SH_TEST_DIRS += tests/arch +SH_TEST_DIRS += tests/rpc +SH_TEST_DIRS += tests/memfile +SH_TEST_DIRS += tests/fmt +SH_TEST_DIRS += tests/cxxrtl ifeq ($(ENABLE_FUNCTIONAL_TESTS),1) -SEED_TEST_DIRS += tests/functional +SH_TEST_DIRS += tests/functional endif -################################ -# TESTS THAT NEED SPECIAL ARGS # -################################ - -ABC_TEST_DIRS = -ABC_TEST_DIRS += tests/memories -ABC_TEST_DIRS += tests/aiger - -############ -# THE GUTS # -############ +# Tests that don't generate .mk and need special args +SH_ABC_TEST_DIRS = +SH_ABC_TEST_DIRS += tests/memories +SH_ABC_TEST_DIRS += tests/aiger # seed-tests/ is a dummy string, not a directory .PHONY: seed-tests -seed-tests: $(SEED_TEST_DIRS:%=seed-tests/%) +seed-tests: $(SH_TEST_DIRS:%=seed-tests/%) .PHONY: seed-tests/% seed-tests/%: %/run-test.sh $(TARGETS) $(EXTRA_TARGETS) +cd $* && bash run-test.sh $(SEEDOPT) @@ -923,14 +912,14 @@ seed-tests/%: %/run-test.sh $(TARGETS) $(EXTRA_TARGETS) # abcopt-tests/ is a dummy string, not a directory .PHONY: abcopt-tests -abcopt-tests: $(ABC_TEST_DIRS:%=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 $*" # makefile-tests/ is a dummy string, not a directory .PHONY: makefile-tests -makefile-tests: $(PARALLEL_TEST_DIRS:%=makefile-tests/%) +makefile-tests: $(MK_TEST_DIRS:%=makefile-tests/%) # this target actually emits .mk files %.mk: +cd $(dir $*) && bash run-test.sh @@ -942,6 +931,11 @@ makefile-tests/%: %/run-test.mk $(TARGETS) $(EXTRA_TARGETS) test: makefile-tests abcopt-tests seed-tests @echo "" @echo " Passed \"make test\"." +ifeq ($(ENABLE_VERIFIC),1) +ifeq ($(YOSYS_NOVERIFIC),1) + @echo " Ran tests without verific support due to YOSYS_NOVERIFIC=1." +endif +endif @echo "" VALGRIND ?= valgrind --error-exitcode=1 --leak-check=full --show-reachable=yes --errors-for-leak-kinds=all diff --git a/tests/arch/anlogic/run-test.sh b/tests/arch/anlogic/run-test.sh index 4be4b70ae17..691b70966c7 100755 --- a/tests/arch/anlogic/run-test.sh +++ b/tests/arch/anlogic/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/arch/ecp5/run-test.sh b/tests/arch/ecp5/run-test.sh index 4be4b70ae17..691b70966c7 100755 --- a/tests/arch/ecp5/run-test.sh +++ b/tests/arch/ecp5/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/arch/efinix/run-test.sh b/tests/arch/efinix/run-test.sh index 4be4b70ae17..691b70966c7 100755 --- a/tests/arch/efinix/run-test.sh +++ b/tests/arch/efinix/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/arch/gatemate/run-test.sh b/tests/arch/gatemate/run-test.sh index 4be4b70ae17..691b70966c7 100755 --- a/tests/arch/gatemate/run-test.sh +++ b/tests/arch/gatemate/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/arch/gowin/run-test.sh b/tests/arch/gowin/run-test.sh index 4be4b70ae17..691b70966c7 100755 --- a/tests/arch/gowin/run-test.sh +++ b/tests/arch/gowin/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/arch/ice40/run-test.sh b/tests/arch/ice40/run-test.sh index 4be4b70ae17..691b70966c7 100755 --- a/tests/arch/ice40/run-test.sh +++ b/tests/arch/ice40/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/arch/intel_alm/run-test.sh b/tests/arch/intel_alm/run-test.sh index 4be4b70ae17..691b70966c7 100755 --- a/tests/arch/intel_alm/run-test.sh +++ b/tests/arch/intel_alm/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/arch/machxo2/run-test.sh b/tests/arch/machxo2/run-test.sh index 4be4b70ae17..691b70966c7 100644 --- a/tests/arch/machxo2/run-test.sh +++ b/tests/arch/machxo2/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/arch/microchip/run-test.sh b/tests/arch/microchip/run-test.sh index 4be4b70ae17..691b70966c7 100755 --- a/tests/arch/microchip/run-test.sh +++ b/tests/arch/microchip/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/arch/nanoxplore/run-test.sh b/tests/arch/nanoxplore/run-test.sh index 4be4b70ae17..691b70966c7 100755 --- a/tests/arch/nanoxplore/run-test.sh +++ b/tests/arch/nanoxplore/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/arch/nexus/run-test.sh b/tests/arch/nexus/run-test.sh index 4be4b70ae17..691b70966c7 100644 --- a/tests/arch/nexus/run-test.sh +++ b/tests/arch/nexus/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/arch/quicklogic/pp3/run-test.sh b/tests/arch/quicklogic/pp3/run-test.sh index 3f8515f9aa6..43a7874b209 100755 --- a/tests/arch/quicklogic/pp3/run-test.sh +++ b/tests/arch/quicklogic/pp3/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/arch/quicklogic/qlf_k6n10f/run-test.sh b/tests/arch/quicklogic/qlf_k6n10f/run-test.sh index 2fe33619418..c7daba12d7e 100755 --- a/tests/arch/quicklogic/qlf_k6n10f/run-test.sh +++ b/tests/arch/quicklogic/qlf_k6n10f/run-test.sh @@ -2,4 +2,4 @@ set -eu python3 mem_gen.py source ../../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash +generate_mk --yosys-scripts --bash diff --git a/tests/arch/xilinx/run-test.sh b/tests/arch/xilinx/run-test.sh index 4be4b70ae17..691b70966c7 100755 --- a/tests/arch/xilinx/run-test.sh +++ b/tests/arch/xilinx/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../../gen-tests-makefile.sh -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/gen-tests-makefile.sh b/tests/gen-tests-makefile.sh index f73a3673387..146bb5e8131 100755 --- a/tests/gen-tests-makefile.sh +++ b/tests/gen-tests-makefile.sh @@ -105,7 +105,6 @@ generate_tests() { fi } -run_tests() { +generate_mk() { generate_tests "$@" > run-test.mk - # exec ${MAKE:-make} -f run-test.mk } diff --git a/tests/opt/run-test.sh b/tests/opt/run-test.sh index 74589dfeb57..006c731e302 100755 --- a/tests/opt/run-test.sh +++ b/tests/opt/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../gen-tests-makefile.sh -run_tests --yosys-scripts +generate_mk --yosys-scripts diff --git a/tests/sat/run-test.sh b/tests/sat/run-test.sh index 74589dfeb57..006c731e302 100755 --- a/tests/sat/run-test.sh +++ b/tests/sat/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../gen-tests-makefile.sh -run_tests --yosys-scripts +generate_mk --yosys-scripts diff --git a/tests/sim/run-test.sh b/tests/sim/run-test.sh index a5120e77ed7..43571e0573b 100755 --- a/tests/sim/run-test.sh +++ b/tests/sim/run-test.sh @@ -9,4 +9,4 @@ find tb/* -name tb*.v | while read name; do iverilog -o tb/$test_name.out $name $verilog_name ./tb/$test_name.out -fst done -run_tests --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" +generate_mk --yosys-scripts --bash --yosys-args "-w 'Yosys has only limited support for tri-state logic at the moment.'" diff --git a/tests/svtypes/run-test.sh b/tests/svtypes/run-test.sh index 91ceae227fb..8b0333f27bd 100755 --- a/tests/svtypes/run-test.sh +++ b/tests/svtypes/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../gen-tests-makefile.sh -run_tests --yosys-scripts --prove-sv +generate_mk --yosys-scripts --prove-sv diff --git a/tests/techmap/run-test.sh b/tests/techmap/run-test.sh index 16741cace82..0766db9997d 100755 --- a/tests/techmap/run-test.sh +++ b/tests/techmap/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../gen-tests-makefile.sh -run_tests --yosys-scripts --tcl-scripts --bash --yosys-args "-e 'select out of bounds'" +generate_mk --yosys-scripts --tcl-scripts --bash --yosys-args "-e 'select out of bounds'" diff --git a/tests/various/run-test.sh b/tests/various/run-test.sh index 2f91cf0fd4e..dee03282719 100755 --- a/tests/various/run-test.sh +++ b/tests/various/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../gen-tests-makefile.sh -run_tests --yosys-scripts --bash +generate_mk --yosys-scripts --bash diff --git a/tests/verilog/run-test.sh b/tests/verilog/run-test.sh index 2f91cf0fd4e..dee03282719 100755 --- a/tests/verilog/run-test.sh +++ b/tests/verilog/run-test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eu source ../gen-tests-makefile.sh -run_tests --yosys-scripts --bash +generate_mk --yosys-scripts --bash