code wiki / (root) / nx_region_capacity_gate_t278.nx

nx_region_capacity_gate_t278.nx source

↩ module page · 30 lines · 2105 B

1import "nx_nxa_texbake_region_lib.nx" 2func sg_assert(ok:i64,label:*u8)->i64 {if ok==1{nt_outs("PASS ");nt_outs(label);nt_outs("\n");return 0};nt_err("FAIL ");nt_err(label);nt_err("\n");return 1} 3func main(argc:i64,argv:*i64)->i64 { 4 var input:*u8=0 as *u8 5 if argc==2{input=argv[1] as *u8} 6 if argc==3{let verb:*u8=argv[1] as *u8;if fsx_seq(verb,"inspect") == 1{input=argv[2] as *u8}} 7 if (input as i64)<=0{return 2} 8 let lp:*i64=sys_mmap_try(__size_of(i64)) as *i64 9 let b:*u8=sys_map_file(input,lp);if (b as i64)<=0{return 3} 10 var fail:i64=0 11 fail=fail+sg_assert(ntr_source_safe(b,lp[0]),"actual resident source") 12 fail=fail+sg_assert(1-ntr_source_safe(b,31),"short header refused") 13 fail=fail+sg_assert(1-ntr_source_safe(b,lp[0]-1),"truncated container refused") 14 let rgb:*u8=sys_mmap_try(3);let fb:*i64=sys_mmap_try(__size_of(i64)) as *i64 15 let cap:i64=png_buf_cap(1,1);let out:*u8=sys_mmap_try(cap+2) 16 rgb[0]=123 as u8;rgb[1]=62 as u8;rgb[2]=44 as u8;out[0]=77 as u8 17 fail=fail+sg_assert(ntr_png_checked(rgb,1,1,fb,0,out,cap)==(0-1) && out[0]==(77 as u8),"short framebuffer refused before write") 18 fail=fail+sg_assert(ntr_png_checked(rgb,1,1,fb,1,out,cap-1)==(0-1) && out[0]==(77 as u8),"short output refused before write") 19 fail=fail+sg_assert(ntr_png_checked(0 as *u8,1,1,fb,1,out,cap)==(0-1),"null RGB refused") 20 let encoded:i64=ntr_png_checked(rgb,1,1,fb,1,out,cap) 21 fail=fail+sg_assert(encoded>0 && encoded<=cap,"checked map encoded") 22 let mpx:i64=rlf_tile_px() 23 let bound:i64=ntr_blob_capacity(2048,mpx,NTR_REGIONS) 24 fail=fail+sg_assert(bound==NTR_REGIONS*(3*png_buf_cap(2048,2048)+2*png_buf_cap(mpx,mpx))+NT_PAD,"all twenty map capacities derived") 25 fail=fail+sg_assert(ntr_blob_capacity(2147483647,mpx,NTR_REGIONS)<0,"extreme extent refused") 26 fail=fail+sg_assert(ntr_max(64*64,mpx*mpx)==mpx*mpx,"microtile controls small bake framebuffer") 27 sys_munmap_direct(b,lp[0]);sys_munmap_direct(lp as *u8,__size_of(i64)) 28 sys_munmap_direct(rgb,3);sys_munmap_direct(fb as *u8,__size_of(i64));sys_munmap_direct(out,cap+2) 29 nt_outs("REGION-CAPACITY failures=");nt_outn(fail);nt_outs("\n");return fail 30}