chiark / gitweb /
debugging for thing that crashed
[innduct.git] / tests / lib / list-t.c
1 /* $Id: list-t.c 6294 2003-04-15 03:43:45Z rra $ */
2 /* Test suite for list routines. */
3
4 #include "config.h"
5 #include "clibrary.h"
6
7 #include "inn/messages.h"
8 #include "inn/list.h"
9 #include "libinn.h"
10 #include "libtest.h"
11
12 int
13 main(void)
14 {
15     struct list list;
16     struct node a, b, c;
17
18     puts("28");
19
20     list_new(&list);
21     ok(1, list_isempty(&list));
22
23     ok(2, list_addhead(&list, &a) == &a);
24     ok(3, !list_isempty(&list));
25     ok(4, list_head(&list) == &a);
26     ok(5, list_tail(&list) == &a);
27     ok(6, list_remhead(&list) == &a);
28     ok(7, list_isempty(&list));
29
30     ok(8, list_addhead(&list, &a) == &a);
31     ok(9, list_remtail(&list) == &a);
32     ok(10, list_isempty(&list));
33
34     ok(11, list_addtail(&list, &a) == &a);
35     ok(12, !list_isempty(&list));
36     ok(13, list_head(&list) == &a);
37     ok(14, list_tail(&list) == &a);
38     ok(15, list_remhead(&list) == &a);
39     ok(16, list_isempty(&list));
40
41     list_addtail(&list, &a);
42     ok(17, list_remtail(&list) == &a);
43     ok(18, list_isempty(&list));
44
45     list_addhead(&list, &a);
46     ok(19, list_remove(&a) == &a);
47     ok(20, list_isempty(&list));
48
49     list_addtail(&list, &a);
50     list_addtail(&list, &b);
51     list_insert(&list, &c, &a);
52     ok(21, list_succ(&c) == &b);
53     ok(22, list_pred(&c) == &a);
54     list_remove(&c);
55     list_insert(&list, &c, &b);
56     ok(23, list_succ(&c) == NULL);
57     ok(24, list_pred(&c) == &b);
58     list_remove(&c);
59     list_insert(&list, &c, NULL);
60     ok(25, list_succ(&c) == &a);
61     ok(26, list_pred(&c) == NULL);
62     list_remove(&c);
63     ok(27, list_head(&list) == &a);
64     ok(28, list_tail(&list) == &b);
65
66     return 0;
67 }