Drop unused condition check
[pcp.git] / qa / 119
blob6e403be558c865d9b644132384a56736d68c91a1
1 #! /bin/sh
2 # PCP QA Test No. 119
3 # pmlogger_check failure produces way too many lines of output
4 # pv 877570
6 # Copyright (c) 2002 Silicon Graphics, Inc. All Rights Reserved.
9 seq=`basename $0`
10 echo "QA output created by $seq"
12 # get standard environment, filters and checks
13 . ./common.product
14 . ./common.filter
15 . ./common.check
17 $sudo rm -rf $tmp.*
18 status=1 # failure is the default!
19 _needclean=true
20 [ -z "$PCP_PMLOGGERCONTROL_PATH" ] && \
21 PCP_PMLOGGERCONTROL_PATH="$PCP_SYSCONF_DIR/pmlogger/control"
23 LOGGING_DIR=$PCP_LOG_DIR/pmlogger_qa
24 PMCHECK_LOG=$LOGGING_DIR/pmlogger_check.log
26 myhost=`hostname`
28 trap "_cleanup" 0 1 2 3 15
30 _cleanup()
32 if $_needclean
33 then
34 [ -f $tmp.control ] && \
35 $sudo cp $tmp.control $PCP_PMLOGGERCONTROL_PATH
36 [ -d $tmp.control.d ] && \
37 $sudo mv $tmp.control.d $PCP_PMLOGGERCONTROL_PATH.d
38 $sudo $PCP_RC_DIR/pcp restart | _filter_pcp_start
39 _wait_for_pmcd
40 _wait_for_pmlogger
41 _needclean=false
43 $sudo rm -rf $LOGGING_DIR
44 $sudo rm -f $tmp.*
45 exit $status
48 _filter()
50 sed \
51 -e "s/$myhost/LOCALHOST/g" \
52 -e "/UID.*PID/d" \
53 -e "/USER.*PID/d" \
54 -e "s/.* .*pmlogger .*-c .*/<pmlogger process>/" \
55 -e "/Warning: creating directory/s/(.*\/\([^/][^/]*\))/(...\/\1)/" \
56 | _filter_pmlogger_log \
57 | $PCP_AWK_PROG '
58 /pmlogger_check: Error: archive file .* missing/ {
59 $5 = "FILE"
60 print
61 skip = 1
62 next
64 skip == 1 { next }
65 { print }'
68 $sudo cp $PCP_PMLOGGERCONTROL_PATH $tmp.control
69 $sudo mv $PCP_PMLOGGERCONTROL_PATH.d $tmp.control.d
71 cat <<End-of-File >$tmp.tmp
72 # dummy file created by qa/$seq on `date`
73 # the goal here is to have just two pmlogger instances running and
74 # a third one that will never run ...
76 \$version=1.1
77 LOCALHOSTNAME y n $LOGGING_DIR/LOCALHOSTNAME-one -c /dev/null
78 LOCALHOSTNAME n n $LOGGING_DIR/LOCALHOSTNAME-two -c /dev/null -L
79 no.such.host.pcp.io n n $LOGGING_DIR/no.such.host.pcp.io -c /dev/null
80 End-of-File
81 $sudo cp $tmp.tmp $PCP_PMLOGGERCONTROL_PATH
83 # stop pmcd, create the archive directories, start pmcd ...
85 $sudo $PCP_RC_DIR/pcp stop >$tmp.out 2>&1
86 cat $tmp.out >$seq.full
87 $sudo mkdir -p $LOGGING_DIR/${myhost}-one >/dev/null 2>&1
88 $sudo mkdir -p $LOGGING_DIR/${myhost}-two >/dev/null 2>&1
89 $sudo mkdir -p $LOGGING_DIR/no.such.host.pcp.io >/dev/null 2>&1
90 id pcp >/dev/null 2>&1 && $sudo chown -R pcp:pcp $LOGGING_DIR
91 echo "+++ before pmcd start ..." >>$seq.full
92 $PCP_PS_PROG $PCP_PS_ALL_FLAGS | grep '[p]mlogger' >>$seq.full
93 echo "+++" >>$seq.full
94 $sudo $PCP_RC_DIR/pcp start >$tmp.out 2>&1
95 cat $tmp.out >>$seq.full
96 _wait_for_pmcd
97 echo "+++ after pmcd start ..." >>$seq.full
98 $PCP_PS_PROG $PCP_PS_ALL_FLAGS | grep '[p]mlogger' >>$seq.full
99 echo "+++" >>$seq.full
101 # avoid race with pmloggers not being started before pmlogger_check
102 # is run below
103 for i in 1 2 3 4 5
105 [ -f $LOGGING_DIR/${myhost}-one/pmlogger.log -a -f $LOGGING_DIR/${myhost}-two/pmlogger.log ] && break
106 sleep 1
107 done
108 if [ ! -f $LOGGING_DIR/${myhost}-one/pmlogger.log ]
109 then
110 echo "Failed to start pmlogger for ${myhost}-one"
111 echo "Logging directory contents ..."
112 ls -l $LOGGING_DIR/${myhost}-one
113 exit
116 if [ ! -f $LOGGING_DIR/${myhost}-two/pmlogger.log ]
117 then
118 echo "Failed to start pmlogger for ${myhost}-two"
119 echo "Logging directory contents ..."
120 ls -l $LOGGING_DIR/${myhost}-two
121 exit
124 # real QA test starts here
125 echo
126 echo "=== pmlogger_check ==="
127 echo "+++ before pmlogger_check ..." >>$seq.full
128 $PCP_PS_PROG $PCP_PS_ALL_FLAGS | grep '[p]mlogger' >>$seq.full
129 echo "+++" >>$seq.full
130 echo >>$seq.full
131 echo "=== pmlogger_check ===" >>$seq.full
132 $sudo $PCP_BINADM_DIR/pmlogger_check -l $PMCHECK_LOG
133 echo "+++ after pmlogger_check ..." >>$seq.full
134 $PCP_PS_PROG $PCP_PS_ALL_FLAGS | grep '[p]mlogger' >>$seq.full
135 echo "+++" >>$seq.full
136 _filter < $PMCHECK_LOG
137 cat $PMCHECK_LOG >>$seq.full
139 echo | tee -a $seq.full
140 echo "=== pmlogger_check -T ===" | tee -a $seq.full
141 $sudo $PCP_BINADM_DIR/pmlogger_check -T -l $PMCHECK_LOG
142 _filter < $PMCHECK_LOG
143 cat $PMCHECK_LOG >>$seq.full
145 # all OK
146 status=0
147 exit