Linux Audio

Check our new training course

Loading...
/*
 * Copyright (c) 2016 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @addtogroup t_stack_api
 * @{
 * @defgroup t_stack_fail_pop test_stack_fail_pop
 * @brief TestPurpose: verify zephyr stack pop when empty
 * - API coverage
 *   -# k_stack_pop
 * @}
 */

#include <ztest.h>
#include <irq_offload.h>

#define TIMEOUT 100
#define STACK_LEN 2

static u32_t data[STACK_LEN];

/*test cases*/
void test_stack_pop_fail(void *p1, void *p2, void *p3)
{
	struct k_stack stack;
	u32_t rx_data;

	k_stack_init(&stack, data, STACK_LEN);
	/**TESTPOINT: stack pop returns -EBUSY*/
	zassert_equal(k_stack_pop(&stack, &rx_data, K_NO_WAIT), -EBUSY, NULL);
	/**TESTPOINT: stack pop returns -EAGAIN*/
	zassert_equal(k_stack_pop(&stack, &rx_data, TIMEOUT), -EAGAIN, NULL);
}