Every probe's assertion is owned by a current gate: the compile and link probes by make all and the bootstrap fixed point; build/run and cs/ww byte identity by the fixture corpus, test-data-byteid, and 989_lib_byteid; wwstage driver and toolchain parity by 993/995; checker-diagnostic parity by the corpus' both-stage //ww:error rows. The wwdump -t/-a dump-parity probes gated the frontend port's convergence, which the compiler-output identity gates now own end to end; carrier ran green at retirement. What was still uniquely alive migrates: smoke.ww becomes corpus fixture selfhost_smoke (upgraded from a cstage-only build to both frontends, byte-identical, exit 42 on both toolchains; corpus pins move to 1,225/763/2,450 with the new identity hash in the same commit), and sym_link.ww's scope/sym behavior rows become in-language lib/ww/syntax/symtest.ww under LIBRARY_TESTS. uses.ww (parser-stub-era -a fixture) and the already-orphaned tagged_ptr_ret.ww/trypromote.ww retire with the probe corpus. Bootstrap native gates drop to six; frontend numeric-sync comments now cite the rule-6 mirror instead of the retired diff probe.
99 lines
1.7 KiB
Plaintext
99 lines
1.7 KiB
Plaintext
package wwfixture;
|
|
|
|
def protocolversion: i32 = 1;
|
|
def corpuscount: i32 = 1225;
|
|
def errorcount: i32 = 314;
|
|
def compilecount: i32 = 12;
|
|
def runcount: i32 = 136;
|
|
def runexitcount: i32 = 763;
|
|
def nativecount: i32 = 2450;
|
|
def corpushash: str = "a2e47b2967d51a517d39598caf69c2d23618ba488594a0b7e33fded27cc62f93";
|
|
|
|
type directive = enum i32 {
|
|
ERROR = 0,
|
|
RUN = 1,
|
|
RUNEXIT = 2,
|
|
COMPILE = 3,
|
|
};
|
|
|
|
type stage = enum i32 {
|
|
C = 0,
|
|
WW = 1,
|
|
};
|
|
|
|
type phase = enum i32 {
|
|
COMPILE = 0,
|
|
BUILD = 1,
|
|
RUN = 2,
|
|
};
|
|
|
|
type verdict = enum i32 {
|
|
PASS = 0,
|
|
FAIL = 1,
|
|
ERROR = 2,
|
|
};
|
|
|
|
type termination = enum i32 {
|
|
EXIT = 0,
|
|
SIGNAL = 1,
|
|
TIMEOUT = 2,
|
|
SETUP = 3,
|
|
};
|
|
|
|
type fixture = struct {
|
|
name: str,
|
|
id: str,
|
|
source: str,
|
|
directive: directive,
|
|
diagnostic: str,
|
|
wwdiagnostic: str,
|
|
exitcode: i32,
|
|
};
|
|
|
|
type corpus = struct {
|
|
root: str,
|
|
fixtures: []fixture,
|
|
};
|
|
|
|
type identity = struct {
|
|
ordinal: i32,
|
|
fixtureindex: i32,
|
|
stage: stage,
|
|
};
|
|
|
|
type cellresult = struct {
|
|
ordinal: i32,
|
|
id: str,
|
|
stage: stage,
|
|
phase: phase,
|
|
verdict: verdict,
|
|
termination: termination,
|
|
code: i32,
|
|
durationns: i64,
|
|
capture: str,
|
|
};
|
|
|
|
fn stageword(s: stage) str = {
|
|
if (s == stage.C) { return "c"; };
|
|
return "ww";
|
|
};
|
|
|
|
fn phaseword(p: phase) str = {
|
|
if (p == phase.COMPILE) { return "compile"; };
|
|
if (p == phase.BUILD) { return "build"; };
|
|
return "run";
|
|
};
|
|
|
|
fn verdictword(v: verdict) str = {
|
|
if (v == verdict.PASS) { return "pass"; };
|
|
if (v == verdict.FAIL) { return "fail"; };
|
|
return "error";
|
|
};
|
|
|
|
fn terminationword(t: termination) str = {
|
|
if (t == termination.EXIT) { return "exit"; };
|
|
if (t == termination.SIGNAL) { return "signal"; };
|
|
if (t == termination.TIMEOUT) { return "timeout"; };
|
|
return "setup";
|
|
};
|