X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fcontainer_of%2Ftest%2Frun.c;h=18207f60521f418d75df8cee15293c062acc1a21;hp=dd57204d88f839bd15bbe16c3177c9871e00d492;hb=7ec5b8e06b2fd5fa98b1fcde1158c286d2d429d8;hpb=650c775ff00cccd03fc84e7789a03c51d9839004 diff --git a/ccan/container_of/test/run.c b/ccan/container_of/test/run.c index dd57204d..18207f60 100644 --- a/ccan/container_of/test/run.c +++ b/ccan/container_of/test/run.c @@ -1,5 +1,5 @@ -#include "container_of/container_of.h" -#include "tap/tap.h" +#include +#include struct foo { int a; @@ -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(); }