static void test_wrong_key_rejected(void)
static void test_un_arm_cancels_pending_arm(void)
static void test_tick_expires_pending(void)
static void test_rejected_stale_cancels_pending(void)
static void test_other_frame_types_ignored(void)
static void test_single_arm_does_not_arm(void)
static void test_time_counter_wraps(void)
static void test_non_consecutive_sequence_does_not_arm(void)
static Frame good_arm(uint16_t seq)
static void test_wrong_target_rejected(void)
static void test_two_consecutive_arms_in_window_arm(void)
static void test_un_arm_always_honored(void)
static void test_duplicate_sequence_is_stale(void)
static void test_sequence_wraps(void)
static Frame arm_frame(uint16_t seq, uint32_t key, uint32_t inv, uint8_t target)
static Frame simple(FrameType type, uint16_t seq)
static void test_other_frames_do_not_cancel_pending(void)
static void test_rejected_target_cancels_pending(void)
static void test_replayed_old_arms_are_stale(void)
static void test_un_arm_honored_even_when_stale(void)
static void test_ground_reboot_rejects_arm_until_rocket_reboots(void)
static void test_wrong_inverse_rejected(void)
static void test_confirm_exactly_at_window_edge_arms(void)
static ArmAction feed(const Frame &f, uint32_t t)
static void test_rejected_key_cancels_pending(void)
static void test_confirm_after_window_does_not_arm(void)