test: run test/lang @test corpus via the test-lang make target

The four test/lang/*_test.ww in-language @test files had no make target
running them — dead coverage that could rot silently. Add a standalone
test-lang target running each through the cstage `ww test` subcommand
(one package per invocation; set -e gives the gate teeth). Imports
resolve via the driver's self_dir/../../lib fallback, so no lib env.

Kept out of make test/test-unit/test-commit: that wiring is fold 6 and
is gated on the T1 behavior corpus reaching parity before byte-id is
demoted to pre-push.
This commit is contained in:
2026-06-22 02:39:38 +09:00
parent ca9376acde
commit f3743b3c7f

View File

@@ -3675,6 +3675,17 @@ RUNWW_CASES = $(wildcard test/wcc/data/*/case.ww)
test-run: all
@BIN=$(BIN) $(BIN)/ww run test/runww.ww $(RUNWW_CASES)
# ---- test-lang: in-language @test behavior corpus (fold 2) -------------
# Runs each test/lang/*_test.ww through the cstage `ww test` subcommand.
# Each file is its own package, so one file per invocation. A failing
# @test exits non-zero and fails the target. Imports (rt/strings) resolve
# via the driver's self_dir/../../lib fallback, so no lib env is needed.
# NOT yet wired into `make test` (fold 6, gated on the T1 corpus).
test-lang: all
@set -e; for f in $(wildcard test/lang/*_test.ww); do \
echo "ww test $$f"; $(BIN)/ww test $$f; \
done; echo "test-lang: all ok"
# ---- test-commit: per-commit default (task #10 T1) ---------------------
# Full suite, but content-key-SKIPS the expensive wwstage byte-id /
# self-compile gates (950/989_lib_byteid/990-997) when their input set is
@@ -3865,4 +3876,4 @@ nocc:
@echo
@echo "NOCC OK: $(STAGE0)/* reproduces itself from source. cc not invoked."
.PHONY: all cstage wwstage test test-unit test-commit test-run smoke sizelint peellint install clean bootstrap nocc bootstrap-snapshot
.PHONY: all cstage wwstage test test-unit test-commit test-run test-lang smoke sizelint peellint install clean bootstrap nocc bootstrap-snapshot