nx_box_gate.nx source
↩ module page · 85 lines · 3617 B
1// nx_box_gate.nx -- INDEPENDENT gate for Nishi Box (imports the SAME shipped nx_box_lib =
2// atlas validation edge). Tests: matter-scoping, privilege count, privilege-log contents,
3// cross-matter isolation, Bates format, non-privileged EXCLUDED from the log.
4// SELF-PUBLISHES knowledge/status/office_box_gate.log (needle "VERDICT=").
5// license_tier: ORIGINAL
6
7import "nx_box_lib.nx"
8
9func bxg_has(buf: *u8, needle: *u8) -> i64 {
10 var ls: i64 = 0
11 var i: i64 = 0
12 while 1 == 1 {
13 var eol: i64 = 0
14 if buf[i] == (0 as u8) { eol = 1 }
15 if buf[i] == 10 as u8 { eol = 1 }
16 if eol == 1 {
17 var m: i64 = 1
18 var c: i64 = 0
19 while ls + c < i { if buf[ls + c] != needle[c] { m = 0 } c = c + 1 }
20 if m == 1 { if needle[i - ls] == (0 as u8) { return 1 } }
21 if buf[i] == (0 as u8) { return 0 }
22 ls = i + 1
23 }
24 i = i + 1
25 }
26 return 0
27}
28
29func main() -> i64 {
30 var pass: i64 = 0
31 let p: *u8 = "/tmp/nx_box_gate-" as *u8
32 let b1: *u8 = sys_mmap(64)
33 box_bates("ACME" as *u8, 1, b1)
34 let b2: *u8 = sys_mmap(64)
35 box_bates("ACME" as *u8, 2, b2)
36 let b3: *u8 = sys_mmap(64)
37 box_bates("ACME" as *u8, 3, b3)
38 let bb: *u8 = sys_mmap(64)
39 box_bates("BETA" as *u8, 1, bb)
40 box_doc_put(p, "M1" as *u8, "D1" as *u8, "Complaint" as *u8, "nxc1-a" as *u8, "no" as *u8, b1)
41 box_doc_put(p, "M1" as *u8, "D2" as *u8, "Privileged memo" as *u8, "nxc1-b" as *u8, "yes" as *u8, b2)
42 box_doc_put(p, "M1" as *u8, "D3" as *u8, "Attorney notes" as *u8, "nxc1-c" as *u8, "yes" as *u8, b3)
43 box_doc_put(p, "M2" as *u8, "D1" as *u8, "Beta doc" as *u8, "nxc1-d" as *u8, "no" as *u8, bb)
44
45 let np: *i64 = sys_mmap(16) as *i64
46 let pl: *u8 = sys_mmap(1024)
47 // T1 matter-scoping: M1 total = 3
48 if box_matter_scan(p, "M1" as *u8, np, pl) == 3 { pass = pass + 1 }
49 // T2 privileged count = 2
50 if np[0] == 2 { pass = pass + 1 }
51 // T3 privilege log contains the two privileged Bates
52 if bxg_has(pl, "ACME-000002" as *u8) == 1 { if bxg_has(pl, "ACME-000003" as *u8) == 1 { pass = pass + 1 } }
53 // T4 non-privileged doc EXCLUDED from the log
54 if bxg_has(pl, "ACME-000001" as *u8) == 0 { pass = pass + 1 }
55 // T5 cross-matter isolation: M2 total=1, priv=0
56 let np2: *i64 = sys_mmap(16) as *i64
57 let pl2: *u8 = sys_mmap(256)
58 if box_matter_scan(p, "M2" as *u8, np2, pl2) == 1 { if np2[0] == 0 { pass = pass + 1 } }
59 // T6 Bates format
60 let bf: *u8 = sys_mmap(64)
61 box_bates("X" as *u8, 42, bf)
62 if mt_streq(bf, "X-000042" as *u8) == 1 { pass = pass + 1 }
63 // T7 field decode: a doc title
64 let po: *i64 = sys_mmap(16) as *i64
65 let lo: *i64 = sys_mmap(16) as *i64
66 let tf: *u8 = sys_mmap(128)
67 if reg_get(p, "doc:" as *u8, "M1:D1" as *u8, po, lo) == 1 {
68 mt_field(po[0] as *u8, lo[0], "title" as *u8, 5, tf)
69 if mt_streq(tf, "Complaint" as *u8) == 1 { pass = pass + 1 }
70 }
71
72 let out: *u8 = sys_mmap(512)
73 var o: i64 = 0
74 o = mt_catcopy(out, o, "OFFICE-BOX-GATE tests=7 pass=" as *u8)
75 o = mt_catn(out, o, pass)
76 o = mt_catcopy(out, o, " matter-scope+privilege-count+privilege-log+non-priv-excluded+isolation+bates+field VERDICT=" as *u8)
77 if pass == 7 { o = mt_catcopy(out, o, "GREEN" as *u8) }
78 if pass != 7 { o = mt_catcopy(out, o, "RED" as *u8) }
79 out[o] = 10 as u8
80 o = o + 1
81 ss_writefile("knowledge/status/office_box_gate.log" as *u8, out, o)
82 sys_write(1, out, o)
83 if pass == 7 { return __syscall(93, 0, 0, 0, 0, 0, 0) }
84 return __syscall(93, 80 + pass, 0, 0, 0, 0, 0)
85}