bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: make check (8.1) hangs forever


From: Pádraig Brady
Subject: Re: make check (8.1) hangs forever
Date: Sat, 05 Dec 2009 02:42:03 +0000
User-agent: Thunderbird 2.0.0.6 (X11/20071008)

I just noticed the test was skipped in this report also:
 http://lists.gnu.org/archive/html/bug-coreutils/2009-12/msg00031.html

So the approach I've taken is to mark this test as experimental for now.
I.E. it won't be run unless we explicitly enable it.
It's a nice test which hopefully we can use in future,
but it's just too problematic at the moment.

cheers,
Pádraig.
>From 29c33d1e74f61f162186fae203ad8beef66b4e98 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?P=C3=A1draig=20Brady?= <address@hidden>
Date: Sat, 5 Dec 2009 02:21:31 +0000
Subject: [PATCH] tests: mark inotify-race as an experimental test

* tests/tail-2/inotify-race: Note the caveats of the test.
I.E. the intermittent skips and the gdb hang reported
by Alan Curry.  Add extra info to the log on why the test
is skipped as it may be due to multiple reasons.  Mark
the test as experimental so that it's not normally run.
* tests/test-lib.sh (experimental_): Add a new function to
identify and skip experimental tests, which may be not
portable or robust but may still be useful (in the future).
---
 tests/tail-2/inotify-race |   16 ++++++++++++----
 tests/test-lib.sh         |   14 ++++++++++++++
 2 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/tests/tail-2/inotify-race b/tests/tail-2/inotify-race
index b1e1a7c..41d7bfb 100755
--- a/tests/tail-2/inotify-race
+++ b/tests/tail-2/inotify-race
@@ -27,6 +27,10 @@ fi
 
 . $srcdir/test-lib.sh
 
+# This is an experimental test because sometimes it's skipped as noted below.
+# Also gdb has a bug in Debian's gdb-6.8-3 at least that causes it to not
+# cleanup and exit correctly when it receives a SIGTERM.
+experimental_
 
 touch file || framework_failure
 touch tail.out || framework_failure
@@ -37,14 +41,18 @@ case $(cat gdb.out) in
     *) skip_test_ "can't run gdb";;
 esac
 
-# See if gdb works:
-timeout 10s gdb -nx --batch-silent                  \
+# See if gdb works and
+# tail_forever_inotify is compiled and not inlined
+timeout 10s gdb -nx --batch-silent                 \
     --eval-command='break tail_forever_inotify'    \
     --eval-command='run -f file'                   \
     --eval-command='quit'                          \
     tail < /dev/null > gdb.out 2>&1
 
-test -s gdb.out && skip_test_ "can't set breakpoints in tail"
+# FIXME: The above is seen to _itermittently_ fail with:
+# warning: .dynamic section for "/lib/libc.so.6" is not at the expected address
+# warning: difference appears to be caused by prelink, adjusting expectations
+test -s gdb.out && { cat gdb.out; skip_test_ "can't set breakpoints in tail"; }
 
 # Run "tail -f file", stopping to append a line just before
 # inotify initialization, and then continue.  Before the fix,
@@ -55,7 +63,7 @@ timeout 10s gdb -nx --batch-silent                 \
     --eval-command="shell echo never-seen-with-tail-7.5 >> file" \
     --eval-command='continue'                      \
     --eval-command='quit'                          \
-    tail < /dev/null &
+    tail < /dev/null > /dev/null 2>&1 &
 pid=$!
 
 tail --pid=$pid -f tail.out | (read; kill $pid)
diff --git a/tests/test-lib.sh b/tests/test-lib.sh
index e600a9c..3a3ad2f 100644
--- a/tests/test-lib.sh
+++ b/tests/test-lib.sh
@@ -252,6 +252,20 @@ environment variable set to yes.  E.g.,
   fi
 }
 
+experimental_()
+{
+  if test "$RUN_EXPERIMENTAL_TESTS" != yes; then
+    skip_test_ 'experimental: disabled by default
+This test is experimental, so it is disabled by default,
+as it may not be portable or robust etc.
+To run it anyway, rerun make check with the RUN_EXPERIMENTAL_TESTS
+environment variable set to yes.  E.g.,
+
+  env RUN_EXPERIMENTAL_TESTS=yes make check
+'
+  fi
+}
+
 require_root_()
 {
   uid_is_privileged_ || skip_test_ "must be run as root"
-- 
1.6.2.5


reply via email to

[Prev in Thread] Current Thread [Next in Thread]