code wiki / (root) / nx_mvault_ingest_gate.nx

nx_mvault_ingest_gate.nx source

↩ module page · 124 lines · 4911 B

1// nx_mvault_ingest_gate.nx -- proves orthogonal class x type + all types. 2// 3// Load-bearing: a MIXED source (tumblr, one provenance=real) splits per-item 4// by CONTENT TYPE; and gen-vs-real is independent of type (a gen 3D model, a 5// real audiobook). run-exit == 0 means GREEN. 6 7import "nx_syscalls.nx" 8import "nx_mvault_ingest.nx" 9 10func fill_jpeg(b: *u8) -> i64 { 11 b[0] = 0xFF as u8; b[1] = 0xD8 as u8; b[2] = 0xFF as u8; b[3] = 0xE0 as u8 12 return 4 13} 14func fill_mp4(b: *u8) -> i64 { 15 b[0] = 0 as u8; b[1] = 0 as u8; b[2] = 0 as u8; b[3] = 0x18 as u8 16 b[4] = 0x66 as u8; b[5] = 0x74 as u8; b[6] = 0x79 as u8; b[7] = 0x70 as u8 17 b[8] = 0x69 as u8; b[9] = 0x73 as u8; b[10] = 0x6F as u8; b[11] = 0x6D as u8 18 return 12 19} 20func fill_gif(b: *u8) -> i64 { 21 b[0] = 0x47 as u8; b[1] = 0x49 as u8; b[2] = 0x46 as u8 22 b[3] = 0x38 as u8; b[4] = 0x39 as u8; b[5] = 0x61 as u8 23 return 6 24} 25func fill_png(b: *u8) -> i64 { 26 b[0] = 0x89 as u8; b[1] = 0x50 as u8; b[2] = 0x4E as u8; b[3] = 0x47 as u8 27 b[4] = 0x0D as u8; b[5] = 0x0A as u8; b[6] = 0x1A as u8; b[7] = 0x0A as u8 28 return 8 29} 30func fill_html(b: *u8) -> i64 { 31 b[0] = 0x3C as u8; b[1] = 0x68 as u8; b[2] = 0x74 as u8 32 b[3] = 0x6D as u8; b[4] = 0x6C as u8; b[5] = 0x3E as u8 33 return 6 34} 35func fill_story(b: *u8) -> i64 { 36 var i: i64 = 0 37 while i < 16 { b[i] = 0x61 as u8; i = i + 1 } 38 return 16 39} 40func fill_glb(b: *u8) -> i64 { 41 b[0] = 0x67 as u8; b[1] = 0x6C as u8; b[2] = 0x54 as u8; b[3] = 0x46 as u8 // glTF 42 return 4 43} 44 45func streq(a: *u8, b: *u8) -> i64 { 46 var i: i64 = 0 47 while 1 == 1 { 48 if a[i] != b[i] { return 0 } 49 if a[i] == (0 as u8) { return 1 } 50 i = i + 1 51 } 52 return 0 53} 54 55func main(argc: i64, argv: *i64) -> i64 { 56 var fails: i64 = 0 57 let empty: *u8 = sys_mmap(1) 58 let jb: *u8 = sys_mmap(16) 59 let vb: *u8 = sys_mmap(16) 60 let gb: *u8 = sys_mmap(16) 61 let pb: *u8 = sys_mmap(16) 62 let hb: *u8 = sys_mmap(16) 63 let sb: *u8 = sys_mmap(16) 64 let mb: *u8 = sys_mmap(16) 65 let jn: i64 = fill_jpeg(jb) 66 let vn: i64 = fill_mp4(vb) 67 let gn: i64 = fill_gif(gb) 68 let pn: i64 = fill_png(pb) 69 let hn: i64 = fill_html(hb) 70 let sn: i64 = fill_story(sb) 71 let mn: i64 = fill_glb(mb) 72 73 // T1: tumblr JPEG (real, mixed) -> REAL / IMAGE, and NOT VIDEO 74 if mv_class(MV_PROV_REAL) != MV_CLASS_REAL { fails = fails + 1 } 75 let t1: i64 = mv_type_bytes(MV_HINT_NONE, jb, jn, empty, 0, empty, 0) 76 if t1 != MV_TYPE_IMAGE { fails = fails + 1 } 77 if t1 == MV_TYPE_VIDEO { fails = fails + 1 } 78 79 // T2: tumblr MP4 (same source) -> VIDEO 80 if mv_type_bytes(MV_HINT_NONE, vb, vn, empty, 0, empty, 0) != MV_TYPE_VIDEO { fails = fails + 1 } 81 // T3: tumblr GIF -> GIF 82 if mv_type_bytes(MV_HINT_NONE, gb, gn, empty, 0, empty, 0) != MV_TYPE_GIF { fails = fails + 1 } 83 84 // T4: generated PNG -> GEN / IMAGE 85 if mv_class(MV_PROV_GEN) != MV_CLASS_GEN { fails = fails + 1 } 86 if mv_type_bytes(MV_HINT_NONE, pb, pn, empty, 0, empty, 0) != MV_TYPE_IMAGE { fails = fails + 1 } 87 88 // T5: real (cam) MP4 -> REAL / VIDEO 89 if mv_class(MV_PROV_REAL) != MV_CLASS_REAL { fails = fails + 1 } 90 if mv_type_bytes(MV_HINT_NONE, vb, vn, empty, 0, empty, 0) != MV_TYPE_VIDEO { fails = fails + 1 } 91 92 // T6: text story -> STORY ; T7: html page -> PAGE 93 if mv_type_bytes(MV_HINT_NONE, sb, sn, empty, 0, empty, 0) != MV_TYPE_STORY { fails = fails + 1 } 94 if mv_type_bytes(MV_HINT_NONE, hb, hn, empty, 0, empty, 0) != MV_TYPE_PAGE { fails = fails + 1 } 95 96 // T8: manga hint ; T9: audiobook hint 97 if mv_type_bytes(MV_HINT_MANGA, empty, 0, empty, 0, empty, 0) != MV_TYPE_MANGA { fails = fails + 1 } 98 if mv_type_bytes(MV_HINT_AUDIOBOOK, empty, 0, empty, 0, empty, 0) != MV_TYPE_AUDIOBOOK { fails = fails + 1 } 99 100 // T10: GEN 3D via glTF magic -> GEN / MODEL3D 101 if mv_class(MV_PROV_GEN) != MV_CLASS_GEN { fails = fails + 1 } 102 if mv_type_bytes(MV_HINT_NONE, mb, mn, empty, 0, empty, 0) != MV_TYPE_MODEL3D { fails = fails + 1 } 103 // T11: REAL 3D via hint -> MODEL3D 104 if mv_type_bytes(MV_HINT_MODEL3D, empty, 0, empty, 0, empty, 0) != MV_TYPE_MODEL3D { fails = fails + 1 } 105 106 // T12: MLS classify-at-the-door 107 if mv_level(0) != MV_LVL_TS { fails = fails + 1 } 108 if mv_level(1) != MV_LVL_U { fails = fails + 1 } 109 110 // T13: canonical string mappers (the record field values) 111 let want_mod: *u8 = "model3d" as *u8 112 let want_gen: *u8 = "gen" as *u8 113 let want_ts: *u8 = "TS" as *u8 114 if streq(mv_type_str(MV_TYPE_MODEL3D), want_mod) != 1 { fails = fails + 1 } 115 if streq(mv_class_str(MV_CLASS_GEN), want_gen) != 1 { fails = fails + 1 } 116 if streq(mv_level_str(MV_LVL_TS), want_ts) != 1 { fails = fails + 1 } 117 118 if fails == 0 { 119 sys_write(1, "MVAULT-INGEST-GATE GREEN 21/21\n" as *u8, 31) 120 return 0 121 } 122 sys_write(1, "MVAULT-INGEST-GATE RED\n" as *u8, 23) 123 return 1 124}