Mercurial > hg > octave-shane > gnulib-hg
diff tests/test-fchdir.c @ 12402:af3596b94c7a
fchdir: fix logic bugs
Configuring with ac_cv_func_fchdir=no on a system that has fchdir
and where open handles directories, just to test out the replacement
capabilities, uncovered an m4 test bug and a link failure on rpl_fstat.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Fix logic bug.
* tests/test-fchdir.c (main): Enhance test.
* lib/fchdir.c (rpl_fstat): Always provide if fchdir replacement
is in use.
Signed-off-by: Eric Blake <ebb9@byu.net>
author | Eric Blake <ebb9@byu.net> |
---|---|
date | Tue, 08 Dec 2009 06:13:05 -0700 (2009-12-08) |
parents | e45d9bb2233e |
children | e8d2c6fc33ad |
line wrap: on
line diff
--- a/tests/test-fchdir.c +++ b/tests/test-fchdir.c @@ -26,6 +26,8 @@ #include <stdlib.h> #include <string.h> +#include "cloexec.h" + #define ASSERT(expr) \ do \ { \ @@ -82,7 +84,11 @@ int new_fd = dup (fd); ASSERT (0 <= new_fd); ASSERT (close (fd) == 0); - fd = new_fd; + ASSERT (dup2 (new_fd, fd) == fd); + ASSERT (close (new_fd) == 0); + ASSERT (dup_cloexec (fd) == new_fd); + ASSERT (dup2 (new_fd, fd) == fd); + ASSERT (close (new_fd) == 0); } }