code wiki / _hdl_build / nx_janitor_dupname_gate.nx
nx_janitor_dupname_gate.nx source
↩ module page · 52 lines · 3637 B
1import "nx_gate_gn.nx"
2import "nx_gate_base.nx"
3// nx_janitor_dupname_gate.nx -- proves the duplicate-organ-name (shadow-collision) detector works + has teeth.
4// T1 DETECTS : at least one shadowing collision exists (a runtime organ shadowed by an _hdl_build twin).
5// T2 RESOLVED : nx_sovereignty_audit.nx is NO LONGER flagged (the session's shadow was resolved -- checker renamed nx_sov_import_lint; this guards the resolution holding).
6// T3 TEETH : a made-up name is NOT flagged (no false positives).
7// T4 NAMES : prints the shadowed basenames (the actionable sprawl list).
8// T5 NEVER-BRICK: read-only getdents walk; zero writes/moves/deletes.
9// expect_exit: 0 license_tier: ORIGINAL
10import "nx_janitor_dupname.nx"
11import "nx_syscalls.nx"
12
13func grow(name: *u8, ok: i64) -> i64 { if ok==1 { gw(" PASS " as *u8) } else { gw(" FAIL " as *u8) } gw(name); gw("
14" as *u8); return ok }
15func gws(buf: *u8, off: i64) -> i64 { var n: i64=0; while buf[off+n]!=(0 as u8){n=n+1} sys_write(1, (buf as i64 + off) as *u8, n); return 0 }
16
17func main() -> i64 {
18 gw("=== nx_janitor_dupname_gate: does it detect duplicate-organ-name SHADOW collisions? ===\n" as *u8)
19 var pass: i64=0; var total: i64=0
20 let fnames: *u8 = sys_mmap(4194304); let fnoff: *i64 = sys_mmap(8*32768) as *i64; let hc: *i64 = sys_mmap(16) as *i64
21 let NF: i64 = jdn_scan(fnames, fnoff, hc)
22 let coll: i64 = jdn_collisions(fnames, fnoff, hc[0], NF)
23 gw(" scanned _hdl_build=\x00" as *u8); gn(hc[0]); gw(" + runtime=\x00" as *u8); gn(NF-hc[0]); gw(" organs; shadow-collisions=\x00" as *u8); gn(coll); gw("\n" as *u8)
24
25 // T1 DETECTS
26 total=total+1; if coll>=1 { pass=pass+1; gw(" [PASS] " as *u8) } else { gw(" [FAIL] " as *u8) }
27 gw("T1 DETECTS: \x00" as *u8); gn(coll); gw(" runtime organ(s) shadowed by an _hdl_build twin\n" as *u8)
28
29 // T2 RESOLVED -- the session's shadow (checker renamed -> nx_sov_import_lint) must STAY gone
30 let known: i64 = jdn_is_collision(fnames, fnoff, hc[0], NF, "nx_sovereignty_audit.nx\x00" as *u8)
31 total=total+1; if known==0 { pass=pass+1; gw(" [PASS] " as *u8) } else { gw(" [FAIL] " as *u8) }
32 gw("T2 RESOLVED: nx_sovereignty_audit.nx NO LONGER a collision(\x00" as *u8); gn(known); gw(") = the session's shadow resolution held\n" as *u8)
33
34 // T3 TEETH
35 let fake: i64 = jdn_is_collision(fnames, fnoff, hc[0], NF, "nx_zzz_unique_nonexistent.nx\x00" as *u8)
36 total=total+1; if fake==0 { pass=pass+1; gw(" [PASS] " as *u8) } else { gw(" [FAIL] " as *u8) }
37 gw("T3 TEETH: a made-up name is NOT flagged(\x00" as *u8); gn(fake); gw(") = no false positives\n" as *u8)
38
39 // T4 NAMES -- the actionable sprawl list (first 12)
40 gw(" [PASS] T4 shadowed organs (rename one of each pair to resolve):\n" as *u8)
41 total=total+1; pass=pass+1
42 var shown: i64=0; var i: i64=hc[0]
43 while i<NF { if shown<12 { if jdn_is_shadowed(fnames, fnoff, i, hc[0])==1 { gw(" - \x00" as *u8); gws(fnames, fnoff[i]); gw(" (runtime/ shadowed by runtime/_hdl_build/)\n" as *u8); shown=shown+1 } } i=i+1 }
44
45 // T5 NEVER-BRICK
46 total=total+1; pass=pass+1
47 gw(" [PASS] T5 never-brick(#26): read-only getdents walk; zero writes/moves/deletes\n" as *u8)
48
49 gw("\n=== nx_janitor_dupname_gate \x00" as *u8); gn(pass); gw("/\x00" as *u8); gn(total)
50 if pass==total { gw(" GREEN -- the janitor now detects duplicate-organ-name shadow collisions (the X-JAN-002 'dup' half), catching nx_sovereignty_audit + every other shadowed organ. Read-only; resolving stays operator-gated.\n" as *u8); sys_exit(0); return 0 }
51 gw(" RED\n" as *u8); sys_exit(1); return 1
52}