code wiki / (root) / nx_hunt_journal_test.nx

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}