. $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
*) 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,
--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)