#define CCAN_LIST_DEBUG 1
#include <ccan/list/list.h>
#include <ccan/tap/tap.h>
#include <ccan/list/list.c>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <signal.h>

int main(void)
{
	struct list_head list1, list2;
	struct list_node n1, n2, n3;
	pid_t child;
	int status;

	plan_tests(1);
	list_head_init(&list1);
	list_head_init(&list2);
	list_add(&list1, &n1);
	list_add(&list2, &n2);
	list_add_tail(&list2, &n3);

	child = fork();
	if (child) {
		wait(&status);
	} else {
		/* This should abort. */
		list_del_from(&list1, &n3);
		exit(0);
	}

	ok1(WIFSIGNALED(status) && WTERMSIG(status) == SIGABRT);
	list_del_from(&list2, &n3);
	return exit_status();
}
