Merge branch 'master' of git://git.pcp.io/pcp into qt
[pcp.git] / qa / 344
blob8514389f6b93ac2195ade6cba0d7d2124eaf06cc
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 "/^Local Context PMDA Table/d" \
70 -e "s;$tmp;TMP;g" \
71 -e "s/host: @/host: HOST/g" \
72 -e "s/host: $host/host: HOST/g" \
73 -e "s;$PCP_PMCDCONF_PATH;\$PCP_PMCDCONF_PATH;" \
74 -e "s;$PCP_VAR_DIR;\$PCP_VAR_DIR;" \
75 -e "s/\.$DSO_SUFFIX/.\$DSO_SUFFIX/g" \
76 -e '/^0*x*[0-9a-f][0-9a-f]* /d' \
77 -e '/^\[[0-9][0-9]*]/d' \
78 -e '/^__pmLocalPMDA(/d' \
79 -e '/^__pmSetSocketIPC:/d' \
80 -e '/NotifyEndLocalContext: .*pmda_linux/d' \
81 -e '/^IPC table fd(/d' \
82 #end
85 # -e "s;$PCP_PMDAS_DIR;\$PCP_PMDAS_DIR;" \
86 # -e "s;$PCP_VAR_DIR;\$PCP_VAR_DIR;g" \
88 # real QA test starts here
89 pminfo -fL -n $tmp.pmns -K clear -K add,400,$PCP_VAR_DIR/pmdas/sample/pmda_sample.$DSO_SUFFIX,sample_init qa.colour
91 echo
92 pminfo -fL -n $tmp.pmns -K clear -K add,400,$PCP_VAR_DIR/pmdas/sample/pmda_sample,sample_init qa.pid >$tmp.out &
93 expect=$!
94 wait
95 got=`sed -n -e '/value/s/.*value //p' $tmp.out`
96 if [ "$got" != "$expect" ]
97 then
98 echo "Error: expecting pid $expect, got $got from"
99 cat $tmp.out
100 else
101 echo "PID check passes"
104 echo
105 echo "=== expect no sample metrics ==="
106 pminfo -fmL -n $tmp.pmns -K clear -K add,400,sample/pmda_sample.$DSO_SUFFIX,sample_init qa.colour sample.colour
108 echo
109 echo "=== sample metrics this time ==="
110 # need to copy DSO so running sample_init() only once per DSO
111 cp $PCP_VAR_DIR/pmdas/sample/pmda_sample.$DSO_SUFFIX $tmp.$DSO_SUFFIX
112 export PMDA_LOCAL_SAMPLE=yes
113 $sudo pminfo -fmL -n $tmp.pmns -K add,400,$tmp.$DSO_SUFFIX,sample_init qa.colour sample.colour
115 echo
116 echo "=== -K spec parsing in pminfo ==="
117 for spec in \
118 clear clear, clear,400 clear,400, clear,400,$tmp.$DSO_SUFFIX clear,400,$tmp.$DSO_SUFFIX, \
119 clear,400,$tmp.$DSO_SUFFIX,sample_init clear,,$tmp.$DSO_SUFFIX,sample_init clear,,,sample_init \
120 clear,,$tmp.$DSO_SUFFIX,sample_init clear,400,,sample_init \
121 add add, add,400 add,400, add,400,$tmp.$DSO_SUFFIX add,400,$tmp.$DSO_SUFFIX, \
122 add,400,$tmp.$DSO_SUFFIX,sample_init \
123 del del, del,30 del,30, del,,sample/pmda_sample.$DSO_SUFFIX \
124 del,30,sample/pmda_sample.$DSO_SUFFIX, \
125 del,30,sample/pmda_sample.$DSO_SUFFIX,sample_init \
126 del,, del,,, del,,,sample_init
128 echo "+++ -K $spec +++" | _filter
129 $sudo pminfo -Dcontext -fmL -n $tmp.pmns -K $spec \
130 sample.string.write_me qa.string.write_me 2>&1 \
131 | _filter
132 done
134 echo
135 echo "=== some __pmLocalPMDA() exercises ==="
136 pminfo -Dcontext -fmL -n $tmp.pmns -K clear \
137 -K add,30,$PCP_VAR_DIR/pmdas/sample/pmda_sample.$DSO_SUFFIX,sample_init \
138 -K add,400,$tmp.$DSO_SUFFIX,sample_init \
139 -K del,30,0,0 \
140 -K clear \
141 -K add,30,$PCP_VAR_DIR/pmdas/sample/pmda_sample.$DSO_SUFFIX,sample_init \
142 -K del,0,$PCP_VAR_DIR/pmdas/sample/pmda_sample.$DSO_SUFFIX,0 \
143 -K add,130,$PCP_VAR_DIR/pmdas/sample/pmda_sample.$DSO_SUFFIX,sample_init \
144 -K add,400,$tmp.$DSO_SUFFIX,sample_init \
145 tmpsample.bin 2>&1 \
146 | _filter
148 echo
149 echo "=== other tools than know about -K ..."
150 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
151 echo
152 pmprobe -K clear -K add,30,$PCP_PMDAS_DIR/sample/pmda_sample.$DSO_SUFFIX,sample_init -I sampledso.bin
154 # success, all done
155 exit