-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtqueue_test.c
More file actions
108 lines (88 loc) · 1.88 KB
/
tqueue_test.c
File metadata and controls
108 lines (88 loc) · 1.88 KB
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
100
101
102
103
104
105
106
107
108
#include <stdio.h>
#include <string.h>
#include "tqueue.c"
#define RED "\033[31m" /* Red */
#define GREEN "\033[32m" /* Green */
#define RESET "\033[0m" /* Reset */
int nTest = 1;
void assertEqualsPtr(void* exp, void *got);
void assertNotNullPtr(void* ptr);
void assertNotPtr(void* ptr);
void assertInt(int exp, int got);
void testEnqueue() {
TQueue q = NULL;
int a = 1;
int b = 2;
assertInt(0, tqueue_size(q));
tqueue_enqueue(&q, (void *) &a);
assertInt(1, tqueue_size(q));
tqueue_enqueue(&q, (void *) &b);
TQueue q2 = tqueue_at_offset(q, 0);
int *v = (int *) (q2->data);
assertEqualsPtr(q, q2);
assertEqualsPtr(&a, v);
assertInt(2, tqueue_size(q));
void *data = tqueue_pop(&q);
int *dataD = (int *) data;
assertEqualsPtr(&a, data);
assertInt(a, *dataD);
data = tqueue_pop(&q);
dataD = (int *) data;
assertEqualsPtr(&b, data);
assertInt(b, *dataD);
assertInt(0, tqueue_size(q));
}
void assertEqualsPtr(void* exp, void *got)
{
if (exp != got)
{
char* str;
sprintf(str, "Expected %p \t Got %p", exp, got);
printf("%sFAILED %d \t %s", RED, nTest, str);
}
else {
printf("%sSUCCESS %d", GREEN, nTest);
}
nTest++;
printf("%s\n", RESET);
}
void assertInt(int exp, int got)
{
if (exp != got)
{
char* str;
sprintf(str, "Expected %p \t Got %p", exp, got);
printf("%sFAILED %d \t %s", RED, nTest, str);
}
else {
printf("%sSUCCESS %d %s", GREEN, nTest, __func__);
}
nTest++;
printf("%s\n", RESET);
}
void assertNotNullPtr(void* ptr)
{
if (ptr != NULL)
{
printf("%sSUCCESS %d", GREEN, nTest);
}
else
{
printf("%sFAILED %d \t ptr not NULL", RED, nTest);
}
nTest++;
printf("%s\n", RESET);
}
void assertNullPtr(void* ptr)
{
if (ptr == NULL)
{
printf("%sSUCCESS %d %s", GREEN, nTest, __func__);
}
else
{
printf("%sFAILED %d \t ptr not NULL", RED, nTest);
}
nTest++;
printf("%s\n", RESET);
}