code wiki / _hdl_build / nx_treepack_overwrite_gate.nx

nx_treepack_overwrite_gate.nx

buildroot/runtime/_hdl_build/nx_treepack_overwrite_gate.nx

9141 B141 linesdepth 2pulls 2 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

about

nx_treepack_overwrite_gate.nx -- regression gate for the seq142/seq124 STALE-SOURCE root: nx_treepack unpack must OVERWRITE existing destination files even when the existing file denies O_TRUNC (mixed-ownership / read-only buildroot survivors), by unlink-then-recreate; and must FAIL LOUD (nonzero exit + named path) when even that is impossible. Runs the REAL /tmp/nx_treepack.sov.elf as a child -- gates the shipped binary, not a reimplementation. T1 fresh round-trip / T2 plain overwrite / T3 read-only-file overwrite (THE stale-source repro) / T4 unwritable-dir = loud failure, old bytes intact. license_tier: ORIGINAL expect_exit: 0

dependencies 1 imports · 0 importers

nx_syscalls.nx nx_treepack_overwrite_gate.nx

imports: nx_syscalls.nx

imported by: nobody (leaf or entry point)

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

main g_puts sys_write sys_mkdir g_chmod sys_fchmodat sys_mmap g_wfile sys_openat_wr sys_write ↻ g_slen sys_close g_run sys_mmap ↻ sys_fork sys_execve sys_exit sys_wait4 g_expect sys_mmap ↻ sys_read_file sys_openat_rd sys_lseek sys_mmap ↻ sys_read sys_close ↻ g_slen ↻ g_pn sys_mmap ↻ sys_write ↻ g_run_in sys_mmap ↻ sys_fork ↻ sys_chdir sys_mmap ↻ sys_execve ↻ sys_exit ↻ sys_wait4 ↻ sys_exit ↻

structs

none

consts

none

functions

10func g_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
called by 1: main calls 1: sys_write
11func g_pn(v: i64) -> i64 { let b: *u8=sys_mmap(32) as *u8; var x: i64=v; var ng: i64=0; if x<0{ng=1;x=0-x} var i: i64=31; if x==0{b[i]=48 as u8;i=i-1} while x>0{b[i]=(48+x%10) as u8;x=x/10;i=i-1} if ng==1{b[i]=45 as u8;i=i-1} sys_write(1,(b as i64+i+1) as *u8,31-i); return 0 }
called by 1: main calls 2: sys_mmapsys_write
12func g_chmod(path: *u8, mode: i64) -> i64 { return sys_fchmodat(path, mode) }
called by 1: main calls 1: sys_fchmodat
13func g_slen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n }
called by 2: g_wfileg_expect
14func g_wfile(path: *u8, content: *u8) -> i64
22func g_expect(path: *u8, want: *u8) -> i64
called by 1: main calls 3: sys_mmapsys_read_fileg_slen
33func g_run(a1: *u8, a2: *u8, a3: *u8) -> i64
49func g_run_in(dir: *u8, a1: *u8, a2: *u8, a3: *u8) -> i64
66func main() -> i64