tests: readlink* ("",... fails with EINVAL on newer kernels
authorJim Meyering <meyering@redhat.com>
Wed, 30 Mar 2011 06:46:22 +0000 (08:46 +0200)
committerJim Meyering <meyering@redhat.com>
Wed, 30 Mar 2011 06:46:22 +0000 (08:46 +0200)
readlink and readlinkat have typically failed with ENOENT for
the invalid, empty file name,  "".  However, with the advent
of linux-2.6.39, they fail with EINVAL.
* tests/test-areadlink.h (test_areadlink): Also accept EINVAL
when operating on the empty file name.
* tests/test-readlink.h (test_readlink): Likewise.

ChangeLog
tests/test-areadlink.h
tests/test-readlink.h

index 9018d90..09a5810 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2011-03-30  Jim Meyering  <meyering@redhat.com>
+
+       tests: readlink* ("",... fails with EINVAL on newer kernels
+       readlink and readlinkat have typically failed with ENOENT for
+       the invalid, empty file name,  "".  However, with the advent
+       of linux-2.6.39, they fail with EINVAL.
+       * tests/test-areadlink.h (test_areadlink): Also accept EINVAL
+       when operating on the empty file name.
+       * tests/test-readlink.h (test_readlink): Likewise.
+
 2011-03-29  Bruno Haible  <bruno@clisp.org>
 
        Relicense some modules under LGPLv2+, for libidn2.
index c7d8324..55b41c0 100644 (file)
@@ -36,7 +36,7 @@ test_areadlink (char * (*func) (char const *, size_t), bool print)
   ASSERT (errno == ENOENT);
   errno = 0;
   ASSERT (func ("", 1) == NULL);
-  ASSERT (errno == ENOENT);
+  ASSERT (errno == ENOENT || errno == EINVAL);
   errno = 0;
   ASSERT (func (".", 1) == NULL);
   ASSERT (errno == EINVAL);
index 08d5662..7247fc4 100644 (file)
@@ -38,7 +38,7 @@ test_readlink (ssize_t (*func) (char const *, char *, size_t), bool print)
   ASSERT (errno == ENOENT);
   errno = 0;
   ASSERT (func ("", buf, sizeof buf) == -1);
-  ASSERT (errno == ENOENT);
+  ASSERT (errno == ENOENT || errno == EINVAL);
   errno = 0;
   ASSERT (func (".", buf, sizeof buf) == -1);
   ASSERT (errno == EINVAL);