commit:     604927f331829f971d3a32c2e67e0ad5ce3d8ee4
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 27 09:09:56 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Jun 27 09:09:56 2019 +0000
URL:        https://gitweb.gentoo.org/proj/sandbox.git/commit/?id=604927f3

tests: disable utimensat-3 on *-linux-musl

x86_64-gentoo-linux-musl fails a single test:
    83: utimensat/3     FAILED (utimensat.at:3)

The test checks if sandbox does not crash when
    utimensat(<filefd>, NULL, NULL, 0)
is called. The behaviour is not specified by POSIX
but glibc returns EINVAL for such a case. Thus the
test behaves differently on varius libs.

https://www.openwall.com/lists/musl/2019/06/25/1 has
a conversation with musl upstream.

The change restricts test down to glibc targets.

Bug: https://bugs.gentoo.org/549108
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 tests/atlocal.in     |  1 +
 tests/utimensat-3.sh | 11 +++++++++++
 2 files changed, 12 insertions(+)

diff --git a/tests/atlocal.in b/tests/atlocal.in
index b9a631b..91b41b2 100644
--- a/tests/atlocal.in
+++ b/tests/atlocal.in
@@ -2,6 +2,7 @@
 
 export abs_top_srcdir abs_top_builddir abs_srcdir abs_builddir
 export AWK="@AWK@"
+export HOST="@host@"
 
 if ! ${at_clean} ; then
        export SB_UID=$(./get-user)

diff --git a/tests/utimensat-3.sh b/tests/utimensat-3.sh
index 4ecd4b3..a7b9843 100755
--- a/tests/utimensat-3.sh
+++ b/tests/utimensat-3.sh
@@ -1,6 +1,17 @@
 #!/bin/sh
 # make sure NULL filename is handled correctly
 
+# Note: this test is dependent on glibc internals
+# other libcs chose not to validate invalid parameters:
+#    https://bugs.gentoo.org/549108#c28
+#    https://www.openwall.com/lists/musl/2019/06/25/1
+# Run this test only on glibc systems.
+
+case $HOST in
+    *-linux-gnu);;
+    *) exit 77;;
+esac
+
 addwrite $PWD
 
 exec utimensat-0 -1:22 'f:O_WRONLY|O_CREAT:0666' NULL NULL 0

Reply via email to