code wiki / (root) / nx_hunt_evidence_test.nx

nx_hunt_evidence_test.nx source

↩ module page · 46 lines · 2011 B

1// nx_hunt_evidence_test.nx -- smoke for nx_hunt_evidence. 2 3import "nx_syscalls.nx" 4import "nx_hunter.nx" 5import "nx_hunt_evidence.nx" 6 7func main() -> i64 { 8 if NX_EK_N_KINDS != 5 { return 1 } 9 if nx_ek_is_valid(NX_EK_COMMIT_HASH) != 1 { return 2 } 10 if nx_ek_is_valid(5) != 0 { return 3 } 11 12 let l: *NxHuntEvidenceLog = nx_hunt_evidence_log_new(16) 13 if l.count != 0 { return 4 } 14 15 // Record evidence for target 100 (bug-fix commit) 16 nx_hunt_evidence_record(l, 1, 100, NX_EK_COMMIT_HASH, 0xc0ffee, NX_KP_BUG_FIXED, 1000) 17 nx_hunt_evidence_record(l, 2, 100, NX_EK_TEST_FIXTURE, 0xfeed, NX_KP_BUG_FIXED, 1100) 18 19 // And target 200 (EXCEED-axis benchmark) 20 nx_hunt_evidence_record(l, 3, 200, NX_EK_BENCHMARK_OUTPUT, 0xbeef, NX_KP_EXCEED_AXIS_SHIPPED, 2000) 21 nx_hunt_evidence_record(l, 4, 200, NX_EK_FORENSIC_RECORD, 0xface, NX_KP_EXCEED_AXIS_SHIPPED, 2100) 22 23 if l.count != 4 { return 5 } 24 if nx_hunt_evidence_count(l) != 4 { return 6 } 25 26 // Count per target 27 if nx_hunt_evidence_count_for_target(l, 100) != 2 { return 7 } 28 if nx_hunt_evidence_count_for_target(l, 200) != 2 { return 8 } 29 if nx_hunt_evidence_count_for_target(l, 999) != 0 { return 9 } 30 31 // Count per kind 32 if nx_hunt_evidence_count_by_kind(l, NX_EK_COMMIT_HASH) != 1 { return 10 } 33 if nx_hunt_evidence_count_by_kind(l, NX_EK_BENCHMARK_OUTPUT) != 1 { return 11 } 34 if nx_hunt_evidence_count_by_kind(l, NX_EK_CARDINAL_TEXT) != 0 { return 12 } 35 36 // Bad kind rejected 37 if nx_hunt_evidence_record(l, 5, 300, 99, 0, NX_KP_BUG_FIXED, 3000) != NX_HEV_ERR_NOT_FOUND { return 13 } 38 39 // FULL when at capacity 40 let small: *NxHuntEvidenceLog = nx_hunt_evidence_log_new(2) 41 nx_hunt_evidence_record(small, 1, 1, NX_EK_COMMIT_HASH, 0xaa, NX_KP_BUG_FIXED, 1000) 42 nx_hunt_evidence_record(small, 2, 2, NX_EK_COMMIT_HASH, 0xbb, NX_KP_BUG_FIXED, 1000) 43 if nx_hunt_evidence_record(small, 3, 3, NX_EK_COMMIT_HASH, 0xcc, NX_KP_BUG_FIXED, 1000) != NX_HEV_ERR_FULL { return 14 } 44 45 return 0 46}