Mercurial > hg > octave-kai > gnulib-hg
changeset 14004:054a6361f124
tests: port test-fdutimensat.c to Solaris 8
* tests/test-fdutimensat.c (do_fdutimens): Don't assume
fdutimensat works with a nonnegative fd and AT_SYMLINK_NOFOLLOW.
On Solaris 8, it fails with errno == ENOSYS, because there is no
futimens (so it can't use the fd), and there is no lutimens (so it
can't implement AT_SYMLINK_NOFOLLOW on symlinks).
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Fri, 24 Dec 2010 00:06:16 -0800 |
parents | f82a977dcf0b |
children | f585ecc144aa |
files | ChangeLog tests/test-fdutimensat.c |
diffstat | 2 files changed, 13 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2010-12-23 Paul Eggert <eggert@cs.ucla.edu> + tests: port test-fdutimensat.c to Solaris 8 + * tests/test-fdutimensat.c (do_fdutimens): Don't assume + fdutimensat works with a nonnegative fd and AT_SYMLINK_NOFOLLOW. + On Solaris 8, it fails with errno == ENOSYS, because there is no + futimens (so it can't use the fd), and there is no lutimens (so it + can't implement AT_SYMLINK_NOFOLLOW on symlinks). + vsnprintf: make more consistent with snprintf; doc fixes * doc/posix-functions/snprintf.texi (snprintf): The workaround for
--- a/tests/test-fdutimensat.c +++ b/tests/test-fdutimensat.c @@ -48,12 +48,17 @@ do_fdutimens (char const *name, struct timespec const times[2]) { int result; + int nofollow_result; + int nofollow_errno; int fd = openat (dfd, name, O_WRONLY); if (fd < 0) fd = openat (dfd, name, O_RDONLY); errno = 0; + nofollow_result = fdutimensat (fd, dfd, name, times, AT_SYMLINK_NOFOLLOW); + nofollow_errno = errno; result = fdutimensat (fd, dfd, name, times, 0); - ASSERT (fdutimensat (fd, dfd, name, times, AT_SYMLINK_NOFOLLOW) == result); + ASSERT (result == nofollow_result + || (nofollow_result == -1 && nofollow_errno == ENOSYS)); if (0 <= fd) { int saved_errno = errno;