test-dup2: reduce dependencies
authorEric Blake <ebb9@byu.net>
Mon, 28 Dec 2009 13:24:04 +0000 (06:24 -0700)
committerEric Blake <ebb9@byu.net>
Mon, 28 Dec 2009 13:53:14 +0000 (06:53 -0700)
dup2 is fully tested if the cloexec module is in use, but it is
also used in a number of modules where dragging in cloexec is
over the top for just using dup2 to test whether an fd is valid.

* modules/cloexec (Configure.ac): Set witness.
* modules/dup2-tests (Depends-on): Drop cloexec.
* tests/test-dup2.c (main): Skip portion of test if cloexec module
not present.
Suggested by Bruno Haible.

Signed-off-by: Eric Blake <ebb9@byu.net>
ChangeLog
modules/cloexec
modules/dup2-tests
tests/test-dup2.c

index 5e309e6..76060df 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2009-12-28  Eric Blake  <ebb9@byu.net>
+
+       test-dup2: reduce dependencies
+       * modules/cloexec (Configure.ac): Set witness.
+       * modules/dup2-tests (Depends-on): Drop cloexec.
+       * tests/test-dup2.c (main): Skip portion of test if cloexec module
+       not present.
+       Suggested by Bruno Haible.
+
 2009-12-26  Bruno Haible  <bruno@clisp.org>
 
        Remove an unneeded dependency.
index 88fb6d3..d590d1e 100644 (file)
@@ -13,6 +13,7 @@ stdbool
 
 configure.ac:
 gl_CLOEXEC
+gl_MODULE_INDICATOR([cloexec])
 
 Makefile.am:
 
index 679f4b1..a973fd7 100644 (file)
@@ -5,7 +5,6 @@ tests/macros.h
 
 Depends-on:
 binary-io
-cloexec
 open
 
 configure.ac:
index d3751f5..b65fcad 100644 (file)
@@ -27,7 +27,10 @@ SIGNATURE_CHECK (dup2, int, (int, int));
 #include <fcntl.h>
 
 #include "binary-io.h"
-#include "cloexec.h"
+
+#if GNULIB_CLOEXEC
+# include "cloexec.h"
+#endif
 
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 /* Get declarations of the Win32 API functions.  */
@@ -156,6 +159,7 @@ main (void)
   ASSERT (read (fd, buffer, 1) == 1);
   ASSERT (*buffer == '2');
 
+#if GNULIB_CLOEXEC
   /* Any new fd created by dup2 must not be cloexec.  */
   ASSERT (close (fd + 2) == 0);
   ASSERT (dup_cloexec (fd) == fd + 1);
@@ -164,6 +168,7 @@ main (void)
   ASSERT (!is_inheritable (fd + 1));
   ASSERT (dup2 (fd + 1, fd + 2) == fd + 2);
   ASSERT (is_inheritable (fd + 2));
+#endif
 
   /* On systems that distinguish between text and binary mode, dup2
      reuses the mode of the source.  */