X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=test%2Flib%2Flist-test.c;h=144613da7d06a1da673091bba1c9ae27cebe649b;hp=b4ef7abe0babbefcd662410fa517c9aa98f71483;hb=ffb84fc1bf1d138d1ac1bb8ece0b7d625f288d97;hpb=158b5a1ec8b4156da1d335a4f940919578928790 diff --git a/test/lib/list-test.c b/test/lib/list-test.c index b4ef7ab..144613d 100644 --- a/test/lib/list-test.c +++ b/test/lib/list-test.c @@ -19,12 +19,11 @@ #include "config.h" #endif -#define _GNU_SOURCE - #include #include #include +#include int main(void) @@ -36,10 +35,13 @@ int main(void) STATIC_LIST(tester); struct item *item; struct item *tmp; + void *ctx; int i; + ctx = talloc_new(NULL); + for (i = 0; i < 5; i++) { - struct item *item = malloc(sizeof(struct item)); + struct item *item = talloc(ctx, struct item); item->value = i; @@ -60,12 +62,31 @@ int main(void) list_remove(&item->list); } + /* we should see that the list is empty */ i = 0; - fprintf(stderr, "-- list_for_each_entry --\n"); + fprintf(stderr, "-- list_for_each_entry(empty) --\n"); list_for_each_entry(&tester, item, list) { fprintf(stderr, "%d: %d: %p -> %p\n", i++, item->value, item, item->list.next); } + if (i) { + fprintf(stderr, "Error: list should be empty\n"); + return EXIT_FAILURE; + } + + i = 0; + fprintf(stderr, "-- list_for_each_entry_safe(empty) --\n"); + list_for_each_entry_safe(&tester, item, tmp, list) { + fprintf(stderr, "%d: %d: %p -> %p\n", i++, item->value, item, item->list.next); + } + + if (i) { + fprintf(stderr, "Error: list should be empty\n"); + return EXIT_FAILURE; + } fprintf(stderr, "-- done --\n"); - return -1; + + talloc_free(ctx); + + return EXIT_SUCCESS; }