web: create "versioned" tarballs.
[ccan] / ccan / list / test / run-list_del_from-assert.c
1 #define CCAN_LIST_DEBUG 1
2 #include <ccan/list/list.h>
3 #include <ccan/tap/tap.h>
4 #include <ccan/list/list.c>
5 #include <sys/types.h>
6 #include <sys/wait.h>
7 #include <unistd.h>
8 #include <signal.h>
9
10 int main(void)
11 {
12         struct list_head list1, list2;
13         struct list_node n1, n2, n3;
14         pid_t child;
15         int status;
16
17         plan_tests(1);
18         list_head_init(&list1);
19         list_head_init(&list2);
20         list_add(&list1, &n1);
21         list_add(&list2, &n2);
22         list_add_tail(&list2, &n3);
23
24         child = fork();
25         if (child) {
26                 wait(&status);
27         } else {
28                 /* This should abort. */
29                 list_del_from(&list1, &n3);
30                 exit(0);
31         }
32
33         ok1(WIFSIGNALED(status) && WTERMSIG(status) == SIGABRT);
34         list_del_from(&list2, &n3);
35         return exit_status();
36 }