Example tests: check exit codes

This commit is contained in:
Alexey Rybalchenko
2023-02-23 12:53:13 +01:00
committed by Dennis Klein
parent afd5700cca
commit 61d2797971
21 changed files with 103 additions and 58 deletions

View File

@@ -25,7 +25,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-multiple-transports.s
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-multiple-transports.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-multiple-transports.sh)
add_test(NAME Example.MultipleTransports COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-multiple-transports.sh)
set_tests_properties(Example.MultipleTransports PROPERTIES TIMEOUT "30" PASS_REGULAR_EXPRESSION "Received messages from both sources.")
set_tests_properties(Example.MultipleTransports PROPERTIES TIMEOUT "30")
# install

View File

@@ -9,6 +9,8 @@
#include <fairmq/Device.h>
#include <fairmq/runDevice.h>
#include <stdexcept>
namespace bpo = boost::program_options;
struct Sink : fair::mq::Device
@@ -32,7 +34,7 @@ struct Sink : fair::mq::Device
// Creates a message using the transport of channel ack
fair::mq::MessagePtr ack(NewMessageFor("ack", 0));
if (Send(ack, "ack") < 0) {
return false;
throw std::runtime_error("could not send an ack");
}
// return true if want to be called again (otherwise go to IDLE state)

View File

@@ -1,5 +1,7 @@
#!/bin/bash
set -e
export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@
session="$(@CMAKE_BINARY_DIR@/fairmq/fairmq-uuid-gen -h)"
@@ -10,7 +12,7 @@ chan1Addr="/tmp/fmq_$session""_""$chan1"
chan2Addr="/tmp/fmq_$session""_""$chan2"
ackChanAddr="/tmp/fmq_$session""_""$ackChan"
trap 'kill -TERM $SAMPLER1_PID; kill -TERM $SAMPLER2_PID; kill -TERM $SINK_PID; wait $SAMPLER1_PID; wait $SAMPLER2_PID; wait $SINK_PID; @CMAKE_BINARY_DIR@/fairmq/fairmq-shmmonitor --cleanup --session $SESSION; rm $chan1Addr; rm $chan2Addr; rm $ackChanAddr' TERM
trap 'set +e; kill -TERM $SAMPLER1_PID; kill -TERM $SAMPLER2_PID; kill -TERM $SINK_PID; wait $SAMPLER1_PID; wait $SAMPLER2_PID; wait $SINK_PID; @CMAKE_BINARY_DIR@/fairmq/fairmq-shmmonitor --cleanup --session $SESSION; rm $chan1Addr; rm $chan2Addr; rm $ackChanAddr; exit 0' TERM
SINK="fairmq-ex-multiple-transports-sink"
SINK+=" --id sink1"
@@ -55,4 +57,6 @@ wait $SAMPLER1_PID
wait $SAMPLER2_PID
wait $SINK_PID
set +e
rm $chan1Addr; rm $chan2Addr; rm $ackChanAddr
exit 0