gnu: strace: Allow readlink, readlinkat tests to pass.

Modify the invocation of strace's "readlink" and "readlinkat" tests to prevent
them from failing due to an additional system call made by Guix's patched
version of glibc.

* gnu/packages/linux.scm (strace)[source]: Add patch.
[arguments]<#:phases>: Do not disable the "readlink" test now that it can
succeed.
* gnu/packages/patches/strace-readlink-tests.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Simon South 2021-09-04 15:58:21 -04:00 committed by Ludovic Courtès
parent 696b0a3246
commit b0eaa4f2d7
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
3 changed files with 49 additions and 5 deletions

View File

@ -1562,6 +1562,7 @@ dist_patch_DATA = \
%D%/packages/patches/sdl-pango-sans-serif.patch \
%D%/packages/patches/smalltalk-multiplication-overflow.patch \
%D%/packages/patches/sqlite-hurd.patch \
%D%/packages/patches/strace-readlink-tests.patch \
%D%/packages/patches/sunxi-tools-remove-sys-io.patch \
%D%/packages/patches/p11-kit-hurd.patch \
%D%/packages/patches/patchutils-test-perms.patch \

View File

@ -2365,7 +2365,8 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
"/strace-" version ".tar.xz"))
(sha256
(base32
"0mmns22bjjvakxj29si0x4dcylcgy26llpcimkb0llcxif439k2s"))))
"0mmns22bjjvakxj29si0x4dcylcgy26llpcimkb0llcxif439k2s"))
(patches (search-patches "strace-readlink-tests.patch"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@ -2378,10 +2379,6 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
(add-after 'unpack 'disable-failing-tests
(lambda _
(substitute* "tests/Makefile.in"
;; XXX: This test fails because an extra readlink call is made
;; by the glibc when using the ld.so cache.
(("readlink.gen.test[^:]") " ")
;; XXX: These hang forever even if the test time-out is
;; extended.
(("^\tstrace-DD?D?\\.test \\\\.*") "")

View File

@ -0,0 +1,46 @@
Prevent strace's "readlink" and "readlinkat" tests from failing due to the
additional system call made by glibc with the patch "glibc-dl-cache.patch"
applied (introduced in commit 52564e9).
These changes cause strace to report during these tests only system calls on
files contained in the test directory, effectively filtering out the
additional readlink/readlinkat call on "/proc/self/exe" and allowing the tests
to complete as normal.
diff --git a/tests/gen_tests.in b/tests/gen_tests.in
index 8b4e2e9..cc3ca63 100644
--- a/tests/gen_tests.in
+++ b/tests/gen_tests.in
@@ -623,8 +623,8 @@ quotactl-xfs-v -v -e trace=quotactl
read-write -a15 -eread=0,5 -ewrite=1,4 -e trace=read,write -P read-write-tmpfile -P /dev/zero -P /dev/null
readahead -a1
readdir -a16
-readlink -xx
-readlinkat -xx
+readlink -xx --trace-path=test.readlink.link
+readlinkat -xx --trace-path=test.readlinkat.link
reboot -s 256
recv-MSG_TRUNC -a26 -e trace=recv
recvfrom -a35
diff --git a/tests/readlink.gen.test b/tests/readlink.gen.test
index 4263234..418691b 100755
--- a/tests/readlink.gen.test
+++ b/tests/readlink.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (readlink -xx ); do not edit.
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (readlink -xx --trace-path=test.readlink.link); do not edit.
. "${srcdir=.}/init.sh"
-run_strace_match_diff -xx
+run_strace_match_diff -xx --trace-path=test.readlink.link
diff --git a/tests/readlinkat.gen.test b/tests/readlinkat.gen.test
index d7de993..a48d590 100755
--- a/tests/readlinkat.gen.test
+++ b/tests/readlinkat.gen.test
@@ -1,4 +1,4 @@
#!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (readlinkat -xx ); do not edit.
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (readlinkat -xx --trace-path=test.readlinkat.link); do not edit.
. "${srcdir=.}/init.sh"
-run_strace_match_diff -xx
+run_strace_match_diff -xx --trace-path=test.readlinkat.link