1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#! /bin/sh
# PCP QA Test No. 068
# pmNewContext() bad error status if pmcd is not running
#
# Note: this is the simplest test to get the pmcd start/stop filtering
# to be correct ... use this to tune _filter_pcp_start() and
# _filter_pcp_stop() in common.filter
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check
_needclean=true
LOCALHOST=`hostname`
LOGGING_DIR="$PCP_ARCHIVE_DIR"
trap "_cleanup" 0 1 2 3 15
_stop_auto_restart pmcd
_cleanup()
{
echo >>$seq_full
echo "--- cleanup ---" >>$seq_full
if [ $_needclean ]
then
pmafm $LOGGING_DIR/$LOCALHOST/Latest remove >$tmp.cmd 2>&1 \
&& $sudo sh $tmp.cmd
echo >>$seq_full
echo "--- pcp stop ---" >>$seq_full
_service pmlogger stop 2>&1 >>$seq_full
_wait_pmlogger_end
_service pmcd stop 2>&1 >>$seq_full
_wait_pmcd_end
echo "--- pcp start ---" >>$seq_full
_service pmcd start 2>&1 \
| tee -a $seq_full \
| _filter_pcp_start
_restore_auto_restart pmcd
_service pmlogger start 2>&1 \
| tee -a $seq_full \
| _filter_pcp_start
echo >>$seq_full
echo "--- _wait_for_pmcd ---" >>$seq_full
_wait_for_pmcd | tee -a $seq_full
echo >>$seq_full
echo "--- _wait_for_pmlogger ---" >>$seq_full
_wait_for_pmlogger | tee -a $seq_full
fi
rm -f $tmp.*
exit 0
}
# real QA test starts here
echo "--- pcp stop ---" >>$seq_full
if ! _service pmlogger stop 2>&1; then _exit 1; fi \
| tee -a $seq_full \
| _filter_pcp_stop
_wait_pmlogger_end || _exit 1
if ! _service pmcd stop 2>&1; then _exit 1; fi \
| tee -a $seq_full \
| _filter_pcp_stop
_wait_pmcd_end || _exit 1
echo >>$seq_full
echo "--- run pmcdgone ---" >>$seq_full
$sudo src/pmcdgone | tee -a $seq_full
|