summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/tail-2/inotify-race16
1 files changed, 12 insertions, 4 deletions
diff --git a/tests/tail-2/inotify-race b/tests/tail-2/inotify-race
index b1e1a7cc2..0ee2df5c3 100755
--- a/tests/tail-2/inotify-race
+++ b/tests/tail-2/inotify-race
@@ -27,6 +27,10 @@ fi
. $srcdir/test-lib.sh
+# Don't run this test by default 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, thus hanging the test.
+very_expensive_
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 _intermittently_ 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)