code wiki / _hdl_build / nx_stage_cli_canonical_gate_t188.nx

nx_stage_cli_canonical_gate_t188.nx source

↩ module page · 41 lines · 2009 B

1import "nx_ccbuild_lib.nx" 2import "nx_gate_verdict.nx" 3func cli188_show(path:*u8)->i64{ 4 let fd:i64=sys_openat_rd(path);if fd<0{return fd} 5 let b:*u8=sys_mmap(4096);var n:i64=sys_read(fd,b,4096) 6 while n>0{sys_write(1,b,n);n=sys_read(fd,b,4096)};sys_close(fd);return 0 7} 8func cli188_run(path:*u8,av:*i64,env:*i64,out:i64,err:i64)->i64{ 9 let status:*i64=sys_mmap(8) as *i64 10 let pid:i64=sys_fork();if pid<0{return pid} 11 if pid==0{ 12 if out<0||err<0{sys_exit(125)} 13 if sys_dup3(out,1,0)<0||sys_dup3(err,2,0)<0{sys_exit(126)} 14 sys_execve(path,av,env);sys_exit(127) 15 } 16 let waited:i64=sys_wait4(pid,status,0) 17 if waited!=pid{return 0-1} 18 return wait_status_rc(status[0]) 19} 20func main()->i64{ 21 sys_chdir("/volume1/homes/elderwesto/nishihost/buildroot") 22 let c:*i64=gv_ctr();let env:*i64=sys_mmap(8) as *i64;env[0]=0 23 let err:i64=sys_openat_wr("knowledge/gates/stage-cli-compiler-t188.log",MODE_0644) 24 let built:i64=0 25 if built==0{ 26 let out:i64=sys_openat_wr("knowledge/gates/stage-cli-canonical-run-t188.log",MODE_0644) 27 let av:*i64=sys_mmap(40) as *i64 28 av[0]="_build/nx_deploy_stage.sov.elf" as i64;av[1]="stage" as i64;av[2]="_build/nx_mgmt_api.sov.elf" as i64 29 av[3]="knowledge/gates/stage-cli-canonical-quote\"back\\t188.elf.new" as i64;av[4]=0 30 let run:i64=cli188_run("_build/nx_deploy_stage.sov.elf",av,env,out,err) 31 sys_close(out);cli188_show("knowledge/gates/stage-cli-canonical-run-t188.log") 32 gv_check("CLI stages quoted path and emits full receipt",run==0,c) 33 av[1]="--kat" as i64;av[2]=0 34 let out2:i64=sys_openat_wr("knowledge/gates/stage-cli-canonical-kat-t188.log",MODE_0644) 35 let run2:i64=cli188_run("_build/nx_deploy_stage.sov.elf",av,env,out2,err) 36 sys_close(out2);cli188_show("knowledge/gates/stage-cli-canonical-kat-t188.log") 37 gv_check("legacy stage selftest preserved",run2==0,c) 38 } 39 sys_close(err);cli188_show("knowledge/gates/stage-cli-compiler-t188.log") 40 return gv_verdict("canonical-stage-cli",c,"Actual canonical build artifact; stage and --kat behavior; no activation") 41}