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