aboutsummaryrefslogtreecommitdiff
path: root/tests/test_linked_list.c
blob: 401091a080cef5b7e7603ef6f0a52bf1a3f68ad5 (plain) (blame)
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
#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;
}