code wiki / (root) / nx_wflow_diagnostics_gate_t240.nx

nx_wflow_diagnostics_gate_t240.nx source

↩ module page · 40 lines · 1992 B

1import "nx_tool_run.nx" 2import "nx_gate_verdict.nx" 3import "nx_wflow_engine.nx" 4func wd_case(subject:*u8,args:*i64,want:i64,marker:*u8,tmo:i64,c:*i64)->i64 { 5 let out:*NxBufOwned=sys_mmap(NX_BO_BYTES) as *NxBufOwned 6 out.buf=0 as *u8;out.len=0;out.cap=0 7 let rc:i64=tr_run_capture_owned(subject,args,out,tmo,0,0 as *u8) 8 gv_check("native exit preserved",(rc==want) as i64,c) 9 gv_check("diagnostic or dedup observed",tr_contains(out.buf,out.len,marker),c) 10 if want!=0 { 11 gv_check("effect certainty not fabricated",tr_contains(out.buf,out.len,"\"effects\":\"unverified\""),c) 12 gv_check("no automatic retry",tr_contains(out.buf,out.len,"\"retry\":\"reconcile-first\""),c) 13 gv_check("no fixture action executed",(tr_contains(out.buf,out.len,"WFLOW-ACTION")==0) as i64,c) 14 } 15 let released:i64=nx_bo_release(out) 16 sys_munmap(out as *u8,NX_BO_BYTES) 17 gv_check("capture released",(released==0) as i64,c) 18 return 0 19} 20func main(argc:i64,argv:*i64)->i64 { 21 if argc!=6{return 2} 22 let tmo:i64=wf_atoi(argv[5] as *u8) 23 if tmo<=0{return 2} 24 let subject:*u8=argv[1] as *u8 25 let flows:*u8=argv[2] as *u8 26 let steps:*u8=argv[3] as *u8 27 let ledger:*u8=argv[4] as *u8 28 let c:*i64=gv_ctr() 29 let a:*i64=sys_mmap(8*8) as *i64 30 a[0]=subject as i64;a[1]="fire" as *u8 as i64;a[2]=flows as i64;a[3]=steps as i64;a[4]="/tmp" as *u8 as i64;a[5]="-" as *u8 as i64;a[6]="fixture-event~id=api-t230" as *u8 as i64;a[7]=0 31 wd_case(subject,a,1,"nishi-workflow-error/1",tmo,c) 32 a[1]="resume" as *u8 as i64;a[6]=0 33 wd_case(subject,a,1,"nishi-workflow-error/1",tmo,c) 34 a[1]="board" as *u8 as i64;a[2]="/tmp" as *u8 as i64;a[3]=0 35 wd_case(subject,a,1,"nishi-workflow-error/1",tmo,c) 36 a[1]="fire" as *u8 as i64;a[2]=flows as i64;a[3]=steps as i64;a[4]=ledger as i64;a[5]="-" as *u8 as i64;a[6]="fixture-event~id=api-t230" as *u8 as i64;a[7]=0 37 wd_case(subject,a,0,"already started",tmo,c) 38 sys_munmap(a as *u8,8*8) 39 return gv_verdict("WFLOW-DIAGNOSTIC",c,"actual candidate; existing completed fixture; no new remote effects") 40}