tests: kernel: added test case k_fifo_is_empty

tests/kernel/fifo/test_fifo_api:
added test case to cover k_fifo_is_empty.

Jira: ZEP-1242

Change-Id: I9559df8661dbcd7d4885fa2db928120e945b3ae1
Signed-off-by: Sharron LIU <sharron.liu@intel.com>
This commit is contained in:
Sharron LIU 2017-02-13 17:17:17 +08:00 committed by Anas Nashif
commit 1087f0c29b
2 changed files with 37 additions and 1 deletions

View file

@ -17,6 +17,8 @@ extern void test_fifo_thread2isr(void);
extern void test_fifo_isr2thread(void);
extern void test_fifo_get_fail(void);
extern void test_fifo_loop(void);
extern void test_fifo_is_empty_thread(void);
extern void test_fifo_is_empty_isr(void);
/*test case main entry*/
void test_main(void *p1, void *p2, void *p3)
@ -26,6 +28,8 @@ void test_main(void *p1, void *p2, void *p3)
ztest_unit_test(test_fifo_thread2isr),
ztest_unit_test(test_fifo_isr2thread),
ztest_unit_test(test_fifo_get_fail),
ztest_unit_test(test_fifo_loop));
ztest_unit_test(test_fifo_loop),
ztest_unit_test(test_fifo_is_empty_thread),
ztest_unit_test(test_fifo_is_empty_isr));
ztest_run_test_suite(test_fifo_api);
}

View file

@ -80,11 +80,13 @@ static void tfifo_get(struct k_fifo *pfifo)
static void tIsr_entry_put(void *p)
{
tfifo_put((struct k_fifo *)p);
assert_false(k_fifo_is_empty((struct k_fifo *)p), NULL);
}
static void tIsr_entry_get(void *p)
{
tfifo_get((struct k_fifo *)p);
assert_true(k_fifo_is_empty((struct k_fifo *)p), NULL);
}
static void tThread_entry(void *p1, void *p2, void *p3)
@ -121,6 +123,19 @@ static void tfifo_isr_thread(struct k_fifo *pfifo)
irq_offload(tIsr_entry_get, pfifo);
}
static void tfifo_is_empty(void *p)
{
struct k_fifo *pfifo = (struct k_fifo *)p;
tfifo_put(&fifo);
/**TESTPOINT: return false when data available*/
assert_false(k_fifo_is_empty(pfifo), NULL);
tfifo_get(&fifo);
/**TESTPOINT: return true with data unavailable*/
assert_true(k_fifo_is_empty(pfifo), NULL);
}
/*test cases*/
void test_fifo_thread2thread(void)
{
@ -151,3 +166,20 @@ void test_fifo_isr2thread(void)
/**TESTPOINT: test K_FIFO_DEFINE fifo*/
tfifo_isr_thread(&kfifo);
}
void test_fifo_is_empty_thread(void)
{
k_fifo_init(&fifo);
/**TESTPOINT: k_fifo_is_empty after init*/
assert_true(k_fifo_is_empty(&fifo), NULL);
/**TESTPONT: check fifo is empty from thread*/
tfifo_is_empty(&fifo);
}
void test_fifo_is_empty_isr(void)
{
k_fifo_init(&fifo);
/**TESTPOINT: check fifo is empty from isr*/
irq_offload(tfifo_is_empty, &fifo);
}