code wiki / (root) / nx_emit_journal_test.nx

nx_emit_journal_test.nx source

↩ module page · 39 lines · 1443 B

1// nx_emit_journal_test.nx -- smoke for the append-only audit journal. 2 3import "nx_syscalls.nx" 4import "nx_tier.nx" 5import "nx_emit_journal.nx" 6 7func main() -> nx_exit { 8 let path: *u8 = "/tmp/nx_journal_t1.jsonl" as *u8 9 10 let j: *NxJournal = nx_journal_open(path) 11 if j == (0 as *NxJournal) { return 11 } 12 if nx_journal_n_appended(j) != 0 { return 12 } 13 14 // 3 emits with different license classes 15 let r1: nx_int = nx_journal_emit(j, "nx_factorial" as *u8, "euclid_elements" as *u8, 2) // pd_classical 16 if r1 != NX_JOURNAL_OK { return 21 } 17 let r2: nx_int = nx_journal_emit(j, "nx_fnv1a_32" as *u8, "fowler_noll_vo_1991" as *u8, 3) // pd_explicit 18 if r2 != NX_JOURNAL_OK { return 22 } 19 let r3: nx_int = nx_journal_emit(j, "nx_adler32" as *u8, "rfc1950_adler32" as *u8, 4) // pd_govdoc 20 if r3 != NX_JOURNAL_OK { return 23 } 21 if nx_journal_n_appended(j) != 3 { return 24 } 22 23 // 1 refused event 24 let r4: nx_int = nx_journal_refuse(j, "nx_pow_dite" as *u8, "mathlib4" as *u8, 1) // forbidden 25 if r4 != NX_JOURNAL_OK { return 31 } 26 if nx_journal_n_appended(j) != 4 { return 32 } 27 28 nx_journal_close(j) 29 30 // Closed journal refuses writes 31 let r5: nx_int = nx_journal_emit(j, "nx_x" as *u8, "y" as *u8, 2) 32 if r5 != NX_JOURNAL_CLOSED { return 41 } 33 34 // Double-close is safe 35 let cc: nx_int = nx_journal_close(j) 36 if cc != NX_JOURNAL_OK { return 51 } 37 38 return 0 39}