Imported Upstream version 2.4.3
[platform/upstream/audit.git] / src / test / slist_test.c
1 #include <stdio.h>
2 #include <string.h>
3 #include "ausearch-string.h"
4
5 slist s;
6
7 int print_list(void)
8 {
9         int cnt = 0;
10         slist_first(&s);
11         do {
12                 snode *cur = slist_get_cur(&s);
13                 if (cur) {
14                         cnt++;
15                         printf("%s\n", cur->str);
16                 }
17         } while (slist_next(&s));
18         return cnt;
19 }
20
21 int main(void)
22 {
23         snode n;
24         int rc;
25
26         slist_create(&s);
27         slist_add_if_uniq(&s, "test1");
28         slist_add_if_uniq(&s, "test2");
29         slist_first(&s);
30         slist_add_if_uniq(&s, "test3");
31         puts("should be 3");
32         rc = print_list();
33         if (s.cnt != 3 || rc !=3) {
34                 puts("test count is wrong");
35                 return 1;
36         }
37
38         n.str = strdup("test4");
39         n.key = NULL;
40         n.hits = 1;
41         slist_append(&s, &n);
42         puts("should add a #4");
43         rc = print_list();
44         if (s.cnt != 4 || rc != 4) {
45                 puts("test count is wrong");
46                 return 1;
47         }
48
49         slist_add_if_uniq(&s, "test2");
50         puts("should be same");
51         rc = print_list();
52         if (s.cnt != 4 || rc != 4) {
53                 puts("test count is wrong");
54                 return 1;
55         }
56
57         slist_clear(&s);
58         puts("should be empty");
59         rc = print_list();      
60         if (s.cnt != 0 || rc != 0) {
61                 puts("test count is wrong");
62                 return 1;
63         }
64         return 0;
65 }
66