1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
#include <stdio.h>
#include <string.h>
#include <glib.h>
#include "test.h"
RESULT
test_queue_push ()
{
GQueue *queue = g_queue_new ();
g_queue_push_head (queue, "foo");
g_queue_push_head (queue, "bar");
g_queue_push_head (queue, "baz");
if (queue->length != 3)
return FAILED ("push failed");
g_queue_free (queue);
return OK;
}
RESULT
test_queue_pop ()
{
GQueue *queue = g_queue_new ();
gpointer data;
g_queue_push_head (queue, "foo");
g_queue_push_head (queue, "bar");
g_queue_push_head (queue, "baz");
data = g_queue_pop_head (queue);
if (strcmp ("baz", data))
return FAILED ("expect baz.");
data = g_queue_pop_head (queue);
if (strcmp ("bar", data))
return FAILED ("expect bar.");
data = g_queue_pop_head (queue);
if (strcmp ("foo", data))
return FAILED ("expect foo.");
if (g_queue_is_empty (queue) == FALSE)
return FAILED ("expect is_empty.");
if (queue->length != 0)
return FAILED ("expect 0 length .");
g_queue_free (queue);
return OK;
}
RESULT
test_queue_new ()
{
GQueue *queue = g_queue_new ();
if (queue->length != 0)
return FAILED ("expect length == 0");
if (queue->head != NULL)
return FAILED ("expect head == NULL");
if (queue->tail != NULL)
return FAILED ("expect tail == NULL");
g_queue_free (queue);
return OK;
}
RESULT
test_queue_is_empty ()
{
GQueue *queue = g_queue_new ();
if (g_queue_is_empty (queue) == FALSE)
return FAILED ("new queue should be empty");
g_queue_push_head (queue, "foo");
if (g_queue_is_empty (queue) == TRUE)
return FAILED ("expected TRUE");
g_queue_free (queue);
return OK;
}
static Test queue_tests [] = {
{ "push", test_queue_push},
{ "pop", test_queue_pop},
{ "new", test_queue_new},
{"is_empty", test_queue_is_empty},
{NULL, NULL}
};
DEFINE_TEST_GROUP_INIT(queue_tests_init, queue_tests)
|