X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftest%2Ftest-list.c;h=399ec8e58e01375fd363180ab9824de46160744a;hb=caac2704d57ef6d95f7053456479353bae3638de;hp=fa52ad1db8d6fad4e7f8fbccc9a9b0eebd43f445;hpb=71fda00f320379f5cbee8e118848de98caaa229d;p=elogind.git diff --git a/src/test/test-list.c b/src/test/test-list.c index fa52ad1db..399ec8e58 100644 --- a/src/test/test-list.c +++ b/src/test/test-list.c @@ -38,6 +38,13 @@ int main(int argc, const char *argv[]) { LIST_PREPEND(item, head, &items[i]); } + i = 0; + LIST_FOREACH_OTHERS(item, cursor, &items[2]) { + i++; + assert_se(cursor != &items[2]); + } + assert_se(i == ELEMENTSOF(items)-1); + assert_se(!LIST_JUST_US(item, head)); assert_se(items[0].item_next == NULL); @@ -105,5 +112,29 @@ int main(int argc, const char *argv[]) { LIST_REMOVE(item, head, &items[3]); assert_se(LIST_JUST_US(item, &items[3])); + assert_se(head == NULL); + + for (i = 0; i < ELEMENTSOF(items); i++) { + assert_se(LIST_JUST_US(item, &items[i])); + LIST_APPEND(item, head, &items[i]); + } + + assert_se(!LIST_JUST_US(item, head)); + + assert_se(items[0].item_next == &items[1]); + assert_se(items[1].item_next == &items[2]); + assert_se(items[2].item_next == &items[3]); + assert_se(items[3].item_next == NULL); + + assert_se(items[0].item_prev == NULL); + assert_se(items[1].item_prev == &items[0]); + assert_se(items[2].item_prev == &items[1]); + assert_se(items[3].item_prev == &items[2]); + + for (i = 0; i < ELEMENTSOF(items); i++) + LIST_REMOVE(item, head, &items[i]); + + assert_se(head == NULL); + return 0; }