diff options
| author | Robert Gemmell <robbie@apache.org> | 2016-07-05 21:55:35 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2016-07-05 21:55:35 +0000 |
| commit | f160cb6566c17945f7ebc4f3a752b2cc6a051685 (patch) | |
| tree | 809f04fc1967c22e5abc52de07602555bed0e920 /qpid/cpp/src/tests/ring_queue_test | |
| parent | ebb276cca41582b73223b55eff9f2d4386f4f746 (diff) | |
| download | qpid-python-f160cb6566c17945f7ebc4f3a752b2cc6a051685.tar.gz | |
QPID-7207: remove cpp and python subdirs from svn trunk, they have migrated to their own git repositories
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1751566 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/tests/ring_queue_test')
| -rwxr-xr-x | qpid/cpp/src/tests/ring_queue_test | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/qpid/cpp/src/tests/ring_queue_test b/qpid/cpp/src/tests/ring_queue_test deleted file mode 100755 index 410ea30eb8..0000000000 --- a/qpid/cpp/src/tests/ring_queue_test +++ /dev/null @@ -1,174 +0,0 @@ -#!/usr/bin/env bash - -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - -# Test script for validating the behaviour of a ring queue - -QUEUE_NAME=ring-queue -LIMIT=100 -DURABLE=0 -MESSAGES=10000 -SENDERS=1 -RECEIVERS=1 -CONCURRENT=0 -BROKER_URL="-b ${QPID_BROKER:-localhost}:${QPID_PORT:-5672}" - -setup() { - if [[ $DURABLE -gt 0 ]]; then - EXTRA_ARGS=" --durable" - fi - qpid-config $BROKER_URL add queue $QUEUE_NAME --max-queue-count $LIMIT --limit-policy ring $EXTRA_ARGS -} - -send() { - datagen --count $MESSAGES | tee sender_${QUEUE_NAME}_${1} | sender --durable $DURABLE --routing-key $QUEUE_NAME -} - -receive() { - #TODO: allow a variety of receiver options to be passed in (ack-frequency, credit-window etc) - receiver --queue $QUEUE_NAME > receiver_${QUEUE_NAME}_${1} -} - -cleanup() { - rm -f sender_${QUEUE_NAME}_* receiver_${QUEUE_NAME}_* - qpid-config $BROKER_URL del queue $QUEUE_NAME --force -} - -log() { - echo $1 -} - -fail() { - echo $1 - FAILED=1 -} - -validate() { - if [[ $RECEIVERS -eq 0 ]]; then - #queue should have $LIMIT messages on it, but need to send an eos also - sender --routing-key $QUEUE_NAME --send-eos 1 < /dev/null - received=$(receiver --queue $QUEUE_NAME --browse | wc -l) - if [[ received -eq $(( $LIMIT - 1)) ]]; then - log "queue contains $LIMIT messages as expected" - else - fail "queue does not contain the expected $LIMIT messages (received $received)" - fi - elif [[ $CONCURRENT -eq 0 ]]; then - #sum of length of all output files should be equal to $LIMIT - $RECEIVERS (1 eos message each) - received=$(cat receiver_${QUEUE_NAME}_* | wc -l) - expected=$(( $LIMIT - $RECEIVERS )) - if [[ $received -eq $expected ]]; then - log "received $LIMIT messages as expected" - else - fail "received $received messages, expected $expected" - fi - #if there were only a single sender and receiver (executed serially) we can check the - #actual received contents - if [[ $RECEIVERS -eq 1 ]] && [[ $SENDERS -eq 1 ]]; then - tail -n $(($LIMIT - 1)) sender_${QUEUE_NAME}_1 | diff - receiver_${QUEUE_NAME}_1 || FAILED=1 - if [[ $FAILED -eq 1 ]]; then - fail "did not receive expected messages" - else - log "received messages matched expectations" - fi - fi - else - #multiple receivers, concurrent with senders; ring queue functionality cannot be validated in this case - if [[ $(cat receiver_${QUEUE_NAME}_* | wc -l) -le $(cat sender_${QUEUE_NAME}_* | wc -l) ]]; then - log "sent at least as many messages as were received" - else - #Note: if any receiver was browsing, this would be valid (would need to add 'sort | uniq') - # to pipeline above - fail "received more messages than were sent" - fi - fi - - if [[ $FAILED ]]; then - echo $(basename $0): FAILED - exit 1 - else - cleanup - fi -} - -run_test() { - if [[ $CONCURRENT -eq 0 ]]; then - echo "Starting $SENDERS senders followed by $RECEIVERS receivers " - else - echo "Starting $SENDERS senders concurrently with $RECEIVERS receivers" - fi - for ((i=1; i <= $SENDERS; i++)); do - send $i & - sender_pids[$i]=$! - done - if [[ $CONCURRENT -eq 0 ]] && [[ $RECEIVERS -gt 0 ]]; then - wait - sender --routing-key $QUEUE_NAME --send-eos $RECEIVERS < /dev/null - fi - for ((i=1; i <= $RECEIVERS; i++)); do - receive $i & - done - if [[ $CONCURRENT -gt 0 ]]; then - for ((i=1; i <= $SENDERS; i++)); do - wait ${sender_pids[$i]} - done - sender --routing-key $QUEUE_NAME --send-eos $RECEIVERS < /dev/null - fi - wait -} - -usage() { - cat <<EOF -$(basename $0): Test script for validating the behaviour of a ring queue - -Options: - -q <queue> the name of the queue to use - -s <senders> the number of senders to start - -r <receivers> the number of receivers to start - -l <limit> the limit for the ring queue - -m <messages> the number of messages to send - -c if specified, receivers will run concurrently with senders - -d if specified the queue and messages will be durable -EOF - exit 1 -} - -while getopts "s:r:m:u:dch" opt ; do - case $opt in - q) QUEUE_NAME=$OPTARG ;; - l) LIMIT=$OPTARG ;; - s) SENDERS=$OPTARG ;; - r) RECEIVERS=$OPTARG ;; - m) MESSAGES=$OPTARG ;; - d) DURABLE=1 ;; - c) CONCURRENT=1 ;; - h) usage;; - ?) usage;; - esac -done - -if [[ $SENDERS -gt 0 ]]; then - setup - run_test - validate -else - echo "Nothing can be done if there are no senders" -fi - |
