regex: Fix fastmap for multibyte character ranges.
[gnulib.git] / tests / test-pipe.c
index 16c72f6..404534d 100644 (file)
 #include "pipe.h"
 #include "wait-process.h"
 
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-/* Get declarations of the Win32 API functions.  */
-# define WIN32_LEAN_AND_MEAN
-# include <windows.h>
-#endif
-
 #include <errno.h>
-#include <fcntl.h>
 #include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <unistd.h>
 
 /* Depending on arguments, this test intentionally closes stderr or
    starts life with stderr closed.  So, we arrange to have fd 10
@@ -59,6 +53,7 @@ child_main (int argc, char *argv[])
 {
   char buffer[2] = { 's', 't' };
   int fd;
+  int ret;
 
   ASSERT (argc == 3);
 
@@ -71,46 +66,22 @@ child_main (int argc, char *argv[])
   buffer[0]++;
   ASSERT (write (STDOUT_FILENO, buffer, 1) == 1);
 
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-  /* On Win32, the initial state of unassigned standard file descriptors is
-     that they are open but point to an INVALID_HANDLE_VALUE.  Thus
-     close (STDERR_FILENO) would always succeed.  */
+  errno = 0;
+  ret = dup2 (STDERR_FILENO, STDERR_FILENO);
   switch (atoi (argv[2]))
     {
     case 0:
-      /* Expect fd 2 is open to a valid handle.  */
-      ASSERT ((HANDLE) _get_osfhandle (STDERR_FILENO) != INVALID_HANDLE_VALUE);
+      /* Expect fd 2 is open.  */
+      ASSERT (ret == STDERR_FILENO);
       break;
     case 1:
-      /* Expect fd 2 is pointing to INVALID_HANDLE_VALUE.  */
-      ASSERT ((HANDLE) _get_osfhandle (STDERR_FILENO) == INVALID_HANDLE_VALUE);
+      /* Expect fd 2 is closed.  */
+      ASSERT (ret == -1);
+      ASSERT (errno == EBADF);
       break;
     default:
       ASSERT (false);
     }
-#elif defined F_GETFL
-  /* On Unix, the initial state of unassigned standard file descriptors is
-     that they are closed.  */
-  {
-    int ret;
-    errno = 0;
-    ret = fcntl (STDERR_FILENO, F_GETFL);
-    switch (atoi (argv[2]))
-      {
-      case 0:
-       /* Expect fd 2 is open.  */
-       ASSERT (ret >= 0);
-       break;
-      case 1:
-       /* Expect fd 2 is closed.  */
-       ASSERT (ret < 0);
-       ASSERT (errno == EBADF);
-       break;
-      default:
-       ASSERT (false);
-      }
-  }
-#endif
 
   for (fd = 3; fd < 7; fd++)
     {