code wiki / (root) / nx_ipp_transport_test.nx

nx_ipp_transport_test.nx

buildroot/runtime/nx_ipp_transport_test.nx

4930 B107 linesdepth 6pulls 9 transitivereach 0 importersview sourcekind gate/prooftopic ipp
docsdependenciesstructsconstsfunctions

about

nx_ipp_transport_test.nx -- offline gate for IPP-over-HTTP transport (R2). Proves the HTTP-framing/dechunk logic deterministically (no network), with unique exit codes: 1x Content-Length response -> body extracted byte-exact, status 200, diagnoses BLOCKED (stopped) 2x chunked response -> de-chunked body byte-exact, status 200 3x status-line parse (503) + bad-http (no header terminator) -> sealed BAD_HTTP 4x build_request round-trips: printer-uri == ipp://1.2.3.4/ipp/print, op = Get-Printer-Attributes The LIVE proof against the real Brother DCP-L2540DW is recorded separately (that run IS the 3rd-party oracle for this non-novel protocol). This gate locks the framing so regressions are caught without it. expect_exit: 0 license_tier: ORIGINAL

dependencies 4 imports · 0 importers

nx_syscalls.nx nx_ipp_codec.nx nx_printer_health.nx nx_ipp_transport.nx nx_ipp_transport_test.nx

imports: nx_syscalls.nxnx_ipp_codec.nxnx_printer_health.nxnx_ipp_transport.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main sys_mmap nx_ipp_begin nx_ipp_put_u16 nx_ipp_put_u32 nx_ipp_group nx_ipp_attr_int nx_ipp_put_u16 ↻ nx_ipp_memcpy nx_ipp_put_u32 ↻ nx_ipp_attr nx_ipp_put_u16 ↻ nx_ipp_memcpy ↻ nx_ipp_end nx_ipt_puts nx_ipt_puti sys_mmap ↻ bytes_eq nx_printer_diagnose nx_ipp_get_enum nx_ipp_find nx_ipp_strlen nx_ipp_get_u16 nx_ipp_name_eq nx_ipp_get_u32 nx_ph_worst_reason_severit nx_ipp_get_u16 ↻ nx_ipp_name_eq ↻ nx_ph_reason_severity nx_ipp_name_eq ↻ nx_ph_ends_with nx_ipp_strlen ↻ nx_ipp_name_eq ↻ nx_ph_accepting nx_ipp_find ↻ nx_printer_can_print put_hex sys_mmap ↻ nx_ipt_build_request sys_mmap ↻

structs

none

consts

none

functions

20func t_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
calls 1: sys_write
23func put_hex(buf: *u8, off: i64, v: i64) -> i64
called by 1: main calls 1: sys_mmap
36func bytes_eq(x: *u8, y: *u8, n: i64) -> i64
called by 1: main
42func main() -> i64