nx_ioae_gate_v2_20260907.nx source
↩ module page · 158 lines · 15212 B
1// LOCAL native gate: deterministic record tests + actual admission bodies with explicit fixture boundaries.
2import "nx_ioae_wiring_v2_20260907.nx"
3import "nx_gate_verdict.nx"
4import "nx_build_canon_input_lib.nx"
5const IG_PATH: i64 = 8192
6const IG_EINVAL: i64 = 0-22
7const EFG_DIR_MODE: i64 = 448
8const EFG_PARENT_MAX: i64 = 160
9const EFG_SETUP: i64 = 90
10func ig_len(p: *u8) -> i64 { var n: i64 = 0; while p[n] != (0 as u8) { n = n + 1 } return n }
11func ig_parent(path: *u8) -> i64 {
12 let n: i64 = ig_len(path)
13 if n <= 1 { return 0 }
14 if n >= IG_PATH { return 0 }
15 if path[0] != (BCI_SLASH as u8) { return 0 }
16 if bci_relative_path(path, 1, n-1, IG_PATH-2) != 1 { return 0 }
17 let part: *u8 = sys_mmap(IG_PATH)
18 let probe: *u8 = sys_mmap(IG_PATH)
19 var i: i64 = 0
20 while i <= n {
21 var edge: i64 = 0
22 if i == n { edge = 1 } else { if i > 0 { if path[i] == (BCI_SLASH as u8) { edge = 1 } } }
23 if edge == 1 {
24 part[i] = 0 as u8
25 if sys_readlinkat(part, probe, IG_PATH) != IG_EINVAL { return 0 }
26 }
27 if i < n { part[i] = path[i] }
28 i = i + 1
29 }
30 return 1
31}
32func eg_case(label: *u8, record: *u8, expected: i64, c: *i64) -> i64 {
33 let out: *i64 = sys_mmap(IOAE_BYTES) as *i64
34 let rc: i64 = ioae_select(record,ioa_slen(record),8,10,9,1001,900,out)
35 gv_check_eq(label,rc,expected,c)
36 var selected: i64 = 9
37 if expected == IOAE_CONFIRMED { selected = 4 }
38 gv_check_eq("case preserves fallback or selects verified level",out[IOAE_SELECTED],selected,c)
39 sys_munmap(out as *u8,IOAE_BYTES); return 0
40}
41func main(argc: i64, argv: *i64) -> i64 {
42 if argc != 2 { sys_exit(EFG_SETUP); return EFG_SETUP }
43 let parent: *u8 = argv[1] as *u8
44 if ig_len(parent) > EFG_PARENT_MAX { sys_exit(EFG_SETUP); return EFG_SETUP }
45 if ig_parent(parent) != 1 { sys_exit(EFG_SETUP); return EFG_SETUP }
46 let root: *u8 = sys_mmap(IOAE_PATH_CAP)
47 var p: i64 = ioae_join(parent,"/nishi-ioae-fixture-" as *u8,root)
48 if p < 0 { sys_exit(EFG_SETUP); return EFG_SETUP }
49 let clock: *i64 = sys_mmap(16) as *i64
50 if sys_clock_gettime_real(clock) != 0 { sys_exit(EFG_SETUP); return EFG_SETUP }
51 p = nxi_buf(root,p,clock[0]); root[p] = 45 as u8; p = p+1
52 p = nxi_buf(root,p,clock[1]); root[p] = 0 as u8
53 if sys_mkdir(root,EFG_DIR_MODE) != 0 { sys_exit(EFG_SETUP); return EFG_SETUP }
54 sys_write(1,root,p); sys_write(1,"\n" as *u8,1)
55 if sys_chdir(root) != 0 { sys_exit(EFG_SETUP); return EFG_SETUP }
56
57 let c: *i64 = gv_ctr()
58 let out: *i64 = sys_mmap(IOAE_BYTES) as *i64
59 let h: *i64 = sys_mmap(32) as *i64
60 eg_width = 1; eg_root_mode = 1
61 gv_head("SHARED ADMISSION EVIDENCE AND WIRING" as *u8)
62 eg_case("valid complete record" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_CONFIRMED,c)
63 eg_case("empty" as *u8,"" as *u8,IOAE_INVALID,c)
64 eg_case("missing final newline" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm" as *u8,IOAE_INVALID,c)
65 eg_case("missing ts" as *u8,"ncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
66 eg_case("duplicate ts" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\nts=1000\n" as *u8,IOAE_INVALID,c)
67 eg_case("missing ncpu" as *u8,"ts=1000\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
68 eg_case("duplicate ncpu" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\nncpu=8\n" as *u8,IOAE_INVALID,c)
69 eg_case("missing blocked_confirmed" as *u8,"ts=1000\nncpu=8\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
70 eg_case("duplicate blocked_confirmed" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\nblocked_confirmed=4\n" as *u8,IOAE_INVALID,c)
71 eg_case("missing bar" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
72 eg_case("duplicate bar" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\nbar=8\n" as *u8,IOAE_INVALID,c)
73 eg_case("missing confirm_samples" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
74 eg_case("duplicate confirm_samples" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\nconfirm_samples=5\n" as *u8,IOAE_INVALID,c)
75 eg_case("missing confirm_requested" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
76 eg_case("duplicate confirm_requested" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\nconfirm_requested=5\n" as *u8,IOAE_INVALID,c)
77 eg_case("missing confirm_gap_ms" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
78 eg_case("duplicate confirm_gap_ms" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\nconfirm_gap_ms=3000\n" as *u8,IOAE_INVALID,c)
79 eg_case("missing span_ms" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
80 eg_case("duplicate span_ms" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\nspan_ms=12000\n" as *u8,IOAE_INVALID,c)
81 eg_case("missing producer" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\n" as *u8,IOAE_INVALID,c)
82 eg_case("duplicate producer" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
83 eg_case("invalid level '-1'" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=-1\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
84 eg_case("invalid level '+4'" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=+4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
85 eg_case("invalid level '4junk'" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4junk\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
86 eg_case("invalid level ' 4'" as *u8,"ts=1000\nncpu=8\nblocked_confirmed= 4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
87 eg_case("invalid level '9223372036854775808'" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=9223372036854775808\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
88 eg_case("invalid level ''" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
89 eg_case("wrong producer" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=other\n" as *u8,IOAE_INVALID,c)
90 eg_case("cpu mismatch" as *u8,"ts=1000\nncpu=9\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
91 eg_case("bar mismatch" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=9\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
92 eg_case("zero samples" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=0\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
93 eg_case("too many requested" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=16\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
94 eg_case("samples exceeds requested" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=4\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
95 eg_case("span mismatch" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=11000\nproducer=nx_ioconfirm\n" as *u8,IOAE_INVALID,c)
96 eg_case("future timestamp" as *u8,"ts=1002\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_FUTURE,c)
97 eg_case("duplicate conflicting level" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\nblocked_confirmed=0\n" as *u8,IOAE_INVALID,c)
98 eg_case("partial sample provenance" as *u8,"ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=7\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8,IOAE_CONFIRMED,c)
99 eg_case("CRLF accepted" as *u8,"ts=1000\r\nncpu=8\r\nblocked_confirmed=4\r\nbar=8\r\nconfirm_samples=5\r\nconfirm_requested=5\r\nconfirm_gap_ms=3000\r\nspan_ms=12000\r\nproducer=nx_ioconfirm\r\n" as *u8,IOAE_CONFIRMED,c)
100 let good: *u8 = "ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=5\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8
101 let partial: *u8 = "ts=1000\nncpu=8\nblocked_confirmed=4\nbar=8\nconfirm_samples=5\nconfirm_requested=7\nconfirm_gap_ms=3000\nspan_ms=12000\nproducer=nx_ioconfirm\n" as *u8
102 gv_check_eq("age boundary accepted",ioae_select(good,ioa_slen(good),8,10,9,1900,900,out),IOAE_CONFIRMED,c)
103 ioae_select(partial,ioa_slen(partial),8,10,9,1001,900,out)
104 let source: *u8 = ioae_source_evidence(out)
105 gv_check_eq("partial receipt explicitly labeled",ioae_eqspan(source,0,ioa_slen(source),"confirmed-partial-samples" as *u8),1,c)
106 gv_check_eq("OFF wrapper never dereferences root",ioae_measure_selected(0 as *u8,0,8,10,10,out),IOAE_OFF,c)
107 gv_check_eq("age beyond boundary stale",ioae_select(good,ioa_slen(good),8,10,9,1901,900,out),IOAE_STALE,c)
108 gv_check_eq("stale keeps build median fallback",out[IOAE_SELECTED],9,c)
109 gv_check_eq("OFF ignores valid record",ioae_select(good,ioa_slen(good),8,10,10,1001,0,out),IOAE_OFF,c)
110 gv_check_eq("OFF keeps instant",out[IOAE_SELECTED],10,c)
111 gv_check_eq("sensor unknown cannot be rescued",ioae_select(good,ioa_slen(good),8,0-1,4,1001,900,out),IOAE_SENSOR,c)
112 gv_check_eq("sensor unknown retains unknown",out[IOAE_SELECTED],0-1,c)
113 gv_check_eq("absent typed read",ioae_select(0 as *u8,IOAE_READ_ABSENT,8,10,9,1001,900,out),IOAE_ABSENT,c)
114 gv_check_eq("read failure typed",ioae_select(0 as *u8,IOAE_READ_IO,8,10,9,1001,900,out),IOAE_IO,c)
115 gv_check_eq("cap full typed",ioae_select(0 as *u8,IOAE_READ_FULL,8,10,9,1001,900,out),IOAE_INVALID,c)
116 gv_check_eq("full length rejected before dereference",ioae_select(0 as *u8,IOAE_CAP,8,10,9,1001,900,out),IOAE_INVALID,c)
117 gv_check_eq("invalid policy",ioae_select(good,ioa_slen(good),8,10,9,1001,0-1,out),IOAE_POLICY,c)
118 gv_check_eq("missing policy key OFF",ioae_policy_record("floor_mb=512\n" as *u8,13),0,c)
119 let policy: *u8 = "confirm_max_age_s=900\n" as *u8
120 gv_check_eq("same age policy",ioae_policy_record(policy,ioa_slen(policy)),900,c)
121 let dup_policy: *u8 = "confirm_max_age_s=900\nconfirm_max_age_s=900\n" as *u8
122 gv_check_eq("duplicate policy invalid",ioae_policy_record(dup_policy,ioa_slen(dup_policy)),0-1,c)
123 ioae_select(good,ioa_slen(good),8,10,10,1001,900,out)
124 let budget: i64 = ioa_spawn_budget(8,out[IOAE_SELECTED],1,1)
125 gv_check_eq("selected4 spawn budget3",budget,3,c)
126 gv_check_eq("actual hio entry uses selected budget",hio_admit_budget(budget,h),HIO_ADMIT,c)
127 gv_check_eq("same budget reaches hio output",h[HIO_O_STORM],budget,c)
128 gv_check_eq("hio took no second pressure sample",eg_instant_calls,0,c)
129 gv_check_eq("config parent root",eg_path_ok,1,c)
130 gv_check_eq("lease parent root",eg_root_ok,1,c)
131 gv_check_eq("one pool acquisition",eg_pool_calls,1,c)
132 gv_check_eq("selected4 build IO admits",ba_verdict(1024,512,100,800,1,8,4,8),0,c)
133 gv_check_eq("cutoff7 publisher refuses",ioa_spawn_budget(8,7,1,1),0,c)
134 gv_check_eq("cutoff7 build admits",ba_verdict(1024,512,100,800,1,8,7,8),0,c)
135 gv_check_eq("cutoff8 build queues",ba_verdict(1024,512,100,800,1,8,8,8),BA_EXIT_QUEUE,c)
136 gv_check_eq("memory deny unchanged",ba_verdict(10,512,100,800,1,8,4,8),BA_EXIT_DENY,c)
137 gv_check_eq("zero budget before lease",hio_admit_budget(0,h),HIO_DEFER,c)
138 gv_check_eq("zero budget acquired no lease",eg_pool_calls,1,c)
139 gv_check_eq("unknown budget stays unknown",hio_admit_budget(0-1,h),HIO_UNOBSERVABLE,c)
140 gv_check_eq("unknown budget acquired no lease",eg_pool_calls,1,c)
141 eg_pool_result = HIO_POOL_NONE
142 gv_check_eq("pool exhaustion still defers",hio_admit_budget(3,h),HIO_DEFER,c)
143 eg_root_mode = 0
144 gv_check_eq("missing root unknown",hio_admit_budget(3,h),HIO_UNOBSERVABLE,c)
145 gv_check_eq("missing root retains selected budget",h[HIO_O_STORM],3,c)
146 eg_root_mode = 1
147 var repeat: i64 = 0
148 while repeat < 100 {
149 hio_admit_budget(repeat%3,h)
150 repeat = repeat+1
151 }
152 gv_check_eq("repeated entry workspace fully released",eg_live_work,0,c)
153 gv_check_eq("entry allocation release balance",eg_allocations,eg_releases,c)
154 gv_check_eq("correct pointer and successful actual unmap",eg_lifecycle_error,0,c)
155 gv_check_eq("no later hidden pressure sample",eg_instant_calls,0,c)
156 let rc: i64 = gv_verdict("SHARED-IO-EVIDENCE",c,"record and actual admission body fixtures only; no real pool, publication or performance claim" as *u8)
157 sys_exit(rc); return rc
158}