Subject: RE: test-symlink fails on "lustre" file system

From: "Oppe, Thomas C ERDC-RDE-ITL-MS Contractor" <[email-masked]>
Date: Sat, 7 Sep 2019 14:57:19 +0000

Bruno,

Thank you for the patch.  I have made the fix in my versions of:

sed-4.7                      sed-4.7/gnulib-tests/test-symlink.h
m4-1.4.18                 m4-1.4.18/tests/test-symlink.h
gettext-0.20.1
gettext-0.20.1/gettext-tools/gnulib-tests/test-symlink.h

since the same test failure occurs in these three packages.  I will rerun my
build of GCC 9.2.0 with its many prerequisites packages (for all of which I
do "make check") and see what the results are.

It is great to clear up these test failures for Linux systems using the
Lustre file system.

Tom Oppe

-----Original Message-----
From: Bruno Haible [mailto:[email-masked]] 
Sent: Friday, September 6, 2019 6:18 PM
To: [email-masked]; Oppe, Thomas C ERDC-RDE-ITL-MS Contractor
<[email-masked]>
Cc: [email-masked]; Assaf Gordon <[email-masked]>
Subject: Re: test-symlink fails on "lustre" file system

Thomas Oppe wrote:
> INSERTED errno=2
> test-symlink.h:71: assertion 'errno == EEXIST || errno == EINVAL' 
> failed FAIL test-symlink (exit status: 134)

Thanks. I'm pushing this patch; it will fix the failure in this place.

2019-09-06  Bruno Haible  <[email-masked]>

	symlink tests: Avoid test failure on Linux with Lustre file system.
	Reported by Thomas C Oppe <[email-masked]>
	at
<Blockedhttps://debbugs.gnu.org/cgi/bugreport.cgi?bug=37312Blocked>.
	* tests/test-symlink.h (test_symlink): Accept errno value ENOENT.

diff --git a/tests/test-symlink.h b/tests/test-symlink.h index
c556347..8fd55c0 100644
--- a/tests/test-symlink.h
+++ b/tests/test-symlink.h
@@ -67,7 +67,8 @@ test_symlink (int (*func) (char const *, char const *),
bool print)
   ASSERT (errno == EEXIST);
   errno = 0;
   ASSERT (func ("nowhere", BASE "dir/") == -1);
-  ASSERT (errno == EEXIST || errno == EINVAL);
+  ASSERT (errno == EEXIST || errno == EINVAL
+          || errno == ENOENT /* Lustre FS on Linux */);
   ASSERT (close (creat (BASE "file", 0600)) == 0);
   errno = 0;
   ASSERT (func ("nowhere", BASE "file") == -1);