diff --git a/include/core/containers/queue.h b/include/core/containers/queue.h new file mode 100644 index 00000000..002e6147 --- /dev/null +++ b/include/core/containers/queue.h @@ -0,0 +1,24 @@ +/* + * Copyright 2015 (c) Anna Schumaker. + */ +#ifndef OCARINA_CORE_CONTAINERS_QUEUE_H +#define OCARINA_CORE_CONTAINERS_QUEUE_H + +#include + +struct _queue { + GQueue _queue; +}; + +#define _Q_INIT() \ + { \ + ._queue = G_QUEUE_INIT, \ + } + +/* Called to initialize a queue. */ +static inline void _q_init(struct _queue *queue) +{ + g_queue_init(&queue->_queue); +} + +#endif /* OCARINA_CORE_CONTAINERS_QUEUE_H */ diff --git a/tests/core/containers/Sconscript b/tests/core/containers/Sconscript index 61a7d16a..cd05f177 100644 --- a/tests/core/containers/Sconscript +++ b/tests/core/containers/Sconscript @@ -14,5 +14,6 @@ def ContainerTest(name, source): res = [ ContainerTest("set", "set.c") ] res = [ ContainerTest("database", "database.c") ] res += [ ContainerTest("index", "index.c") ] +res += [ ContainerTest("queue", "queue.c") ] Return("res") diff --git a/tests/core/containers/queue.c b/tests/core/containers/queue.c new file mode 100644 index 00000000..9733e8ed --- /dev/null +++ b/tests/core/containers/queue.c @@ -0,0 +1,20 @@ +/* + * Copyright 2015 (c) Anna Schumaker. + */ +#include +#include + +static void test_init() +{ + 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); + +} + +DECLARE_UNIT_TESTS( + UNIT_TEST("Queue Initialization", test_init), +);