On 10/11/2010 04:51 AM, Jim Meyering wrote:
That's because futimens (AT_FDCWD, NULL) would fail with errno set to
EFAULT, rather than the expected value of EBADF.

At first I was going to relax the test to allow "|| errno == EFAULT",
but what if EFAULT is not defined?  There's only one other use in gnulib.

I agree that we should not relax things for EFAULT.

+++ b/tests/test-futimens.h
@@ -75,7 +75,7 @@ test_futimens (int (*func) (int, struct timespec const *),

    /* Invalid arguments.  */
    errno = 0;
-  ASSERT (func (AT_FDCWD, NULL) == -1);
+  ASSERT (func (-1, NULL) == -1);

However, I disagree with this change. The whole point of testing AT_FDCWD is that it IS an invalid fd, and implementations must reject it in a sane manner. Solaris 5.11 has a bug, and we need to enhance the .m4 test to reject this bug and improve our futimens wrapper to work around it. We already worked around this bug for glibc 2.11 (thankfully, it has been fixed for current glibc).

--
Eric Blake   ebl...@redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Reply via email to