]> git.ozlabs.org Git - ccan/blobdiff - ccan/noerr/test/run.c
hex: fix comment
[ccan] / ccan / noerr / test / run.c
index 6d3c6837cd228b857f3b11ab589dd0f2aa00aca7..31fb67400572d43aca0abf7b36f003ecf225346f 100644 (file)
@@ -1,19 +1,19 @@
-#include "noerr/noerr.h"
-#include "tap/tap.h"
-#include "noerr/noerr.c"
+#include <ccan/noerr/noerr.h>
+#include <ccan/tap/tap.h>
+#include <ccan/noerr/noerr.c>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <stdio.h>
 #include <assert.h>
 
-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();
 }