/var/lib/pcp/testsuite/490 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 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | #!/bin/sh
# PCP QA Test No. 490
# check for mem leaks in pmlogrewrite
#
# Copyright (c) 2011 Ken McDonell. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check
which pmlogrewrite >/dev/null 2>&1 || _notrun "pmlogrewrite not installed"
_check_valgrind
status=0 # success is the default!
$sudo rm -rf $tmp.* $seq.full
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
_filter()
{
sed \
-e "s;$tmp;TMP;g" \
-e "s/^\([+-][+-][+-] TMP\...t*\).*/\1/"
}
_cmp()
{
if [ ! -f "$1.0" ]
then
echo "Arrgh ... $1.0 missing" | _filter
return
fi
if [ ! -f "$2.0" ]
then
echo "Arrgh ... $2.0 missing" | _filter
return
fi
pmdumplog -z -a $1 | tee -a $seq.full | sed -e '/\[[0-9][0-9]* bytes]/d' >$tmp.in
pmdumplog -z -a $2 | tee -a $seq.full | sed -e '/\[[0-9][0-9]* bytes]/d' >$tmp.out
if [ -n "$oldfilter" ]
then
$oldfilter <$tmp.in >$tmp.tmp
mv $tmp.tmp $tmp.in
fi
if [ -n "$newfilter" ]
then
$newfilter <$tmp.out >$tmp.tmp
mv $tmp.tmp $tmp.out
fi
echo "pmdumplog diffs ..."
diff -u $tmp.in $tmp.out | _filter
}
# find sample.mirage values and rescale like pmlogrewrite is expected to
#
# 10:47:07.419 29.0.37 (sample.mirage):
# inst [0 or "m-00"] value 27
# inst [12 or "m-12"] value 1226
# inst [13 or "m-13"] value 1325
# inst [15 or "m-15"] value 1524
# inst [16 or "m-16"] value 1623
# 29.0.7 (sample.drift): value 88
_scale()
{
$PCP_AWK_PROG '
/\(sample.mirage\):/ { xlate=1; print; next }
xlate == 1 && $1 != "inst" { xlate = 0 }
xlate == 1 && $1 == "inst" { $6 = int((3600*$6 + 512)/1024) }
{ print }'
}
# same as _scale, w/out scale conversion ... copy awk whitespace rewriting
_noscale()
{
$PCP_AWK_PROG '
/\(sample.mirage\):/ { xlate=1; print; next }
xlate == 1 && $1 != "inst" { xlate = 0 }
xlate == 1 && $1 == "inst" { $6 = $6+0 }
{ print }'
}
# real QA test starts here
cat <<End-of-File >$tmp.conf
global {
hostname -> whizz-bang.engr.sgi.com
TZ -> "GMT+10"
Time -> +30
}
indom 1.5 {
indom -> 42.10
iname "15 minute" -> "forever"
iname "1 minute" -> "1 minute is not very long unlike this string"
inst 15 -> 9999
}
metric 1.*.* { pmid -> 42.*.* }
metric irix.kernel.all.load { name->load type->double }
metric hinv.ncpu { name->hinv.number_of_cpus type->U64 }
End-of-File
rm -f $tmp.new.*
cat $tmp.conf >>$seq.full
_run_valgrind pmlogrewrite -c $tmp.conf src/rattle $tmp.new 2>$tmp.err | _filter
cat $tmp.err >>$seq.full
_cmp src/rattle $tmp.new
cat <<End-of-File >$tmp.conf
metric sample.mirage_longlong { type->U32 indom->NULL }
metric sample.scale_step.time_up_secs { type->FLOAT units->0,1,0,0,MSEC,0 }
End-of-File
rm -f $tmp.new.*
cat $tmp.conf >>$seq.full
_run_valgrind pmlogrewrite -c $tmp.conf src/sample_expr $tmp.new 2>$tmp.err | _filter
cat $tmp.err >>$seq.full
_cmp src/sample_expr $tmp.new
cat <<End-of-File >$tmp.conf
metric sample.bin { name -> x23456789.sample.bin type -> 64 }
metric sample.mirage { type -> FLOAT units -> 1,-1,0,MBYTE,HOUR,0 }
metric sample.drift { delete }
indom 29.2 {
iname "bin-100" -> delete
iname "bin-400" -> delete
iname "bin-500" -> delete
iname "bin-600" -> delete
inst 900 -> delete }
indom 29.3 { iname "m-00" -> delete inst 33 -> delete }
End-of-File
rm -f $tmp.new.*
cat $tmp.conf >>$seq.full
_run_valgrind pmlogrewrite -s -c $tmp.conf src/mirage $tmp.new 2>$tmp.err | _filter
cat $tmp.err >>$seq.full
oldfilter=_scale
newfilter=_noscale
_cmp src/mirage $tmp.new
echo
echo "=== correctness checked in QA 493 ... only care about valgrind here ==="
cat <<End-of-File >$tmp.conf
metric sample.ulong.bin_ctr {
indom -> NULL output MIN
type -> DOUBLE
units -> 1,0,0,BYTE,0,0
}
metric sample.ulonglong.bin_ctr {
indom -> NULL output MAX
type -> 32
units -> 1,0,0,BYTE,0,0
}
metric sampledso.double.bin_ctr {
indom -> NULL output AVG
type -> FLOAT
}
metric sample.float.bin_ctr {
indom -> NULL output SUM
type -> U64
}
metric sample.longlong.bin_ctr {
indom -> NULL output FIRST
type -> 64
units -> 1,-1,0,KBYTE,SEC,0
}
indom 29.2 { inst 200 -> DELETE }
indom 30.2 { inst 800 -> DELETE }
End-of-File
rm -f $tmp.new.*
cat $tmp.conf >>$seq.full
_run_valgrind pmlogrewrite -s -c $tmp.conf src/mirage $tmp.new 2>$tmp.err | _filter
cat $tmp.err >>$seq.full
# success, all done
exit
|