gettimeofday: port recent C++ fix to Emacs
[gnulib.git] / tests / test-fwrite.c
index d5d47a1..ef72338 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fwrite() function.
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -12,8 +12,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
@@ -26,6 +25,8 @@ SIGNATURE_CHECK (fwrite, size_t, (const void *, size_t, size_t, FILE *));
 #include <fcntl.h>
 #include <unistd.h>
 
+#include "msvc-inval.h"
+
 #include "macros.h"
 
 int
@@ -33,6 +34,13 @@ main (int argc, char **argv)
 {
   const char *filename = "test-fwrite.txt";
 
+  /* We don't have an fwrite() 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
+
   /* Test that fwrite() on an unbuffered stream sets errno if someone else
      closes the stream fd behind the back of stdio.  */
   {
@@ -64,7 +72,9 @@ main (int argc, char **argv)
       }
   }
   {
-    FILE *fp = fdopen (99, "w");
+    FILE *fp;
+    close (99);
+    fp = fdopen (99, "w");
     if (fp != NULL)
       {
         char buf[5] = "world";