nx_hunt_journal_test.nx source
↩ module page · 47 lines · 1553 B
1// nx_hunt_journal_test.nx -- smoke for nx_hunt_journal.
2
3import "nx_syscalls.nx"
4import "nx_hunter.nx"
5import "nx_hunt_journal.nx"
6
7func main() -> i64 {
8 // 1: kind enum
9 if NX_HEV_N_KINDS != 4 { return 1 }
10 if nx_hev_kind_is_valid(NX_HEV_KILLED) != 1 { return 2 }
11 if nx_hev_kind_is_valid(4) != 0 { return 3 }
12
13 // 2: empty journal
14 let j: *NxHuntJournalRing = nx_hunt_journal_new(16)
15 if j.capacity != 16 { return 4 }
16 if nx_hunt_journal_event_count(j) != 0 { return 5 }
17
18 // 3: log scout + engage + kill
19 nx_hunt_journal_log(j, 1000, 100, NX_HEV_SCOUTED,
20 NX_HK_BUG_CLASS, NX_KP_NONE)
21 nx_hunt_journal_log(j, 1100, 100, NX_HEV_ENGAGED,
22 NX_HK_BUG_CLASS, NX_KP_NONE)
23 nx_hunt_journal_log(j, 1200, 100, NX_HEV_KILLED,
24 NX_HK_BUG_CLASS, NX_KP_BUG_FIXED)
25 if nx_hunt_journal_event_count(j) != 3 { return 6 }
26
27 // 4: count by event-kind
28 if nx_hunt_journal_count_kind(j, NX_HEV_SCOUTED) != 1 { return 7 }
29 if nx_hunt_journal_count_kind(j, NX_HEV_KILLED) != 1 { return 8 }
30 if nx_hunt_journal_count_kind(j, NX_HEV_ARCHIVED) != 0 { return 9 }
31
32 // 5: bad event-kind refused
33 if nx_hunt_journal_log(j, 2000, 200, 99,
34 NX_HK_THREAT_ACTOR, NX_KP_NONE) != 1 { return 10 }
35
36 // 6: ring wraps cleanly at capacity
37 var i: nx_int = 0
38 while i < 20 {
39 nx_hunt_journal_log(j, 3000 + i, 300, NX_HEV_SCOUTED,
40 NX_HK_BUG_CLASS, NX_KP_NONE)
41 i = i + 1
42 }
43 if j.count != 23 { return 11 }
44 if j.head >= j.capacity { return 12 }
45
46 return 0
47}