code wiki / (root) / nx_frame_raw_ingest_gate.nx

nx_frame_raw_ingest_gate.nx source

↩ module page · 40 lines · 2051 B

1import "nx_frame_pacing_lib.nx" 2import "nx_gate_verdict.nx" 3func fr_check_bad(b: *u8, r: *i64, ctr: *i64) -> i64 { 4 let before: i64 = pf_total(r) 5 let worst: i64 = pf_worst_ever(r) 6 let rc: i64 = fpc_csv_parse(b,0,fpc_slen(b),r,16) 7 gv_check("invalid-input-refused-without-recorder-change" as *u8, (rc == (0-2)) && (pf_total(r)==before) && (pf_worst_ever(r)==worst),ctr) 8 return 0 9} 10func main() -> i64 { 11 let ctr: *i64 = gv_ctr() 12 let r: *i64 = sys_mmap(PF_WORDS*8) as *i64 13 pf_init(r) 14 let good: *u8 = "10, 5000, 1000000000" as *u8 15 gv_check_eq("raw-parser-count" as *u8,fpc_csv_parse(good,0,fpc_slen(good),r,16),3,ctr) 16 gv_check_eq("raw-parser-median" as *u8,pf_pct(r,500),5000,ctr) 17 gv_check_eq("raw-parser-long-pause" as *u8,pf_worst(r),1000000000,ctr) 18 fr_check_bad("1 2" as *u8,r,ctr) 19 fr_check_bad("1,,2" as *u8,r,ctr) 20 fr_check_bad("1," as *u8,r,ctr) 21 fr_check_bad(",1" as *u8,r,ctr) 22 fr_check_bad("1,-2" as *u8,r,ctr) 23 fr_check_bad("1,2.5" as *u8,r,ctr) 24 fr_check_bad("1,99999999999999999999999999999" as *u8,r,ctr) 25 let many: *u8 = sys_mmap((PF_N+1)*2+1) 26 var i: i64 = 0 27 while i <= PF_N { many[i*2]=49 as u8;many[i*2+1]=44 as u8;i=i+1 } 28 many[(PF_N+1)*2-1]=0 as u8 29 fr_check_bad(many,r,ctr) 30 gv_check_eq("empty-window-no-change" as *u8,fpc_csv_parse("" as *u8,0,0,r,16),0,ctr) 31 let wire: *u8 = "{\"frames\":[10,5000,1000000000]}" as *u8 32 pf_init(r) 33 gv_check_eq("beacon-array-raw-count" as *u8,fpc_frames_parse(wire,fpc_slen(wire),r,16),3,ctr) 34 gv_check_eq("beacon-array-raw-median" as *u8,pf_pct(r,500),5000,ctr) 35 let row: *u8 = "id\tw\t0\t16\t3\t3\t0\t0\t0\t0\t0\t0\t0\t0\t10,5000,1000000000" as *u8 36 pf_init(r) 37 gv_check_eq("stored-row-replay-count" as *u8,fpc_row_frames(row,fpc_slen(row),r,16),3,ctr) 38 gv_check_eq("stored-row-replay-retains-pause" as *u8,pf_worst(r),1000000000,ctr) 39 return gv_verdict("nx_frame_raw_ingest_gate" as *u8,ctr,"raw beacon and stored-row replay; invalid windows leave existing recorder intact" as *u8) 40}