code wiki / _hdl_build / nx_dune_page_recipe_gate_t70.nx
nx_dune_page_recipe_gate_t70.nx source
↩ module page · 43 lines · 1908 B
1import "nx_game_page_material_compose_t55.nx"
2import "nx_gate_verdict.nx"
3func dp_case(pair: *u8,expected: i64,ctr: *i64) -> i64 {
4 let path: *u8 = "/tmp/nx_dune_recipe_boundary_t70.conf" as *u8
5 let fd: i64 = sys_openat_wr(path,420)
6 if fd < 0 { return gv_check("private fixture write available" as *u8,0,ctr) }
7 let prefix: *u8 = "dune\t2\t20260728\t/tmp/dune-t70.html\tDUNE\tcontrols\t" as *u8
8 let pn: i64 = gpe_slen(prefix); let vn: i64 = gpe_slen(pair)
9 let a: i64 = sys_write(fd,prefix,pn)
10 let b: i64 = sys_write(fd,pair,vn)
11 let c: i64 = sys_write(fd,"\n" as *u8,1)
12 sys_close(fd)
13 if a != pn || b != vn || c != 1 { return gv_check("private fixture complete" as *u8,0,ctr) }
14 let rows: *i64 = sys_mmap(GPR_MAXW*8*8) as *i64
15 let result: i64 = gpe_recipes_load(path,rows)
16 gv_puts(" recipe=" as *u8); gv_puts(pair); gv_puts("\n" as *u8)
17 gv_check_eq("actual page recipe parser result",result,expected,ctr)
18 sys_munmap(rows as *u8,GPR_MAXW*8*8)
19 return result
20}
21func main() -> i64 {
22 let ctr: *i64 = gv_ctr()
23 gv_head("DUNE PAGE RECIPE / real parser and shared validator" as *u8)
24 dp_case("79:0" as *u8,1,ctr)
25 dp_case("79:268435455" as *u8,1,ctr)
26 dp_case("79:16385" as *u8,1,ctr)
27 dp_case("79:33653504" as *u8,1,ctr)
28 dp_case("79:00033653504" as *u8,1,ctr)
29 dp_case("79:268435456" as *u8,0-1,ctr)
30 dp_case("79:16384" as *u8,0-1,ctr)
31 dp_case("79:12289" as *u8,0-1,ctr)
32 dp_case("79:" as *u8,0-1,ctr)
33 dp_case("79:-1" as *u8,0-1,ctr)
34 dp_case("79:9223372036854775808" as *u8,0-1,ctr)
35 dp_case("79:18446744073743205120" as *u8,0-1,ctr)
36 dp_case("79:99999999999999999999999999999999999999999" as *u8,0-1,ctr)
37 dp_case("62:1" as *u8,0-1,ctr)
38 dp_case("69:1" as *u8,0-1,ctr)
39 dp_case("80:1" as *u8,0-1,ctr)
40 dp_case("70:1" as *u8,1,ctr)
41 dp_case("0:11,79:33653504" as *u8,1,ctr)
42 return gv_verdict("DUNE-PAGE-RECIPE" as *u8,ctr,"actual parser only; served startup and GPU acceptance separate" as *u8)
43}