test: libenv arranger observers; retire the 974/975 env carriers

test/libenv/libenv_test.ww owns the env-arranged legs of the lib/os
getenv and lib/dirs XDG suites (rows asserted ok, not SKIP, plus the
created-chain layout), the dirs too-long abort on both stages, and the
make-owned runner for the self-arranged stat suite. Wired beside the
sep observers under test-compiler.
This commit is contained in:
2026-08-08 14:35:46 +09:00
parent d2e54b7efa
commit b4a6bab112
5 changed files with 253 additions and 333 deletions

View File

@@ -366,6 +366,14 @@ SEP_WW_TESTS = test/sep/sepbuild_test.ww test/sep/sepimport_test.ww \
test/sep/seplink_test.ww test/sep/sepscratch_test.ww \
test/sep/septest_test.ww test/sep/m3sep_test.ww
SEP_WW_TARGETS = $(SEP_WW_TESTS:%=wwtest/%)
# Ww-native lib env/OS arranger observers: the env contracts of the
# lib/os and lib/dirs suites (getenv cohorts, XDG cohorts, the dirs
# too-long abort) need per-row env construction ww cannot self-arrange
# (no setenv, deliberately). These replaced the 974/975-era C
# arrangers; the suites themselves pass bare (skip or self-arrange).
LIBENV_WW_TESTS = test/libenv/libenv_test.ww
LIBENV_WW_TARGETS = $(LIBENV_WW_TESTS:%=wwtest/%)
# Ww-native multi-module-TREE observers: single-file ww tests under
# test/xmod/ on the test/testenv helper package, porting the residual
# multi-module C carriers (import-tree collisions, path-mangle and
@@ -507,10 +515,12 @@ test-compiler-smoke: $(WWFIXTURE_BIN) $(BIN)/w6c_ww $(BIN)/w6a_ww \
# Complete declarative corpus plus the residual native artifact/integration
# gates that cannot be represented by a single compiler fixture, plus the
# ww-native sep observers that replaced the 989_sep* carriers.
# ww-native sep observers that replaced the 989_sep* carriers and the
# lib env arranger observers that replaced the 974/975-era carriers.
test-compiler: $(WWFIXTURE_BIN) $(WRAPPER_TOOLS) $(COMPILER_WRAPPER_BINS) \
$(SEP_WW_TARGETS) $(XMOD_WW_TARGETS) $(ASM_WW_TARGETS) \
$(OBJECT_WW_TARGETS) $(MISC_WW_TARGETS) $(TOOL_WW_TARGETS)
$(OBJECT_WW_TARGETS) $(MISC_WW_TARGETS) $(TOOL_WW_TARGETS) \
$(LIBENV_WW_TARGETS)
@$(CURDIR)/$(WWFIXTURE_BIN) -j $(JOBS)
@set -e; for t in $(COMPILER_WRAPPER_BINS); do \
echo "compiler artifact $$t"; BIN=$(CURDIR)/$(BIN) $(CURDIR)/$$t; \
@@ -548,8 +558,10 @@ $(BYTEID_WW_TARGETS): wwtest/%: $(BIN)/ww $(BIN)/w6c $(BIN)/w6a \
# The sep observers drive both driver stages end-to-end (compile,
# assemble, link, run), so both full per-stage toolchains are
# prerequisites.
$(SEP_WW_TARGETS): wwtest/%: $(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
# prerequisites. The libenv arrangers share that shape: the dirs
# too-long row builds and runs on both stages.
$(SEP_WW_TARGETS) $(LIBENV_WW_TARGETS): wwtest/%: $(BIN)/ww $(BIN)/w6c \
$(BIN)/w6a $(BIN)/w6l \
$(LIB)/libwwrt.a $(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww \
$(BIN)/w6l_ww
@echo "ww test $*"