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}