Skip to content

Commit 1371a71

Browse files
committed
Regression additon
1 parent 290031e commit 1371a71

1 file changed

Lines changed: 66 additions & 11 deletions

File tree

makefile

Lines changed: 66 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3347,7 +3347,7 @@ coremark_help:
33473347
# make bench - Run benchmarks (NO_ADDR=1)
33483348
# make all_tests - Run all tests
33493349
# make quick - Quick smoke (~5 min): ISA + CSR
3350-
# make full - Full suite (~30 min): ISA + Arch + Imperas + CSR
3350+
# make full - Full suite: ISA + Arch + Imperas + CSR + RISC-V DV + Torture
33513351
# make nightly - Nightly build (full + CoreMark + benchmarks)
33523352
# ============================================================
33533353

@@ -3589,10 +3589,19 @@ quick:
35893589
echo -e "$(GREEN)╚══════════════════════════════════════════════════════════════╝$(RESET)"; \
35903590
if [ $$ISA_FAIL -gt 0 ] || [ $$CSR_FAIL -gt 0 ]; then exit 1; fi
35913591

3592+
# Optional random stress for `make full` (override or skip on CLI):
3593+
# FULL_RISCV_DV_ITER=5 FULL_TORTURE_NUM_TESTS=8 make full
3594+
# SKIP_FULL_RISCV_DV=1 SKIP_FULL_TORTURE=1 make full
3595+
FULL_RISCV_DV_ITER ?= 3
3596+
FULL_TORTURE_NUM_TESTS ?= 5
3597+
FULL_TORTURE_MAX_INSNS ?= 500
3598+
SKIP_FULL_RISCV_DV ?= 0
3599+
SKIP_FULL_TORTURE ?= 0
3600+
35923601
# -----------------------------------------
3593-
# Full Test Suite (~30 min)
3602+
# Full Test Suite (~30–90 min; scales with DV/torture counts)
35943603
# -----------------------------------------
3595-
# ISA + Arch + Imperas + CSR
3604+
# ISA + Arch + Imperas + CSR + RISC-V DV + Torture
35963605
.PHONY: full
35973606

35983607
full:
@@ -3611,38 +3620,75 @@ full:
36113620
ARCH_PASS=0; ARCH_FAIL=0; \
36123621
IMP_PASS=0; IMP_FAIL=0; \
36133622
CSR_PASS=0; CSR_FAIL=0; \
3614-
echo -e "$(YELLOW)[1/4] Running ISA tests...$(RESET)"; \
3623+
DV_PASS=0; DV_FAIL=0; \
3624+
TORT_PASS=0; TORT_FAIL=0; \
3625+
echo -e "$(YELLOW)[1/6] Running ISA tests...$(RESET)"; \
36153626
if $(MAKE) --no-print-directory isa CLEAN_LOGS=1 2>&1 | tee $(REGRESSION_DIR)/reg_isa.log; then \
36163627
ISA_PASS=$$(grep -c "PASSED" $(REGRESSION_DIR)/reg_isa.log 2>/dev/null || true); \
36173628
ISA_FAIL=$$(grep -c "FAILED" $(REGRESSION_DIR)/reg_isa.log 2>/dev/null || true); \
36183629
fi; \
36193630
ISA_PASS=$${ISA_PASS:-0}; ISA_FAIL=$${ISA_FAIL:-0}; \
36203631
echo "ISA: $$ISA_PASS passed, $$ISA_FAIL failed" >> $$REPORT; \
3621-
echo -e "$(YELLOW)[2/4] Running Architecture tests...$(RESET)"; \
3632+
echo -e "$(YELLOW)[2/6] Running Architecture tests...$(RESET)"; \
36223633
if $(MAKE) --no-print-directory arch 2>&1 | tee $(REGRESSION_DIR)/reg_arch.log; then \
36233634
ARCH_PASS=$$(grep -c "PASSED" $(REGRESSION_DIR)/reg_arch.log 2>/dev/null || true); \
36243635
ARCH_FAIL=$$(grep -c "FAILED" $(REGRESSION_DIR)/reg_arch.log 2>/dev/null || true); \
36253636
fi; \
36263637
ARCH_PASS=$${ARCH_PASS:-0}; ARCH_FAIL=$${ARCH_FAIL:-0}; \
36273638
echo "ARCH: $$ARCH_PASS passed, $$ARCH_FAIL failed" >> $$REPORT; \
3628-
echo -e "$(YELLOW)[3/4] Running Imperas tests...$(RESET)"; \
3639+
echo -e "$(YELLOW)[3/6] Running Imperas tests...$(RESET)"; \
36293640
if $(MAKE) --no-print-directory imperas 2>&1 | tee $(REGRESSION_DIR)/reg_imperas.log; then \
36303641
IMP_PASS=$$(grep -c "PASSED" $(REGRESSION_DIR)/reg_imperas.log 2>/dev/null || true); \
36313642
IMP_FAIL=$$(grep -c "FAILED" $(REGRESSION_DIR)/reg_imperas.log 2>/dev/null || true); \
36323643
fi; \
36333644
IMP_PASS=$${IMP_PASS:-0}; IMP_FAIL=$${IMP_FAIL:-0}; \
36343645
echo "IMPERAS: $$IMP_PASS passed, $$IMP_FAIL failed" >> $$REPORT; \
3635-
echo -e "$(YELLOW)[4/4] Running CSR tests...$(RESET)"; \
3646+
echo -e "$(YELLOW)[4/6] Running CSR tests...$(RESET)"; \
36363647
if $(MAKE) --no-print-directory csr 2>&1 | tee $(REGRESSION_DIR)/reg_csr.log; then \
36373648
CSR_PASS=$$(grep -c "PASSED" $(REGRESSION_DIR)/reg_csr.log 2>/dev/null || true); \
36383649
CSR_FAIL=$$(grep -c "FAILED" $(REGRESSION_DIR)/reg_csr.log 2>/dev/null || true); \
36393650
fi; \
36403651
CSR_PASS=$${CSR_PASS:-0}; CSR_FAIL=$${CSR_FAIL:-0}; \
36413652
echo "CSR: $$CSR_PASS passed, $$CSR_FAIL failed" >> $$REPORT; \
3653+
if [ "$(SKIP_FULL_RISCV_DV)" = "1" ]; then \
3654+
echo -e "$(YELLOW)[5/6] Skipping RISC-V DV (SKIP_FULL_RISCV_DV=1)$(RESET)"; \
3655+
echo "RISCV-DV: skipped" >> $$REPORT; \
3656+
else \
3657+
echo -e "$(YELLOW)[5/6] Running RISC-V DV (iter=$(FULL_RISCV_DV_ITER))...$(RESET)"; \
3658+
if $(MAKE) --no-print-directory riscv_dv_run \
3659+
RISCV_DV_ITER=$(FULL_RISCV_DV_ITER) \
3660+
SIM=$(SIM) 2>&1 | tee $(REGRESSION_DIR)/reg_riscv_dv.log; then \
3661+
DV_PASS=$$(grep '\[RISCV-DV\] Results:' $(REGRESSION_DIR)/reg_riscv_dv.log 2>/dev/null | tail -1 | sed -e 's/.*Results: //' -e 's/ passed.*//' || echo 0); \
3662+
DV_FAIL=$$(grep '\[RISCV-DV\] Results:' $(REGRESSION_DIR)/reg_riscv_dv.log 2>/dev/null | tail -1 | sed -e 's/.*, //' -e 's/ failed.*//' || echo 0); \
3663+
else \
3664+
DV_PASS=$$(grep '\[RISCV-DV\] Results:' $(REGRESSION_DIR)/reg_riscv_dv.log 2>/dev/null | tail -1 | sed -e 's/.*Results: //' -e 's/ passed.*//' || echo 0); \
3665+
DV_FAIL=$$(grep '\[RISCV-DV\] Results:' $(REGRESSION_DIR)/reg_riscv_dv.log 2>/dev/null | tail -1 | sed -e 's/.*, //' -e 's/ failed.*//' || echo 1); \
3666+
fi; \
3667+
DV_PASS=$${DV_PASS:-0}; DV_FAIL=$${DV_FAIL:-0}; \
3668+
echo "RISCV-DV: $$DV_PASS passed, $$DV_FAIL failed" >> $$REPORT; \
3669+
fi; \
3670+
if [ "$(SKIP_FULL_TORTURE)" = "1" ]; then \
3671+
echo -e "$(YELLOW)[6/6] Skipping Torture (SKIP_FULL_TORTURE=1)$(RESET)"; \
3672+
echo "TORTURE: skipped" >> $$REPORT; \
3673+
else \
3674+
echo -e "$(YELLOW)[6/6] Running Torture (N=$(FULL_TORTURE_NUM_TESTS), max_insns=$(FULL_TORTURE_MAX_INSNS))...$(RESET)"; \
3675+
if $(MAKE) --no-print-directory torture_batch \
3676+
TORTURE_NUM_TESTS=$(FULL_TORTURE_NUM_TESTS) \
3677+
TORTURE_MAX_INSNS=$(FULL_TORTURE_MAX_INSNS) \
3678+
SIM=$(SIM) 2>&1 | tee $(REGRESSION_DIR)/reg_torture.log; then \
3679+
TORT_PASS=$$(grep '\[TORTURE\] Results:' $(REGRESSION_DIR)/reg_torture.log 2>/dev/null | tail -1 | sed -e 's/.*Results: //' -e 's/ passed.*//' || echo 0); \
3680+
TORT_FAIL=$$(grep '\[TORTURE\] Results:' $(REGRESSION_DIR)/reg_torture.log 2>/dev/null | tail -1 | sed -e 's/.*, //' -e 's/ failed.*//' || echo 0); \
3681+
else \
3682+
TORT_PASS=$$(grep '\[TORTURE\] Results:' $(REGRESSION_DIR)/reg_torture.log 2>/dev/null | tail -1 | sed -e 's/.*Results: //' -e 's/ passed.*//' || echo 0); \
3683+
TORT_FAIL=$$(grep '\[TORTURE\] Results:' $(REGRESSION_DIR)/reg_torture.log 2>/dev/null | tail -1 | sed -e 's/.*, //' -e 's/ failed.*//' || echo 1); \
3684+
fi; \
3685+
TORT_PASS=$${TORT_PASS:-0}; TORT_FAIL=$${TORT_FAIL:-0}; \
3686+
echo "TORTURE: $$TORT_PASS passed, $$TORT_FAIL failed" >> $$REPORT; \
3687+
fi; \
36423688
END_TIME=$$(date +%s); \
36433689
DURATION=$$((END_TIME - START_TIME)); \
3644-
TOTAL_PASS=$$((ISA_PASS + ARCH_PASS + IMP_PASS + CSR_PASS)); \
3645-
TOTAL_FAIL=$$((ISA_FAIL + ARCH_FAIL + IMP_FAIL + CSR_FAIL)); \
3690+
TOTAL_PASS=$$((ISA_PASS + ARCH_PASS + IMP_PASS + CSR_PASS + DV_PASS + TORT_PASS)); \
3691+
TOTAL_FAIL=$$((ISA_FAIL + ARCH_FAIL + IMP_FAIL + CSR_FAIL + DV_FAIL + TORT_FAIL)); \
36463692
echo "============================================" >> $$REPORT; \
36473693
echo "TOTAL: $$TOTAL_PASS passed, $$TOTAL_FAIL failed" >> $$REPORT; \
36483694
echo "Duration: $${DURATION}s" >> $$REPORT; \
@@ -3655,6 +3701,12 @@ full:
36553701
printf "$(GREEN)$(RESET) %-12s %3d passed, %3d failed $(GREEN)$(RESET)\n" "ARCH:" $$ARCH_PASS $$ARCH_FAIL; \
36563702
printf "$(GREEN)$(RESET) %-12s %3d passed, %3d failed $(GREEN)$(RESET)\n" "IMPERAS:" $$IMP_PASS $$IMP_FAIL; \
36573703
printf "$(GREEN)$(RESET) %-12s %3d passed, %3d failed $(GREEN)$(RESET)\n" "CSR:" $$CSR_PASS $$CSR_FAIL; \
3704+
if [ "$(SKIP_FULL_RISCV_DV)" != "1" ]; then \
3705+
printf "$(GREEN)$(RESET) %-12s %3d passed, %3d failed $(GREEN)$(RESET)\n" "RISCV-DV:" $$DV_PASS $$DV_FAIL; \
3706+
fi; \
3707+
if [ "$(SKIP_FULL_TORTURE)" != "1" ]; then \
3708+
printf "$(GREEN)$(RESET) %-12s %3d passed, %3d failed $(GREEN)$(RESET)\n" "TORTURE:" $$TORT_PASS $$TORT_FAIL; \
3709+
fi; \
36583710
echo -e "$(GREEN)╠══════════════════════════════════════════════════════════════╣$(RESET)"; \
36593711
printf "$(GREEN)$(RESET) %-12s %3d passed, %3d failed $(GREEN)$(RESET)\n" "TOTAL:" $$TOTAL_PASS $$TOTAL_FAIL; \
36603712
echo -e "$(GREEN)$(RESET) Duration: $${DURATION}s $(GREEN)$(RESET)"; \
@@ -3817,7 +3869,7 @@ help_lists:
38173869
@echo -e "$(CYAN) REGRESSION SUITES$(RESET)"
38183870
@echo -e "$(CYAN)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━$(RESET)"
38193871
@echo -e " $(GREEN)make quick$(RESET) – Quick smoke test (~5 min) [ISA + CSR]"
3820-
@echo -e " $(GREEN)make full$(RESET) – Full regression (~30 min) [ISA + Arch + Imperas + CSR]"
3872+
@echo -e " $(GREEN)make full$(RESET) – Full regression [ISA + Arch + Imperas + CSR + RISC-V DV + Torture]"
38213873
@echo -e " $(GREEN)make nightly$(RESET) – Nightly build (full + benchmarks + CoreMark)"
38223874
@echo -e ""
38233875
@echo -e "$(CYAN)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━$(RESET)"
@@ -3870,6 +3922,8 @@ help_lists:
38703922
@echo -e "$(YELLOW)Examples:$(RESET)"
38713923
@echo -e " make quick # Quick smoke test"
38723924
@echo -e " make full CLEAN_LOGS=1 # Full regression, clean logs first"
3925+
@echo -e " make full SKIP_FULL_RISCV_DV=1 # Skip RISC-V DV in full"
3926+
@echo -e " FULL_TORTURE_NUM_TESTS=8 make full # More torture tests"
38733927
@echo -e " make coverage # Full coverage analysis"
38743928
@echo -e " make t T=rv32ui-p-add SIM_FAST=1 # Single fast test"
38753929
@echo -e ""
@@ -4949,7 +5003,8 @@ torture_run: torture_build torture_verilate
49495003
fi; \
49505004
fi; \
49515005
done; \
4952-
echo -e "$(GREEN)[TORTURE] Results: $$PASS passed, $$FAIL failed$(RESET)"
5006+
echo -e "$(GREEN)[TORTURE] Results: $$PASS passed, $$FAIL failed$(RESET)"; \
5007+
test $$FAIL -eq 0
49535008

49545009
# ============================================================
49555010
# Batch Testing

0 commit comments

Comments
 (0)