code wiki / _hdl_build / nx_build_reg_sov_gate.nx
nx_build_reg_sov_gate.nx source
↩ module page · 55 lines · 3037 B
1// nx_build_reg_sov_gate.nx -- proves the SOVEREIGN seg_store build-registry (nx_build_reg_sov) works:
2// submit + idempotent latest-wins + get state/parent + registered lookup + distinct + enum, all on a
3// real seg_store (NO flat file). Neg-control: an un-submitted organ reads unregistered. expect_exit: 0
4import "nx_build_reg_sov.nx"
5import "nx_syscalls.nx"
6
7func rp(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
8func rpn(v: i64) -> i64 {
9 let bb: *u8 = sys_mmap(28); var m: i64 = v
10 if m < 0 { sys_write(1, "-" as *u8, 1); m = 0 - m }
11 let t: *u8 = sys_mmap(28); var k: i64 = 0
12 if m == 0 { t[0] = 48 as u8; k = 1 }
13 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
14 var i: i64 = 0; while i < k { bb[i] = t[k - 1 - i]; i = i + 1 }
15 sys_write(1, bb, k); return 0
16}
17
18func main() -> i64 {
19 rp("=== nx_build_reg_sov_gate: sovereign seg_store build-registry (no flat file) ===\n" as *u8)
20 let prefix: *u8 = "/tmp/nx_brsov_test" as *u8
21 br2_submit(prefix, "org_a.nx" as *u8, "LIB" as *u8, "BUILT" as *u8)
22 br2_submit(prefix, "org_b.nx" as *u8, "PM" as *u8, "BUILT" as *u8)
23 let d1: i64 = br2_distinct(prefix)
24 br2_submit_lin(prefix, "org_a.nx" as *u8, "LIB" as *u8, "DESC-ORGANS" as *u8, "UPDATED" as *u8)
25 let d2: i64 = br2_distinct(prefix)
26
27 let sa: *u8 = sys_mmap(256); br2_get_state(prefix, "org_a.nx" as *u8, sa)
28 let pa: *u8 = sys_mmap(256); br2_get_parent(prefix, "org_a.nx" as *u8, pa)
29 let ra: i64 = br2_registered(prefix, "org_a.nx" as *u8)
30 let rc: i64 = br2_registered(prefix, "org_never.nx" as *u8)
31
32 let names: *i64 = sys_mmap(8 * 512) as *i64
33 let pars: *i64 = sys_mmap(8 * 512) as *i64
34 let ec: i64 = br2_enum(prefix, names, pars, 512)
35 var found_a: i64 = 0; var k: i64 = 0
36 while k < ec { if br2_streq(names[k] as *u8, "org_a.nx" as *u8) == 1 { if br2_streq(pars[k] as *u8, "DESC-ORGANS" as *u8) == 1 { found_a = 1 } } k = k + 1 }
37
38 rp(" distinct after 2 submits = " as *u8); rpn(d1); rp(" (>=2); after re-submit A = " as *u8); rpn(d2); rp(" (stable = idempotent)\n" as *u8)
39 rp(" state(org_a) = " as *u8); rp(sa); rp(" (UPDATED = latest-wins) parent(org_a) = " as *u8); rp(pa); rp(" (DESC-ORGANS)\n" as *u8)
40 rp(" registered(org_a)=" as *u8); rpn(ra); rp(" (1) registered(org_never)=" as *u8); rpn(rc); rp(" (0, neg-control)\n" as *u8)
41 rp(" enum count=" as *u8); rpn(ec); rp(" found org_a@DESC-ORGANS=" as *u8); rpn(found_a); rp("\n" as *u8)
42
43 var ok: i64 = 1
44 if d1 < 2 { ok = 0 }
45 if d2 != d1 { ok = 0 }
46 if br2_streq(sa, "UPDATED" as *u8) == 0 { ok = 0 }
47 if br2_streq(pa, "DESC-ORGANS" as *u8) == 0 { ok = 0 }
48 if ra != 1 { ok = 0 }
49 if rc != 0 { ok = 0 }
50 if found_a != 1 { ok = 0 }
51 rp(" verdict=" as *u8)
52 if ok == 1 { rp("GREEN (sovereign seg_store registry: submit/idempotent/latest-wins/get/registered/distinct/enum all work)\n" as *u8); sys_exit(0); return 0 }
53 rp("RED\n" as *u8)
54 sys_exit(1); return 1
55}