diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/tail-2/inotify-race | 16 |
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) |