--- Begin Message ---
Subject: |
tests/ls/stat-free-color: fails on OpenSuSE 11.4 |
Date: |
Tue, 21 Jun 2011 09:46:29 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110414 SUSE/3.1.10 Thunderbird/3.1.10 |
Hi,
`make check` of coreutils.git (latest commit is
18bd9ce40ae05d52543fc9c5a5fdf4f82d13068d) on an OpenSuSE 11.4
host fails (everything else was ok/skipped):
FAIL: ls/stat-free-color (exit: 1)
==================================
++ initial_cwd_=/home/berny/coreutils/tests
++ fail=0
+++ testdir_prefix_
+++ printf gt
++ pfx_=gt
+++ mktempd_ /home/berny/coreutils/tests gt-stat-free-color.XXXX
+++ case $# in
+++ destdir_=/home/berny/coreutils/tests
+++ template_=gt-stat-free-color.XXXX
+++ MAX_TRIES_=4
+++ case $destdir_ in
+++ case $template_ in
++++ unset TMPDIR
++++ mktemp -d -t -p /home/berny/coreutils/tests gt-stat-free-color.XXXX
+++ d=/home/berny/coreutils/tests/gt-stat-free-color.07ux
+++ case $d in
+++ test -d /home/berny/coreutils/tests/gt-stat-free-color.07ux
++++ ls -dgo /home/berny/coreutils/tests/gt-stat-free-color.07ux
++++ tr S -
+++ perms='drwx------ 2 4096 Jun 21 09:24
/home/berny/coreutils/tests/gt-stat-free-color.07ux'
+++ case $perms in
+++ test 0 = 0
+++ echo /home/berny/coreutils/tests/gt-stat-free-color.07ux
+++ return
++ test_dir_=/home/berny/coreutils/tests/gt-stat-free-color.07ux
++ cd /home/berny/coreutils/tests/gt-stat-free-color.07ux
++ gl_init_sh_nl_='
'
++ IFS='
'
++ for sig_ in 1 2 3 13 15
+++ expr 1 + 128
++ eval 'trap '\''Exit 129'\'' 1'
+++ trap 'Exit 129' 1
++ for sig_ in 1 2 3 13 15
+++ expr 2 + 128
++ eval 'trap '\''Exit 130'\'' 2'
+++ trap 'Exit 130' 2
++ for sig_ in 1 2 3 13 15
+++ expr 3 + 128
++ eval 'trap '\''Exit 131'\'' 3'
+++ trap 'Exit 131' 3
++ for sig_ in 1 2 3 13 15
+++ expr 13 + 128
++ eval 'trap '\''Exit 141'\'' 13'
+++ trap 'Exit 141' 13
++ for sig_ in 1 2 3 13 15
+++ expr 15 + 128
++ eval 'trap '\''Exit 143'\'' 15'
+++ trap 'Exit 143' 15
++ trap remove_tmp_ 0
+ path_prepend_ ../src
+ test 1 '!=' 0
+ path_dir_=../src
+ case $path_dir_ in
++ cd /home/berny/coreutils/tests/../src
++ echo /home/berny/coreutils/src
+ abs_path_dir_=/home/berny/coreutils/src
+ case $abs_path_dir_ in
+
PATH=/home/berny/coreutils/src:/home/berny/coreutils/src:/usr/lib64/mpi/gcc/openmpi/bin:/home/berny/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib64/jvm/jre/bin
+ create_exe_shims_ /home/berny/coreutils/src
+ case $EXEEXT in
+ return 0
+ shift
+ test 0 '!=' 0
+ export PATH
+ print_ver_ ls
+ test yes = yes
+ local i
+ for i in '$*'
+ env ls --version
ls (GNU coreutils) 8.12.99-18bd
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Richard M. Stallman and David MacKenzie.
+ require_strace_ stat
+ test 1 = 1
+ strace -V
+ strace -qe stat echo
+ require_dirent_d_type_
+ python
+ python /home/berny/coreutils/tests/d_type-check
+ for i in 1 2 3
+ ln -s nowhere dangle-1
+ for i in 1 2 3
+ ln -s nowhere dangle-2
+ for i in 1 2 3
+ ln -s nowhere dangle-3
+ cat
++ dircolors -b color-without-stat
+ eval
'LS_COLORS='\''rs=0:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=00:su=00:sg=00:ca=00:tw=00:ow=00:st=00:ex=00:mh=00:'\'';'
export LS_COLORS
++
LS_COLORS='rs=0:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=00:su=00:sg=00:ca=00:tw=00:ow=00:st=00:ex=00:mh=00:'
++ export LS_COLORS
+ strace -o log -e stat,lstat,stat64,lstat64 ls --color=always .
color-without-stat
dangle-1
dangle-2
dangle-3
log
++ wc -l
+ n_lines=5
+ case $n_lines in
+ fail=1
+ Exit 1
+ set +e
+ exit 1
+ exit 1
+ remove_tmp_
+ __st=1
+ cleanup_
+ :
+ cd /home/berny/coreutils/tests
+ chmod -R u+rwx /home/berny/coreutils/tests/gt-stat-free-color.07ux
+ rm -rf /home/berny/coreutils/tests/gt-stat-free-color.07ux
+ exit 1
How can I help?
Have a nice day,
Berny
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#8909: tests/ls/stat-free-color: fails on OpenSuSE 11.4 |
Date: |
Wed, 22 Jun 2011 16:09:54 +0200 |
Bernhard Voelker wrote:
> On 06/21/2011 04:16 PM, Jim Meyering wrote:
>> Bernhard Voelker wrote:
>>> On 06/21/2011 03:41 PM, Jim Meyering wrote:
>>>> It might be useful to see the entire strace output, too.
>>>> To get that, remove the "-e stat,lstat,stat64,lstat64" argument
>>>> from the strace invocation, and rerun the test.
>>>
>>> The output of both runs is attached.
>>> stat("/usr/lib64/mpi/gcc/openmpi/lib64") and friends is the culprit.
>>
>> Thanks.
>>
>>> I can't remember to have anything un-OpenSuSE-11.4-like in my toolchain.
>>>
>>> To me it seems that the test should count the difference of the
>>> number of stat,lstat,stat64,lstat64 calls when run
>>> a) as a dummy: ls --color=always --help
>>> and
>>> b) for ".": ls --color=always .
>>
>> That would be more robust.
>> Do you feel like writing the patch?
>
> Attached try #1 and the log.
>
> I'm not sure about x-platform calculation, but I guess
> n_lines=$(expr $n_lines - $n_lines_help)
> is okay - actually I saw it somewhere else in tests/.
>
> Have a nice day,
> Berny
>
>>From 3a6e0abab8eaa92922ce4cb1cfdfda278ccde8a6 Mon Sep 17 00:00:00 2001
> From: Bernhard Voelker <address@hidden>
> Date: Tue, 21 Jun 2011 16:26:50 +0200
> Subject: [PATCH] tests: ls/stat-free-color: count only the number of stat
> calls compared to --help
>
> * tests/ls/stat-free-color: The system may do additional stat calls upon
> loading
> (seen on OpenSuSE-11.4). Count only the number of stat calls compared to
> --help.
> ---
> tests/ls/stat-free-color | 6 ++++++
> 1 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/tests/ls/stat-free-color b/tests/ls/stat-free-color
> index b1c4744..03ef6e1 100755
> --- a/tests/ls/stat-free-color
> +++ b/tests/ls/stat-free-color
> @@ -49,9 +49,15 @@ MULTIHARDLINK 00
> EOF
> eval $(dircolors -b color-without-stat)
>
> +# The system may do additional *stat*()s upon loading.
> +# Count the difference compared to a dummy "--help" call.
> +strace -o log -e stat,lstat,stat64,lstat64 ls --color=always --help
> >/dev/null 2>&1 || fail=1
> +n_lines_help=$(wc -l < log)
> strace -o log -e stat,lstat,stat64,lstat64 ls --color=always . || fail=1
> n_lines=$(wc -l < log)
>
> +n_lines=$(expr $n_lines - $n_lines_help)
> +
> # Expect one or two stat calls.
> case $n_lines in
> 1|2) ;;
Thank you.
I've made some small adjustments including file name and variable name changes.
Also, I've tightened up the test to expect exactly one stat-like call:
(Since I've changed your commit, I'll wait for an ACK before pushing it)
And I've marked this issue as "done".
>From 376b19410eb57f36f711750ca75ed30dc1ebddce Mon Sep 17 00:00:00 2001
From: Bernhard Voelker <address@hidden>
Date: Tue, 21 Jun 2011 16:26:50 +0200
Subject: [PATCH] tests: stat-free-color: do not count stat calls before main
* tests/ls/stat-free-color: The system may perform additional stat
calls upon loading (seen on OpenSuSE-11.4). Count only the number
of stat calls compared to --help.
This also reduces back to "1" the number of expected calls,
effectively reverting part of 2011-06-01 commit, ccf2d9a4.
---
tests/ls/stat-free-color | 15 ++++++++++++---
1 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/tests/ls/stat-free-color b/tests/ls/stat-free-color
index b1c4744..1288560 100755
--- a/tests/ls/stat-free-color
+++ b/tests/ls/stat-free-color
@@ -49,13 +49,22 @@ MULTIHARDLINK 00
EOF
eval $(dircolors -b color-without-stat)
+# The system may perform additional stat-like calls before main.
+# To avoid counting those, first get a baseline count by running
+# ls with only the --help option. Then, compare that with the
+# invocation under test.
+strace -o log-help -e stat,lstat,stat64,lstat64 ls --help >/dev/null || fail=1
+n_lines_help=$(wc -l < log-help)
+
strace -o log -e stat,lstat,stat64,lstat64 ls --color=always . || fail=1
n_lines=$(wc -l < log)
+n_stat=$(expr $n_lines - $n_lines_help)
+
# Expect one or two stat calls.
-case $n_lines in
- 1|2) ;;
- *) fail=1 ;;
+case $n_stat in
+ 1) ;;
+ *) fail=1; head -n30 log* ;;
esac
Exit $fail
--
1.7.6.rc2.302.gc2115
--- End Message ---