/var/lib/pcp/testsuite/4751 is in pcp-testsuite 4.0.1-1.
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 151 152 153 154 155 | #!/bin/sh
# PCP QA Test No. 4751
# multi-threaded context-creation
seq=`basename $0`
echo "QA output created by $seq"
# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check
# On some VMs (especially with relatively small memory configs), helgrind
# gets whacked by the kernel's OOM killer ... so don't waste our time
# even trying to run this test on machines where this has been observed.
#
# Similarly on slow VMs we sometimes also see SIGALRM while calling
# pthread_mutex_lock(). Skip these VMs also.
#
case `hostname`
in
vm00|vm01|vm02|vm03|vm05|vm07|vm18|vm28|vm30|vm34)
_notrun "multithread10 and helgrind are not happy campers on `hostname`"
# NOTREACHED
;;
esac
_check_valgrind
_get_libpcp_config
$multi_threaded || _notrun "No libpcp threading support"
status=0 # success is the default!
$sudo rm -f $tmp.* /tmp/func?.out $seq.full
trap "rm -f $tmp.* /tmp/func?.out; exit \$status" 0 1 2 3 15
# collect stderr as we go
exec 2>> $seq.full
_filter_ncpu()
{
tee -a $seq.full | sed -e 's, [0-9]*$, NUMBER,'
}
# depending on network setup, there is a race between ...
# 192.0.2.10 -110 (Connection timed out)
# and
# 192.0.2.10 -101 (Network is unreachable)
# and
# 192.0.2.10 -113 (No route to host)
# so treat 'em as equivalent here ...
#
_filter_connect_fail()
{
sed \
-e '/^192\..*-113$/s/-113/-101 or -110 or -113/' \
-e '/^192\..*-110$/s/-110/-101 or -110 or -113/' \
-e '/^192\..*-101$/s/-101/-101 or -110 or -113/' \
# end
}
# real QA test starts here
echo "=== Only one context ===" | tee -a $seq.full
date >> $seq.full
_run_helgrind src/multithread10 localhost
_filter_ncpu <$tmp.valgrind.out
if [ -s $tmp.valgrind.err ]
then
echo "=== stderr ==="
cat $tmp.valgrind.err
fi
date >> $seq.full
echo | tee -a $seq.full
echo "=== A couple of localhosts ===" | tee -a $seq.full
date >> $seq.full
_run_helgrind src/multithread10 localhost 127.0.0.1 localhost localhost local: local: localhost
_filter_ncpu <$tmp.valgrind.out | _filter_connect_fail
if [ -s $tmp.valgrind.err ]
then
echo "=== stderr ==="
cat $tmp.valgrind.err
fi
date >> $seq.full
echo | tee -a $seq.full
echo "=== A couple of unreachable hosts ===" | tee -a $seq.full
date >> $seq.full
ips=""
for i in 1 2 3 4; do
for j in 0 1 2 3 4 5 6 7 8 9; do
ips="$ips 192.0.2.${i}${j}"
done
done
_run_helgrind src/multithread10 $ips
_filter_ncpu <$tmp.valgrind.out | _filter_connect_fail
if [ -s $tmp.valgrind.err ]
then
echo "=== filtered stderr ==="
grep -v 'warn fail multithread10' $tmp.valgrind.err
fi
date >> $seq.full
echo | tee -a $seq.full
echo "=== A mixture of archives and hosts and unreachable hosts ===" | tee -a $seq.full
ips="localhost local: localhost local: localhost local: 127.0.0.1 127.0.0.1 "
for i in 1 2 1 2 ; do
for j in 0 1 2 3 4 5 6 7 8 9; do
ips="$ips 192.0.2.${i}${j}"
done
done
# a snapshot of archives as of our incept date, some of them repeated
archives="
./archives/tzchange-10-a.meta
./archives/tzchange-10-b.meta
./archives/tzchange-11-a.meta
./archives/tzchange-11-b.meta
./archives/tzchange-12-a.meta
./archives/tzchange-12-b.meta
./archives/pcp-vmstat.meta
./archives/pmatop-log.meta
./archives/pmiostat_mark.meta
./archives/proc.meta
./archives/procpid-encode2.meta
./archives/procpid-encode.meta
./archives/eventrec-old.meta
./archives/fcsw_indom.meta
./archives/foo+.meta
./archives/gap2.meta
./archives/gap.meta
./archives/gmt-boring.meta
./archives/instant-1.meta
./archives/instant-base.meta
./archives/interpmark.meta
./archives/kenj-pc-1.meta
./archives/kenj-pc-2.meta
./archives/kenj-pc-diskstat.meta
./archives/20041125.meta
./archives/20071023-08-06-36.meta
./archives/20101004-trunc.meta
./archives/20130706.meta
./archives/20150105.17.57-00.meta
./archives/20150105.17.57.meta
"
date >> $seq.full
_run_helgrind --sudo src/multithread10 $archives $ips $archives $ips
_filter_ncpu <$tmp.valgrind.out | _filter_connect_fail
if [ -s $tmp.valgrind.err ]
then
echo "=== filtered stderr ==="
grep -v 'warn fail multithread10' $tmp.valgrind.err
fi
date >> $seq.full
# success, all done
exit
|