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}