~ruther/guix-local

b0eaa4f2d73cd7746a41d1f970b95243f2098458 — Simon South 5 years ago 696b0a3
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>
3 files changed, 49 insertions(+), 5 deletions(-)

M gnu/local.mk
M gnu/packages/linux.scm
A gnu/packages/patches/strace-readlink-tests.patch
M gnu/local.mk => gnu/local.mk +1 -0
@@ 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		\

M gnu/packages/linux.scm => gnu/packages/linux.scm +2 -5
@@ 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 \\\\.*") "")

A gnu/packages/patches/strace-readlink-tests.patch => gnu/packages/patches/strace-readlink-tests.patch +46 -0
@@ 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