summaryrefslogtreecommitdiffstats
path: root/winpr/libwinpr/utils/test/TestQueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'winpr/libwinpr/utils/test/TestQueue.c')
-rw-r--r--winpr/libwinpr/utils/test/TestQueue.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/winpr/libwinpr/utils/test/TestQueue.c b/winpr/libwinpr/utils/test/TestQueue.c
new file mode 100644
index 0000000..9c65af5
--- /dev/null
+++ b/winpr/libwinpr/utils/test/TestQueue.c
@@ -0,0 +1,58 @@
+
+#include <winpr/crt.h>
+#include <winpr/tchar.h>
+#include <winpr/collections.h>
+
+int TestQueue(int argc, char* argv[])
+{
+ size_t item = 0;
+ size_t count = 0;
+ wQueue* queue = NULL;
+
+ WINPR_UNUSED(argc);
+ WINPR_UNUSED(argv);
+
+ queue = Queue_New(TRUE, -1, -1);
+ if (!queue)
+ return -1;
+
+ for (size_t index = 1; index <= 10; index++)
+ {
+ Queue_Enqueue(queue, (void*)(size_t)index);
+ }
+
+ count = Queue_Count(queue);
+ printf("queue count: %" PRIuz "\n", count);
+
+ for (size_t index = 1; index <= 10; index++)
+ {
+ item = (size_t)Queue_Dequeue(queue);
+
+ if (item != index)
+ return -1;
+ }
+
+ count = Queue_Count(queue);
+ printf("queue count: %" PRIuz "\n", count);
+
+ Queue_Enqueue(queue, (void*)(size_t)1);
+ Queue_Enqueue(queue, (void*)(size_t)2);
+ Queue_Enqueue(queue, (void*)(size_t)3);
+
+ Queue_Dequeue(queue);
+ Queue_Dequeue(queue);
+
+ Queue_Enqueue(queue, (void*)(size_t)4);
+ Queue_Enqueue(queue, (void*)(size_t)5);
+ Queue_Enqueue(queue, (void*)(size_t)6);
+
+ Queue_Dequeue(queue);
+ Queue_Dequeue(queue);
+ Queue_Dequeue(queue);
+ Queue_Dequeue(queue);
+
+ Queue_Clear(queue);
+ Queue_Free(queue);
+
+ return 0;
+}