#! /bin/sh # PCP QA Test No. 019 # Exercse optional PMDA availability for PM_CONTEXT_LOCAL # # Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved. # seq=`basename $0` rm -f $seq.out . ./localconfig rm -f $seq.out if [ $PCP_PLATFORM = linux ] then if [ $PCP_VER -lt 3103 ] then ln $seq.linux.1 $seq.out || exit 1 else # proc metrics may not be available # if pminfo proc.nprocs >/dev/null 2>&1 then # available, but if not a DSO agent, then pminfo -L will # know about the metric, but not find the PMDA # type=`pminfo -f pmcd.agent.type | sed -n -e '/"proc"/{ s/.*value // p }'` case "$type" in 0) # DSO ln $seq.linux.2 $seq.out || exit 1 ;; 2|4)# daemon ln $seq.linux.4 $seq.out || exit 1 ;; *) echo "Botch ... don't understand proc PMDA type ($type)" pminfo -f pmcd.agent.type exit 1 ;; esac else ln $seq.linux.3 $seq.out || exit 1 fi fi elif [ $PCP_PLATFORM = darwin ] then ln $seq.darwin $seq.out || exit 1 elif [ $PCP_PLATFORM = solaris ] then ln $seq.solaris $seq.out || exit 1 else echo "Error: no validated output for $PCP_PLATFORM" exit 1 fi echo "QA output created by $seq" # get standard filters . ./common.product . ./common.filter trap "rm -f $tmp.*; exit 0" 0 1 2 3 15 _filter() { sed -e '/using .* kmem interface/d' \ | _filter_pmcd_log } # real QA test starts here # neither unset PCP_LITE_SAMPLE unset PMDA_LOCAL_SAMPLE unset PMDA_LOCAL_PROC echo "*** This should fail" echo "PCP_LITE_SAMPLE=$PCP_LITE_SAMPLE PMDA_LOCAL_SAMPLE=$PMDA_LOCAL_SAMPLE" pminfo -K clear -L -f 2>&1 \ sampledso.bin sampledso.long sampledso.longlong \ sampledso.float sampledso.double sampledso.string sampledso.aggregate \ | _filter # PCP_LITE_SAMPLE set echo echo "*** This should work" PCP_LITE_SAMPLE=yes export PCP_LITE_SAMPLE echo "PCP_LITE_SAMPLE=$PCP_LITE_SAMPLE PMDA_LOCAL_SAMPLE=$PMDA_LOCAL_SAMPLE" $sudo pminfo -L -f 2>&1 \ sampledso.bin sampledso.long sampledso.longlong \ sampledso.float sampledso.double sampledso.string sampledso.aggregate \ | _filter unset PCP_LITE_SAMPLE # PMDA_LOCAL_SAMPLE set echo echo "*** This should work" PMDA_LOCAL_SAMPLE=yes export PMDA_LOCAL_SAMPLE echo "PCP_LITE_SAMPLE=$PCP_LITE_SAMPLE PMDA_LOCAL_SAMPLE=$PMDA_LOCAL_SAMPLE" $sudo pminfo -L -f 2>&1 \ sampledso.bin sampledso.long sampledso.longlong \ sampledso.float sampledso.double sampledso.string sampledso.aggregate \ | _filter unset PMDA_LOCAL_SAMPLE # both set echo echo "*** This should work" PMDA_LOCAL_SAMPLE=yes PCP_LITE_SAMPLE=yes export PMDA_LOCAL_SAMPLE PCP_LITE_SAMPLE echo "PCP_LITE_SAMPLE=$PCP_LITE_SAMPLE PMDA_LOCAL_SAMPLE=$PMDA_LOCAL_SAMPLE" $sudo pminfo -L -f 2>&1 \ sampledso.bin sampledso.long sampledso.longlong \ sampledso.float sampledso.double sampledso.string sampledso.aggregate \ | _filter unset PMDA_LOCAL_SAMPLE PCP_LITE_SAMPLE # neither set echo echo "*** This should 1/3 work, proc[no] irix[yes] sampledso[n]" echo "PCP_LITE_SAMPLE=$PCP_LITE_SAMPLE PMDA_LOCAL_SAMPLE=$PMDA_LOCAL_SAMPLE" $sudo pminfo -K clear -L -f 2>&1 \ proc.nprocs kernel.all.cpu.idle kernel.all.load sampledso.float \ | _filter \ | sed -e '/value /{ s/value -*[0-9][0-9]*\.[0-9][0-9]*/value NUMBER/g s/value -*[0-9][0-9]*/value NUMBER/g }' # PMDA_LOCAL_SAMPLE set echo echo "*** This should 2/3 work, proc[no] irix[yes] sampledso[yes]" PMDA_LOCAL_SAMPLE=yes echo "PMDA_LOCAL_SAMPLE=$PMDA_LOCAL_SAMPLE" export PMDA_LOCAL_SAMPLE $sudo pminfo -L -f 2>&1 \ proc.nprocs kernel.all.cpu.idle kernel.all.load sampledso.float \ | _filter \ | sed -e '/value /{ s/value -*[0-9][0-9]*\.[0-9][0-9]*/value NUMBER/g s/value -*[0-9][0-9]*/value NUMBER/g }' unset PMDA_LOCAL_SAMPLE # PMDA_LOCAL_SAMPLE and PMDA_LOCAL_PROC set echo echo "*** This should work, proc[yes] irix[yes] sampledso[yes]" PMDA_LOCAL_SAMPLE=yes PMDA_LOCAL_PROC=yes echo "PMDA_LOCAL_SAMPLE=$PMDA_LOCAL_SAMPLE PMDA_LOCAL_PROC=$PMDA_LOCAL_PROC" export PMDA_LOCAL_SAMPLE PMDA_LOCAL_PROC $sudo pminfo -L -f 2>&1 \ proc.nprocs kernel.all.cpu.idle kernel.all.load sampledso.float \ | _filter \ | sed -e '/value /{ s/value -*[0-9][0-9]*\.[0-9][0-9]*/value NUMBER/g s/value -*[0-9][0-9]*/value NUMBER/g }' unset PMDA_LOCAL_SAMPLE PMDA_LOCAL_PROC