pmrep: fix archive end time reporting
[pcp.git] / qa / 182
blobf7ae4acd4f852c40f9a14eba0b2604215c078aef
1 #! /bin/sh
2 # PCP QA Test No. 182
3 # pmlogger gets SIGPIPE if pmlc goes away unexpectedly
5 # Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved.
8 seq=`basename $0`
9 echo "QA output created by $seq"
11 # get standard filters
12 . ./common.product
13 . ./common.filter
14 . ./common.check
16 signal=$PCP_BINADM_DIR/pmsignal
17 trap "$sudo rm -f $tmp.*; $sudo $signal -s TERM \$pid; exit" 0 1 2 3 15
19 # just like the kill builtin, just do it quietly
20 _silent_kill()
22 if [ $# -eq 1 ]
23 then
24 (( $sudo $signal $1 )&) >/dev/null 2>&1
25 else
26 echo "_silent_kill: needs 1 arg, not $#"
30 _filter_date()
32 sed <$1 \
33 -e 's/[A-Z][a-z][a-z] [A-Z][a-z][a-z] .. /MONTH-DAY /' \
34 -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9] /TIME /' \
35 -e 's/ [12][0-9][0-9][0-9]/ YEAR/'
38 _filter_errs()
40 _filter_pmlogger_log \
41 | sed \
42 -e '/^MONTH-/d' \
43 -e '/Error: do_control:/d'
46 # real QA test starts here
47 _start_up_pmlogger -L -c /dev/null -l $tmp.log $tmp
48 _wait_for_pmlogger $pid $tmp.log 10
50 cat <<End-of-File >$tmp.cmd
51 pmlc <<E-O-F >>$tmp.out
52 connect $pid
53 query kernel
54 query kernel
55 E-O-F
56 End-of-File
58 for i in 1 2 3
60 echo "=== start and abort pmlc ==="
61 echo >>$tmp.out
62 echo "=== iteration $i ===" >>$tmp.out
63 ( sh $tmp.cmd & eval echo '$!' >$tmp.pid ) &
65 pmsleep 2.5
66 pmlc_pid=`cat $tmp.pid`
67 [ ! -z "$pmlc_pid" ] && _silent_kill $pmlc_pid
68 pmsleep 1.1
69 have=`ps $PCP_PS_ALL_FLAGS | $PCP_AWK_PROG '$2 == '"$pmlc_pid"' { print }' \
70 | wc -l | sed -e 's/ *//g'`
71 echo "$have pmlc processes are running"
72 [ $have -gt 0 ] && ps $PCP_PS_ALL_FLAGS | grep pmlc | grep -v grep
74 # ready to accept again on the socket?
76 pmsleep 2.5
78 done
80 echo
81 echo "=== pmlogger log ==="
82 _filter_date $tmp.log | _filter_errs
84 # for debugging
86 cp $tmp.out $seq.full
88 exit 0