summaryrefslogtreecommitdiff
path: root/qa/347
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
committerIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
commit47e6e7c84f008a53061e661f31ae96629bc694ef (patch)
tree648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /qa/347
downloadpcp-47e6e7c84f008a53061e661f31ae96629bc694ef.tar.gz
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'qa/347')
-rwxr-xr-xqa/347143
1 files changed, 143 insertions, 0 deletions
diff --git a/qa/347 b/qa/347
new file mode 100755
index 0000000..bd0032c
--- /dev/null
+++ b/qa/347
@@ -0,0 +1,143 @@
+#! /bin/sh
+# PCP QA Test No. 347
+# Exercise the Install/Remove for the news PMDA
+#
+# 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
+
+perl -e "use PCP::PMDA" >/dev/null 2>&1
+test $? -eq 0 || _notrun "PCP::PMDA perl module is not installed"
+
+rm -f $seq.out
+if [ $PCP_VER -lt 3600 ]
+then
+ ln $seq.out.1 $seq.out || exit 1
+else
+ ln $seq.out.2 $seq.out || exit 1
+fi
+
+status=1
+done_clean=false
+
+_cleanup()
+{
+ if $done_clean
+ then
+ :
+ else
+ [ -f $tmp.pmcd.conf ] && $sudo mv $tmp.pmcd.conf $PCP_PMCDCONF_PATH
+ rm -f $tmp.*
+ $sudo $PCP_RC_DIR/pcp restart | _filter_pcp_start
+ _wait_for_pmcd
+ _wait_for_pmlogger
+ if $install_on_cleanup
+ then
+ ( cd $PCP_PMDAS_DIR/news; $sudo ./Install </dev/null >/dev/null 2>&1 )
+ else
+ ( cd $PCP_PMDAS_DIR/news; $sudo ./Remove </dev/null >/dev/null 2>&1 )
+ fi
+ done_clean=true
+ fi
+ exit $status
+}
+
+install_on_cleanup=false
+pminfo news >/dev/null 2>&1 && install_on_cleanup=true
+
+trap "_cleanup" 0 1 2 3 15
+
+_filter()
+{
+ _filter_pmda_install | \
+ sed -e 's/^Install news as a daemon or perl agent? \[daemon] //'
+}
+
+_filter_info()
+{
+ sed \
+ -e 's/value -[0-9][0-9]*\.[0-9]*/value NEGATIVE NUMBER/' \
+ -e 's/value -[0-9][0-9]*/value NEGATIVE NUMBER/' \
+ -e 's/value [0-9][0-9]*\.[0-9]*/value NUMBER/' \
+ -e 's/value [0-9][0-9]*/value NUMBER/'
+}
+
+# real QA test starts here
+home=$PCP_PMDAS_DIR
+iam=news
+if [ ! -d $home/$iam ]
+then
+ echo "Where is $home/$iam?"
+ exit 1
+fi
+cd $home/$iam
+unset ROOT MAKEFLAGS
+
+# copy the pmcd config file to restore state later.
+cp $PCP_PMCDCONF_PATH $tmp.pmcd.conf
+
+# start from a known starting point
+$sudo ./Remove >/dev/null 2>&1
+
+# now that pmcd is also known to be alive, give the news PMDA
+# a bit more breathing space to respond
+#
+pmstore pmcd.control.timeout 20 >/dev/null 2>&1
+PMCD_REQUEST_TIMEOUT=25
+export PMCD_REQUEST_TIMEOUT
+
+echo
+echo "=== default $iam agent installation ==="
+$sudo ./Remove >$tmp.out 2>&1
+
+$sudo ./Install </dev/null >>$tmp.out 2>&1
+_filter <$tmp.out
+
+if pminfo -v $iam
+then
+ :
+else
+ echo "... failed! ... here is the Install log ..."
+ cat $tmp.out
+fi
+
+echo
+echo "=== validate values ==="
+pminfo -f `pminfo $iam | LC_COLLATE=POSIX sort` >$tmp.out
+_filter_info <$tmp.out
+
+if fgrep -s "No PMCD agent" $tmp.out >/dev/null 2>&1
+then
+ echo
+ echo "Looks bad ..."
+ echo
+ echo "pmcd.log ..."
+ cat $PCP_PMCDLOG_PATH
+ echo
+ echo "news.log ..."
+ if [ -d $PCP_LOG_DIR/pmcd ]
+ then
+ cat $PCP_LOG_DIR/pmcd/news.log
+ else
+ cat $PCP_LOG_DIR/news.log
+ fi
+fi
+
+echo
+echo "=== remove $iam agent ==="
+$sudo ./Remove >$tmp.out 2>&1
+_filter <$tmp.out
+
+# be a good citizen
+#
+pmstore pmcd.control.timeout 5 >/dev/null 2>&1
+
+status=0
+exit