nx_selected_edge_canonical_cli_gate_t139.nx source
↩ module page · 32 lines · 3925 B
1import "nx_comparestale_lib.nx"
2import "nx_tool_run.nx"
3import "nx_gate_verdict.nx"
4const CC_OUTPUT: i64=CD_SCHEMA_FIELDS*(CD_HASH_CHARS+CD_JSON_INTEGER_CHARS)*CD_JSON_ESCAPE_EXPANSION+4*SYS_PATH_MAX*CD_JSON_ESCAPE_EXPANSION
5func cc_run(exe: *u8,cwd: *u8,av: *i64,expected: i64,needle: *u8,ctr: *i64,label: *u8) -> i64 {
6 let output: *u8=sys_mmap_shared(CC_OUTPUT);let length: *i64=sys_mmap_shared(16) as *i64
7 let rc: i64=tr_run_capture_cwd(exe,av,output,CC_OUTPUT-1,length,120000,cwd)
8 gv_puts("CANONICAL-CLI ");gv_puts(label);gv_puts(" exit=");gv_num(rc);gv_puts(" bytes=");gv_num(length[0]);gv_puts("\n");sys_write(1,output,length[0]);gv_puts("\n")
9 gv_check(label,rc==expected&&length[0]<CC_OUTPUT-1&&tr_contains(output,length[0],needle)==1,ctr)
10 sys_munmap(output,CC_OUTPUT);sys_munmap(length as *u8,16);return rc
11}
12func cc_pin(path: *u8,sha: *u8,ctr: *i64) -> i64 {
13 let c: *CsDependencyFile=sys_mmap_shared(CD_FILE_BYTES) as *CsDependencyFile;let h: *u8=sys_mmap_shared(65);cd_file_init(c,h);cd_scan(path,"",c)
14 let ok: i64=cd_equal(cd_file_state(c,sha),"IDENTITY_MATCH");gv_need(path,ok,ctr);sys_munmap(h,65);sys_munmap(c as *u8,CD_FILE_BYTES);return ok
15}
16func main() -> i64 {
17 let ctr: *i64=gv_ctr();let checker: *u8="/volume1/homes/elderwesto/nishihost/buildroot/_build/nx_comparestale.sov.elf";let publisher: *u8="/volume1/homes/elderwesto/nishihost/buildroot/_build/nx_site_publish.sov.elf"
18 if cc_pin(checker,"0a53e72c174d2ebdfa57721887762909a5bf9cc7bbc8473b760f3f359450f025",ctr)==0{return 1}
19 if cc_pin(publisher,"ba0a75176b7d989e7bc202e2ead0d8a82e861b8d718d50852c11b4b7aa57b444",ctr)==0{return 1}
20 let av: *i64=sys_mmap_shared(11*8) as *i64
21 av[0]=checker as i64;av[1]="dependency-check" as *u8 as i64;av[2]="/tmp/beach-eye-owner-t138.html" as *u8 as i64;av[3]="051ff05545af7defb278c8fe433d9c49ede2e884f8afc2db7d0222ca9af8a5dd" as *u8 as i64
22 av[4]="../sites/nishifamily/releases/craft-mt-0e25f0dea9d0764db5a90c82363f41369c235187ec3e478c70d89a831d2a5e76.wasm" as *u8 as i64;av[5]="0e25f0dea9d0764db5a90c82363f41369c235187ec3e478c70d89a831d2a5e76" as *u8 as i64;av[6]="/releases/craft-mt-0e25f0dea9d0764db5a90c82363f41369c235187ec3e478c70d89a831d2a5e76.wasm" as *u8 as i64;av[7]=0
23 cc_run(checker,".",av,0,"\"identity_and_literal_matches\":1",ctr,"checker-real-positive")
24 av[4]="/tmp/nx_site_publish_edge_canonical_t139_run1/missing" as *u8 as i64;cc_run(checker,".",av,1,"\"state\":\"MISSING\"",ctr,"checker-real-negative")
25 av[1]="knowledge/compare/" as *u8 as i64;av[2]="../sites/nishifamily/compare/" as *u8 as i64;av[3]=0;cc_run(checker,".",av,0,"COMPARESTALE fresh=113 stale=0 unpublished=1 nostamp=0",ctr,"checker-legacy-population")
26 let fixture: *u8="/tmp/nx_site_publish_edge_canonical_t139_run1"
27 av[0]=publisher as i64;av[1]="publish-guarded-edge" as *u8 as i64;av[2]="edge-source.html" as *u8 as i64;av[3]="gatesite" as *u8 as i64;av[4]="releases/edge.html" as *u8 as i64;av[5]="37cd33317ea72ab76e9e6fbf4588f5fcc33ca91d0409700425f171cc040e6a12" as *u8 as i64;av[6]="absent" as *u8 as i64;av[7]="49" as *u8 as i64;av[8]="releases/registered.html" as *u8 as i64;av[9]="52c123d327f66e17c132f51c832d69c12e1041a433586d8ce834a73b0062b4e7" as *u8 as i64;av[10]=0
28 cc_run(publisher,fixture,av,0,"NX-PUBLISH UNCHANGED bytes=49",ctr,"publisher-selected-edge-retry")
29 av[9]="1a97a7a5d5f1e0480de24c6e14d4fba1bfd41a9ad2c3095af7447dec0e8312c0" as *u8 as i64;cc_run(publisher,fixture,av,8,"selected-dependency-registration",ctr,"publisher-selected-edge-negative")
30 av[1]="stage" as *u8 as i64;av[2]="v1.html" as *u8 as i64;av[4]="releases/registered.html" as *u8 as i64;av[5]="52c123d327f66e17c132f51c832d69c12e1041a433586d8ce834a73b0062b4e7" as *u8 as i64;av[6]=0;cc_run(publisher,fixture,av,0,"NX-PUBLISH UNCHANGED bytes=12",ctr,"publisher-legacy-stage-retry")
31 return gv_verdict("CANONICAL-SELECTED-EDGE-CLI",ctr,"Both exact canonical build artifacts executed; private fixture only; full chain unknown.")
32}