diff --git a/include/core/containers/queue.h b/include/core/containers/queue.h index 002e6147..929f1efb 100644 --- a/include/core/containers/queue.h +++ b/include/core/containers/queue.h @@ -21,4 +21,10 @@ static inline void _q_init(struct _queue *queue) g_queue_init(&queue->_queue); } +/* Called to find the size of a queue. */ +static inline guint _q_size(struct _queue *queue) +{ + return g_queue_get_length(&queue->_queue); +} + #endif /* OCARINA_CORE_CONTAINERS_QUEUE_H */ diff --git a/tests/core/containers/queue.c b/tests/core/containers/queue.c index 9733e8ed..9d7075c6 100644 --- a/tests/core/containers/queue.c +++ b/tests/core/containers/queue.c @@ -4,17 +4,18 @@ #include #include -static void test_init() +static void test_stress(unsigned int N) { struct _queue queue = _Q_INIT(); /* _q_init() */ test_equal((void *)queue._queue.head, NULL); test_equal((void *)queue._queue.tail, NULL); - test_equal(queue._queue.length, 0); - + test_equal(_q_size(&queue), 0); } +static void test_basics() { test_stress(10); } + DECLARE_UNIT_TESTS( - UNIT_TEST("Queue Initialization", test_init), + UNIT_TEST("Queue Basics", test_basics), );