code wiki / (root) / nx_seg_index_bounds_gate.nx

nx_seg_index_bounds_gate.nx source

↩ module page · 42 lines · 2387 B

1// Index reader boundary qualification using a real writer-generated NXK1 index. 2import "nx_seg_store.nx" 3import "nx_gate_verdict.nx" 4func main(argc: i64, argv: *i64) -> i64 { 5 let ctr: *i64=gv_ctr() 6 let plan: *i64=gv_plan_new("writer-index-size\nvalid-hit\nvalid-miss\nshort-header\nwrong-signature\ncount-overflow\noffset-outside-file\nentry-truncated\nkey-length-overflow\ninvalid-kind\nrestored-hit\n" as *u8) 7 let key: *u8="a" as *u8 8 let val: *u8="v" as *u8 9 let w: *i64=ss_begin_cap(ss_len(key)+ss_len(val)+16) 10 if ss_add(w,1,key,val,ss_len(val)) < 0 { return 2 } 11 let bytes: i64=SS_IDX_HEADER+SS_IDX_U32+SS_IDX_ENTRY_FIXED+ss_len(key) 12 let b: *u8=sys_mmap(bytes) 13 let n: i64=ss_build_keys(w,b) 14 let out: *i64=sys_mmap(2*8) as *i64 15 let len: *i64=((out as i64)+8) as *i64 16 gv_plan_check(plan,"writer-index-size" as *u8,n==bytes,ctr) 17 gv_plan_check(plan,"valid-hit" as *u8,ss_idx_find(b,n,key,out,len)==1,ctr) 18 gv_plan_check(plan,"valid-miss" as *u8,ss_idx_find(b,n,"z" as *u8,out,len)==(0-1),ctr) 19 gv_plan_check(plan,"short-header" as *u8,ss_idx_find(b,SS_IDX_HEADER-1,key,out,len)==(0-2),ctr) 20 b[1]=0 as u8 21 gv_plan_check(plan,"wrong-signature" as *u8,ss_idx_find(b,n,key,out,len)==(0-2),ctr) 22 b[1]=88 as u8 23 ss_w32(b,SS_IDX_U32,4294967295) 24 gv_plan_check(plan,"count-overflow" as *u8,ss_idx_find(b,n,key,out,len)==(0-2),ctr) 25 ss_w32(b,SS_IDX_U32,1) 26 ss_w32(b,SS_IDX_HEADER,4294967295) 27 gv_plan_check(plan,"offset-outside-file" as *u8,ss_idx_find(b,n,key,out,len)==(0-2),ctr) 28 ss_w32(b,SS_IDX_HEADER,0) 29 let entry: i64=SS_IDX_HEADER+SS_IDX_U32 30 gv_plan_check(plan,"entry-truncated" as *u8,ss_idx_find(b,entry+SS_IDX_ENTRY_FIXED-1,key,out,len)==(0-2),ctr) 31 ss_w32(b,entry+1,4294967295) 32 gv_plan_check(plan,"key-length-overflow" as *u8,ss_idx_find(b,n,key,out,len)==(0-2),ctr) 33 ss_w32(b,entry+1,ss_len(key)) 34 b[entry]=3 as u8 35 gv_plan_check(plan,"invalid-kind" as *u8,ss_idx_find(b,n,key,out,len)==(0-2),ctr) 36 b[entry]=1 as u8 37 gv_plan_check(plan,"restored-hit" as *u8,ss_idx_find(b,n,key,out,len)==1,ctr) 38 gv_plan_finish(plan,ctr) 39 sys_munmap(b,bytes);sys_munmap(out as *u8,2*8) 40 sys_munmap(w[0] as *u8,w[2]);sys_munmap(w as *u8,32) 41 return gv_verdict("SEG-INDEX-BOUNDS" as *u8,ctr,"Bounds at every probed offset; not a full ordering or authenticity proof." as *u8) 42}