X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fopt%2Ftest%2Frun-set_alloc.c;h=1dbb351bedf41b0022a8abd26b3c0fbbc07ad445;hp=b30a77d8fc552aa8c293ee303f62081c7fab60a8;hb=HEAD;hpb=641b511049e5c03d45ada0c3fd829691b173e5d1 diff --git a/ccan/opt/test/run-set_alloc.c b/ccan/opt/test/run-set_alloc.c index b30a77d8..2d7410ae 100644 --- a/ccan/opt/test/run-set_alloc.c +++ b/ccan/opt/test/run-set_alloc.c @@ -2,15 +2,15 @@ #include /* Make sure we override these! */ -static void *no_malloc(size_t size) +static void *no_malloc(size_t size UNNEEDED) { abort(); } -static void *no_realloc(void *p, size_t size) +static void *no_realloc(void *p UNNEEDED, size_t size UNNEEDED) { abort(); } -static void no_free(void *p) +static void no_free(void *p UNNEEDED) { abort(); } @@ -59,15 +59,16 @@ static void *reallocfn(void *ptr, size_t size) static void freefn(void *ptr) { free_count++; - free(ptr); *find_ptr(ptr) = NULL; + free(ptr); } int main(int argc, char *argv[]) { const char *myname = argv[0]; + unsigned int val; - plan_tests(220); + plan_tests(222); opt_set_alloc(allocfn, reallocfn, freefn); @@ -341,6 +342,12 @@ int main(int argc, char *argv[]) ok1(strcmp(argv[4], "-a") == 0); ok1(!argv[5]); + /* Finally, test the helpers don't use malloc. */ + reset_options(); + opt_register_arg("-a", opt_set_uintval, opt_show_uintval, &val, "a"); + ok1(!parse_args(&argc, &argv, "-a", "notanumber", NULL)); + ok1(strstr(err_output, ": -a: 'notanumber' is not a number")); + /* We should have tested each one at least once! */ ok1(realloc_count); ok1(alloc_count);