/var/lib/pcp/testsuite/243 is in pcp-testsuite 3.8.12ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | #! /bin/sh
# PCP QA Test No. 023
# Multiple PMCDs test
#
# 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
if pmcd -x /dev/null -p x 2>&1 | grep '.-p requires' >/dev/null
then
if test $PCP_VER -ge 3611
then
ipv6=false
eval `pmconfig -L 2>/dev/null`
if [ "$ipv6" = "true" ]; then
ln $seq.out.5 $seq.out || exit 1
else
ln $seq.out.4 $seq.out || exit 1
fi
elif test $PCP_VER -ge 2704
then
ln $seq.out.3 $seq.out
else
ln $seq.out.2 $seq.out
fi
else
ln $seq.out.1 $seq.out
fi
_filter_err()
{
_filter_pmcd_log \
| sed \
-e 's/ __pmBind: / bind: /g' \
-e 's/may already be running/is already running/g' \
-e '/Log for pmcd/,/INADDR_ANY/c\
... boring stuff deleted' \
-e '/ok FD 44321 ipv6 INADDR_ANY/d' \
-e '/OpenRequestSocket.*unix.*bind: Address already in use/,+1 d' \
-e 's/ INADDR_ANY/ 0x0/g'
}
_filter_log()
{
sleep 3
_filter_pmcd_log <./pmcd.log \
| sed \
-e '/^DATA: from client/d' \
-e 's/Cannot open 000000660066: No such file or directory//' \
-e 's/^$//' \
-e '/^00[08]:/d' \
-e '/pmGetPDU/{
s/\[[0-9][0-9]*]/[PID]/
s/from=.*/from=PID/
}' \
-e '/_pmHaveMoreInput/{
s/\[[0-9][0-9]*]/[PID]/
s/0x[^ ]*\([^ ][^ ][^ ]\)/ADDR...\1/
}' \
-e '/Piggy-back/{
s/0x[^ ]*\([^ ][^ ][^ ]\)/ADDR...\1/
s/from=.*/from=PID/
}' \
-e '/pmXmitPDU/s/\[[0-9][0-9]*]/[PID]/' \
-e '/pmResult/s/ .* numpmid/ ... numpmid/' \
-e '/value /{
s/value [0-9][0-9]*/value INTEGER/
}' \
-e 's;pcp/lib/mips_[^.]*\.;pcp/lib/ISA.;' \
| $PCP_AWK_PROG '
$3 ~ /^[0-9][0-9]*$/ { $3 = "A_PID" }
{ print }'
}
signal=$PCP_BINADM_DIR/pmsignal
_needclean=true
rm -rf $tmp
mkdir $tmp
chmod ugo+rwx $tmp
cd $tmp
cleanup()
{
cd $here
if $_needclean
then
_needclean=false
$signal -s TERM $my_pmcd_pid
sleep 1
unset PMCD_SOCKET
echo "Restart and ping pmcd ..."
$sudo $PCP_RC_DIR/pcp restart | _filter_pcp_start
_wait_for_pmcd
_wait_for_pmlogger
pmprobe pmcd.control.debug
fi
rm -rf $tmp
}
status=1
trap "cleanup; exit \$status" 0 1 2 3 15
# real QA test starts here
$sudo $PCP_RC_DIR/pcp stop | _filter_pcp_stop
# Note: start pmcd with -f so that its PID stays the same (no daemon)
#
export PMCD_SOCKET=$tmp/pmcd.socket
$PCP_PMCD_PROG -f -x err1 &
my_pmcd_pid=$!
_wait_for_pmcd
echo "Checking for startup errors ..."
[ -f err1 ] && _filter_err <err1
# Try to start another pmcd. This should fail because the socket is already in
# use. Make sure that there are no changes to the log file
#
if [ -f pmcd.log ]
then
cp pmcd.log pmcd.log.$$
else
echo "No pmcd.log, pmcd failed to start!"
exit
fi
echo
echo "Trying to start another PMCD over the top of the first one."
echo "Expect \"bind: Address already in use\"...:"
$PCP_PMCD_PROG -f -x err2 2>&1 | _filter_err &
sleep 2
echo "Checking for startup errors ..."
[ -f err2 ] && _filter_err <err2
echo "Checking that log hasn't changed ..."
diff pmcd.log pmcd.log.$$
status=$?
|