]> code.delx.au - pulseaudio/blobdiff - src/tests/asyncq-test.c
channelmap: Add 2.1 surround
[pulseaudio] / src / tests / asyncq-test.c
index 46bac9f42e07b6b3995d5197b7f717b8ed9644ef..22738e1c8f4aa452dcdfe3c05c321b6e48cd1bfa 100644 (file)
@@ -25,6 +25,8 @@
 #include <stdlib.h>
 #include <unistd.h>
 
+#include <check.h>
+
 #include <pulse/util.h>
 #include <pulsecore/asyncq.h>
 #include <pulsecore/thread.h>
@@ -36,12 +38,12 @@ static void producer(void *_q) {
     int i;
 
     for (i = 0; i < 1000; i++) {
-        printf("pushing %i\n", i);
+        pa_log_debug("pushing %i", i);
         pa_asyncq_push(q, PA_UINT_TO_PTR(i+1), 1);
     }
 
-    pa_asyncq_push(q, PA_UINT_TO_PTR(-1), TRUE);
-    printf("pushed end\n");
+    pa_asyncq_push(q, PA_UINT_TO_PTR(-1), true);
+    pa_log_debug("pushed end");
 }
 
 static void consumer(void *_q) {
@@ -52,32 +54,56 @@ static void consumer(void *_q) {
     pa_msleep(1000);
 
     for (i = 0;; i++) {
-        p = pa_asyncq_pop(q, TRUE);
+        p = pa_asyncq_pop(q, true);
 
         if (p == PA_UINT_TO_PTR(-1))
             break;
 
-        pa_assert(p == PA_UINT_TO_PTR(i+1));
+        fail_unless(p == PA_UINT_TO_PTR(i+1));
 
-        printf("popped %i\n", i);
+        pa_log_debug("popped %i", i);
     }
 
-    printf("popped end\n");
+    pa_log_debug("popped end");
 }
 
-int main(int argc, char *argv[]) {
+START_TEST (asyncq_test) {
     pa_asyncq *q;
     pa_thread *t1, *t2;
 
-    pa_assert_se(q = pa_asyncq_new(0));
+    if (!getenv("MAKE_CHECK"))
+        pa_log_set_level(PA_LOG_DEBUG);
+
+    q = pa_asyncq_new(0);
+    fail_unless(q != NULL);
 
-    pa_assert_se(t1 = pa_thread_new("producer", producer, q));
-    pa_assert_se(t2 = pa_thread_new("consumer", consumer, q));
+    t1 = pa_thread_new("producer", producer, q);
+    fail_unless(t1 != NULL);
+    t2 = pa_thread_new("consumer", consumer, q);
+    fail_unless(t2 != NULL);
 
     pa_thread_free(t1);
     pa_thread_free(t2);
 
     pa_asyncq_free(q, NULL);
+}
+END_TEST
 
-    return 0;
+int main(int argc, char *argv[]) {
+    int failed = 0;
+    Suite *s;
+    TCase *tc;
+    SRunner *sr;
+
+    s = suite_create("Async Queue");
+    tc = tcase_create("asyncq");
+    tcase_add_test(tc, asyncq_test);
+    suite_add_tcase(s, tc);
+
+    sr = srunner_create(s);
+    srunner_run_all(sr, CK_NORMAL);
+    failed = srunner_ntests_failed(sr);
+    srunner_free(sr);
+
+    return (failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
 }