3 # exercise pmdaEventQueue interfaces
5 # Copyright (c) 2011 Nathan Scott. All Rights Reserved.
9 echo "QA output created by $seq"
11 # get standard filters
17 if [ $PCP_VER -lt 30604 ]
19 ln $seq.out
.1 $seq.out ||
exit 1
20 elif [ $PCP_VER -lt 30605 ]
22 ln $seq.out
.2 $seq.out ||
exit 1
24 ln $seq.out
.3 $seq.out ||
exit 1
27 status
=0 # success is the default!
28 $sudo rm -rf $tmp.
* $seq.full
29 trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
34 -e 's/^\[[A-Z].. [A-Z].. *[0-9][0-9]* ..:..:..]/[DATE]/' \
35 -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\.[0-9][0-9][0-9]/[TIME]/' \
36 -e 's/event=0x0$/event=(nil)/' \
37 -e 's/0x[0-9a-f][0-9a-f]*/0xADDR/' \
38 -e 's/queue([0-9][0-9]*)/queue(PID)/' \
39 -e "s;$PCP_VAR_DIR;\$PCP_VAR_DIR;"
44 # always enable library debugging, stash raw results and output filtered
45 src
/pmdaqueue
-Dlibpmda $@
2>&1 |
tee -a $seq.full | _filter
48 # real QA test starts here
50 echo "events arriving with no queues setup yet (fail)"
54 echo "attempt to register duplicate queue names (fail)"
55 _queue_test
-q queue1
,1024 -q queue1
,1024
58 echo "attempt queue creation without memory limit (fail)"
59 _queue_test
-q queue1
,0
62 echo "create one queue, events arriving with no clients yet"
63 _queue_test
-q queue1
,1024 -e queue1
,128 -e queue1
,42 -e queue1
,18 -s queue1
66 echo "multiple queues, events arriving without clients"
68 -q queue0
,1024 -q queue1
,512 \
69 -e queue0
,128 -e queue1
,24 -e queue0
,18 \
70 -e queue1
,228 -e queue0
,142 -e queue1
,28 \
73 -e queue2
,328 -e queue2
,32 -e queue0
,17 -e queue1
,227 \
74 -s queue0
-s queue1
-s queue2
77 echo "single queue, single client, coming and going, no events arriving"
78 _queue_test
-q queue0
,1024 -c 1 -S 1,queue0
-s queue0
-C 1 -s queue0
81 echo "single queue, single client, coming and going, with events arriving"
85 -s queue0
-S 1,queue0 \
87 -s queue0
-S 1,queue0 \
92 echo "single queue, single client, queue filling up"
97 -s queue0
-S 1,queue0 \
101 -s queue0
-S 1,queue0 \
104 -s queue0
-S 1,queue0
107 echo "single queue, single filtering client"
112 -s queue0
-S 1,queue0 \
116 -s queue0
-S 1,queue0 \
119 -s queue0
-S 1,queue0
122 echo "multiple queues, multiple clients coming and going, queues filling"
124 -q queue0
,1024 -q queue1
,512 -q queue2
,356 \
125 -c 84 -A 84,queue0
-c 42 -A 42,queue1
-c 21 -A 21,queue1 \
126 -S 84,queue0
-S 42,queue1
-S 21,queue1 \
127 -e queue0
,128 -e queue1
,24 -e queue0
,18 \
128 -e queue1
,228 -e queue0
,142 -e queue1
,28 \
129 -s queue0
-S 84,queue0
-s queue1
-S 42,queue1
-s queue2
-S 21,queue2 \
131 -e queue2
,328 -e queue2
,32 -e queue0
,17 -e queue1
,227 \
133 -s queue0
-S 84,queue0
-s queue1
-S 42,queue1
-s queue2
-S 21,queue2
136 echo "ad-hoc queues, multiple clients coming and going, queues filling"
138 -q queue0
,1024 -q queue1
,512 \
139 -c 84 -A 84,queue0
-c 42 -A 42,queue1
-c 21 -A 21,queue1 \
140 -S 84,queue0
-S 42,queue1
-S 21,queue1 \
141 -e queue0
,128 -e queue1
,24 -e queue0
,18 \
142 -e queue1
,228 -e queue0
,142 -e queue1
,28 \
144 -s queue0
-S 84,queue0
-s queue1
-S 42,queue1
-s queue2
-S 21,queue2 \
146 -e queue2
,328 -e queue2
,32 -e queue0
,17 -e queue1
,227 \
148 -s queue0
-S 84,queue0
-s queue1
-S 42,queue1
-s queue2
-S 21,queue2