From b1e1763e14988785380c72316eb561ccb1d38149 Mon Sep 17 00:00:00 2001 From: mrg Date: Tue, 8 Feb 2022 11:35:29 -0800 Subject: [PATCH 1/5] Fix PDK path for freepdk45 and list FAILED tests explicitly at end. --- compiler/tests/Makefile | 2 ++ docker/set-paths.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/tests/Makefile b/compiler/tests/Makefile index 9f1d0dc6..4f438fe3 100644 --- a/compiler/tests/Makefile +++ b/compiler/tests/Makefile @@ -43,6 +43,8 @@ WORKING_TECH_TEST_STAMPS=$(foreach T, $(TECHS),$(addprefix $T/,$(WORKING_TEST_ST # Run all technologies all: $(WORKING_TECH_TEST_STAMPS) @ls $(TOP_DIR)/compiler/tests/results/*/*.bad 1> /dev/null 2>&1 && echo "REGRESSION FAIL" && exit 1 || echo "REGRESSION PASS" + @echo "FAILING TESTS:" + @ls $(TOP_DIR)/compiler/tests/results/*/*.bad .PHONY: all # Run a given technology diff --git a/docker/set-paths.sh b/docker/set-paths.sh index 1cebef48..dc9b03ce 100644 --- a/docker/set-paths.sh +++ b/docker/set-paths.sh @@ -15,7 +15,7 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$XYCE_LIB export XYCE_NO_TRACKING="anything at all" # PDKs -export FREEPDK45=/PDK/freepdk45 +export FREEPDK45=/pdk/freepdk45 # Set to the PDK you want to use export PDK_DIR=$FREEPDK45 From 4d62cbd34557de98e9495a360417854613d09db9 Mon Sep 17 00:00:00 2001 From: mrg Date: Tue, 8 Feb 2022 12:05:39 -0800 Subject: [PATCH 2/5] Move pdk paths to docker invocation --- compiler/tests/Makefile | 5 +++++ docker/set-paths.sh | 8 -------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/compiler/tests/Makefile b/compiler/tests/Makefile index 4f438fe3..4b1e45de 100644 --- a/compiler/tests/Makefile +++ b/compiler/tests/Makefile @@ -66,7 +66,10 @@ $(TEST_BASES): @docker run \ -v $(TOP_DIR):/openram \ -v $(FREEPDK45):/pdk/freepdk45\ + -e FREEPDK45=/pdk/freepdk45\ -v $(PDK_ROOT):/pdk \ + -e PDK_ROOT=/pdk \ + -e PDKPATH=/pdk/sky130A \ -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro \ --user $(UID):$(GID) \ -e OPENRAM_TMP=$(OPENRAM_DIR)/results/$*/tmp \ @@ -83,6 +86,8 @@ mount: -v $(TOP_DIR):/openram \ -v $(FREEPDK45):/pdk/freepdk45 \ -v $(PDK_ROOT):/pdk \ + -e PDK_ROOT=/pdk \ + -e PDKPATH=/pdk/sky130A \ -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro \ --user $(UID):$(GID) \ vlsida/openram-ubuntu:latest diff --git a/docker/set-paths.sh b/docker/set-paths.sh index dc9b03ce..386872b5 100644 --- a/docker/set-paths.sh +++ b/docker/set-paths.sh @@ -14,14 +14,6 @@ export XYCE_LIB=$XYCE_HOME/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$XYCE_LIB export XYCE_NO_TRACKING="anything at all" -# PDKs -export FREEPDK45=/pdk/freepdk45 -# Set to the PDK you want to use -export PDK_DIR=$FREEPDK45 - -# Skywater PDK -export PDK_ROOT=/pdk - # OpenRAM export OPENRAM_HOME=/openram/compiler export OPENRAM_TECH=/openram/technology From 16238af5840a2f3f370e21ee31dc4cca18802ed1 Mon Sep 17 00:00:00 2001 From: mrg Date: Tue, 8 Feb 2022 13:07:37 -0800 Subject: [PATCH 3/5] Print failing tests before exit --- compiler/tests/Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/compiler/tests/Makefile b/compiler/tests/Makefile index 4b1e45de..11c4c1f8 100644 --- a/compiler/tests/Makefile +++ b/compiler/tests/Makefile @@ -42,9 +42,7 @@ WORKING_TECH_TEST_STAMPS=$(foreach T, $(TECHS),$(addprefix $T/,$(WORKING_TEST_ST # Run all technologies all: $(WORKING_TECH_TEST_STAMPS) - @ls $(TOP_DIR)/compiler/tests/results/*/*.bad 1> /dev/null 2>&1 && echo "REGRESSION FAIL" && exit 1 || echo "REGRESSION PASS" - @echo "FAILING TESTS:" - @ls $(TOP_DIR)/compiler/tests/results/*/*.bad + @ls $(TOP_DIR)/compiler/tests/results/*/*.bad 1> /dev/null 2>&1 && echo "FAILING TESTS" && ls $(TOP_DIR)/compiler/tests/results/*/*.bad && exit 1 .PHONY: all # Run a given technology From 40f671acfd59bed0716597cf011c2d6beaa084d7 Mon Sep 17 00:00:00 2001 From: mrg Date: Tue, 8 Feb 2022 16:04:18 -0800 Subject: [PATCH 4/5] Make clean before make --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 36ab8aae..8dbf8380 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,6 +25,7 @@ jobs: #python3-coverage run -p $OPENRAM_HOME/tests/regress.py -j 12 -t scn4m_subm #$OPENRAM_HOME/tests/regress.py -j 24 -t scn4m_subm cd $OPENRAM_HOME/tests + make clean make -k -j 48 - name: Archive if: ${{ failure() }} From c75968401c54d8c75a1fb6b5d43fe0c2af113d0a Mon Sep 17 00:00:00 2001 From: mrg Date: Tue, 8 Feb 2022 16:04:43 -0800 Subject: [PATCH 5/5] Update for detailed skips. Added some sky130 skips. --- compiler/tests/Makefile | 70 ++++++++++++++++++++++++++++------------- 1 file changed, 49 insertions(+), 21 deletions(-) diff --git a/compiler/tests/Makefile b/compiler/tests/Makefile index 11c4c1f8..854f531d 100644 --- a/compiler/tests/Makefile +++ b/compiler/tests/Makefile @@ -16,29 +16,57 @@ TEST_STAMPS= $(addsuffix .ok,$(TEST_BASES)) OPENRAM_DIR = /openram/compiler/tests RESULTS_DIR = $(OPENRAM_DIR)/results -TEST_BROKEN = \ - 50_riscv_1k_1rw1r_func_test.py \ - 50_riscv_1k_1rw_func_test.py \ - 50_riscv_1rw1r_func_test.py \ - 50_riscv_1rw1r_phys_test.py \ - 50_riscv_1rw_func_test.py \ - 50_riscv_1rw_phys_test.py \ - 50_riscv_2k_1rw1r_func_test.py \ - 50_riscv_2k_1rw_func_test.py \ - 50_riscv_4k_1rw1r_func_test.py \ - 50_riscv_4k_1rw_func_test.py \ - 50_riscv_512b_1rw1r_func_test.py \ - 50_riscv_512b_1rw_func_test.py \ - 50_riscv_8k_1rw1r_func_test.py \ - 50_riscv_8k_1rw_func_test.py - - -WORKING_TEST_STAMPS=$(filter-out $(addsuffix .ok, (TEST_BROKEN)), $(TEST_STAMPS)) - +# Use % for all techs: +# %/test.py +# or a specific tech: +# freepdk45/test.py +BROKEN_STAMPS = \ + sky130/01_library_test.ok \ + sky130/04_column_mux_pbitcell_test.ok \ + sky130/04_dummy_pbitcell_test.ok \ + sky130/04_pbitcell_test.ok \ + sky130/04_pnand4_test.ok \ + sky130/04_precharge_pbitcell_test.ok \ + sky130/04_replica_pbitcell_test.ok \ + sky130/05_pbitcell_array_test.ok \ + sky130/05_bitcell_array_test.ok \ + sky130/05_bitcell_array_1rw_1r_test.ok \ + sky130/05_dummy_array_test.ok \ + sky130/07_column_mux_array_pbitcell_test.ok \ + sky130/19_pmulti_bank_test.ok \ + sky130/19_psingle_bank_test.ok \ + sky130/19_bank_select_pbitcell_test.ok \ + sky130/20_psram_1bank_2mux_1rw_1w_test.ok \ + sky130/20_psram_1bank_2mux_1rw_1w_wmask_test.ok \ + sky130/20_psram_1bank_2mux_1w_1r_test.ok \ + sky130/20_psram_1bank_2mux_test.ok \ + sky130/20_psram_1bank_4mux_1rw_1r_test.ok \ + sky130/22_psram_1bank_2mux_func_test.ok \ + sky130/22_psram_1bank_4mux_func_test.ok \ + sky130/22_psram_1bank_8mux_func_test.ok \ + sky130/22_psram_1bank_nomux_func_test.ok \ + %/50_riscv_1k_1rw1r_func_test.ok \ + %/50_riscv_1k_1rw_func_test.ok \ + %/50_riscv_1rw1r_func_test.ok \ + %/50_riscv_1rw1r_phys_test.ok \ + %/50_riscv_1rw_func_test.ok \ + %/50_riscv_1rw_phys_test.ok \ + %/50_riscv_2k_1rw1r_func_test.ok \ + %/50_riscv_2k_1rw_func_test.ok \ + %/50_riscv_4k_1rw1r_func_test.ok \ + %/50_riscv_4k_1rw_func_test.ok \ + %/50_riscv_512b_1rw1r_func_test.ok \ + %/50_riscv_512b_1rw_func_test.ok \ + %/50_riscv_8k_1rw1r_func_test.ok \ + %/50_riscv_8k_1rw_func_test.ok gettech = $(word 1,$(subst /, ,$*)) getfile = $(word 2,$(subst /, ,$*)) -WORKING_TECH_TEST_STAMPS=$(foreach T, $(TECHS),$(addprefix $T/,$(WORKING_TEST_STAMPS))) +TECH_TEST_STAMPS=$(foreach T, $(TECHS), $(addprefix $T/, $(TEST_STAMPS))) + +# Filter out the tests after creating the tech stamps +WORKING_TECH_TEST_STAMPS=$(filter-out $(BROKEN_STAMPS), $(TECH_TEST_STAMPS)) + # Run all technologies all: $(WORKING_TECH_TEST_STAMPS) @@ -48,7 +76,7 @@ all: $(WORKING_TECH_TEST_STAMPS) # Run a given technology # e.g. make freepdk45 $(ALL_TECHS): - @$(MAKE) --no-print-directory $(addprefix $@/,$(WORKING_TEST_STAMPS)) + @$(MAKE) --no-print-directory $(filter-out $(BROKEN_STAMPS), $(addprefix $@/, $(TEST_STAMPS))) .PHONY: $(TECHS) # Targets for each individual test