From f4b1d81dcf3582ead6d6382e7628acbc0240c4d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nils=20O=2E=20Sel=C3=A5sdal?= Date: Thu, 3 Oct 2013 23:42:12 +0200 Subject: [PATCH] test uc_thread_queue_clear --- test/test_threadqueue.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/test/test_threadqueue.c b/test/test_threadqueue.c index c0f0cb3..0bac993 100644 --- a/test/test_threadqueue.c +++ b/test/test_threadqueue.c @@ -313,6 +313,35 @@ START_TEST (test_thread_queue_tryadd_no_timeout_0_100) END_TEST +void clear_cb(struct uc_threadmsg *msg, void *cookie) +{ + int *i = cookie; + (void)msg; + ++*i; +} + +START_TEST (test_thread_queue_clear) + + struct uc_threadqueue queue; + int i; + struct thr_msg msg[3]; + memset(msg, 0, sizeof msg); + int cnt = 0; + + fail_if(uc_thread_queue_init(&queue, 3) != 0); + for (i = 0; i < 3; i++) { + fail_if(uc_thread_queue_add(&queue, &msg[i].msg) != 0); + } + + fail_if(uc_thread_queue_length(&queue) != 3); + fail_if(uc_thread_queue_clear(&queue, clear_cb, &cnt)); + ck_assert_int_eq(cnt , 3); + fail_if(uc_thread_queue_length(&queue) != 0); + + fail_if(uc_thread_queue_destroy(&queue, NULL, NULL) != 0); + +END_TEST + Suite *threadqueue_suite(void) { @@ -331,6 +360,7 @@ Suite *threadqueue_suite(void) tcase_add_test(tc1, test_thread_queue_tryadd_timeout_0_0); tcase_add_test(tc1, test_thread_queue_tryadd_timeout_0_100); tcase_add_test(tc1, test_thread_queue_tryadd_no_timeout_0_100); + tcase_add_test(tc1, test_thread_queue_clear); //lets start with this: tcase_set_timeout(tc1, 15);