nx_product_live_gate_t40.nx source
↩ module page · 29 lines · 1431 B
1import "nx_product_decompose.nx"
2import "nx_tool_run.nx"
3const PT_NEEDS:*u8="/tmp/nx_product_live_t40-needs-"
4const PT_CAPS:*u8="/tmp/nx_product_live_t40-caps-"
5const PT_OUTPUT:*u8="/tmp/nx_product_live_t40-output-"
6func main()->i64 {
7 let rows:i64=PD_MAXROW+1
8 let input:*u8=sys_mmap(rows*4)
9 var i:i64=0
10 while i<rows{input[i*4]=110 as u8;input[i*4+1]=101 as u8;input[i*4+2]=100 as u8;input[i*4+3]=10 as u8;i=i+1}
11 if sts_seed(PT_NEEDS,input,rows*4)!=rows{return 2}
12 let caprow:*u8="cap\tcap\tstate\ttype\towner\tvalue\tned\n"
13 if sts_seed(PT_CAPS,caprow,pd_slen(caprow))!=1{return 3}
14 let prior:*u8="prior-assessment\n"
15 if sts_seed(PT_OUTPUT,prior,pd_slen(prior))!=1{return 4}
16 let path:*u8="/volume1/homes/elderwesto/nishihost/nx_product_decompose.elf"
17 let av:*i64=sys_mmap(40) as *i64
18 av[0]=path as i64;av[1]=PT_NEEDS as i64;av[2]=PT_CAPS as i64;av[3]=PT_OUTPUT as i64;av[4]=0
19 let output:*u8=sys_mmap(4096);let length:*i64=sys_mmap(16) as *i64
20 let rc:i64=tr_run_capture(path,av,output,4096,length)
21 if length[0]>0{sys_write(1,output,length[0])}
22 if rc!=2{return 5}
23 let flags:*i64=sys_mmap(24) as *i64
24 let n:i64=sts_load_honest(PT_OUTPUT,output,4096,flags)
25 if n!=pd_slen(prior)||flags[0]!=1||flags[1]!=1||flags[2]!=0{return 6}
26 i=0;while i<n{if output[i]!=prior[i]{return 7};i=i+1}
27 pd_w("PASS compiled CLI rejects incomplete65 requirements and preserves prior assessment in real isolated stores\n" as *u8)
28 return 0
29}