nx_refintake_gate.nx source
↩ module page · 276 lines · 20343 B
1// nx_refintake_gate.nx -- the referee for nx_refintake_lib (aesthetictwin AT22, 2026-09-16). In-process, on fixtures
2// built at runtime under /tmp/refintake_gate/ (never the production conf, never a network fetch): conf parsing, the
3// licence decision, the declared-axis refusal (the group-label neg-control), gallery discovery with dedupe and
4// percent-encoding, and the provenance parse the mirror leg relies on. Values are printed with gv_kv so a second
5// method can recompute them; the verdict line stays LAST.
6// license_tier: ORIGINAL No hw writes (Rule 26).
7import "nx_syscalls.nx"
8import "nx_gate_verdict.nx"
9import "nx_refintake_lib.nx"
10
11const RG_DIR: *u8 = "/tmp/refintake_gate"
12const RG_CONF: *u8 = "/tmp/refintake_gate/refintake.conf"
13const RG_BADCONF: *u8 = "/tmp/refintake_gate/bad.conf"
14const RG_OUTCAP: i64 = 65536
15const RG_TILDE: i64 = 126
16const RG_CONF_TEXT: *u8 = "subject|alpha|Alpha Fixture|REVIEW|operator-declared\nsource|alpha|page|https://example.test/babe/Alpha|fx_alpha_page.html|-\nsource|alpha|image|https://example.test/pics/Alpha.jpg|fx_alpha_1.jpg|2019-05\nsource|alpha|image|https://example.test/pics/Alpha2.jpg|fx_alpha_2.jpg|-\ntag|alpha|malar_projection|high\nsubject|beta|Beta Fixture|REFUSED|no-consent\nsource|beta|image|https://example.test/pics/Beta.jpg|fx_beta_1.jpg|-\n"
17const RG_BADCONF_TEXT: *u8 = "subject|alpha|Alpha Fixture|REVIEW|operator-declared\ntag|alpha|ancestry|anything\ntag|alpha|canthal_tilt|positive\n"
18// the fixture page spells the quote byte as ~ and rg_quotes rewrites it, because the lexer owns the quote character
19const RG_PAGE_TILDE: *u8 = "<div><a href=~/pics/Alpha Fixture.jpg~ class=img><img src=~/pics/Alpha Fixture_thumb3.jpg~></a><a href=~/pics/Alpha Fixture.jpg~>dup</a><a href=~/user-uploads/Alpha Fixture 2.jpg~>two</a><a href=~/pics/Alpha_thumb.jpg~>thumb</a></div>"
20const RG_RECEIPT: *u8 = "CA roots=167\nFETCH https://example.test/pics/Alpha.jpg\nstatus=200 body_bytes=4242\nPROVENANCE prov|1789584000|https://example.test/pics/Alpha.jpg|knowledge/fetched/fx_alpha_1.jpg|0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef|4242|0\nSAVED knowledge/fetched/fx_alpha_1.jpg (4242 bytes)\n"
21const RG_RECEIPT_NOPROV: *u8 = "CA roots=167\nFETCH https://example.test/pics/Alpha.jpg\nstatus=0 body_bytes=0\n"
22// host rows as the production file spells them (quote as ~); the bing needle carries no quote byte
23const RG_HOSTS_TILDE: *u8 = "# fixture hosts\nhost|babepedia-pics|https://www.babepedia.com/babe/|href=~/pics/|6|~|https://www.babepedia.com|pics\nhost|babepedia-uploads|https://www.babepedia.com/babe/|href=~/user-uploads/|6|~|https://www.babepedia.com|uploads\nhost|bing-images|https://www.bing.com/images/search|murl":"|17|"|-|origin images\nhost|commons-category|https://commons.wikimedia.org/wiki/Category:|href=~/wiki/File:|6|~|https://commons.wikimedia.org|file pages\n"
24// a bing results fragment: three murl origin links (one with a space, one with &, one protocol-relative), a turl thumbnail and a purl page that must NOT be taken
25const RG_BING_PAGE: *u8 = "{"murl":"https://x.test/a b.jpg","turl":"https://th.test/t.jpg","purl":"https://page.test/p"}{"murl":"https://x.test/c.jpg?w=1&h=2"}{"murl":"//cdn.test/d.jpg"}{"murl":"https://x.test/a b.jpg"}"
26const RG_BING_SKIP: i64 = 17
27const RG_BING_EXPECT: i64 = 3
28const RG_IMAGE_CLASSES: i64 = 4
29// the KVS known answer: the licence and player url read off a mirrored thothub page on 2026-09-16, the real url computed by
30// an oracle outside the estate (a Python port of the same public-domain algorithm); the live fetch is the final referee
31const RG_KVS_CODE: *u8 = "$440571814535234"
32const RG_KVS_URL: *u8 = "function/0/https://thothub.to/get_file/47/f88b17bbb9e870b22ca4eaef11836e29c1eebc25d6/1527000/1527540/1527540.mp4/"
33const RG_KVS_REAL: *u8 = "https://thothub.to/get_file/47/e9249ba11b70ebb87e8cb2a6f23e881fc1eebc25d6/1527000/1527540/1527540.mp4/"
34const RG_KVS_HEAD8: *u8 = "55165168"
35const RG_KVS_HEAD_N: i64 = 8
36const RG_KVS_TOKEN_N: i64 = 32
37const RG_KVS_PREFIX_LEN: i64 = 11
38const RG_KVS_HASH_OFF: i64 = 31
39const RG_KVS_PAGE: *u8 = "var flashvars = { video_url: 'function/0/https://h.test/get_file/1/0123456789abcdef0123456789abcdefXX/2/3/4.mp4/', postfix: '.mp4', license_code: '$440571814535234', rnd: '1' };"
40const RG_HIST_N: i64 = 256
41const RG_F_MP4: *u8 = "/tmp/refintake_gate/m.mp4"
42const RG_MP4_BOXLEN: i64 = 24
43const RG_MP4_HEAD: i64 = 12
44const RG_LC_F: i64 = 102
45const RG_LC_T: i64 = 116
46const RG_LC_Y: i64 = 121
47const RG_LC_P: i64 = 112
48const RG_LC_I: i64 = 105
49const RG_LC_S: i64 = 115
50const RG_LC_O: i64 = 111
51const RG_LC_M: i64 = 109
52const RG_F_JPEG: *u8 = "/tmp/refintake_gate/m.jpg"
53const RG_F_PNG: *u8 = "/tmp/refintake_gate/m.png"
54const RG_F_GIF: *u8 = "/tmp/refintake_gate/m.gif"
55const RG_F_WEBP: *u8 = "/tmp/refintake_gate/m.webp"
56const RG_F_HTML: *u8 = "/tmp/refintake_gate/m.html"
57const RG_F_OTHER: *u8 = "/tmp/refintake_gate/m.pdf"
58const RG_F_SHORT: *u8 = "/tmp/refintake_gate/m.short"
59const RG_FF: i64 = 255
60const RG_D8: i64 = 216
61const RG_E0: i64 = 224
62const RG_PNG0: i64 = 137
63const RG_P: i64 = 80
64const RG_N: i64 = 78
65const RG_G: i64 = 71
66
67func rg_write_bytes(path: *u8, b: *u8, n: i64) -> i64 {
68 let fd: i64 = sys_openat_wr(path, RI_MODE644)
69 if fd < 0 { return 0 - 1 }
70 let w: i64 = sys_write(fd, b, n)
71 sys_close(fd)
72 return w
73}
74
75func rg_write(path: *u8, text: *u8) -> i64 {
76 let fd: i64 = sys_openat_wr(path, RI_MODE644)
77 if fd < 0 { return 0 - 1 }
78 let w: i64 = sys_write(fd, text, ri_slen(text))
79 sys_close(fd)
80 return w
81}
82func rg_quotes(s: *u8) -> *u8 {
83 let n: i64 = ri_slen(s)
84 let d: *u8 = sys_mmap(n + 1)
85 var i: i64 = 0
86 while i < n { if s[i] == (RG_TILDE as u8) { d[i] = RI_QUOTE as u8 } else { d[i] = s[i] } i = i + 1 }
87 d[n] = 0 as u8
88 return d
89}
90
91func main(argc: i64, argv: *i64) -> i64 {
92 gv_head("nx_refintake_gate -- reference intake: conf, licence, declared axes, discovery, provenance" as *u8)
93 let ctr: *i64 = gv_ctr()
94 sys_mkdir(RG_DIR, RI_MODE755)
95 let w1: i64 = rg_write(RG_CONF, RG_CONF_TEXT)
96 let w2: i64 = rg_write(RG_BADCONF, RG_BADCONF_TEXT)
97 gv_need("fixture-conf-written" as *u8, (w1 > 0) as i64, ctr)
98 gv_need("fixture-badconf-written" as *u8, (w2 > 0) as i64, ctr)
99 let lenp: *i64 = sys_mmap(RI_I64) as *i64
100 let buf: *u8 = ri_load(RG_CONF, lenp)
101 let n: i64 = lenp[0]
102 gv_check("fixture-conf-reached-the-condition-readable" as *u8, (n > 0) as i64, ctr)
103 let lic: *u8 = sys_mmap(RI_PATHB)
104 let hit: i64 = ri_subject_licence(buf, n, "alpha" as *u8, lic)
105 gv_check("subject-alpha-found" as *u8, (hit == 1) as i64, ctr)
106 gv_check("subject-alpha-licence-is-REVIEW" as *u8, ri_streq(lic, "REVIEW" as *u8), ctr)
107 gv_check("subject-unknown-not-found" as *u8, (ri_subject_licence(buf, n, "gamma" as *u8, lic) == 0) as i64, ctr)
108 let pages: i64 = ri_count_rows(buf, n, "source|" as *u8, "alpha" as *u8, "page" as *u8)
109 let images: i64 = ri_count_rows(buf, n, "source|" as *u8, "alpha" as *u8, "image" as *u8)
110 let all: i64 = ri_count_rows(buf, n, "source|" as *u8, "alpha" as *u8, 0 as *u8)
111 gv_check("alpha-pages-1" as *u8, (pages == 1) as i64, ctr)
112 gv_check("alpha-images-2" as *u8, (images == 2) as i64, ctr)
113 gv_check("alpha-partition-pages-plus-images-equals-all" as *u8, (pages + images == all) as i64, ctr)
114 let kind: *u8 = sys_mmap(RI_PATHB)
115 let url: *u8 = sys_mmap(RI_ROWB)
116 let mirror: *u8 = sys_mmap(RI_PATHB)
117 let date: *u8 = sys_mmap(RI_PATHB)
118 let s1: i64 = ri_source_at(buf, n, "alpha" as *u8, 1, kind, url, mirror, date)
119 gv_check("alpha-source-1-is-image" as *u8, (s1 == 1) as i64 * ri_streq(kind, "image" as *u8), ctr)
120 gv_check("alpha-source-1-url-copied" as *u8, ri_streq(url, "https://example.test/pics/Alpha.jpg" as *u8), ctr)
121 gv_check("alpha-source-1-date-copied" as *u8, ri_streq(date, "2019-05" as *u8), ctr)
122 gv_check("alpha-source-3-absent" as *u8, (ri_source_at(buf, n, "alpha" as *u8, 3, kind, url, mirror, date) == 0) as i64, ctr)
123 gv_check("mirror-allowed-REVIEW-is-beta-usable" as *u8, (ri_mirror_allowed(buf, n, "alpha" as *u8) == RI_OK) as i64, ctr)
124 gv_check("neg-control-mirror-REFUSED-subject-refused" as *u8, (ri_mirror_allowed(buf, n, "beta" as *u8) == RI_E_REFUSED) as i64, ctr)
125 gv_check("neg-control-mirror-undeclared-subject-refused" as *u8, (ri_mirror_allowed(buf, n, "gamma" as *u8) == RI_E_NOSUBJECT) as i64, ctr)
126 let bad: *u8 = sys_mmap(RI_PATHB)
127 gv_check("tags-on-declared-axes-pass" as *u8, (ri_tags_check(buf, n, bad) == 0) as i64, ctr)
128 gv_check("axis-declared-malar_projection" as *u8, ri_axis_declared("malar_projection" as *u8), ctr)
129 gv_check("axis-declared-age_at_photo" as *u8, ri_axis_declared("age_at_photo" as *u8), ctr)
130 gv_check("neg-control-axis-partial-word-not-declared" as *u8, (ri_axis_declared("malar" as *u8) == 0) as i64, ctr)
131 let blenp: *i64 = sys_mmap(RI_I64) as *i64
132 let bbuf: *u8 = ri_load(RG_BADCONF, blenp)
133 let badc: i64 = ri_tags_check(bbuf, blenp[0], bad)
134 gv_check("neg-control-group-label-tag-refused" as *u8, (badc == 1) as i64, ctr)
135 gv_check("neg-control-group-label-named" as *u8, ri_streq(bad, "ancestry" as *u8), ctr)
136 let page: *u8 = rg_quotes(RG_PAGE_TILDE)
137 let out: *u8 = sys_mmap(RG_OUTCAP)
138 let outlen: *i64 = sys_mmap(RI_I64) as *i64
139 outlen[0] = 0
140 let found: i64 = ri_discover(page, ri_slen(page), "https://example.test" as *u8, out, RG_OUTCAP, outlen)
141 gv_check("discover-finds-2-full-size-links" as *u8, (found == 2) as i64, ctr)
142 gv_check("discover-percent-encodes-spaces" as *u8, ri_contains(out, outlen[0], "https://example.test/pics/Alpha%20Fixture.jpg" as *u8), ctr)
143 gv_check("discover-user-uploads-too" as *u8, ri_contains(out, outlen[0], "/user-uploads/Alpha%20Fixture%202.jpg" as *u8), ctr)
144 gv_check("neg-control-discover-skips-thumbnails" as *u8, (ri_contains(out, outlen[0], "_thumb" as *u8) == 0) as i64, ctr)
145 let again: i64 = ri_discover(page, ri_slen(page), "https://example.test" as *u8, out, RG_OUTCAP, outlen)
146 gv_check("discover-second-pass-adds-nothing" as *u8, (again == 0) as i64, ctr)
147 let sha: *u8 = sys_mmap(RI_PATHB)
148 let bytes: i64 = ri_prov_parse(RG_RECEIPT, ri_slen(RG_RECEIPT), sha)
149 gv_check("prov-parse-bytes-4242" as *u8, (bytes == 4242) as i64, ctr)
150 gv_check("prov-parse-sha-64-hex" as *u8, (ri_slen(sha) == RI_SHA_HEX) as i64, ctr)
151 gv_check("neg-control-receipt-without-provenance-refused" as *u8, (ri_prov_parse(RG_RECEIPT_NOPROV, ri_slen(RG_RECEIPT_NOPROV), sha) == RI_E_NOPROV) as i64, ctr)
152 let mn: *u8 = sys_mmap(RI_PATHB)
153 ri_mirror_name("alpha" as *u8, 7, "https://example.test/pics/x.png" as *u8, mn)
154 gv_check("mirror-name-derived-with-png-ext" as *u8, ri_streq(mn, "ri_alpha_7.png" as *u8), ctr)
155 ri_mirror_name("alpha" as *u8, 8, "https://example.test/pics/y.jpg" as *u8, mn)
156 gv_check("mirror-name-derived-with-jpg-ext" as *u8, ri_streq(mn, "ri_alpha_8.jpg" as *u8), ctr)
157 // HOST PATTERNS AS DATA: the bing/commons/babepedia rows, matched by url prefix, applied through ri_discover_pat
158 let hosts: *u8 = rg_quotes(RG_HOSTS_TILDE)
159 let hn: i64 = ri_slen(hosts)
160 let needle: *u8 = sys_mmap(RI_PATHB)
161 let term: *u8 = sys_mmap(RI_PATHB)
162 let base: *u8 = sys_mmap(RI_PATHB)
163 let skipp: *i64 = sys_mmap(RI_I64) as *i64
164 let h0: i64 = ri_host_at(hosts, hn, "https://www.bing.com/images/search?q=alpha&first=1" as *u8, 0, needle, skipp, term, base)
165 gv_check("host-bing-row-matched-by-prefix" as *u8, (h0 == 1) as i64, ctr)
166 gv_check("host-bing-needle-is-murl-quot" as *u8, ri_streq(needle, "murl":"" as *u8), ctr)
167 gv_check("host-bing-skip-17" as *u8, (skipp[0] == RG_BING_SKIP) as i64, ctr)
168 gv_check("host-bing-term-is-quot" as *u8, ri_streq(term, """ as *u8), ctr)
169 gv_check("host-bing-base-is-dash" as *u8, ri_streq(base, "-" as *u8), ctr)
170 gv_check("host-bing-second-row-absent" as *u8, (ri_host_at(hosts, hn, "https://www.bing.com/images/search?q=alpha" as *u8, 1, needle, skipp, term, base) == 0) as i64, ctr)
171 let hb0: i64 = ri_host_at(hosts, hn, "https://www.babepedia.com/babe/Alpha" as *u8, 0, needle, skipp, term, base)
172 let hb1: i64 = ri_host_at(hosts, hn, "https://www.babepedia.com/babe/Alpha" as *u8, 1, needle, skipp, term, base)
173 gv_check("host-babepedia-carries-two-rows" as *u8, (hb0 + hb1 == 2) as i64, ctr)
174 gv_check("host-babepedia-second-row-is-user-uploads" as *u8, ri_contains(needle, ri_slen(needle), "/user-uploads/" as *u8), ctr)
175 gv_check("neg-control-host-unknown-prefix-no-row" as *u8, (ri_host_at(hosts, hn, "https://nobody.test/x" as *u8, 0, needle, skipp, term, base) == 0) as i64, ctr)
176 let bpage: *u8 = RG_BING_PAGE
177 let bout: *u8 = sys_mmap(RG_OUTCAP)
178 let boutlen: *i64 = sys_mmap(RI_I64) as *i64
179 boutlen[0] = 0
180 ri_host_at(hosts, hn, "https://www.bing.com/images/search?q=alpha" as *u8, 0, needle, skipp, term, base)
181 let bfound: i64 = ri_discover_pat(bpage, ri_slen(bpage), needle, skipp[0], term, base, bout, RG_OUTCAP, boutlen)
182 gv_check("bing-discover-finds-3-origin-urls" as *u8, (bfound == RG_BING_EXPECT) as i64, ctr)
183 gv_check("bing-discover-percent-encodes-space" as *u8, ri_contains(bout, boutlen[0], "https://x.test/a%20b.jpg\n" as *u8), ctr)
184 gv_check("bing-discover-decodes-amp" as *u8, ri_contains(bout, boutlen[0], "https://x.test/c.jpg?w=1&h=2\n" as *u8), ctr)
185 gv_check("bing-discover-protocol-relative-gets-https" as *u8, ri_contains(bout, boutlen[0], "https://cdn.test/d.jpg\n" as *u8), ctr)
186 gv_check("neg-control-bing-discover-skips-thumbnail-turl" as *u8, (ri_contains(bout, boutlen[0], "th.test" as *u8) == 0) as i64, ctr)
187 gv_check("neg-control-bing-discover-skips-page-purl" as *u8, (ri_contains(bout, boutlen[0], "page.test" as *u8) == 0) as i64, ctr)
188 // IMAGE CLASS BY MAGIC: a picture is what its first bytes say, never what its url promised
189 let mj: *u8 = sys_mmap(RI_MAGIC_N)
190 mj[0] = RG_FF as u8; mj[1] = RG_D8 as u8; mj[2] = RG_FF as u8; mj[3] = RG_E0 as u8
191 rg_write_bytes(RG_F_JPEG, mj, 4)
192 let mp: *u8 = sys_mmap(RI_MAGIC_N)
193 mp[0] = RG_PNG0 as u8; mp[1] = RG_P as u8; mp[2] = RG_N as u8; mp[3] = RG_G as u8
194 rg_write_bytes(RG_F_PNG, mp, 4)
195 rg_write(RG_F_GIF, "GIF89a fixture" as *u8)
196 rg_write(RG_F_WEBP, "RIFF0000WEBPVP8 " as *u8)
197 rg_write(RG_F_HTML, " <!doctype html><title>Just a moment</title>" as *u8)
198 rg_write(RG_F_OTHER, "%PDF-1.4 not a picture" as *u8)
199 rg_write(RG_F_SHORT, "ab" as *u8)
200 gv_check("magic-jpeg-classified" as *u8, (ri_image_class(RG_F_JPEG) == RI_IMG_JPEG) as i64, ctr)
201 gv_check("magic-png-classified" as *u8, (ri_image_class(RG_F_PNG) == RI_IMG_PNG) as i64, ctr)
202 gv_check("magic-gif-classified" as *u8, (ri_image_class(RG_F_GIF) == RI_IMG_GIF) as i64, ctr)
203 gv_check("magic-webp-classified" as *u8, (ri_image_class(RG_F_WEBP) == RI_IMG_WEBP) as i64, ctr)
204 gv_check("neg-control-html-stub-is-not-an-image" as *u8, (ri_image_class(RG_F_HTML) == RI_IMG_HTML) as i64, ctr)
205 gv_check("neg-control-pdf-body-is-other" as *u8, (ri_image_class(RG_F_OTHER) == RI_IMG_OTHER) as i64, ctr)
206 gv_check("neg-control-two-byte-file-unreadable" as *u8, (ri_image_class(RG_F_SHORT) == RI_IMG_UNREADABLE) as i64, ctr)
207 gv_check("neg-control-absent-file-unreadable" as *u8, (ri_image_class("/tmp/refintake_gate/absent.bin" as *u8) == RI_IMG_UNREADABLE) as i64, ctr)
208 gv_check("is-image-partition-4-of-8-classes" as *u8, (ri_is_image(RI_IMG_JPEG) + ri_is_image(RI_IMG_PNG) + ri_is_image(RI_IMG_GIF) + ri_is_image(RI_IMG_WEBP) + ri_is_image(RI_IMG_HTML) + ri_is_image(RI_IMG_OTHER) + ri_is_image(RI_IMG_UNREADABLE) + ri_is_image(RI_IMG_MP4) == RG_IMAGE_CLASSES) as i64, ctr)
209 gv_check("class-word-html-stub-named" as *u8, ri_streq(ri_class_word(RI_IMG_HTML), "HTML-STUB" as *u8), ctr)
210 // VIDEO BY MAGIC and the KVS player transform (AT24): the known answer was computed by an oracle outside the estate
211 let mm: *u8 = sys_mmap(RI_MAGIC_N)
212 mm[0] = 0 as u8; mm[1] = 0 as u8; mm[2] = 0 as u8; mm[3] = RG_MP4_BOXLEN as u8
213 mm[4] = RG_LC_F as u8; mm[5] = RG_LC_T as u8; mm[6] = RG_LC_Y as u8; mm[7] = RG_LC_P as u8
214 mm[8] = RG_LC_I as u8; mm[9] = RG_LC_S as u8; mm[10] = RG_LC_O as u8; mm[11] = RG_LC_M as u8
215 rg_write_bytes(RG_F_MP4, mm, RG_MP4_HEAD)
216 gv_check("magic-mp4-classified" as *u8, (ri_image_class(RG_F_MP4) == RI_IMG_MP4) as i64, ctr)
217 gv_check("mp4-is-video-not-image" as *u8, ri_is_video(RI_IMG_MP4) * (ri_is_image(RI_IMG_MP4) == 0) as i64, ctr)
218 gv_check("class-word-mp4-named" as *u8, ri_streq(ri_class_word(RI_IMG_MP4), "MP4" as *u8), ctr)
219 let tok: *i64 = sys_mmap(RI_KVS_TOKEN_CAP * RI_I64) as *i64
220 let tn: i64 = ri_kvs_license_token(RG_KVS_CODE, tok, RI_KVS_TOKEN_CAP)
221 gv_check("kvs-token-has-32-entries" as *u8, (tn == RG_KVS_TOKEN_N) as i64, ctr)
222 var tk: i64 = 0
223 var head_ok: i64 = 1
224 var range_ok: i64 = 1
225 while tk < tn {
226 if tok[tk] < 0 { range_ok = 0 }
227 if tok[tk] > 9 { range_ok = 0 }
228 if tk < RG_KVS_HEAD_N { if tok[tk] != (RG_KVS_HEAD8[tk] as i64) - RI_DIGIT0 { head_ok = 0 } }
229 tk = tk + 1
230 }
231 gv_check("kvs-token-head-matches-oracle" as *u8, head_ok * (tn >= RG_KVS_HEAD_N) as i64, ctr)
232 gv_check("kvs-token-entries-are-digits" as *u8, range_ok, ctr)
233 let real: *u8 = sys_mmap(RI_ROWB)
234 let rrc: i64 = ri_kvs_real_url(RG_KVS_URL, RG_KVS_CODE, real)
235 gv_check("kvs-real-url-transformed" as *u8, (rrc == 1) as i64, ctr)
236 gv_check("kvs-real-url-matches-oracle-kat" as *u8, ri_streq(real, RG_KVS_REAL), ctr)
237 gv_check("kvs-real-url-keeps-the-tail" as *u8, ri_contains(real, ri_slen(real), "c1eebc25d6/1527000/1527540/1527540.mp4/" as *u8), ctr)
238 let hin: *i64 = sys_mmap(RG_HIST_N * RI_I64) as *i64
239 let hout: *i64 = sys_mmap(RG_HIST_N * RI_I64) as *i64
240 var hi: i64 = 0
241 while hi < RI_KVS_HASH_LEN {
242 let ci: i64 = RG_KVS_URL[RG_KVS_PREFIX_LEN + RG_KVS_HASH_OFF + hi] as i64
243 let co: i64 = real[RG_KVS_HASH_OFF + hi] as i64
244 hin[ci] = hin[ci] + 1
245 hout[co] = hout[co] + 1
246 hi = hi + 1
247 }
248 var same: i64 = 1
249 hi = 0
250 while hi < RG_HIST_N { if hin[hi] != hout[hi] { same = 0 } hi = hi + 1 }
251 gv_check("kvs-hash-is-a-permutation-of-the-input" as *u8, same, ctr)
252 let pass: *u8 = sys_mmap(RI_ROWB)
253 gv_check("kvs-plain-url-passes-through" as *u8, (ri_kvs_real_url("https://x.test/a.mp4" as *u8, RG_KVS_CODE, pass) == 0) as i64 * ri_streq(pass, "https://x.test/a.mp4" as *u8), ctr)
254 gv_check("neg-control-kvs-short-code-refused" as *u8, (ri_kvs_real_url(RG_KVS_URL, "$12345" as *u8, pass) == RI_KVS_E_CODE) as i64, ctr)
255 gv_check("neg-control-kvs-url-without-hash-refused" as *u8, (ri_kvs_real_url("function/0/https://x.test/a" as *u8, RG_KVS_CODE, pass) == RI_KVS_E_URL) as i64, ctr)
256 let xv: *u8 = sys_mmap(RI_ROWB)
257 let xc: *u8 = sys_mmap(RI_PATHB)
258 let xr: i64 = ri_kvs_extract(RG_KVS_PAGE, ri_slen(RG_KVS_PAGE), xv, xc)
259 gv_check("kvs-extract-finds-both-fields" as *u8, (xr == 1) as i64, ctr)
260 gv_check("kvs-extract-video-url-copied" as *u8, ri_prefix(xv, "function/0/https://h.test/get_file/1/" as *u8), ctr)
261 gv_check("kvs-extract-license-copied" as *u8, ri_streq(xc, RG_KVS_CODE), ctr)
262 gv_check("neg-control-kvs-extract-page-without-player" as *u8, (ri_kvs_extract(RG_PAGE_TILDE, ri_slen(RG_PAGE_TILDE), xv, xc) == 0) as i64, ctr)
263 gv_values_head()
264 gv_kv("kvs_token_n" as *u8, tn)
265 gv_kv("kvs_real_rc" as *u8, rrc)
266 gv_kv("host_rows_bytes" as *u8, hn)
267 gv_kv("bing_discovered" as *u8, bfound)
268 gv_kv("bing_skip" as *u8, skipp[0])
269 gv_kv("fixture_conf_bytes" as *u8, n)
270 gv_kv("alpha_pages" as *u8, pages)
271 gv_kv("alpha_images" as *u8, images)
272 gv_kv("discovered" as *u8, found)
273 gv_kv("prov_bytes" as *u8, bytes)
274 gv_kv("bad_tags" as *u8, badc)
275 return gv_verdict("nx_refintake_gate" as *u8, ctr, "conf parsing, the licence decision (REVIEW beta-usable, REFUSED refused, undeclared refused), the declared-axis refusal named by axis, discovery with dedupe and percent-encoding, and the provenance parse, all on runtime fixtures under /tmp/refintake_gate" as *u8)
276}