code wiki / (root) / nx_wflow_capacity_counterexample_t278.nx

nx_wflow_capacity_counterexample_t278.nx source

↩ module page · 29 lines · 1346 B

1import "nx_wflow_engine.nx" 2import "nx_gate_verdict.nx" 3func main(argc:i64,argv:*i64)->i64{ 4 if argc!=2{return 2} 5 let n:i64=wf_atoi(argv[1] as *u8) 6 if n<=0{return 2} 7 let value:*u8=sys_mmap_try(n+1) 8 if (value as i64)<=0{return 3} 9 var i:i64=0;while i<n{value[i]=(65+i%26) as u8;i=i+1};value[n]=0 10 let prefix:*u8="knowledge/gates/wflow-capacity-counterexample-t278-" 11 let path:*u8=sys_mmap_try(slen(prefix)+__size_of(i64)*3+1) 12 if (path as i64)<=0{return 3} 13 let at:i64=wf_cat(path,0,prefix) 14 path[wf_catn(path,at,__syscall(39,0,0,0,0,0,0))]=0 15 let c:*i64=gv_ctr() 16 gv_check_eq("actual journal append",wf_emit_var(path,"review","value",value),0,c) 17 let cx:*i64=sys_mmap_try(3*__size_of(i64)) as *i64 18 let out:*u8=sys_mmap_try(n+1) 19 if (cx as i64)<=0{return 3};if (out as i64)<=0{return 3} 20 cx[2]=path as i64 21 gv_check_eq("variable found",wf_var_get(cx,"review","value",out,n+1),1,c) 22 gv_check_eq("direct variable complete",slen(out),n,c) 23 out[0]=0 24 let result:i64=wf_subst(cx,"review","{value}",out,n+1) 25 gv_check_eq("substitution complete",result,n,c) 26 gv_check_eq("substitution output complete",slen(out),n,c) 27 sys_munmap(value,n+1);sys_munmap(out,n+1);sys_munmap(cx as *u8,3*__size_of(i64)) 28 return gv_verdict("WFLOW-CAPACITY-COUNTEREXAMPLE-T278",c,"Real existing writer/getter/substitution; expected failures identify actual truncation") 29}