#!/bin/bash set -e export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ transport="zeromq" if [[ $1 =~ ^[a-z]+$ ]]; then transport=$1 fi session="$(@CMAKE_BINARY_DIR@/fairmq/fairmq-uuid-gen -h)" chan="data" chanAddr1="/tmp/fmq_$session""_""$chan""_1""_""$transport" chanAddr2="/tmp/fmq_$session""_""$chan""_2""_""$transport" # setup a trap to kill everything if the test fails/timeouts trap 'set +e; kill -TERM $SAMPLER_PID; kill -TERM $SINK1_PID; kill -TERM $SINK2_PID; wait $SAMPLER_PID; wait $SINK1_PID; wait $SINK2_PID; rm $chanAddr1; rm $chanAddr2; exit 0' TERM SAMPLER="fairmq-ex-copypush-sampler" SAMPLER+=" --id sampler1" SAMPLER+=" --transport $transport" SAMPLER+=" --verbosity veryhigh" SAMPLER+=" --severity debug" SAMPLER+=" --shm-segment-size 100000000" SAMPLER+=" --shm-monitor true" SAMPLER+=" --session $session" SAMPLER+=" --control static --color false" SAMPLER+=" --max-iterations 1" SAMPLER+=" --channel-config name=$chan,type=push,method=bind,rateLogging=0,address=ipc://$chanAddr1,address=ipc://$chanAddr2" @CMAKE_CURRENT_BINARY_DIR@/$SAMPLER & SAMPLER_PID=$! SINK1="fairmq-ex-copypush-sink" SINK1+=" --id sink1" SINK1+=" --transport $transport" SINK1+=" --verbosity veryhigh" SINK1+=" --severity debug" SINK1+=" --shm-segment-size 100000000" SINK1+=" --shm-monitor true" SINK1+=" --session $session" SINK1+=" --control static --color false" SINK1+=" --max-iterations 1" SINK1+=" --channel-config name=$chan,type=pull,method=connect,rateLogging=0,address=ipc://$chanAddr1" @CMAKE_CURRENT_BINARY_DIR@/$SINK1 & SINK1_PID=$! SINK2="fairmq-ex-copypush-sink" SINK2+=" --id sink2" SINK2+=" --transport $transport" SINK2+=" --verbosity veryhigh" SINK2+=" --severity debug" SINK2+=" --shm-segment-size 100000000" SINK2+=" --shm-monitor true" SINK2+=" --session $session" SINK2+=" --control static --color false" SINK2+=" --max-iterations 1" SINK2+=" --channel-config name=$chan,type=pull,method=connect,rateLogging=0,address=ipc://$chanAddr2" @CMAKE_CURRENT_BINARY_DIR@/$SINK2 & SINK2_PID=$! # wait for everything to finish wait $SAMPLER_PID wait $SINK1_PID wait $SINK2_PID set +e rm $chanAddr1; rm $chanAddr2 exit 0