code wiki / (root) / nx_organ_ship_loss_canonical_gate_t370.nx

nx_organ_ship_loss_canonical_gate_t370.nx source

↩ module page · 57 lines · 5619 B

1import "nx_organ_ship_lib.nx" 2import "nx_send.nx" 3static passed:i64 4static failed:i64 5func check(ok:i64,name:*u8)->i64{if ok==1{passed=passed+1;p("PASS ")}else{failed=failed+1;p("FAIL ")};p(name);p("\n");return 0} 6func fixture(out:*NxBufOwned,which:i64,longrow:i64)->i64{ 7 out.buf=0 as *u8;out.len=0;out.cap=0 8 osls_text(out,"=== NX-CONTENTDIFF ===\n") 9 var i:i64=0;while i<20{osls_text(out," LOST: original capability ");if which==1{osls_text(out,"changed ")};if longrow==1{var k:i64=0;while k<1000{osls_text(out,"01234567890123456789");k=k+1}};osls_text(out,"\n");i=i+1} 10 osls_text(out,"runs_scanned=20 lost_from_live=20 lost_permil=1000\ndisplay_class=LOST shown=20 total=20 omitted=0\nNX-CONTENTDIFF verdict=RED (review required)\n");return 0 11} 12func bad_report(base:*NxBufOwned,needle:*u8,replacement:*u8,name:*u8)->i64{ 13 let at:i64=osls_find(base.buf,base.len,needle);if at<0{return check(0,name)} 14 var b:NxBufOwned;b.buf=0 as *u8;b.len=0;b.cap=0;osls_add(&b,base.buf,at);osls_text(&b,replacement) 15 let after:i64=at+osls_len(needle);osls_add(&b,base.buf+after,base.len-after) 16 let rc:i64=check(osls_report(b.buf,b.len)<0,name);nx_bo_release(&b);return rc 17} 18func main(argc:i64,argv:*i64)->i64{ 19 if argc!=5{return 2};let root:*u8=argv[1] as *u8;sys_mkdir(root,493) 20 let l:*u8="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";let c:*u8="bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" 21 var one:NxBufOwned;var two:NxBufOwned;var big:NxBufOwned;fixture(&one,0,0);fixture(&two,1,0);fixture(&big,0,1) 22 check(osls_report(one.buf,one.len)==20,"complete twenty losses beyond old eight") 23 bad_report(&one,"total=20","total=20 total=19","conflicting duplicate total refused") 24 bad_report(&one,"shown=20","shown=20 shown=20","identical duplicate shown refused") 25 bad_report(&one,"omitted=0","omitted=0 omitted=1","duplicate omitted refused") 26 bad_report(&one,"lost_from_live=20","lost_from_live=20 lost_from_live=1","duplicate authoritative loss count refused") 27 bad_report(&one,"runs_scanned=20","runs_scanned=20 runs_scanned=21","duplicate scanned count refused") 28 bad_report(&one,"display_class=LOST","display_class=LOST display_class=LOST","duplicate display class refused") 29 bad_report(&one,"verdict=RED","verdict=RED verdict=GREEN","conflicting duplicate verdict refused") 30 bad_report(&one,"total=20","prefix_total=20","field substring is not semantic key") 31 bad_report(&one,"verdict=RED","xverdict=RED","verdict substring is not semantic key") 32 check(osls_report(one.buf,one.len-1)<0,"truncated final record refused") 33 check(osls_report(one.buf,0)<0,"empty report refused") 34 check(osls_report("LOST: forged\n",13)<0,"malformed report refused") 35 var malformed:NxBufOwned;malformed.buf=0 as *u8;malformed.len=0;malformed.cap=0;let ending:i64=osls_len("NX-CONTENTDIFF verdict=RED (review required)\n");osls_add(&malformed,one.buf,one.len-ending);osls_text(&malformed,"NX-CONTENTDIFF verdict=REDgarbage\n");check(osls_report(malformed.buf,malformed.len)<0,"malformed verdict token refused");nx_bo_release(&malformed) 36 var a:OslLossSet;var b:OslLossSet;var huge:OslLossSet 37 check(osls_build(l,c,one.buf,one.len,&a)==0,"complete artifact bound record") 38 check(osls_build(l,c,two.buf,two.len,&b)==0,"same count alternate record") 39 check(osls_approve(&a,a.digest,l,c)==1,"exact set approved") 40 check(osls_approve(&a,0 as *u8,l,c)==0,"count only no approval") 41 check(osls_approve(&b,a.digest,l,c)==0,"same count different loss refused") 42 check(osls_approve(&a,a.digest,c,c)==0,"changed live artifact refused") 43 check(osls_approve(&a,a.digest,l,l)==0,"changed candidate artifact refused") 44 check(osls_build(l,c,big.buf,big.len,&huge)==0,"complete record exceeds old capture ceiling") 45 let n:i64=osls_len(root)+20;let path:*u8=sys_mmap_try(n);var pos:i64=0;while root[pos]!=(0 as u8){path[pos]=root[pos];pos=pos+1};let tail:*u8="/loss.record";var j:i64=0;while tail[j]!=(0 as u8){path[pos]=tail[j];pos=pos+1;j=j+1};path[pos]=0 as u8 46 let cached:i64=sys_openat_exclusive(path,420);if cached<0{return 2};var written:i64=0;while written<huge.record.len{let w:i64=sys_write(cached,huge.record.buf+written,huge.record.len-written);if w<=0{return 2};written=written+w};sys_close(cached) 47 check(osls_retain(path,root,&huge)==0,"unsynced matching file retry verifies and fsyncs same descriptor") 48 check(osls_retain(path,root,&huge)==0,"exact evidence retry unchanged") 49 check(osls_retain(path,root,&a)!=0,"existing different evidence refused") 50 check(osls_retain("/missing-parent-t370/no.record",root,&a)!=0,"evidence write failure refuses") 51 var readn:i64=0;let rb:*u8=sys_map_file(path,&readn);var same:i64=0;if (rb as i64)>0{if readn==huge.record.len{same=osls_eq(rb,huge.record.buf,readn)};sys_munmap_direct(rb,readn)};check(same,"complete exact readback beyond old ceiling") 52 p("EVIDENCE bytes=");pn(huge.record.len);p(" sha256=");p(huge.digest);p("\n") 53 osls_close(&a);osls_close(&b);osls_close(&huge);nx_bo_release(&one);nx_bo_release(&two);nx_bo_release(&big);sys_munmap_direct(path,n) 54 var actualn:i64=0;let actual:*u8=sys_map_file(argv[2] as *u8,&actualn);var real:OslLossSet 55 var realok:i64=0;if (actual as i64)>0{if osls_build(argv[3] as *u8,argv[4] as *u8,actual,actualn,&real)==0{realok=1;p("ACTUAL losses=");pn(real.count);p(" record_sha256=");p(real.digest);p("\n");check(osls_approve(&real,real.digest,argv[3] as *u8,argv[4] as *u8)==1,"actual native report exact approval");osls_close(&real)};sys_munmap_direct(actual,actualn)};check(realok,"actual deployed ruler full report accepted") 56 p("LOSS-GATE pass=");pn(passed);p(" fail=");pn(failed);p("\n");if failed>0{return 1};return 0 57}