static void alert_recv(void) { int ret; if (palert->handler == K_ALERT_IGNORE || palert->handler == alert_handler0){ if (palert->handler == alert_handler0) assert_equal(handler_executed, PENDING_MAX, NULL); ret = k_alert_recv(palert, TIMEOUT); assert_equal(ret, -EAGAIN, NULL); } if (palert->handler == K_ALERT_DEFAULT || palert->handler == alert_handler1){ if (palert->handler == alert_handler1) assert_equal(handler_executed, PENDING_MAX, NULL); for (int i = 0; i < PENDING_MAX; i++) { /**TESTPOINT: alert recv*/ ret = k_alert_recv(palert, K_NO_WAIT); assert_false(ret, NULL); } /**TESTPOINT: alert recv -EAGAIN*/ ret = k_alert_recv(palert, TIMEOUT); assert_equal(ret, -EAGAIN, NULL); /**TESTPOINT: alert recv -EBUSY*/ ret = k_alert_recv(palert, K_NO_WAIT); assert_equal(ret, -EBUSY, NULL); } }
/** * * @brief The test main function * * @return 0 on success */ int int_to_thread_evt(void) { PRINT_FORMAT(" 2 - Measure time from ISR to executing a different thread" " (rescheduled)"); TICK_SYNCH(); k_sem_give(&INTSEMA); k_alert_recv(&EVENT0, K_FOREVER); timestamp = TIME_STAMP_DELTA_GET(timestamp); PRINT_FORMAT(" switch time is %u tcs = %u nsec", timestamp, SYS_CLOCK_HW_CYCLES_TO_NS(timestamp)); return 0; }