3 #include "silcincludes.h"
11 int main(int argc, char **argv)
15 struct foo *f, *f1, *f2, *f3, *f4;
17 if (argc > 1 && !strcmp(argv[1], "-d")) {
19 silc_log_debug_hexdump(TRUE);
20 silc_log_set_debug_string("*list*");
23 silc_list_init_prev(list, struct foo, next, prev);
24 f1 = silc_calloc(1, sizeof(*f1));
28 f2 = silc_calloc(1, sizeof(*f2));
32 f3 = silc_calloc(1, sizeof(*f3));
36 f4 = silc_calloc(1, sizeof(*f4));
41 SILC_LOG_DEBUG(("insert f4=%p at head"));
42 silc_list_insert(list, NULL, f4);
43 silc_list_start(list);
44 while ((f = silc_list_get(list)) != SILC_LIST_END) {
45 SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next,
49 SILC_LOG_DEBUG(("Deleting f4=%p", f4));
50 silc_list_del(list, f4);
52 SILC_LOG_DEBUG(("Add f1, f2, f3"));
53 silc_list_add(list, f1);
54 silc_list_add(list, f2);
55 silc_list_add(list, f3);
57 SILC_LOG_DEBUG(("f1=%p", f1));
58 SILC_LOG_DEBUG(("f2=%p", f2));
59 SILC_LOG_DEBUG(("f3=%p", f3));
61 silc_list_start(list);
62 while ((f = silc_list_get(list)) != SILC_LIST_END) {
63 SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next,
67 SILC_LOG_DEBUG(("insert f4=%p between f1=%p and f2=%p", f4, f1, f2));
68 silc_list_insert(list, f1, f4);
69 silc_list_start(list);
70 while ((f = silc_list_get(list)) != SILC_LIST_END) {
71 SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next,
75 SILC_LOG_DEBUG(("Deleting f4=%p", f4));
76 silc_list_del(list, f4);
78 SILC_LOG_DEBUG(("insert f4=%p between f3=%p and tail", f4, f3));
79 silc_list_insert(list, f3, f4);
80 silc_list_start(list);
81 while ((f = silc_list_get(list)) != SILC_LIST_END) {
82 SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next,
86 SILC_LOG_DEBUG(("Deleting f4=%p", f4));
87 silc_list_del(list, f4);
89 SILC_LOG_DEBUG(("insert f4=%p at head"));
90 silc_list_insert(list, NULL, f4);
91 silc_list_start(list);
92 while ((f = silc_list_get(list)) != SILC_LIST_END) {
93 SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next,
97 silc_list_start(list);
98 silc_list_del(list, f1);
99 while ((f = silc_list_get(list)) != SILC_LIST_END) {
100 SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next,
103 silc_list_del(list, f3);
104 while ((f = silc_list_get(list)) != SILC_LIST_END) {
105 SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next,
108 silc_list_del(list, f2);
109 while ((f = silc_list_get(list)) != SILC_LIST_END) {
110 SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next,
114 silc_list_add(list, f1);
115 silc_list_add(list, f2);
116 silc_list_add(list, f3);
118 silc_list_start(list);
119 while ((f = silc_list_get(list)) != SILC_LIST_END) {
120 SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next,
124 silc_list_del(list, f2);
126 silc_list_start(list);
127 while ((f = silc_list_get(list)) != SILC_LIST_END) {
128 SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next,
135 SILC_LOG_DEBUG(("Testing was %s", success ? "SUCCESS" : "FAILURE"));
136 fprintf(stderr, "Testing was %s\n", success ? "SUCCESS" : "FAILURE");