tests: test for just-fixed tail --pid bug
[coreutils.git] / tests / tail-2 / pid
blob446c6dbe38557ead27f99399513dab755b980188
1 #!/bin/sh
2 # Test the --pid option of tail.
4 # Copyright (C) 2003, 2006-2009 Free Software Foundation, Inc.
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19 if test "$VERBOSE" = yes; then
20 set -x
21 tail --version
24 . $srcdir/test-lib.sh
26 require_proc_pid_status_
28 touch here || framework_failure
31 fail=0
33 # Use tail itself to create a background process.
35 tail -f here &
36 bg_pid=$!
38 tail -s0.1 -f here --pid=$bg_pid &
40 pid=$!
42 sleep 0.5
44 state=$(get_process_status_ $pid)
46 if test -n "$state"; then
47 case $state in
48 S*) ;;
49 *) echo "$0: process dead? (state=$state)" 1>&2; fail=1 ;;
50 esac
51 kill $pid
54 kill $bg_pid
56 sleep 0.5
58 state=$(get_process_status_ $pid)
60 if test -n "$state"; then
61 case $state in
62 S*) echo $0: process still active 1>&2; fail=1 ;;
63 *) ;;
64 esac
65 kill $pid
68 # Ensure that tail --pid=PID exits successfully when PID is dead.
69 # Use an unlikely-to-be-live PID: 2^31-1
70 getlimits_
71 tail --pid=$INT_MAX -f /dev/null || fail=1
73 Exit $fail