X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fcontainer_of%2Ftest%2Frun.c;h=18207f60521f418d75df8cee15293c062acc1a21;hb=158691ae36fe1da78ec54dbcc0006f603398dae2;hp=f28d9998503dc63e482355927fe66ebfbe445b9d;hpb=39357f4e89f4ac02eb11861812cbfc67b4f1d4ef;p=ccan diff --git a/ccan/container_of/test/run.c b/ccan/container_of/test/run.c index f28d9998..18207f60 100644 --- a/ccan/container_of/test/run.c +++ b/ccan/container_of/test/run.c @@ -12,10 +12,19 @@ int main(int argc, char *argv[]) int *intp = &foo.a; char *charp = &foo.b; - plan_tests(4); + plan_tests(12); ok1(container_of(intp, struct foo, a) == &foo); ok1(container_of(charp, struct foo, b) == &foo); + ok1(container_of_or_null(intp, struct foo, a) == &foo); + ok1(container_of_or_null(charp, struct foo, b) == &foo); + ok1(container_of_or_null((int *)NULL, struct foo, a) == NULL); + ok1(container_of_or_null((char *)NULL, struct foo, b) == NULL); ok1(container_of_var(intp, &foo, a) == &foo); ok1(container_of_var(charp, &foo, b) == &foo); + + ok1(container_off(struct foo, a) == 0); + ok1(container_off(struct foo, b) == offsetof(struct foo, b)); + ok1(container_off_var(&foo, a) == 0); + ok1(container_off_var(&foo, b) == offsetof(struct foo, b)); return exit_status(); }