diff options
Diffstat (limited to 'qa/642')
-rwxr-xr-x | qa/642 | 126 |
1 files changed, 126 insertions, 0 deletions
@@ -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 |