code wiki / (root) / nx_nxa_bind_gate_t29.nx

nx_nxa_bind_gate_t29.nx source

↩ module page · 69 lines · 4302 B

1// Isolated real-asset bind qualification. Fixed source and output fixture; no serving writes. 2import "nx_syscalls.nx" 3import "nx_fbx_import.nx" 4import "nx_nxa_bind_t29.nx" 5import "nx_nxa.nx" 6import "nx_base64.nx" 7import "nx_readcap_lib.nx" 8func kbw(s: *u8) -> i64 { var n:i64=0;while s[n]!=(0 as u8){n=n+1};sys_write(1,s,n);return 0 } 9func kbn(n:i64) -> i64 {var d:*u8=sys_mmap(32);var m:i64=n;var i:i64=0;if m<0{kbw("-" as *u8);m=0-m};if m==0{kbw("0" as *u8)};while m>0{d[i]=(48+m%10) as u8;i=i+1;m=m/10};while i>0{i=i-1;sys_write(1,((d as i64)+i) as *u8,1)};sys_munmap(d,32);return 0} 10func kbv(s:*u8,n:i64)->i64{kbw(s);kbn(n);kbw("\n" as *u8);return 0} 11func main(argc:i64,argv:*i64)->i64 { 12 let encn:i64=11693160 13 let nxan:i64=11279224 14 let state:*i64=sys_mmap(24) as *i64 15 let enc:*u8=sys_mmap(encn) 16 let en:i64=rc_read_file_into("/volume1/homes/elderwesto/nishihost/sites/nishifamily/world/rigsrc-darkknight.txt" as *u8,enc,encn,state) 17 if rc_complete(state)==0||en!=encn{kbw("REFUSED source read\n" as *u8);return 4} 18 let b:*u8=sys_mmap(encn) 19 let n:i64=b64_decode(enc,en,b) 20 if n!=8769868{kbw("REFUSED decode identity\n" as *u8);return 4} 21 let asset:*u8=sys_mmap(nxan) 22 if rc_read_file_into("/volume1/homes/elderwesto/nishihost/sites/nishifamily/world/dark_knight.nxa" as *u8,asset,nxan,state)!=nxan||rc_complete(state)==0{return 4} 23 24 let report:*NxaBindReport=sys_mmap(__size_of(NxaBindReport)) as *NxaBindReport 25 let out:*u8=sys_mmap(nxan) 26 let result:i64=nb_convert_bytes(b,n,asset,nxan,out,nxan,10125520,6,report) 27 kbv("conversion_result=" as *u8,result) 28 if result!=nxan{return 5} 29 kbv("vertices=" as *u8,report.vertices);kbv("triangles=" as *u8,report.triangles);kbv("changed_vertices=" as *u8,report.changed_vertices) 30 kbv("source_animation_stacks=" as *u8,report.source_animation_stacks);kbv("source_animation_curves=" as *u8,report.source_animation_curves);kbv("decoded_array_bytes=" as *u8,report.decoded_array_bytes) 31 if report.vertices!=53296||report.triangles!=98574||report.source_animation_stacks!=3||report.source_animation_curves!=3078||report.decoded_array_bytes!=10125520{return 6} 32 33 let saved_first:i64=asset[1] as i64 34 if nb_convert_bytes(b,n,asset,nxan,((asset as i64)+1) as *u8,nxan,10125520,6,report)!=NB_BAD_SOURCE{return 19} 35 if asset[1] as i64!=saved_first{return 20} 36 if nb_convert_bytes(b,n,asset,nxan,out,nxan,10125520,6,((asset as i64)+1) as *NxaBindReport)!=NB_BAD_SOURCE{return 21} 37 if asset[1] as i64!=saved_first{return 22} 38 if nb_range(FBB_I64_MAX-3,8)!=0{return 23} 39 kbw("PASS partial output/report alias refusal and address overflow 40" as *u8) 41 let reference:*u8=sys_mmap(nxan) 42 if rc_read_file_into("/tmp/nx_knight_bind_t24.nxa" as *u8,reference,nxan,state)!=nxan||rc_complete(state)==0{return 7} 43 var i:i64=0;while i<nxan{if out[i]!=reference[i]{kbv("candidate_mismatch=" as *u8,i);return 8};i=i+1} 44 kbw("PASS exact proven geometry artifact; authored motion NOT CONVERTED 45" as *u8) 46 if nb_convert_bytes(b,n,asset,nxan,out,nxan,10125519,6,report)!=NB_BUDGET{return 9} 47 kbw("PASS decoded-array budget refusal 48" as *u8) 49 if nb_convert_bytes(b,n,asset,nxan,out,nxan,10125520,1,report)!=NB_BUDGET{return 10} 50 kbw("PASS depth budget refusal 51" as *u8) 52 if nb_convert_bytes(b,8,asset,nxan,out,nxan,10125520,6,report)!=NB_BAD_SOURCE{return 11} 53 kbw("PASS truncated FBX refusal 54" as *u8) 55 if nb_convert_bytes(b,n,asset,nxan,out,nxan-1,10125520,6,report)!=NB_BAD_SOURCE{return 12} 56 kbw("PASS output capacity refusal 57" as *u8) 58 if nb_geometry_contract(b,n,53296,98573)!=NB_BAD_SOURCE{return 13} 59 kbw("PASS triangle truncation refusal 60" as *u8) 61 if nb_save_new("/tmp/nx_bind_source_t29.fbx" as *u8,b,n)!=n{return 14} 62 if nb_convert("/tmp/nx_bind_source_t29.fbx" as *u8,"/volume1/homes/elderwesto/nishihost/sites/nishifamily/world/dark_knight.nxa" as *u8,"/tmp/nx_bind_legacy_t29.nxa" as *u8)!=nxan{return 15} 63 if nb_convert("/tmp/nx_bind_source_t29.fbx" as *u8,"/volume1/homes/elderwesto/nishihost/sites/nishifamily/world/dark_knight.nxa" as *u8,"/tmp/nx_bind_legacy_t29.nxa" as *u8)!=nxan{return 16} 64 if rc_read_file_into("/tmp/nx_bind_legacy_t29.nxa" as *u8,reference,nxan,state)!=nxan||rc_complete(state)==0{return 17} 65 i=0;while i<nxan{if out[i]!=reference[i]{return 18};i=i+1} 66 kbw("PASS legacy path output byte identity and repeated request 67" as *u8) 68 return 0 69}