summaryrefslogtreecommitdiff
path: root/qa/643
diff options
context:
space:
mode:
Diffstat (limited to 'qa/643')
-rwxr-xr-xqa/64379
1 files changed, 79 insertions, 0 deletions
diff --git a/qa/643 b/qa/643
new file mode 100755
index 0000000..2c12b25
--- /dev/null
+++ b/qa/643
@@ -0,0 +1,79 @@
+#! /bin/sh
+# PCP QA Test No. 643
+# concurrent PMDA removals trash the PMNS?
+#
+# 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
+
+signal=$PCP_BINADM_DIR/pmsignal
+status=0 # success is the default!
+$sudo rm -rf $tmp.*
+done_clean=false
+
+install_on_cleanup=false
+pminfo trivial >/dev/null 2>&1 && install_on_cleanup=true
+
+_cleanup()
+{
+ if $done_clean
+ then
+ :
+ else
+ ( cd $PCP_PMDAS_DIR/trivial ; $sudo make >/dev/null 2>&1 )
+ if $install_on_cleanup
+ then
+ ( cd $PCP_PMDAS_DIR/trivial; $sudo ./Install </dev/null >/dev/null 2>&1 )
+ else
+ ( cd $PCP_PMDAS_DIR/trivial; $sudo ./Remove </dev/null >/dev/null 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
+cd $PCP_PMDAS_DIR/trivial
+unset ROOT TOOLROOT MAKEFLAGS
+$sudo ./Remove </dev/null >/dev/null 2>&1
+pminfo -n $PCP_VAR_DIR/pmns/root >$tmp.pmns.start
+
+for i in 1 2 3 4 5
+do
+ $sudo ./Remove </dev/null >$tmp.out.$i 2>&1 &
+done
+
+wait
+
+for i in 1 2 3 4 5
+do
+ echo
+ echo "=== remove #$i ==="
+ _filter_pmda_install <$tmp.out.$i
+done
+
+echo
+echo "=== PMNS differences (none expected) ==="
+pminfo -n $PCP_VAR_DIR/pmns/root \
+| diff - $tmp.pmns.start
+echo
+
+# success, all done
+exit