diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
commit | 47e6e7c84f008a53061e661f31ae96629bc694ef (patch) | |
tree | 648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /qa/172 | |
download | pcp-debian.tar.gz |
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'qa/172')
-rwxr-xr-x | qa/172 | 115 |
1 files changed, 115 insertions, 0 deletions
@@ -0,0 +1,115 @@ +#! /bin/sh +# PCP QA Test No. 172 +# Exercise $PMCD_PORT and $PMLOGGER_PORT mechanisms +# +# Copyright (c) 2014 Red Hat. +# Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved. +# + +seq=`basename $0` +echo "QA output created by $seq" + +# get standard filters +. ./common.product +. ./common.filter +. ./common.check + +rm -f $seq.out +_get_libpcp_config +if $ipv6 ; then + ln $seq.out.ipv6 $seq.out || exit 1 +else + ln $seq.out.nonipv6 $seq.out || exit 1 +fi + +LOCALHOST=`hostname` +_needclean=true +status=0 + +_interrupt() +{ + status=1 +} + +if [ -d $PCP_LOG_DIR/pmlogger ] +then + LOGGING_DIR=$PCP_LOG_DIR/pmlogger +else + LOGGING_DIR=$PCP_LOG_DIR +fi + +_cleanup() +{ + if $_needclean + then + unset PMCD_PORT + unset PMLOGGER_PORT + pmafm $LOGGING_DIR/$LOCALHOST/Latest remove >$tmp.cmd 2>&1 \ + && $sudo sh $tmp.cmd + $sudo $PCP_RC_DIR/pcp restart | _filter_pcp_start + _wait_for_pmcd + _wait_for_pmlogger + _needclean=false + fi + rm -f $tmp.* + exit $status +} + +pmafm $LOGGING_DIR/$LOCALHOST/Latest remove >$tmp.cmd 2>&1 \ +&& $sudo sh $tmp.cmd + +trap "_cleanup" 0 +trap "_interrupt; _cleanup" 1 2 3 15 + +rm -f $seq.full + +# real QA test starts here +PMCD_PORT=42000 +PMLOGGER_PORT=43000 +export PMCD_PORT PMLOGGER_PORT + +echo "pmcd with PMCD_PORT=$PMCD_PORT, pmlogger with PMLOGGER_PORT=$PMLOGGER_PORT" +# need to do this indirectly because system sudo cleanses the environment +# +echo "export PMCD_PORT=$PMCD_PORT" >$tmp.start +echo "export PMLOGGER_PORT=$PMLOGGER_PORT" >>$tmp.start +echo "$PCP_RC_DIR/pcp restart" >>$tmp.start + +$sudo sh $tmp.start | _filter_pcp_start +_wait_for_pmlogger -P $LOGGING_DIR/$LOCALHOST/pmlogger.log + +echo +echo "pminfo with PMCD_PORT=$PMCD_PORT" +pminfo -v pmcd \ +| sed -e '/^pmcd\.pmie/d' + +echo +echo "pmlc with PMLOGGER_PORT=$PMLOGGER_PORT" +echo "show loggers" | pmlc \ +| sed \ + -e '/primary/s/([0-9][0-9]*)/(LOGGER_PID) .../' \ + -e "s/on `hostname`/on HOST/" \ + -e "s/on local:/on HOST/" \ + -e 's/ *[0-9][0-9]*//g' + +echo +echo 'port from $PCP_TMP_DIR/pmlogger/primary' +sed -e 1q $PCP_TMP_DIR/pmlogger/primary + +# For Mac OS X need to massage lines like .. +# tcp4 0 0 *.42000 *.* LISTEN +# tcp6 0 0 *.42000 *.* LISTEN +# +echo "... and netstat" +netstat -an \ +| tee -a $seq.full \ +| sed -n -e '/4[23]000.*LISTEN/{ +s/0\.0\.0\.0/inet/g +s/:::/inet6:/g +s/tcp4[ 0]*\*./inet./ +s/tcp6[ 0]*\*./inet6./ +s/:/./g +s/.*\(inet6*.4[23]000\).*\(LISTEN\).*/... \1 ... \2/ +p +}' \ +| sort |