diff --git a/test/wcc/989_septest_run.c b/test/wcc/989_septest_run.c index 508963fa..12eb1dcc 100644 --- a/test/wcc/989_septest_run.c +++ b/test/wcc/989_septest_run.c @@ -15,6 +15,13 @@ * fails. The failing row is the non-vacuity teeth: it proves the @tests * genuinely RUN under sep (a no-op --sep that linked an empty main would * exit 0 on the failing fixture and the gate would catch it). + * This same RUN-EXIT path also hosts the @test user-facing reject + + * coexist legs ported from 910/997 (C2a, #83), which die at the M4 flip + * that deletes 910/997: `userman` (explicit user main collides with the + * -T synth entry) and `badsig` (non-`fn() void` @test) must reject + * (exit != 0) on both stages; `collide_run` (user `fn run` coexists with + * lib/test's bound runner) must accept and run to exit 0 — under sep the + * two land in distinct units, so a regressed collision fails the link. * 2. cs==ww (rule 10): the cstage `ww` and wwstage `ww_ww` sep-drivers emit * byte-identical per-package .s/.wwi for the passing fixture — including * __root.s, which carries the synth `CALL test.run`. @@ -153,8 +160,10 @@ cmp_sepwork(const char *csdir, const char *wwdir, const char *label) struct tcase { const char *label; const char *src; /* inline fixture written to /