X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fnoerr%2Ftest%2Frun.c;h=31fb67400572d43aca0abf7b36f003ecf225346f;hb=bcca516976312896eca1b0def6d3557d192baa89;hp=6d3c6837cd228b857f3b11ab589dd0f2aa00aca7;hpb=650c775ff00cccd03fc84e7789a03c51d9839004;p=ccan diff --git a/ccan/noerr/test/run.c b/ccan/noerr/test/run.c index 6d3c6837..31fb6740 100644 --- a/ccan/noerr/test/run.c +++ b/ccan/noerr/test/run.c @@ -1,19 +1,19 @@ -#include "noerr/noerr.h" -#include "tap/tap.h" -#include "noerr/noerr.c" +#include +#include +#include #include #include #include #include #include -int main(int argc, char *argv[]) +int main(void) { - /* tempnam(3) is generally a bad idea, but OK here. */ - char *name = tempnam(NULL, "noerr"); + const char *name = "noerr.file"; int fd; + FILE *fp; - plan_tests(12); + plan_tests(16); /* Should fail to unlink. */ ok1(unlink(name) != 0); ok1(errno == ENOENT); @@ -44,5 +44,24 @@ int main(int argc, char *argv[]) ok1(unlink_noerr(name) == 0); ok1(errno == 100); + /* Test failing fclose */ + fp = fopen(name, "wb"); + assert(fp); + close(fileno(fp)); + ok1(fclose_noerr(fp) == EBADF); + + /* Test successful fclose */ + fp = fopen(name, "wb"); + assert(fp); + + errno = 100; + ok1(fclose_noerr(fp) == 0); + ok1(errno == 100); + unlink(name); + + errno = 101; + free_noerr(malloc(7)); + ok1(errno == 101); + return exit_status(); }