summaryrefslogtreecommitdiff
path: root/qa/498
diff options
context:
space:
mode:
Diffstat (limited to 'qa/498')
-rwxr-xr-xqa/498151
1 files changed, 151 insertions, 0 deletions
diff --git a/qa/498 b/qa/498
new file mode 100755
index 0000000..3a68e44
--- /dev/null
+++ b/qa/498
@@ -0,0 +1,151 @@
+#!/bin/sh
+# PCP QA Test No. 498
+# exercise pmdaEventQueue interfaces
+#
+# Copyright (c) 2011 Nathan Scott. All Rights Reserved.
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+# get standard filters
+. ./common.product
+. ./common.filter
+. ./common.check
+
+rm -f $seq.out
+if [ $PCP_VER -lt 3604 ]
+then
+ ln $seq.out.1 $seq.out || exit 1
+elif [ $PCP_VER -lt 3605 ]
+then
+ ln $seq.out.2 $seq.out || exit 1
+else
+ ln $seq.out.3 $seq.out || exit 1
+fi
+
+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/^\[[A-Z].. [A-Z].. *[0-9][0-9]* ..:..:..]/[DATE]/' \
+ -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\.[0-9][0-9][0-9]/[TIME]/' \
+ -e 's/event=0x0$/event=(nil)/' \
+ -e 's/0x[0-9a-f][0-9a-f]*/0xADDR/' \
+ -e 's/queue([0-9][0-9]*)/queue(PID)/' \
+ -e "s;$PCP_VAR_DIR;\$PCP_VAR_DIR;"
+}
+
+_queue_test()
+{
+ # always enable library debugging, stash raw results and output filtered
+ src/pmdaqueue -Dlibpmda $@ 2>&1 | tee -a $seq.full | _filter
+}
+
+# real QA test starts here
+echo
+echo "events arriving with no queues setup yet (fail)"
+_queue_test -E 0,1024
+
+echo
+echo "attempt to register duplicate queue names (fail)"
+_queue_test -q queue1,1024 -q queue1,1024
+
+echo
+echo "attempt queue creation without memory limit (fail)"
+_queue_test -q queue1,0
+
+echo
+echo "create one queue, events arriving with no clients yet"
+_queue_test -q queue1,1024 -e queue1,128 -e queue1,42 -e queue1,18 -s queue1
+
+echo
+echo "multiple queues, events arriving without clients"
+_queue_test \
+ -q queue0,1024 -q queue1,512 \
+ -e queue0,128 -e queue1,24 -e queue0,18 \
+ -e queue1,228 -e queue0,142 -e queue1,28 \
+ -s queue0 -s queue1 \
+ -q queue2,356 \
+ -e queue2,328 -e queue2,32 -e queue0,17 -e queue1,227 \
+ -s queue0 -s queue1 -s queue2
+
+echo
+echo "single queue, single client, coming and going, no events arriving"
+_queue_test -q queue0,1024 -c 1 -S 1,queue0 -s queue0 -C 1 -s queue0
+
+echo
+echo "single queue, single client, coming and going, with events arriving"
+_queue_test \
+ -q queue0,1024 \
+ -c 1 -A1,queue0 \
+ -s queue0 -S 1,queue0 \
+ -e queue0,24 \
+ -s queue0 -S 1,queue0 \
+ -C 1 \
+ -s queue0
+
+echo
+echo "single queue, single client, queue filling up"
+_queue_test \
+ -q queue0,42 \
+ -c 1 \
+ -A 1,queue0 \
+ -s queue0 -S 1,queue0 \
+ -e queue0,24 \
+ -e queue0,2 \
+ -e queue0,8 \
+ -s queue0 -S 1,queue0 \
+ -e queue0,28 \
+ -e queue0,28 \
+ -s queue0 -S 1,queue0
+
+echo
+echo "single queue, single filtering client"
+_queue_test \
+ -q queue0,42 \
+ -c 1 -A1,queue0 \
+ -f 1,queue0,10 \
+ -s queue0 -S 1,queue0 \
+ -e queue0,24 \
+ -e queue0,2 \
+ -e queue0,8 \
+ -s queue0 -S 1,queue0 \
+ -e queue0,28 \
+ -e queue0,28 \
+ -s queue0 -S 1,queue0
+
+echo
+echo "multiple queues, multiple clients coming and going, queues filling"
+_queue_test \
+ -q queue0,1024 -q queue1,512 -q queue2,356 \
+ -c 84 -A 84,queue0 -c 42 -A 42,queue1 -c 21 -A 21,queue1 \
+ -S 84,queue0 -S 42,queue1 -S 21,queue1 \
+ -e queue0,128 -e queue1,24 -e queue0,18 \
+ -e queue1,228 -e queue0,142 -e queue1,28 \
+ -s queue0 -S 84,queue0 -s queue1 -S 42,queue1 -s queue2 -S 21,queue2 \
+ -C 84 \
+ -e queue2,328 -e queue2,32 -e queue0,17 -e queue1,227 \
+ -c 84 -C 42 -c 21 \
+ -s queue0 -S 84,queue0 -s queue1 -S 42,queue1 -s queue2 -S 21,queue2
+
+echo
+echo "ad-hoc queues, multiple clients coming and going, queues filling"
+_queue_test \
+ -q queue0,1024 -q queue1,512 \
+ -c 84 -A 84,queue0 -c 42 -A 42,queue1 -c 21 -A 21,queue1 \
+ -S 84,queue0 -S 42,queue1 -S 21,queue1 \
+ -e queue0,128 -e queue1,24 -e queue0,18 \
+ -e queue1,228 -e queue0,142 -e queue1,28 \
+ -q queue2,356 \
+ -s queue0 -S 84,queue0 -s queue1 -S 42,queue1 -s queue2 -S 21,queue2 \
+ -C 84 \
+ -e queue2,328 -e queue2,32 -e queue0,17 -e queue1,227 \
+ -c 84 -C 42 -c 21 \
+ -s queue0 -S 84,queue0 -s queue1 -S 42,queue1 -s queue2 -S 21,queue2
+
+# success, all done
+exit