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 <m...@bernhard-voelker.de>
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) ;;
-- 
1.7.3.4

PASS: ls/stat-free-color (exit: 0)
==================================

++ initial_cwd_=/media/sdb5/berny/coreutils/tests
++ fail=0
+++ testdir_prefix_
+++ printf gt
++ pfx_=gt
+++ mktempd_ /media/sdb5/berny/coreutils/tests gt-stat-free-color.XXXX
+++ case $# in
+++ destdir_=/media/sdb5/berny/coreutils/tests
+++ template_=gt-stat-free-color.XXXX
+++ MAX_TRIES_=4
+++ case $destdir_ in
+++ case $template_ in
++++ unset TMPDIR
++++ mktemp -d -t -p /media/sdb5/berny/coreutils/tests gt-stat-free-color.XXXX
+++ d=/media/sdb5/berny/coreutils/tests/gt-stat-free-color.knck
+++ case $d in
+++ test -d /media/sdb5/berny/coreutils/tests/gt-stat-free-color.knck
++++ ls -dgo /media/sdb5/berny/coreutils/tests/gt-stat-free-color.knck
++++ tr S -
+++ perms='drwx------ 2 4096 Jun 21 16:25 /media/sdb5/berny/coreutils/tests/gt-stat-free-color.knck'
+++ case $perms in
+++ test 0 = 0
+++ echo /media/sdb5/berny/coreutils/tests/gt-stat-free-color.knck
+++ return
++ test_dir_=/media/sdb5/berny/coreutils/tests/gt-stat-free-color.knck
++ cd /media/sdb5/berny/coreutils/tests/gt-stat-free-color.knck
++ 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 /media/sdb5/berny/coreutils/tests/../src
++ echo /media/sdb5/berny/coreutils/src
+ abs_path_dir_=/media/sdb5/berny/coreutils/src
+ case $abs_path_dir_ in
+ PATH=/media/sdb5/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_ /media/sdb5/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 --help
++ wc -l
+ n_lines_help=4
+ 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
++ expr 5 - 4
+ n_lines=1
+ case $n_lines in
+ Exit 0
+ set +e
+ exit 0
+ exit 0
+ remove_tmp_
+ __st=0
+ cleanup_
+ :
+ cd /media/sdb5/berny/coreutils/tests
+ chmod -R u+rwx /media/sdb5/berny/coreutils/tests/gt-stat-free-color.knck
+ rm -rf /media/sdb5/berny/coreutils/tests/gt-stat-free-color.knck
+ exit 0

Reply via email to