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}