refresh 01-gnulib-directory.patch
[gnulib.git] / tests / test-fgetc.c
index a4e1953..4df46fb 100644 (file)
@@ -26,6 +26,8 @@ SIGNATURE_CHECK (fgetc, int, (FILE *));
 #include <fcntl.h>
 #include <unistd.h>
 
+#include "msvc-inval.h"
+
 #include "macros.h"
 
 int
@@ -33,6 +35,13 @@ main (int argc, char **argv)
 {
   const char *filename = "test-fgetc.txt";
 
+  /* We don't have an fgetc() function that installs an invalid parameter
+     handler so far.  So install that handler here, explicitly.  */
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+    && MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
+  gl_msvc_inval_ensure_handler ();
+#endif
+
   /* Prepare a file.  */
   {
     const char text[] = "hello world";
@@ -51,6 +60,7 @@ main (int argc, char **argv)
     errno = 0;
     ASSERT (fgetc (fp) == EOF);
     ASSERT (errno == EBADF);
+    ASSERT (ferror (fp));
     fclose (fp);
   }
 
@@ -63,6 +73,7 @@ main (int argc, char **argv)
         errno = 0;
         ASSERT (fgetc (fp) == EOF);
         ASSERT (errno == EBADF);
+        ASSERT (ferror (fp));
         fclose (fp);
       }
   }
@@ -73,6 +84,7 @@ main (int argc, char **argv)
         errno = 0;
         ASSERT (fgetc (fp) == EOF);
         ASSERT (errno == EBADF);
+        ASSERT (ferror (fp));
         fclose (fp);
       }
   }