On 30/01/2020 13:53, Kamil Dudka wrote:
tests/cp/proc-short-read.sh expects that a pair of subsequent reads from
/proc/kallsyms will always return the same content. This does not seem to
be a safe assumption any more. The test has started to fail in our build
environment. I am not sure how to fix the test. We could probably make
it use another file from /proc but most of them are much smaller than
kallsyms and/or suffer from the same problem. Output of the failing test
follows.
Kamil
FAIL: tests/cp/proc-short-read
==============================
+ compare_ 1 2
+ diff -u 1 2
--- 1 2020-01-29 12:04:36.923963121 +0000
+++ 2 2020-01-29 12:04:37.026963484 +0000
@@ -114819,81 +114819,132 @@
0000000000000000 t nfs_file_direct_read.cold [nfs]
0000000000000000 t nfs_file_direct_write.cold [nfs]
0000000000000000 r .LC0 [nfs]
-0000000000000000 r .LC2 [nfs]
-0000000000000000 r __ksymtab_nfs_pgio_current_mirror [nfs]
-0000000000000000 r __kstrtab_nfs_pgio_current_mirror [nfs]
+0000000000000000 r __func__.87038 [nfs]
+0000000000000000 t __nfs_revalidate_inode.cold [nfs]
+0000000000000000 t nfs_revalidate_mapping.cold [nfs]
+0000000000000000 d nfs_net_ops [nfs]
+0000000000000000 t exit_nfs_fs [nfs]
+0000000000000000 r __param_enable_ino64 [nfs]
+0000000000000000 r __param_str_enable_ino64 [nfs]
+0000000000000000 r .LC15 [nfs]
+0000000000000000 r __ksymtab_nfs_fs_type [nfs]
+0000000000000000 r __kstrtab_nfs_fs_type [nfs]
+ fail=1
+ md5sum /proc/kallsyms
+ md5sum 2
+ sed 's/ .*//' 3
+ sed 's/ .*//' 4
+ compare sum.proc sum.2
+ compare_dev_null_ sum.proc sum.2
+ test 2 = 2
+ test xsum.proc = x/dev/null
+ test xsum.2 = x/dev/null
+ return 2
+ case $? in
+ compare_ sum.proc sum.2
+ diff -u sum.proc sum.2
--- sum.proc 2020-01-29 12:04:37.172963999 +0000
+++ sum.2 2020-01-29 12:04:37.175964009 +0000
@@ -1 +1 @@
-226cd09830f68c56edda0b9272be66e4
+37d7e78173b2a31d5f27cc66aa52e72a
+ fail=1
Interesting.
The attached changes to /proc/cpuinfo
which is a bit more awkward, but should be a valid test most of the time,
and is also the file for which the original bug report was against.
cheers,
Pádraig
>From 309dcf79f097fc547edbd82cd6601d111277c4f1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <p...@draigbrady.com>
Date: Tue, 4 Feb 2020 00:37:23 +0000
Subject: [PATCH] tests: avoid false failure due to varying /proc/kallsyms
* tests/cp/proc-short-read.sh: Switch to using /proc/cpuinfo,
rather than /proc/kallsyms which was seen to vary in some cases.
Fixes https://bugs.gnu.org/39357
---
tests/cp/proc-short-read.sh | 22 +++++++++-------------
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/tests/cp/proc-short-read.sh b/tests/cp/proc-short-read.sh
index 6c58881de..dcc8b30d5 100755
--- a/tests/cp/proc-short-read.sh
+++ b/tests/cp/proc-short-read.sh
@@ -19,22 +19,18 @@
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
print_ver_ cp
-kall=/proc/kallsyms
+proc_large=/proc/cpuinfo # usually > 4KiB
-test -r $kall || skip_ "your system lacks $kall"
+test -r $proc_large || skip_ "your system lacks $proc_large"
-# Before coreutils-7.3, cp would copy less than 4KiB of this 1MB+ file.
-cp $kall 1 || fail=1
-cat $kall > 2 || fail=1
-compare 1 2 || fail=1
+# Before coreutils-7.3, cp would copy less than 4KiB of this file.
+cp $proc_large 1 || fail=1
+cat $proc_large > 2 || fail=1
-# Also check md5sum, just for good measure.
-md5sum $kall > 3 || fail=1
-md5sum 2 > 4 || fail=1
+# adjust varying parts
+sed '/MHz/d; /bogomips/d;' 1 > proc.cp || framework_failure_
+sed '/MHz/d; /bogomips/d;' 2 > proc.cat || framework_failure_
-# Remove each file name before comparing checksums.
-sed 's/ .*//' 3 > sum.proc || fail=1
-sed 's/ .*//' 4 > sum.2 || fail=1
-compare sum.proc sum.2 || fail=1
+compare proc.cp proc.cat || fail=1
Exit $fail
--
2.24.1