summaryrefslogtreecommitdiff
path: root/qa/642
diff options
context:
space:
mode:
Diffstat (limited to 'qa/642')
-rwxr-xr-xqa/642126
1 files changed, 126 insertions, 0 deletions
diff --git a/qa/642 b/qa/642
new file mode 100755
index 0000000..0242503
--- /dev/null
+++ b/qa/642
@@ -0,0 +1,126 @@
+#! /bin/sh
+# PCP QA Test No. 642
+# concurrent PMDA installs trash the PMNS?
+#
+# 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 $seq.full
+if [ $PCP_VER -ge 3813 ]
+then
+ ln $seq.out.4 $seq.out || exit 1
+elif [ $PCP_VER -ge 3801 ]
+then
+ ln $seq.out.3 $seq.out || exit 1
+elif [ $PCP_VER -ge 3600 ]
+then
+ ln $seq.out.2 $seq.out || exit 1
+else
+ ln $seq.out.1 $seq.out || exit 1
+fi
+
+status=0 # success is the default!
+$sudo rm -rf $tmp.*
+done_clean=false
+
+pcp >>$here/$seq.full
+pminfo trace >/dev/null 2>&1
+remove_trace=$?
+echo "remove_trace=$remove_trace" >>$here/$seq.full
+pminfo trivial >/dev/null 2>&1
+remove_trivial=$?
+echo "remove_trivial=$remove_trivial" >>$here/$seq.full
+pminfo sendmail >/dev/null 2>&1
+remove_sendmail=$?
+echo "remove_sendmail=$remove_sendmail" >>$here/$seq.full
+
+_setup_pmdas()
+{
+ cd $PCP_PMDAS_DIR
+ for pmda in trivial simple sample sendmail trace
+ do
+ cd $pmda
+ $sudo ./Install -e -Q </dev/null >>$here/$seq.full 2>&1
+ cd ..
+ done
+}
+
+_cleanup()
+{
+ if $done_clean
+ then
+ :
+ else
+ if [ $remove_trace -ne 0 ]
+ then
+ cd $PCP_PMDAS_DIR/trace
+ $sudo ./Remove >>$here/$seq.full 2>&1
+ fi
+ if [ $remove_trivial -ne 0 ]
+ then
+ cd $PCP_PMDAS_DIR/trivial
+ $sudo ./Remove >>$here/$seq.full 2>&1
+ fi
+ if [ $remove_sendmail -ne 0 ]
+ then
+ cd $PCP_PMDAS_DIR/sendmail
+ $sudo ./Remove >>$here/$seq.full 2>&1
+ fi
+ [ -f $tmp.pmcd.conf ] && $sudo cp $tmp.pmcd.conf $PCP_PMCDCONF_PATH
+ $sudo $PCP_RC_DIR/pcp restart | _filter_pcp_start
+ _wait_for_pmcd
+ _wait_for_pmlogger
+ done_clean=true
+ fi
+ $sudo rm -f $tmp.*
+ exit $status
+}
+
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+# copy the pmcd config file to restore state later.
+$sudo cp $PCP_PMCDCONF_PATH $tmp.pmcd.conf
+
+# real QA test starts here
+unset ROOT TOOLROOT MAKEFLAGS
+_setup_pmdas
+pminfo -n $PCP_VAR_DIR/pmns/root | LC_COLLATE=POSIX sort >$tmp.pmns.start
+
+# do 'em in parallel
+#
+cd $PCP_PMDAS_DIR
+i=1
+for pmda in trivial simple sample sendmail trace
+do
+ cd $pmda
+ $sudo ./Install -e -Q </dev/null >$tmp.out.$i 2>&1 &
+ cd ..
+ i=`expr $i + 1`
+done
+
+wait
+
+for i in 1 2 3 4 5
+do
+ echo
+ echo "=== install #$i ==="
+ _filter_pmda_install <$tmp.out.$i
+done
+
+echo
+echo "=== PMNS differences (none expected) ==="
+pminfo -n $PCP_VAR_DIR/pmns/root \
+| LC_COLLATE=POSIX sort \
+| diff - $tmp.pmns.start
+echo
+
+# success, all done
+exit