From 29179fc15a1d085299601267fe0bc9c6be5dfa1c Mon Sep 17 00:00:00 2001 From: sanine Date: Mon, 4 Apr 2022 13:17:30 -0500 Subject: implement heterogenous queue test --- tests/main.c | 1 + tests/mock_queue.c | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/tests/main.c b/tests/main.c index f8e272f..062e5f8 100644 --- a/tests/main.c +++ b/tests/main.c @@ -22,6 +22,7 @@ int main() run_test(test_assert_int_not_equal); run_test(test_mock_enqueue_dequeue_int); + run_test(test_mock_enqueue_dequeue_heterogenous); return 0; } diff --git a/tests/mock_queue.c b/tests/mock_queue.c index e9527b2..269d462 100644 --- a/tests/mock_queue.c +++ b/tests/mock_queue.c @@ -1,5 +1,5 @@ #include -#include +#include #include "lily-test.h" #include "tests.h" @@ -35,3 +35,27 @@ const char* test_mock_enqueue_dequeue_int() { return 0; } + + +const char* test_mock_enqueue_dequeue_heterogenous() +{ + lily_mock_queue_t *q = lily_queue_create(); + + lily_enqueue(q, int, 2); + lily_enqueue(q, lily_mock_queue_t *, q); + lily_enqueue(q, const char *, "hello, world!"); + + int n; + lily_dequeue(q, int, &n); + if (n != 2) return "dequeued incorrect int value"; + lily_mock_queue_t *p; + lily_dequeue(q, lily_mock_queue_t *, &p); + if (p != q) return "dequeued incorrect pointer value"; + const char *str; + lily_dequeue(q, const char *, &str); + if (strcmp(str, "hello, world!") != 0) return "dequeued incorrect string value"; + + lily_queue_destroy(q); + + return 0; +} -- cgit v1.2.1