#! /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 >$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 $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