test: port the packed .wwi + identity legs to ww; retire 671_struct_packed

wwiroundtrip pins the @packed re-emit through a real -I tree on both
driver stages (importer-side layout exit 91), strengthened with the
`struct @packed {` needle in the retained sepwork pk2.wwi (a
single-file two-package form emits no .wwi, so the tree is
irreducible). identityreject pins the stage asymmetry as a DIVERGE
row: cstage rejects with "not assignable" (packed is type identity,
harec types.c:621), wwstage builds+runs through the documented
#224/#10 nominal-lossy leniency; a wwstage tighten fails the row and
demands graduation to a //ww:error fixture. The 15 layout/runtime
value rows are fixture-shaped and move to the declarative corpus per
the residual audit port split.
This commit is contained in:
2026-08-08 15:02:55 +09:00
parent aab9ec5e5f
commit 5dc8bea318
3 changed files with 135 additions and 505 deletions

View File

@@ -407,7 +407,7 @@ OBJECT_WW_TARGETS = $(OBJECT_WW_TESTS:%=wwtest/%)
# run-stderr probes, .wwi round-trip trees, tool-dump AST proofs,
# cstage-only rejects). Compiler/driver gates like test/sep: they run
# under test-compiler.
MISC_WW_TESTS = test/misc/arrglob_test.ww
MISC_WW_TESTS = test/misc/arrglob_test.ww test/misc/packedwwi_test.ww
MISC_WW_TARGETS = $(MISC_WW_TESTS:%=wwtest/%)
BOOTSTRAP_WRAPPER_SOURCES = test/wcc/950_selfcheck.c \
test/wcc/991_w6a_ww.c \