code wiki / _hdl_build / nx_transient_monitor_gate.nx

nx_transient_monitor_gate.nx source

↩ module page · 38 lines · 2584 B

1// nx_transient_monitor_gate.nx -- SOVEREIGN gate for the transient/flakiness monitor. 2// T1 a STABLE target (always exit 0) -> 6/6 pass -> STABLE (neg-control: not falsely flagged flaky) 3// T2 a FLAKY target (alternating) -> 0<pass<6 -> FLAKY DETECTED (the transient is accounted, not hand-waved) 4// T3 verdict logic liar-kill: 6/6=STABLE, 3/6=FLAKY, 0/6=BROKEN 5// harness must: rm -f /tmp/tm_counter; build nx_tm_ok + nx_tm_flaky FIRST (this gate probes their /tmp elfs). 6// license_tier: ORIGINAL 7import "nx_syscalls.nx" 8import "nx_transient_monitor.nx" // tm_probe / tm_verdict 9 10func tg_w(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 11func tg_wn(v: i64) -> i64 { let b: *u8=sys_mmap(24); var m: i64=v; var k: i64=0; if m==0{b[0]=48 as u8;k=1} let t: *u8=sys_mmap(24); while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1} var o: *u8=sys_mmap(24); var w: i64=0; var q: i64=k-1; while q>=0{o[w]=t[q];w=w+1;q=q-1} sys_write(1,o,w); return 0 } 12func tg_vname(v: i64) -> i64 { if v==0 {tg_w("STABLE" as *u8)} if v==1 {tg_w("FLAKY" as *u8)} if v==2 {tg_w("BROKEN" as *u8)} return 0 } 13 14func main(argc: i64, argv: *i64) -> i64 { 15 var pass: i64=0; var total: i64=0 16 17 let out: *i64 = sys_mmap(8*8) as *i64 18 tm_probe("/tmp/nx_tm_ok.sov.elf" as *u8, 6, 2000, out) 19 let v1: i64 = tm_verdict(out[0], 6) 20 total=total+1; var ok1: i64=0; if out[0]==6 { if v1==0 { ok1=1 } } 21 if ok1==1 {pass=pass+1; tg_w("[PASS] " as *u8)} else {tg_w("[FAIL] " as *u8)} 22 tg_w("T1 STABLE fixture pass=" as *u8); tg_wn(out[0]); tg_w("/6 verdict=" as *u8); tg_vname(v1); tg_w(" (want 6/6 STABLE)\n" as *u8) 23 24 let out2: *i64 = sys_mmap(8*8) as *i64 25 tm_probe("/tmp/nx_tm_flaky.sov.elf" as *u8, 6, 2000, out2) 26 let v2: i64 = tm_verdict(out2[0], 6) 27 total=total+1; var ok2: i64=0; if out2[0]>0 { if out2[0]<6 { if v2==1 { ok2=1 } } } 28 if ok2==1 {pass=pass+1; tg_w("[PASS] " as *u8)} else {tg_w("[FAIL] " as *u8)} 29 tg_w("T2 FLAKY fixture pass=" as *u8); tg_wn(out2[0]); tg_w("/6 verdict=" as *u8); tg_vname(v2); tg_w(" (want 0<pass<6 FLAKY = transient DETECTED)\n" as *u8) 30 31 total=total+1; var ok3: i64=0; if tm_verdict(6,6)==0 { if tm_verdict(3,6)==1 { if tm_verdict(0,6)==2 { ok3=1 } } } 32 if ok3==1 {pass=pass+1; tg_w("[PASS] " as *u8)} else {tg_w("[FAIL] " as *u8)} 33 tg_w("T3 verdict logic: 6/6=STABLE, 3/6=FLAKY, 0/6=BROKEN\n" as *u8) 34 35 tg_w("=== nx_transient_monitor_gate " as *u8); tg_wn(pass); tg_w("/" as *u8); tg_wn(total) 36 if pass==total {tg_w(" GREEN\n" as *u8); return 0} 37 tg_w(" RED\n" as *u8); return 1 38}