code wiki / _hdl_build / nx_quic_relay_test.nx

nx_quic_relay_test.nx source

↩ module page · 67 lines · 3598 B

1// nx_quic_relay_test.nx -- RUNG 8b gate: relay datagram fan-out. A peer's datagram is broadcast to every 2// OTHER peer (no echo), payload byte-exact through the relay's DATAGRAM re-framing. Native, sovereign. 3// license_tier: ORIGINAL 4import "nx_quic_relay.nx" 5import "nx_g_puts_lib.nx" 6 7func g_pn(v: i64) -> i64 { 8 if v==0 { sys_write(1,"0" as *u8,1); return 0 } 9 let b: *u8 = sys_mmap(28); var x: i64 = v 10 var d: i64=0; var y: i64=x 11 while y>0 { d=d+1; y=y/10 } 12 var i: i64=d-1; y=x 13 while i>=0 { b[i]=(48+(y%10)) as u8; y=y/10; i=i-1 } 14 sys_write(1,b,d); return 0 15} 16func g_check(name: *u8, cond: i64) -> i64 { 17 if cond==1 { g_puts(" PASS " as *u8) } else { g_puts(" FAIL " as *u8) } 18 g_puts(name); g_puts("\n" as *u8); return cond 19} 20// parse the DATAGRAM frame in peer `pi`'s buffer at offset 0; check its payload == expect[0..elen). returns 1/0. 21func check_payload(out_bufs: *u8, buf_cap: i64, pi: i64, flen: i64, expect: *u8, elen: i64) -> i64 { 22 let buf: *u8 = (out_bufs as i64 + pi * buf_cap) as *u8 23 let poff: *i64 = sys_mmap(8) as *i64 24 let pp: i64 = quic_datagram_parse(buf, flen, poff) 25 if pp != elen { return 0 } 26 var k: i64=0; while k<elen { if buf[poff[0]+k] != expect[k] { return 0 } k=k+1 } 27 return 1 28} 29 30func main() -> i64 { 31 g_puts("nx_quic_relay gate -- datagram fan-out to peers (no echo), FEC payload preserved\n" as *u8) 32 var pass: i64=0; var total: i64=0 33 let NP: i64 = 3; let CAP: i64 = 1024 34 let out_bufs: *u8 = sys_mmap(NP*CAP) 35 let out_lens: *i64 = sys_mmap(8*NP) as *i64 36 out_lens[0]=0; out_lens[1]=0; out_lens[2]=0 37 38 // ---- peer 0 broadcasts a 50-byte payload ---- 39 let pay1: *u8 = sys_mmap(50) 40 var i: i64=0; while i<50 { pay1[i]=((i*9+3)&255) as u8; i=i+1 } 41 let d1: i64 = quic_relay_broadcast(NP, 0, pay1, 50, out_bufs, CAP, out_lens) 42 var b1: i64=1 43 if d1 != 2 { b1=0 } 44 if out_lens[0] != 0 { b1=0 } // sender NOT echoed 45 if out_lens[1] != 52 { b1=0 } // DATAGRAM(50) = 1 type + 1 len-varint + 50 = 52 46 if out_lens[2] != 52 { b1=0 } 47 pass = pass + g_check("peer0 broadcast: delivered=2, sender not echoed, peers 1&2 each got 52B frame" as *u8, b1); total=total+1 48 pass = pass + g_check("peer1 received payload byte-exact through relay re-framing" as *u8, check_payload(out_bufs, CAP, 1, 52, pay1, 50)); total=total+1 49 pass = pass + g_check("peer2 received payload byte-exact through relay re-framing" as *u8, check_payload(out_bufs, CAP, 2, 52, pay1, 50)); total=total+1 50 51 // ---- peer 1 broadcasts a 30-byte payload (now peers 0 and 2 receive, 1 skipped) ---- 52 let pay2: *u8 = sys_mmap(30) 53 i=0; while i<30 { pay2[i]=((i*13+7)&255) as u8; i=i+1 } 54 let d2: i64 = quic_relay_broadcast(NP, 1, pay2, 30, out_bufs, CAP, out_lens) 55 var b2: i64=1 56 if d2 != 2 { b2=0 } 57 if out_lens[1] != 52 { b2=0 } // sender unchanged 58 if out_lens[0] != 32 { b2=0 } // DATAGRAM(30) = 32 59 if out_lens[2] != 84 { b2=0 } // 52 + 32 60 pass = pass + g_check("peer1 broadcast: delivered=2, sender unchanged, peers 0&2 accumulate" as *u8, b2); total=total+1 61 pass = pass + g_check("peer0 received peer1's payload byte-exact" as *u8, check_payload(out_bufs, CAP, 0, 32, pay2, 30)); total=total+1 62 63 g_puts("---- quic_relay gate: passed " as *u8); g_pn(pass); g_puts(" / " as *u8); g_pn(total); g_puts(" ----\n" as *u8) 64 if pass == total { g_puts("VERDICT: GREEN (relay datagram fan-out, no echo, FEC payload preserved -- the server-side wire-in core)\n" as *u8); return 0 } 65 g_puts("VERDICT: RED\n" as *u8) 66 return 1 67}