summaryrefslogtreecommitdiff
path: root/qa/172
diff options
context:
space:
mode:
Diffstat (limited to 'qa/172')
-rwxr-xr-xqa/172115
1 files changed, 115 insertions, 0 deletions
diff --git a/qa/172 b/qa/172
new file mode 100755
index 0000000..8e44471
--- /dev/null
+++ b/qa/172
@@ -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