3 # Increase testing code coverage in core parts of libpcp
5 # Copyright (c) 2010 Ken McDonell. All Rights Reserved.
9 echo "QA output created by $seq"
11 # get standard environment, filters and checks
16 [ -d $PCP_PMDAS_DIR/simple
] || _notrun
"simple PMDA directory is not installed"
20 _restore_primary_logger
26 $sudo rm -rf $tmp.
* $seq.full
27 trap "_cleanup" 0 1 2 3 15
32 -e 's/0x[0-9a-f][0-9a-f]*/HEX/g' \
36 # Note - sed at the end is because of non-determinism depending if the
37 # kernel PMDA is configured to use a dso or other IPC option
42 -e '/pmResult/s/ .* numpmid/ ... numpmid/' \
43 -e '/build_dsotab/s/parsing .*/ parsing .../' \
44 -e '/^\[[0-9][0-9]*]/d' \
45 -e '/^0x[0-9a-f][0-9a-f]* \[[0-9][0-9]*]/d' \
46 -e '/^__pmLocalPMDA/d' \
47 -e '/^Local Context PMDA Table$/d' \
48 -e '/__pmConnectLogger:/s/pid = [0-9][0-9]*/pid = PID/' \
49 -e 's/fd=[0-9][0-9]*/fd=N/g' \
50 -e '/IPC table fd/s/:.*/: .../' \
51 -e '/__pmSendCreds/s/:.*/: .../' \
52 -e '/NotifyEndLocalContext: /s/:.*/: .../' \
53 -e '/value /s/ [0-9].*/ NUMBER/' \
54 -e '/^__pmDataIPC:/d' \
55 -e '/^__pmSetDataIPC:/{
59 -e 's/Permission denied/No permission to perform requested operation/' \
60 -e '/__pmConnect(fd=/d' \
62 # squash repeated occurrences of the following pattern
63 # (as a result of needing to do getaddrinfo list walk)
64 if (/^IPC table fd.PDU version.: ...$/) {
66 } elsif (/^__pmSetSocketIPC: fd=N$/) {
69 if ($#saved >= 0) { print $saved[0]; }
70 if ($#saved == 1) { print $saved[1]; }
75 -e '/^__pmSetSocketIPC:/d' \
76 -e '/^NotifyEndLocalContext/d' \
77 -e '/^IPC table fd/d' \
84 -e 's/Connection timed out/No route to host/' \
88 # simple PMDA is using PMDA_INTERFACE_2
90 if [ ! -f $PCP_PMDAS_DIR/simple
/pmda_simple.
$DSO_SUFFIX ]
92 ( cd $PCP_PMDAS_DIR/simple
; $sudo make; $sudo .
/Install
</dev
/null
) >/dev
/null
2>&1
95 # real QA test starts here
96 _change_config pmcd on
97 _change_config pmlogger on
98 _writable_primary_logger
99 $sudo $PCP_RC_DIR/pcp restart
>/dev
/null
2>&1
104 $sudo pminfo
-t -L sampledso
2>&1
105 $sudo pminfo
-T -L sampledso
2>&1
106 pminfo
-T -a tmparch
/foo sample
107 $sudo pminfo
-T -L -n $PCP_PMDAS_DIR/simple
/root
-K clear -K add
,253,simple
/pmda_simple.
$DSO_SUFFIX,simple_init simple.now
2>&1
111 $sudo pminfo
-L -f -Dfetch sampledso.bin
2>&1 | _filter_dumpresult
112 pminfo
-f -Dindom sample.bin
2>&1 | _filter
113 $sudo pminfo
-fL -Dfetch,indom
-n $PCP_PMDAS_DIR/simple
/root
-K clear -K add
,253,simple
/pmda_simple.
$DSO_SUFFIX,simple_init simple
2>&1 \
114 | _filter_dumpresult | _filter
116 src
/indom sample.long.one
117 pmval
-s 1 -i "bin-123" sample.bin
118 $sudo src
/torture_indom
-L sampledso.colour
2>&1
119 $sudo src
/torture_indom
-n $PCP_PMDAS_DIR/simple
/root
-K clear -K add
,253,simple
/pmda_simple.
$DSO_SUFFIX,simple_init
-L simple.now
2>&1
123 $sudo pminfo
-f -L -Dfetch sampledso.bad.unknown
2>&1 | _filter_dumpresult
127 pminfo
-f -h localhost
:44321 sample.long.hundred
128 pminfo
-f -h localhost
:1,44321 sample.long.hundred
129 pminfo
-f -h localhost
: sample.long.hundred
130 pminfo
-f -h localhost
:44321,1x3 sample.long.hundred
131 pminfo
-f -h localhost
:44321@no-host sample.long.hundred
2>&1 | _filter3
132 pminfo
-f -h localhost
:44321@no-host
:44322 sample.long.hundred
2>&1 | _filter3
133 pminfo
-f -h localhost
:44321@ sample.long.hundred
137 # Pbyte / hour -> 1F055000
138 pmstore sample.dynamic.meta.pmdesc.units
0x1F055000 >/dev
/null
139 pminfo
-d sample.dynamic.meta.metric
140 # Ebyte / sec -> 1F063000
141 pmstore sample.dynamic.meta.pmdesc.units
0x1F063000 >/dev
/null
142 pminfo
-d sample.dynamic.meta.metric
143 # bigger than Ebyte -> 10070000
144 pmstore sample.dynamic.meta.pmdesc.units
0x10070000 >/dev
/null
145 pminfo
-d sample.dynamic.meta.metric
146 # bigger than Hour -> 01006000
147 pmstore sample.dynamic.meta.pmdesc.units
0x01006000 >/dev
/null
148 pminfo
-d sample.dynamic.meta.metric
150 pmstore sample.dynamic.meta.pmdesc.units
0x20000000 >/dev
/null
151 pminfo
-d sample.dynamic.meta.metric
152 # nsec / byte -> F1000000
153 pmstore sample.dynamic.meta.pmdesc.units
0xF1000000 >/dev
/null
154 pminfo
-d sample.dynamic.meta.metric
155 # / byte^2 -> E0000000
156 pmstore sample.dynamic.meta.pmdesc.units
0xE0000000 >/dev
/null
157 pminfo
-d sample.dynamic.meta.metric
159 pmstore sample.dynamic.meta.pmdesc.units
0x03000000 >/dev
/null
160 pminfo
-d sample.dynamic.meta.metric
161 # / nsec^3 -> 0D000000
162 pmstore sample.dynamic.meta.pmdesc.units
0x0D000000 >/dev
/null
163 pminfo
-d sample.dynamic.meta.metric
164 # count^2 -> 00200000
165 pmstore sample.dynamic.meta.pmdesc.units
0x00200000 >/dev
/null
166 pminfo
-d sample.dynamic.meta.metric
167 # / count^2 -> 00E00000
168 pmstore sample.dynamic.meta.pmdesc.units
0x00E00000 >/dev
/null
169 pminfo
-d sample.dynamic.meta.metric
170 # restore to byte / sec -> 1F003000
171 pmstore sample.dynamic.meta.pmdesc.units
0x1F003000 >/dev
/null
173 # units.c using grind_cov
175 for type in 0 1 2 3 4 5
178 src
/grind_conv
$type 1024 1:0:0:4:0:0 1:0:0:3:0:0
179 src
/grind_conv
$type 1048576 1:0:0:3:0:0 1:0:0:4:0:0
181 src
/grind_conv
$type 4096 1:-1:0:2:3:0 1:-1:0:3:5:0
182 src
/grind_conv
$type 14400 1:-1:0:3:5:0 1:-1:0:2:3:0
184 src
/grind_conv
$type 92160 1:1:-1:1:3:0 1:1:-1:2:4:1
185 src
/grind_conv
$type 15 1:1:-1:2:4:1 1:1:-1:1:3:0
187 src
/grind_conv
$type 1024 -1:1:0:2:3:0 -1:1:0:1:2:0
188 src
/grind_conv
$type 1000 -1:1:0:1:2:0 -1:1:0:2:3:0
190 # and some odd cases and error cases
191 src
/grind_conv
-Dvalue 3 4096 1:0:0:5:0:0 1:0:0:6:0:0
192 src
/grind_conv
3 4 1:0:0:6:0:0 1:0:0:5:0:0
193 src
/grind_conv
3 4096 1:0:0:7:0:0 1:0:0:6:0:0
194 src
/grind_conv
3 4096 1:0:0:5:0:0 1:0:0:7:0:0
195 src
/grind_conv
3 3600 0:1:0:0:6:0 0:1:0:0:4:0
196 src
/grind_conv
-Dvalue 3 3600 0:1:0:0:4:0 0:1:0:0:6:0
197 # dimensions not the same
198 src
/grind_conv
3 0 0:1:0:0:1:0 0:2:0:0:1:0
199 # cannot convert events
200 src
/grind_conv
8 0 0:1:0:0:1:0 0:1:0:0:1:0
202 # units.c using src/xval
205 src
/xval
-D 0x3fffffff 2>&1 \
206 |
sed -e '/pmExtract.*AGGREGATE/{
207 s/feffff3f/3ffffffe/g
208 s/ffffff3f/3fffffff/g
209 s/00000040/40000000/g
213 src
/xval
0x3fffffffffffffff
214 src
/xval
0x7fffffffffffffff
215 src
/xval
0xffffffffffffffff
216 src
/xval
-u 0xffffffffffffffff
223 $sudo src
/chknumval
-L sampledso.long.write_me sampledso.ulong.write_me sampledso.longlong.write_me
>$tmp.out
2>$tmp.err
224 cat $tmp.err
$tmp.out | _filter2
227 $sudo src
/chknumval
-Dcontext -L pmcd.control.debug sampledso.long.write_me sample.colour
>$tmp.out
2>$tmp.err
228 cat $tmp.err
$tmp.out | _filter2
229 cat >$tmp.root
<<End-of-File
253 $sudo src
/chknumval
-L -n $tmp.root pmcd.control.debug sampledso.long.write_me sample.colour
>$tmp.out
2>$tmp.err
254 cat $tmp.err
$tmp.out | _filter2
257 $sudo src
/chknumval
-n $PCP_PMDAS_DIR/simple
/root
-K clear -K add
,253,simple
/pmda_simple.
$DSO_SUFFIX,simple_init
-L simple.now simple.now simple.now
>$tmp.out
2>$tmp.err
258 cat $tmp.err
$tmp.out | _filter2