Welcome to mirror list, hosted at ThFree Co, Russian Federation.

queue.c « test « eglib - github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 2855e19d20f4169923bdfb7cf88bb2c4127d5682 (plain)
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)