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}