# HG changeset patch # User Eric Blake # Date 1262006644 25200 # Node ID 558cae4c8f2d161f2dbd34169765445160286fdc # Parent b8d731a7c105e2c81fe3615fb755e4faab4a370c test-dup2: reduce dependencies 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 diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2009-12-28 Eric Blake + + 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 Remove an unneeded dependency. diff --git a/modules/cloexec b/modules/cloexec --- a/modules/cloexec +++ b/modules/cloexec @@ -13,6 +13,7 @@ configure.ac: gl_CLOEXEC +gl_MODULE_INDICATOR([cloexec]) Makefile.am: diff --git a/modules/dup2-tests b/modules/dup2-tests --- a/modules/dup2-tests +++ b/modules/dup2-tests @@ -5,7 +5,6 @@ Depends-on: binary-io -cloexec open configure.ac: diff --git a/tests/test-dup2.c b/tests/test-dup2.c --- a/tests/test-dup2.c +++ b/tests/test-dup2.c @@ -27,7 +27,10 @@ #include #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 @@ 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 @@ 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. */