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-fix-readlink-readlinkat-tests.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/linux.scm | 8 ++-- ...strace-fix-readlink-readlinkat-tests.patch | 46 +++++++++++++++++++ 3 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 gnu/packages/patches/strace-fix-readlink-readlinkat-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index bb22e29caa..f9c8956568 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1547,6 +1547,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-fix-readlink-readlinkat-tests.patch \ %D%/packages/patches/sunxi-tools-remove-sys-io.patch \ %D%/packages/patches/patchutils-test-perms.patch \ %D%/packages/patches/patch-hurd-path-max.patch \ diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 63f0e4108c..99b7ce7066 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2240,7 +2240,9 @@ Zerofree requires the file system to be unmounted or mounted read-only.") "/strace-" version ".tar.xz")) (sha256 (base32 - "0mmns22bjjvakxj29si0x4dcylcgy26llpcimkb0llcxif439k2s")))) + "0mmns22bjjvakxj29si0x4dcylcgy26llpcimkb0llcxif439k2s")) + (patches + (search-patches "strace-fix-readlink-readlinkat-tests.patch")))) (build-system gnu-build-system) (arguments '(#:phases @@ -2253,10 +2255,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 \\\\.*") "") diff --git a/gnu/packages/patches/strace-fix-readlink-readlinkat-tests.patch b/gnu/packages/patches/strace-fix-readlink-readlinkat-tests.patch new file mode 100644 index 0000000000..dd5ee98703 --- /dev/null +++ b/gnu/packages/patches/strace-fix-readlink-readlinkat-tests.patch @@ -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 -- 2.25.2