code wiki / (root) / nx_ship_behavior_review_gate_t371.nx

nx_ship_behavior_review_gate_t371.nx source

↩ module page · 63 lines · 5148 B

1import "nx_organ_ship_review_lib_candidate_t371.nx" 2import "nx_gate_verdict.nx" 3func brg_zero(b:*NxBufOwned)->i64{b.buf=0 as *u8;b.len=0;b.cap=0;return 0} 4func main()->i64{ 5 let ctr:*i64=gv_ctr();let digest:*u8=sys_mmap_try(65);if (digest as i64)<=0{return 2} 6 let aa:*u8="8576f54f52adf1fe96375373ec3d7a5878c7d16f15a5edada4496b5811e34ead" 7 let bb:*u8="7d0cbc4938c041a1bd64fd91314dcb1e3435254d2704a9e25d398e6a11c87a8e" 8 var arg:i64="large" as *u8 as i64;var q:NxBehaviorRequest 9 q.live="/volume1/homes/elderwesto/nishihost/buildroot/_build/nx_behavior_fixture_a_t297.sov.elf" 10 q.other="/volume1/homes/elderwesto/nishihost/buildroot/_build/nx_behavior_fixture_b_t297.sov.elf" 11 q.cwd=BP_HOST;q.args=&arg;q.arg_count=1;q.timeout_ms=1000;q.max_capture_bytes=0 12 var a:NxBufOwned;var b:NxBufOwned;var context:NxBufOwned;var changed:NxBufOwned;var record:NxBufOwned 13 brg_zero(&a);brg_zero(&b);brg_zero(&context);brg_zero(&changed);brg_zero(&record) 14 var r:NxBehaviorResult 15 let run:i64=bp_run_owned_result(&q,&r,&a,&b) 16 gv_check("actual changed complete zero-exit workload is review eligible",run==1&&obr_eligible(&r)==1,ctr) 17 gv_check("exact context constructed",obr_context("fixture",aa,bb,&q,&context)==0,ctr) 18 gv_check("full paired capture record constructed",obr_build(&context,"fixture",&r,&a,&b,&record)==0&&record.len>a.len+b.len,ctr) 19 gv_check("record digest constructed",obr_digest(&record,digest)==0,ctr) 20 gv_check("unapproved changed output refuses",obr_approve(&record,&context,0 as *u8)==0,ctr) 21 gv_check("exact approved full record accepted",obr_approve(&record,&context,digest)==1,ctr) 22 23 let previousPath:*u8=q.live;q.live="/another/location/same-hash.elf" 24 gv_check("same hashes different invoked paths context built",obr_context("fixture",aa,bb,&q,&changed)==0,ctr) 25 gv_check("same hashes different argv0 executable path refuses review",obr_approve(&record,&changed,digest)==0,ctr);nx_bo_release(&changed);q.live=previousPath 26 arg="different-arg-same-output" as *u8 as i64 27 gv_check("different arguments build distinct context",obr_context("fixture",aa,bb,&q,&changed)==0,ctr) 28 gv_check("same record cannot approve different arguments",obr_approve(&record,&changed,digest)==0,ctr);nx_bo_release(&changed) 29 arg="large" as *u8 as i64 30 gv_check("swapped artifacts context constructed",obr_context("fixture",bb,aa,&q,&changed)==0,ctr) 31 gv_check("swapped artifact record refuses",obr_approve(&record,&changed,digest)==0,ctr);nx_bo_release(&changed) 32 let original:i64=record.len;record.len=original-1 33 gv_check("truncated record refuses even recomputed approval",obr_digest(&record,digest)==0&&obr_approve(&record,&context,digest)==0,ctr);record.len=original 34 let last:u8=record.buf[record.len-2];record.buf[record.len-2]=88 as u8 35 gv_check("malformed terminal refuses recomputed approval",obr_digest(&record,digest)==0&&obr_approve(&record,&context,digest)==0,ctr);record.buf[record.len-2]=last 36 nx_bo_release(&record);nx_bo_release(&context);nx_bo_release(&a);nx_bo_release(&b) 37 q.other=q.live;arg="exit1" as *u8 as i64 38 let nonzero:i64=bp_run_owned_result(&q,&r,&a,&b) 39 gv_check("identical text and identical nonzero exits remain ineligible",nonzero==0&&r.same_output==1&&r.live_exit==1&&obr_eligible(&r)==0,ctr) 40 obr_context("fixture",aa,aa,&q,&context);obr_build(&context,"fixture",&r,&a,&b,&record);obr_digest(&record,digest) 41 gv_check("review digest cannot override nonzero child exit",obr_approve(&record,&context,digest)==0,ctr) 42 nx_bo_release(&record);nx_bo_release(&context);nx_bo_release(&a);nx_bo_release(&b) 43 arg="large" as *u8 as i64;q.max_capture_bytes=262144 44 let limited:i64=bp_run_owned_result(&q,&r,&a,&b) 45 gv_check("capture policy truncation remains unqualified",limited==2&&obr_eligible(&r)==0,ctr) 46 obr_context("fixture",aa,aa,&q,&context);obr_build(&context,"fixture",&r,&a,&b,&record);obr_digest(&record,digest) 47 gv_check("review digest cannot override partial capture",obr_approve(&record,&context,digest)==0,ctr) 48 nx_bo_release(&record);nx_bo_release(&context);nx_bo_release(&a);nx_bo_release(&b) 49 50 // Existing fixture defaults return the same exact output for distinct non-special args. 51 q.other=q.live;q.max_capture_bytes=0;arg="arg-one" as *u8 as i64 52 let sameArgsRun:i64=bp_run_owned_result(&q,&r,&a,&b) 53 obr_context("fixture",aa,aa,&q,&context);obr_build(&context,"fixture",&r,&a,&b,&record);obr_digest(&record,digest) 54 gv_check("actual first argument workload produces matching zero output",sameArgsRun==0&&obr_eligible(&r)==1,ctr) 55 nx_bo_release(&a);nx_bo_release(&b);arg="arg-two" as *u8 as i64 56 let secondArgsRun:i64=bp_run_owned_result(&q,&r,&a,&b) 57 gv_check("actual distinct argument also produces same fixture output",secondArgsRun==0&&r.live_bytes==17&&r.other_bytes==17,ctr) 58 obr_context("fixture",aa,aa,&q,&changed) 59 gv_check("actual equal-output different args cannot reuse review",obr_approve(&record,&changed,digest)==0,ctr) 60 nx_bo_release(&record);nx_bo_release(&context);nx_bo_release(&changed);nx_bo_release(&a);nx_bo_release(&b) 61 sys_munmap_direct(digest,65) 62 return gv_verdict("SHIP-BEHAVIOR-REVIEW",ctr,"Candidate only; exact review binding, not workload coverage or deployment acceptance") 63}