code wiki / _hdl_build / nx_meet_jobs_gate.nx

nx_meet_jobs_gate.nx source

↩ module page · 102 lines · 6780 B

1import "nx_gate_gn.nx" 2// nx_meet_jobs_gate.nx -- liar-kill gate for R2 (+P1 nav/clean-URLs). Sovereign fork/exec: brand .meet + an 3// .openings fixture (incl. an '&' to test escaping) -> emit -> assert sovereignty, token-driven, the header NAV, 4// clean board+detail layout (jobs.html / job-<id>.html), data-driven listings, and the ESCAPING TEETH 5// (R&D Engineer -> R&amp;D Engineer present, raw ABSENT). expect_exit: 0 6import "nx_syscalls.nx" 7import "nx_gate_verdict.nx" 8 9func gp(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 10func gslen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n } 11func gfind(hay: *u8, hl: i64, needle: *u8) -> i64 { 12 let nl: i64 = gslen(needle); if nl == 0 { return 0-1 } 13 var i: i64 = 0 14 while i + nl <= hl { var k: i64=0; var hit: i64=1; while k<nl { if hay[i+k]!=needle[k]{hit=0;k=nl}else{k=k+1} } if hit==1 {return i} i=i+1 } 15 return 0-1 16} 17func ghas(hay: *u8, hl: i64, needle: *u8) -> i64 { if gfind(hay, hl, needle) >= 0 { return 1 } return 0 } 18func gwrite(path: *u8, s: *u8) -> i64 { 19 let fd: i64 = sys_openat_wr(path, 0x1a4) 20 if fd < 0 { return 0 - 1 } 21 var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } 22 sys_write(fd, s, n); sys_close(fd); return n 23} 24func spawn(path: *u8, a0: *u8, a1: *u8, redir: *u8) -> i64 { 25 let pid: i64 = sys_fork() 26 if pid == 0 { 27 let fd: i64 = sys_openat_wr(redir, 420) 28 if fd >= 0 { sys_dup3(fd, 1, 0); sys_dup3(fd, 2, 0) } 29 let argv: *i64 = sys_mmap(64) as *i64 30 var n: i64 = 0 31 argv[0] = path as i64; n = 1 32 if (a0 as i64) != 0 { argv[n] = a0 as i64; n = n + 1 } 33 if (a1 as i64) != 0 { argv[n] = a1 as i64; n = n + 1 } 34 argv[n] = 0 35 let envp: *i64 = sys_mmap(16) as *i64 36 envp[0] = "PATH=/usr/bin:/bin\x00" as *u8 as i64; envp[1] = 0 37 sys_execve(path, argv, envp) 38 sys_exit(127) 39 } 40 let st: *i64 = sys_mmap(16) as *i64 41 sys_wait4(pid, st, 0) 42 return (st[0] >> 8) & 0xff 43} 44 45func main() -> i64 { 46 gp("=== nx_meet_jobs_gate: R2 board+detail -- sovereign + nav + clean URLs + escaped ===\n" as *u8) 47 let RUNNER: *u8 = "_offc/nx_sov_build_run.elf\x00" as *u8 48 let EMIT: *u8 = "/tmp/nx_meet_jobs.sov.elf\x00" as *u8 49 let SCRATCH: *u8 = "knowledge/status/meet_jobs_gate_scratch.log\x00" as *u8 50 51 spawn(RUNNER, "nx_meet_jobs\x00" as *u8, 0 as *u8, SCRATCH) 52 gwrite("web_assets/meet_gatejobs.meet\x00" as *u8, "meet|brand|Community Meet -- McKinney & DFW\nmeet|region|McKinney & the Dallas metro\nmeet|zip|75071\n" as *u8) 53 gwrite("web_assets/meet_gatejobs.openings\x00" as *u8, "open|swe-1|Software Engineer|Software|Plano, TX|Contract|Real work samples reviewed.\nopen|rnd-9|R&D Engineer|Hardware & Test|McKinney, TX|Full-time|Build & verify real hardware. R&D rigor, no AI-slop.\n" as *u8) 54 spawn(EMIT, "gatejobs\x00" as *u8, 0 as *u8, SCRATCH) 55 56 let lp: *i64 = sys_mmap(16) as *i64; lp[0] = 0 57 let h: *u8 = sys_read_file("web_assets/site_gatejobs/jobs.html\x00" as *u8, lp) 58 if (h as i64) == 0 { gp("MEET-JOBS-GATE verdict=RED reason=board-missing\n" as *u8); sys_exit(1); return 1 } 59 let n: i64 = lp[0] 60 let lp2: *i64 = sys_mmap(16) as *i64; lp2[0] = 0 61 let d: *u8 = sys_read_file("web_assets/site_gatejobs/job-rnd-9.html\x00" as *u8, lp2) 62 if (d as i64) == 0 { gp("MEET-JOBS-GATE verdict=RED reason=detail-missing\n" as *u8); sys_exit(1); return 1 } 63 let dn: i64 = lp2[0] 64 gp(" board bytes=" as *u8); gn(n); gp(" detail bytes=" as *u8); gn(dn); gp("\n" as *u8) 65 66 var pass: i64 = 0; var fail: i64 = 0 67 // sovereignty 68 if gfind(h, n, "<script" as *u8) < 0 { pass=pass+1 } else { fail=fail+1; gp(" FAIL has-script\n" as *u8) } 69 if gfind(h, n, "onclick" as *u8) < 0 { pass=pass+1 } else { fail=fail+1; gp(" FAIL has-onclick\n" as *u8) } 70 if ghas(h, n, "var(--nx-color-primary)" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL not-token-driven\n" as *u8) } 71 // P1 nav 72 if ghas(h, n, "class=\"nav\"" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-nav\n" as *u8) } 73 if ghas(h, n, ">Jobs<" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-nav-jobs\n" as *u8) } 74 if ghas(h, n, "href=\"apply.html\"" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-clean-apply-href\n" as *u8) } 75 // board lists openings + clean detail links 76 if ghas(h, n, "Software Engineer" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-opening-1\n" as *u8) } 77 if ghas(h, n, "Plano, TX" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-location\n" as *u8) } 78 if ghas(h, n, "View role" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-view-link\n" as *u8) } 79 if ghas(h, n, "href=\"job-rnd-9.html\"" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-clean-detail-href\n" as *u8) } 80 if ghas(h, n, "href=\"job-swe-1.html\"" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-clean-detail-href-2\n" as *u8) } 81 // ESCAPING TEETH 82 if ghas(h, n, "R&amp;D Engineer" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL escaped-title-missing\n" as *u8) } 83 if gfind(h, n, "R&D Engineer" as *u8) < 0 { pass=pass+1 } else { fail=fail+1; gp(" FAIL raw-amp-leaked\n" as *u8) } 84 if ghas(h, n, "Hardware &amp; Test" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL escaped-sector-missing\n" as *u8) } 85 // detail page: nav + clean back/apply links, sovereign 86 if gfind(d, dn, "<script" as *u8) < 0 { pass=pass+1 } else { fail=fail+1; gp(" FAIL detail-has-script\n" as *u8) } 87 if ghas(d, dn, "class=\"nav\"" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL detail-no-nav\n" as *u8) } 88 if ghas(d, dn, "R&amp;D Engineer" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL detail-title-missing\n" as *u8) } 89 if ghas(d, dn, "Apply for this role" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL detail-no-apply\n" as *u8) } 90 if ghas(d, dn, "href=\"jobs.html\"" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL detail-no-back\n" as *u8) } 91 92 gp("MEET-JOBS-GATE pass=" as *u8); gn(pass); gp(" fail=" as *u8); gn(fail) 93 // MIGRATED onto nx_gate_verdict by nx_gate_dry_apply (D001, minimal form): every check 94 // row above is untouched, so the PASS/FAIL vector cannot change; only the hand-rolled 95 // verdict emission is replaced by the ONE shared base class. Proven by nx_gate_migrate verify. 96 let ctr__dry: *i64 = gv_ctr() 97 ctr__dry[0] = pass 98 ctr__dry[1] = pass + fail 99 let rc__dry: i64 = gv_verdict("MEET-JOBS-GATE" as *u8, ctr__dry, "sovereign 0-JS board+detail; nav + clean URLs + HTML-escaped)" as *u8) 100 sys_exit(rc__dry) 101 return rc__dry 102}