#!/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)" dataChan="data" broadcastChan="broadcast" dataChanAddr="/tmp/fmq_$session""_""$dataChan""_""$transport" broadcastChanAddr="/tmp/fmq_$session""_""$broadcastChan""_""$transport" # setup a trap to kill everything if the test fails/timeouts trap 'set +e; kill -TERM $SAMPLER_PID; kill -TERM $SINK_PID; kill -TERM $BROADCASTER_PID; wait $SAMPLER_PID; wait $SINK_PID; wait $BROADCASTER_PID; rm $dataChanAddr; rm $broadcastChanAddr; exit 0' TERM SINK="fairmq-ex-multiple-channels-sink" SINK+=" --id sink1" SINK+=" --session $session" SINK+=" --transport $transport" SINK+=" --verbosity veryhigh --severity debug" SINK+=" --shm-segment-size 100000000" SINK+=" --shm-monitor true" SINK+=" --max-iterations 1" SINK+=" --control static --color false" SINK+=" --channel-config name=$dataChan,type=pull,method=connect,rateLogging=0,address=ipc://$dataChanAddr" SINK+=" name=$broadcastChan,type=sub,method=connect,rateLogging=0,address=ipc://$broadcastChanAddr" @CMAKE_CURRENT_BINARY_DIR@/$SINK & SINK_PID=$! sleep 1 SAMPLER="fairmq-ex-multiple-channels-sampler" SAMPLER+=" --id sampler1" SAMPLER+=" --session $session" SAMPLER+=" --transport $transport" SAMPLER+=" --verbosity veryhigh --severity debug" SAMPLER+=" --shm-segment-size 100000000" SAMPLER+=" --shm-monitor true" SAMPLER+=" --max-iterations 1" SAMPLER+=" --control static --color false" SAMPLER+=" --channel-config name=$dataChan,type=push,method=bind,rateLogging=0,address=ipc://$dataChanAddr" SAMPLER+=" name=$broadcastChan,type=sub,method=connect,rateLogging=0,address=ipc://$broadcastChanAddr" @CMAKE_CURRENT_BINARY_DIR@/$SAMPLER & SAMPLER_PID=$! BROADCASTER="fairmq-ex-multiple-channels-broadcaster" BROADCASTER+=" --id broadcaster1" BROADCASTER+=" --session $session" BROADCASTER+=" --transport $transport" BROADCASTER+=" --verbosity veryhigh --severity debug" BROADCASTER+=" --shm-segment-size 100000000" BROADCASTER+=" --shm-monitor true" BROADCASTER+=" --control static --color false" BROADCASTER+=" --channel-config name=$broadcastChan,type=pub,method=bind,rateLogging=0,address=ipc://$broadcastChanAddr" @CMAKE_CURRENT_BINARY_DIR@/$BROADCASTER & BROADCASTER_PID=$! wait $SAMPLER_PID wait $SINK_PID # stop broadcaster kill -SIGINT $BROADCASTER_PID # wait for broadcaster to finish wait $BROADCASTER_PID set +e rm $dataChanAddr; rm $broadcastChanAddr exit 0