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}