]> granicus.if.org Git - fcron/blob - exe_list_test.c
updated doc
[fcron] / exe_list_test.c
1 #include "exe_list.h"
2 #include "global.h"
3 #include "fcron.h"
4
5 /* required by log.c */
6 char debug_opt = 1;
7 char *prog_name = NULL;
8 char foreground = 1;
9 pid_t daemon_pid = 0;
10 uid_t rootuid = 0;
11
12 void
13 print_cur(exe_t * e)
14 {
15     printf("Current entry's shell command: %s\n",
16            e ? e->e_line->cl_shell : "NULL");
17 }
18
19 void
20 print_list(exe_list_t * list)
21 {
22     exe_t *e = NULL;
23     printf("Current list:\n");
24     for (e = exe_list_first(list); e != NULL; e = exe_list_next(list))
25         printf("  Shell command: %s\n", e ? e->e_line->cl_shell : "NULL");
26 }
27
28 int
29 main(int argc, char *argv[])
30 {
31     exe_list_t *list = NULL;
32     exe_t *e = NULL;
33     cl_t l1, l2, l3, l4, l5, l6, l7;
34
35     l1.cl_shell = "line 1";
36     l2.cl_shell = "line 2";
37     l3.cl_shell = "line 3";
38     l4.cl_shell = "line 4";
39     l5.cl_shell = "line 5";
40     l6.cl_shell = "line 6";
41     l7.cl_shell = "line 7";
42
43     list = exe_list_init();
44
45     /* trigger a resize of the list during an iteration */
46     printf("Adding l1...\n");
47     exe_list_add_line(list, &l1);
48     printf("Adding l2...\n");
49     exe_list_add_line(list, &l2);
50     printf("Adding l3...\n");
51     exe_list_add_line(list, &l3);
52     e = exe_list_first(list);
53     print_cur(e);
54     e = exe_list_next(list);
55     print_cur(e);
56     printf("Adding l4...\n");
57     exe_list_add_line(list, &l4);
58     printf("Adding l5...\n");
59     exe_list_add_line(list, &l5);
60     printf("Adding l6...\n");
61     exe_list_add_line(list, &l6);
62     printf("Adding l7...\n");
63     exe_list_add_line(list, &l7);
64
65     e = exe_list_next(list);
66     print_cur(e);
67     e = exe_list_next(list);
68     print_cur(e);
69     e = exe_list_next(list);
70     print_cur(e);
71     e = exe_list_next(list);
72     print_cur(e);
73     e = exe_list_next(list);
74     print_cur(e);
75     e = exe_list_next(list);
76     print_cur(e);
77
78     /* "standard" iteration: */
79     print_list(list);
80
81     /* remove item at the beginning and middle of the list + add an item which is already in there */
82     printf("removing l1, l3, adding l2\n");
83     e = exe_list_first(list);
84     print_cur(e);
85     printf("Removing l1...\n");
86     exe_list_remove_cur(list);
87     e = exe_list_next(list);
88     print_cur(e);               /* this one will be the item replacing l1 */
89     e = exe_list_next(list);
90     print_cur(e);
91     e = exe_list_next(list);
92     print_cur(e);
93     printf("Removing l3...\n");
94     exe_list_remove_cur(list);
95     exe_list_end_iteration(list);
96     printf("Adding l2...\n");
97     exe_list_add_line(list, &l2);       /* we suppose the list array won't be reallocated() */
98
99     print_list(list);
100
101     /* remove an item at the end of the list: */
102     printf("removing l5, l2\n");
103     e = exe_list_first(list);
104     print_cur(e);
105     e = exe_list_next(list);
106     print_cur(e);
107     e = exe_list_next(list);
108     print_cur(e);
109     e = exe_list_next(list);
110     print_cur(e);
111     e = exe_list_next(list);
112     print_cur(e);
113     printf("Removing l5...\n");
114     exe_list_remove_cur(list);
115     exe_list_end_iteration(list);
116     e = exe_list_first(list);
117     print_cur(e);
118     e = exe_list_next(list);
119     print_cur(e);
120     printf("Removing l2...\n");
121     exe_list_remove_cur(list);
122     exe_list_end_iteration(list);
123
124     print_list(list);
125
126     printf("Adding l1...\n");
127     exe_list_add_line(list, &l1);
128
129     print_list(list);
130
131     printf("empty the list\n");
132     e = exe_list_first(list);
133     print_cur(e);
134     exe_list_remove_cur(list);
135     e = exe_list_next(list);
136     print_cur(e);
137     exe_list_remove_cur(list);
138     e = exe_list_next(list);
139     print_cur(e);
140     exe_list_remove_cur(list);
141     e = exe_list_next(list);
142     print_cur(e);
143     exe_list_remove_cur(list);
144     e = exe_list_next(list);
145     print_cur(e);
146     exe_list_remove_cur(list);
147     e = exe_list_next(list);
148     print_cur(e);
149
150     print_list(list);
151
152     printf("Destroying the list...\n");
153     list = exe_list_destroy(list);
154
155     return 0;
156
157 }