test: retarget Pattern-A combined-feed gates to sep .sepwork layout (M4 E3, #94)
94a of the C-mig2 split (rob rule-11): 13 Pattern-A gates that fed a .combined.ww to w6c/w6c_ww now drive two --sep builds (ww / ww_ww) and byte-diff the concatenated per-package .sepwork/*.s, mirroring #93's convention. Lands pre-flip while combined.ww still exists as the reversible safety net. Test-only; all 5 binary pins HOLD. 989_enumcap_run deferred to 94b (its decisive assertion is a combined.ww content diff, not a .s diff).
This commit is contained in:
@@ -122,19 +122,23 @@ positive(const char *bin, const char *cwd, const char *pkg, int idx)
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Drive the package file as the build target → its decls are the
|
||||
* PRIMARY module (imported==0) of the resolved unit; the producer's
|
||||
* primary filter then yields exactly this package's interface. The
|
||||
* library has no main, so the build's link step fails — the
|
||||
* `.combined.ww` is written before codegen (cf 989_lib_byteid), and
|
||||
* only it matters here, so the exit code is deliberately ignored. */
|
||||
/* #94 sep layout: drive the package file as the --sep build target →
|
||||
* its decls are the PRIMARY module of the resolved ROOT unit, which the
|
||||
* producer's primary filter narrows to exactly this package's
|
||||
* interface. The root unit's amalgamated source is composed at
|
||||
* <stem>.sepwork/__root.unit.ww BEFORE codegen; the library has no
|
||||
* main so the link step fails, but the unit (the only thing that
|
||||
* matters here) is already written, so the exit code is deliberately
|
||||
* ignored. WW_PKGCACHE is pinned under td so out/.pkgcache is
|
||||
* untouched. */
|
||||
snprintf(cmd, sizeof cmd,
|
||||
"cd %s && timeout 180 %s/ww build -I %s/lib %s.ww >/dev/null 2>&1",
|
||||
td, bin, cwd, pkg);
|
||||
"cd %s && WW_PKGCACHE=%s/pkgc timeout 180 %s/ww build --sep "
|
||||
"-I %s/lib -o %s/%s %s.ww >/dev/null 2>&1",
|
||||
td, td, bin, cwd, td, pkg, pkg);
|
||||
runwait(cmd);
|
||||
|
||||
char comb[1100], cs[1100], ws[1100];
|
||||
snprintf(comb, sizeof comb, "%s/%s.combined.ww", td, pkg);
|
||||
snprintf(comb, sizeof comb, "%s/%s.sepwork/__root.unit.ww", td, pkg);
|
||||
snprintf(cs, sizeof cs, "%s/cs.wwi", td);
|
||||
snprintf(ws, sizeof ws, "%s/ww.wwi", td);
|
||||
if (access(comb, 0) != 0) {
|
||||
|
||||
Reference in New Issue
Block a user