code wiki / _hdl_build / nx_board_gate.nx
nx_board_gate.nx source
↩ module page · 65 lines · 2871 B
1// nx_board_gate.nx -- proves the board base scaffold. Dogfoods gv_ (gate base) AND nx_estr (emit base) --
2// a base-class organ proven via two OTHER base classes = the composition working. license_tier: ORIGINAL
3import "nx_board.nx"
4import "nx_gate_verdict.nx"
5const K_MAGIC_8192: i64 = 8192
6const K_MAGIC_8000: i64 = 8000
7
8// substring present?
9func bg_has(buf: *u8, n: i64, needle: *u8) -> i64 {
10 let m: i64 = es_len(needle)
11 if m == 0 { return 1 }
12 var i: i64 = 0
13 while i + m <= n {
14 var k: i64 = 0
15 while k < m { if buf[i + k] != needle[k] { k = m + 9 } else { k = k + 1 } }
16 if k == m { return 1 }
17 i = i + 1
18 }
19 return 0
20}
21
22func main() -> i64 {
23 let ctr: *i64 = gv_ctr()
24 gv_head("nx_board -- shared base for the _board family (HTML scaffold + JSON envelope + atomic publish)" as *u8)
25 let b: *u8 = sys_mmap(K_MAGIC_8192)
26
27 // T1 HTML page scaffold well-formed
28 var o: i64 = bd_page_open(b, 0, "Demo" as *u8)
29 o = bd_h(b, o, 2, "Hello" as *u8)
30 o = bd_page_close(b, o)
31 b[o] = 0 as u8
32 var t1: i64 = 0
33 if bg_has(b, o, "<!doctype html>" as *u8) == 1 { if bg_has(b, o, "<h2>Hello</h2>" as *u8) == 1 { if bg_has(b, o, "</body></html>" as *u8) == 1 { t1 = 1 } } }
34 gv_check("T1 bd_page_open/bd_h/bd_page_close emit well-formed HTML (doctype + <h2>Hello</h2> + close)" as *u8, t1, ctr)
35
36 // T2 JSON envelope + kv
37 o = bd_json_open(b, 0, "demo" as *u8, "Board" as *u8)
38 o = bd_json_kvn(b, o, "count" as *u8, 42)
39 b[o] = 125 as u8; o = o + 1
40 b[o] = 0 as u8
41 var t2: i64 = 0
42 if bg_has(b, o, "{\"v\":1,\"domain\":\"demo\"" as *u8) == 1 { if bg_has(b, o, ",\"count\":42}" as *u8) == 1 { t2 = 1 } }
43 gv_check("T2 bd_json_open + bd_json_kvn emit a valid envelope ({v,domain,title} + ,count:42})" as *u8, t2, ctr)
44
45 // T3 atomic publish round-trips + no .tmp residue
46 let path: *u8 = "/tmp/nx_board_t.html\x00" as *u8
47 bd_write_atomic(path, b, o)
48 let rb: *u8 = sys_mmap(K_MAGIC_8192)
49 let fd: i64 = sys_openat_rd(path)
50 var t3: i64 = 0
51 if fd >= 0 {
52 let rn: i64 = sys_read(fd, rb, K_MAGIC_8000)
53 sys_close(fd)
54 if rn == o { var same: i64 = 1; var i: i64 = 0; while i < o { if rb[i] != b[i] { same = 0; i = o } else { i = i + 1 } } t3 = same }
55 }
56 gv_check("T3 bd_write_atomic writes the exact bytes (tmp+rename round-trip)" as *u8, t3, ctr)
57
58 // T4 anti-vacuity: a page WITHOUT the content must NOT falsely match (bg_has really discriminates)
59 var t4: i64 = 0
60 if bg_has(b, o, "NEVER_PRESENT_MARKER" as *u8) == 0 { t4 = 1 }
61 gv_check("T4 anti-vacuity: the substring check rejects an absent marker (not vacuously true)" as *u8, t4, ctr)
62
63 let rc: i64 = gv_verdict("NX-BOARD-GATE" as *u8, ctr, "board base scaffold proven -- composes nx_estr; the _board family consolidation target" as *u8)
64 return rc
65}