X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-pipe.c;h=404534da2bf5d0defbd0f8757f0b685c0d115680;hb=2bc9cabc544597791089f579a5a6d025792f47dc;hp=16c72f6034a8ede26df8df4647aa7f101c69f2ce;hpb=70329ae7cac412244aa8b7aab14583bdfa7b9a6a;p=gnulib.git diff --git a/tests/test-pipe.c b/tests/test-pipe.c index 16c72f603..404534da2 100644 --- a/tests/test-pipe.c +++ b/tests/test-pipe.c @@ -20,18 +20,12 @@ #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 -#endif - #include -#include #include #include #include #include +#include /* 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++) {