X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-fclose.c;h=ecc60cd4f0f3f44510702dcdee9c82c1e552eb6b;hb=086fbef22c89b68e37680edd5b00211f96d6e1de;hp=a11eca96e39d29ddf7785d3921a06143786b69ef;hpb=3606b90f3c4a19708ef05140837f2aa307f2516f;p=gnulib.git diff --git a/tests/test-fclose.c b/tests/test-fclose.c index a11eca96e..ecc60cd4f 100644 --- a/tests/test-fclose.c +++ b/tests/test-fclose.c @@ -76,12 +76,35 @@ main (int argc, char **argv) /* Test that fclose() sets errno if someone else closes the stream fd behind the back of stdio. */ - f = fdopen (fd, "w+"); - ASSERT (f); - ASSERT (close (fd) == 0); - errno = 0; - ASSERT (fclose (f) == EOF); - ASSERT (errno == EBADF); + { + FILE *fp = fdopen (fd, "w+"); + ASSERT (fp != NULL); + ASSERT (close (fd) == 0); + errno = 0; + ASSERT (fclose (fp) == EOF); + ASSERT (errno == EBADF); + } + + /* Test that fclose() sets errno if the stream was constructed with + an invalid file descriptor. */ + { + FILE *fp = fdopen (-1, "r"); + if (fp != NULL) + { + errno = 0; + ASSERT (fclose (fp) == EOF); + ASSERT (errno == EBADF); + } + } + { + FILE *fp = fdopen (99, "r"); + if (fp != NULL) + { + errno = 0; + ASSERT (fclose (fp) == EOF); + ASSERT (errno == EBADF); + } + } /* Clean up. */ ASSERT (remove (BASE) == 0);