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
|
#include "kern/mem.h"
#include "shared/linked_list.h"
#include "test_harness.h"
LINKED_LIST_STATIC_DECL(int);
LINKED_LIST_STATIC_IMPL(int);
TEST(linked_list, smell)
{
linked_list_t(int) ll = LINKED_LIST_INIT;
ASSERT_EQ(linked_list_length(int)(&ll), 0);
linked_list_push_front(int)(&ll, 5);
ASSERT_EQ(linked_list_length(int)(&ll), 1);
linked_list_push_front(int)(&ll, 3);
linked_list_push_back(int)(&ll, 2);
ASSERT_EQ(linked_list_length(int)(&ll), 3);
ASSERT_EQ(*linked_list_front(int)(&ll), 3);
ASSERT_EQ(*linked_list_back(int)(&ll), 2);
linked_list_push_back(int)(&ll, 7);
ASSERT_EQ(*linked_list_back(int)(&ll), 7);
linked_list_pop_back(int)(&ll);
ASSERT_EQ(*linked_list_back(int)(&ll), 2);
linked_list_pop_front(int)(&ll);
ASSERT_EQ(*linked_list_front(int)(&ll), 5);
linked_list_pop_front(int)(&ll);
ASSERT_EQ(*linked_list_front(int)(&ll), 2);
linked_list_pop_front(int)(&ll);
ASSERT_EQ(linked_list_front(int)(&ll), NULL);
return 0;
}
TEST(linked_list, foreach)
{
linked_list_t(int) ll = LINKED_LIST_INIT;
linked_list_push_front(int)(&ll, 3);
linked_list_push_front(int)(&ll, 2);
linked_list_push_front(int)(&ll, 1);
int i = 0;
int values[3];
linked_list_foreach(ll, val) {
values[i] = val;
++ i;
}
ASSERT_EQ(values[0], 1);
ASSERT_EQ(values[1], 2);
ASSERT_EQ(values[2], 3);
return 0;
}
|