#! /bin/sh # PCP QA Test No. 110 # check out simple 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 signal=$PCP_BINADM_DIR/pmsignal status=1 PMDA_LOG_PATH=`echo $PCP_PMCDLOG_PATH | sed -e 's/pmcd.log/simple.log/'` _cleanup() { [ -f $tmp.conf.bak ] && $sudo cp $tmp.conf.bak $home/$iam/$iam.conf if diff $tmp.pmcd.conf $PCP_PMCDCONF_PATH > /dev/null 2>&1 then : else # do a default install which ensures the pmns and any views are installed $sudo ./Install < /dev/null > /dev/null 2>&1 # PMDA may have been installed differently to default. As everything is # installed we can use the old pmcd.conf file to restore state. if diff $tmp.pmcd.conf $PCP_PMCDCONF_PATH > /dev/null 2>&1 then : else [ -f $tmp.pmcd.conf ] && $sudo mv $tmp.pmcd.conf $PCP_PMCDCONF_PATH $sudo $signal -a -s HUP pmcd fi fi $sudo rm -f $tmp.* exit $status } trap "_cleanup" 0 1 2 3 15 _failed() { echo echo "... failed! ... here is the Install log ..." cat $tmp.out echo echo "... and the tail of the pmcd log ..." tail -20 $PCP_PMCDLOG_PATH echo echo "...and the PMDA log ..." cat $PMDA_LOG_PATH } _filter() { _filter_pmda_install | \ sed \ -e 's/ or perl//' \ -e 's/ or python//' \ -e "s;$tmp;TMP;" \ -e "s/$port1/PORT1/" \ -e "s/$port2/PORT2/" } _full() { echo "--- pmcd.conf ---" >>$here/$seq.full cat $PCP_PMCDCONF_PATH >>$here/$seq.full echo "--- pmcd.log ---" >>$here/$seq.full cat $PCP_PMCDLOG_PATH >>$here/$seq.full echo "--- simple.log ---" >>$here/$seq.full if [ -f $PMDA_LOG_PATH ] then cat $PMDA_LOG_PATH >>$here/$seq.full else echo "$PMDA_LOG_PATH: file not found" >>$here/$seq.full fi echo >>$here/$seq.full } rm -f $seq.full # real QA test starts here home=$PCP_PMDAS_DIR iam=simple 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 if $sudo make clobber >$tmp.out 2>&1 then : else cat $tmp.out echo "Arrgh, make clobber failed" exit fi # start from a known starting point $sudo ./Remove >/dev/null 2>&1 echo echo "=== pipe daemon agent ===" echo "=== pipe daemon agent ===" >>$here/$seq.full $sudo ./Remove >$tmp.out 2>&1 $sudo rm -f $PMDA_LOG_PATH echo 'both daemon pipe' | $sudo ./Install -e >>$tmp.out 2>&1 _full _filter <$tmp.out if pminfo -v simple then : else _failed fi echo echo "=== Unix socket daemon agent ===" echo "=== Unix socket daemon agent ===" >>$here/$seq.full $sudo ./Remove >$tmp.out 2>&1 echo 'both daemon socket Unix '"$tmp.fifo-1" | $sudo ./Install -e >>$tmp.out 2>&1 $sudo rm -f $PMDA_LOG_PATH echo 'both daemon socket Unix '"$tmp.fifo-2" | $sudo ./Install -e >>$tmp.out 2>&1 _full _filter <$tmp.out if pminfo -v simple then : else _failed fi echo echo "=== Internet socket daemon agent ===" echo "=== Internet socket daemon agent ===" >>$here/$seq.full $sudo ./Remove >$tmp.out 2>&1 # pick a tcp port that is not in use # port1=`_get_port tcp 5650 5699` if [ -z "$port1" ] then echo "Arrgh ... no free TCP port in the range 5650 ... 5699" exit 1 fi echo 'both daemon socket Internet '$port1 | $sudo ./Install -e >>$tmp.out 2>&1 # use next port this time port2=`expr $port1 + 1` $sudo rm -f $PMDA_LOG_PATH echo 'both daemon socket Internet '$port2 | $sudo ./Install -e >>$tmp.out 2>&1 _full _filter <$tmp.out if pminfo -v simple then : else _failed fi echo echo "=== dso agent ===" echo "=== dso agent ===" >>$here/$seq.full $sudo ./Remove >$tmp.out 2>&1 echo 'both dso' | $sudo ./Install -e >>$tmp.out 2>&1 $sudo rm -f $PMDA_LOG_PATH echo 'both dso' | $sudo ./Install -e >>$tmp.out 2>&1 _full _filter <$tmp.out if pminfo -v simple then : else _failed fi $sudo ./Remove >$tmp.out 2>&1 _filter <$tmp.out status=0 exit