Example #1
0
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);
	}
}
Example #2
0
/**
 *
 * @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;
}