Merge branch 'master' of https://github.com/kmcdonell/pcp into kenj-merge
[pcp.git] / qa / 344
blob7a381cabb30296d1c5d34da72f207939086bfccd
1 #!/bin/sh
2 # PCP QA Test No. 344
4 # exercise __pmLocalPMDA functionality
6 # Copyright (c) 2010 Ken McDonell. All Rights Reserved.
9 seq=`basename $0`
10 echo "QA output created by $seq"
12 # get standard filters
13 . ./common.product
14 . ./common.filter
15 . ./common.check
17 status=0 # success is the default!
18 host=`hostname`
19 $sudo rm -rf $tmp.* $seq.full
20 trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
22 cat <<End-of-File >$tmp.pmns
23 root {
25 sample
26 tmpsample
29 qa {
30 pid 400:0:1
31 colour 400:0:5
32 bin 400:0:6
33 string
36 qa.string {
37 write_me 400:0:29
40 sample {
41 colour 30:0:5
42 bin 30:0:6
43 string
46 sample.string {
47 write_me 30:0:29
50 tmpsample {
51 colour 130:0:5
52 bin 130:0:6
53 string
56 tmpsample.string {
57 write_me 130:0:29
59 End-of-File
61 _filter()
63 tee -a $seq.full \
64 | sed \
65 -e "/^pmWhichContext/d" \
66 -e "/^pmNewContext/d" \
67 -e "/^Dump /d" \
68 -e "/^Context\[/d" \
69 -e "/^contexts\[/d" \
70 -e "/^Local Context PMDA Table/d" \
71 -e "s;$tmp;TMP;g" \
72 -e "s/host: @/host: HOST/g" \
73 -e "s/host: $host/host: HOST/g" \
74 -e "s;$PCP_PMCDCONF_PATH;\$PCP_PMCDCONF_PATH;" \
75 -e "s;$PCP_VAR_DIR;\$PCP_VAR_DIR;" \
76 -e "s/\.$DSO_SUFFIX/.\$DSO_SUFFIX/g" \
77 -e '/^0*x*[0-9a-f][0-9a-f]* /d' \
78 -e '/^\[[0-9][0-9]*]/d' \
79 -e '/^__pmLocalPMDA(/d' \
80 -e '/^__pmSetSocketIPC:/d' \
81 -e '/NotifyEndLocalContext: .*pmda_linux/d' \
82 -e '/^IPC table fd(/d' \
83 #end
86 # -e "s;$PCP_PMDAS_DIR;\$PCP_PMDAS_DIR;" \
87 # -e "s;$PCP_VAR_DIR;\$PCP_VAR_DIR;g" \
89 # real QA test starts here
90 pminfo -fL -n $tmp.pmns -K clear -K add,400,$PCP_VAR_DIR/pmdas/sample/pmda_sample.$DSO_SUFFIX,sample_init qa.colour
92 echo
93 pminfo -fL -n $tmp.pmns -K clear -K add,400,$PCP_VAR_DIR/pmdas/sample/pmda_sample,sample_init qa.pid >$tmp.out &
94 expect=$!
95 wait
96 got=`sed -n -e '/value/s/.*value //p' $tmp.out`
97 if [ "$got" != "$expect" ]
98 then
99 echo "Error: expecting pid $expect, got $got from"
100 cat $tmp.out
101 else
102 echo "PID check passes"
105 echo
106 echo "=== expect no sample metrics ==="
107 pminfo -fmL -n $tmp.pmns -K clear -K add,400,sample/pmda_sample.$DSO_SUFFIX,sample_init qa.colour sample.colour
109 echo
110 echo "=== sample metrics this time ==="
111 # need to copy DSO so running sample_init() only once per DSO
112 cp $PCP_VAR_DIR/pmdas/sample/pmda_sample.$DSO_SUFFIX $tmp.$DSO_SUFFIX
113 export PMDA_LOCAL_SAMPLE=yes
114 $sudo pminfo -fmL -n $tmp.pmns -K add,400,$tmp.$DSO_SUFFIX,sample_init qa.colour sample.colour
116 echo
117 echo "=== -K spec parsing in pminfo ==="
118 for spec in \
119 clear clear, clear,400 clear,400, clear,400,$tmp.$DSO_SUFFIX clear,400,$tmp.$DSO_SUFFIX, \
120 clear,400,$tmp.$DSO_SUFFIX,sample_init clear,,$tmp.$DSO_SUFFIX,sample_init clear,,,sample_init \
121 clear,,$tmp.$DSO_SUFFIX,sample_init clear,400,,sample_init \
122 add add, add,400 add,400, add,400,$tmp.$DSO_SUFFIX add,400,$tmp.$DSO_SUFFIX, \
123 add,400,$tmp.$DSO_SUFFIX,sample_init \
124 del del, del,30 del,30, del,,sample/pmda_sample.$DSO_SUFFIX \
125 del,30,sample/pmda_sample.$DSO_SUFFIX, \
126 del,30,sample/pmda_sample.$DSO_SUFFIX,sample_init \
127 del,, del,,, del,,,sample_init
129 echo "+++ -K $spec +++" | _filter
130 $sudo pminfo -Dcontext -fmL -n $tmp.pmns -K $spec \
131 sample.string.write_me qa.string.write_me 2>&1 \
132 | _filter
133 done
135 echo
136 echo "=== some __pmLocalPMDA() exercises ==="
137 pminfo -Dcontext -fmL -n $tmp.pmns -K clear \
138 -K add,30,$PCP_VAR_DIR/pmdas/sample/pmda_sample.$DSO_SUFFIX,sample_init \
139 -K add,400,$tmp.$DSO_SUFFIX,sample_init \
140 -K del,30,0,0 \
141 -K clear \
142 -K add,30,$PCP_VAR_DIR/pmdas/sample/pmda_sample.$DSO_SUFFIX,sample_init \
143 -K del,0,$PCP_VAR_DIR/pmdas/sample/pmda_sample.$DSO_SUFFIX,0 \
144 -K add,130,$PCP_VAR_DIR/pmdas/sample/pmda_sample.$DSO_SUFFIX,sample_init \
145 -K add,400,$tmp.$DSO_SUFFIX,sample_init \
146 tmpsample.bin 2>&1 \
147 | _filter
149 echo
150 echo "=== other tools than know about -K ..."
151 pmval -s 3 -t 0.1 -K clear -K add,30,$PCP_PMDAS_DIR/sample/pmda_sample.$DSO_SUFFIX,sample_init '@:sampledso.bin["bin-100","bin-900"]' | _filter
152 echo
153 pmprobe -K clear -K add,30,$PCP_PMDAS_DIR/sample/pmda_sample.$DSO_SUFFIX,sample_init -I sampledso.bin
155 # success, all done
156 exit