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);
 	}
     }