From 3f65e7bc3386d1a761fc33683c005181184fd8e4 Mon Sep 17 00:00:00 2001
From: Timo Dritschler <timo.dritschler@kit.edu>
Date: Mon, 9 Mar 2015 16:42:34 +0100
Subject: Added kiro-test-partial tool for kiro_sync_partial testing Changed
 KiroSbSyncCallbacks to pass generic void* userdata instead of KiroSb*

---
 test/CMakeLists.txt |  2 ++
 test/test-partial.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 test/test-server.c  |  1 +
 3 files changed, 51 insertions(+)
 create mode 100644 test/test-partial.c

(limited to 'test')

diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 35b0531..4ae047b 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -18,6 +18,8 @@ add_executable(kiro-test-bandwidth test-client-bandwidth.c)
 target_link_libraries(kiro-test-bandwidth kiro gobject-2.0 glib-2.0)
 add_executable(kiro-server test-server.c)
 target_link_libraries(kiro-server kiro gobject-2.0 glib-2.0)
+add_executable(kiro-test-partial test-partial.c)
+target_link_libraries(kiro-test-partial kiro gobject-2.0 glib-2.0)
 
 install(TARGETS kiro-test-bandwidth kiro-test-latency kiro-server
     RUNTIME DESTINATION ${KIRO_BINDIR})
diff --git a/test/test-partial.c b/test/test-partial.c
new file mode 100644
index 0000000..62b91ad
--- /dev/null
+++ b/test/test-partial.c
@@ -0,0 +1,48 @@
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include "kiro-trb.h"
+#include "kiro-sb.h"
+
+
+int count = 0;
+
+
+KiroContinueFlag
+callback (KiroSb *sb) {
+    (void)sb;
+    g_message ("Got new element");
+    count++;
+    return KIRO_CALLBACK_CONTINUE;
+}
+
+int 
+main ( int argc, char *argv[] )
+{
+    if (argc < 3) {
+        printf ("Not enough aruments. Usage: kiro-test-bandwidth <address> <port>\n");
+        return -1;
+    }
+
+
+    KiroSb *ksb = kiro_sb_new ();
+    kiro_sb_clone (ksb, argv[1], argv[2]);
+    unsigned long int callback_id = kiro_sb_add_sync_callback (ksb, (KiroSbSyncCallbackFunc)callback, ksb);
+
+    while (count < 3) {}
+    kiro_sb_remove_sync_callback (ksb, callback_id);
+
+    while (count < 6) {
+        kiro_sb_get_data_blocking (ksb);
+        g_message ("Got new element");
+        count++;
+    }
+
+    kiro_sb_free (ksb);
+
+    return 0;
+}
+
+
+
diff --git a/test/test-server.c b/test/test-server.c
index 87ff5d0..7d34384 100644
--- a/test/test-server.c
+++ b/test/test-server.c
@@ -178,6 +178,7 @@ main (void)
     gchar *buffer = NULL;
 
     while (1) {
+        sleep (1);
         buffer = kiro_trb_dma_push (rb);
         print_current_frame (buffer, frame, 512, 512, rand);
         frame++;
-- 
cgit v1.2.3