From bf5983d8f6526ecea98e06ad3c308e9fd95949f6 Mon Sep 17 00:00:00 2001 From: Alexey Rybalchenko Date: Tue, 1 May 2018 18:31:27 +0200 Subject: [PATCH] provide location for general fairmq devices/tools --- examples/1-1/CMakeLists.txt | 21 ++++++++++----- examples/1-1/fairmq-start-ex-1-1.sh.in | 2 ++ examples/1-n-1/CMakeLists.txt | 26 ++++++++++++------- examples/1-n-1/fairmq-start-ex-1-n-1.sh.in | 2 ++ examples/1-n-1/test-ex-1-n-1.sh.in | 2 ++ examples/copypush/CMakeLists.txt | 21 ++++++++++----- .../copypush/fairmq-start-ex-copypush.sh.in | 2 ++ examples/copypush/test-ex-copypush.sh.in | 2 ++ examples/dds/CMakeLists.txt | 17 ++++++++---- examples/multipart/CMakeLists.txt | 21 ++++++++++----- .../multipart/fairmq-start-ex-multipart.sh.in | 2 ++ examples/multipart/test-ex-multipart.sh.in | 2 ++ examples/multiple-channels/CMakeLists.txt | 21 ++++++++++----- .../fairmq-start-ex-multiple-channels.sh.in | 2 ++ .../test-ex-multiple-channels.sh.in | 2 ++ examples/multiple-transports/CMakeLists.txt | 22 ++++++++++------ .../fairmq-start-ex-multiple-transports.sh.in | 2 ++ .../test-ex-multiple-transports.sh.in | 3 +++ examples/region/CMakeLists.txt | 21 ++++++++++----- examples/region/fairmq-start-ex-region.sh.in | 2 ++ examples/region/test-ex-region.sh.in | 2 ++ examples/req-rep/CMakeLists.txt | 21 ++++++++++----- .../req-rep/fairmq-start-ex-req-rep.sh.in | 2 ++ examples/req-rep/test-ex-req-rep.sh.in | 2 ++ fairmq/CMakeLists.txt | 1 + fairmq/run/startMQBenchmark.sh.in | 2 ++ fairmq/shmem/FairMQTransportFactorySHM.cxx | 21 ++++++++++----- 27 files changed, 175 insertions(+), 71 deletions(-) diff --git a/examples/1-1/CMakeLists.txt b/examples/1-1/CMakeLists.txt index a8afd2c9..d14b2dbb 100644 --- a/examples/1-1/CMakeLists.txt +++ b/examples/1-1/CMakeLists.txt @@ -23,6 +23,19 @@ target_link_libraries(fairmq-ex-1-1-sink PRIVATE Example11Lib) add_custom_target(Example11 DEPENDS fairmq-ex-1-1-sampler fairmq-ex-1-1-sink) +set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_BINARY_DIR}/fairmq) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-1-1.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-1-1.sh) + +# test + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-1-1.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-1-1.sh) + +add_test(NAME Example-1-1 COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-1-1.sh) +set_tests_properties(Example-1-1 PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received: ") + +# install + install( TARGETS fairmq-ex-1-1-sampler @@ -33,9 +46,8 @@ install( ) # configure run script with different executable paths for build and for install directories -set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-1-1.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-1-1.sh) set(EX_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}/fairmq) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-1-1.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-1-1.sh_install) install( @@ -43,8 +55,3 @@ install( DESTINATION ${PROJECT_INSTALL_BINDIR} RENAME fairmq-start-ex-1-1.sh ) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-1-1.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-1-1.sh) - -add_test(NAME Example-1-1 COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-1-1.sh) -set_tests_properties(Example-1-1 PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received: ") diff --git a/examples/1-1/fairmq-start-ex-1-1.sh.in b/examples/1-1/fairmq-start-ex-1-1.sh.in index eb3dad3e..537e5702 100755 --- a/examples/1-1/fairmq-start-ex-1-1.sh.in +++ b/examples/1-1/fairmq-start-ex-1-1.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + SAMPLER="fairmq-ex-1-1-sampler" SAMPLER+=" --id sampler1" SAMPLER+=" --channel-config name=data,type=push,method=bind,address=tcp://*:5555,rateLogging=0" diff --git a/examples/1-n-1/CMakeLists.txt b/examples/1-n-1/CMakeLists.txt index e425c77b..670bda4b 100644 --- a/examples/1-n-1/CMakeLists.txt +++ b/examples/1-n-1/CMakeLists.txt @@ -28,6 +28,22 @@ target_link_libraries(fairmq-ex-1-n-1-sink PRIVATE Example1N1Lib) add_custom_target(Example1N1 DEPENDS fairmq-ex-1-n-1-sampler fairmq-ex-1-n-1-processor fairmq-ex-1-n-1-sink) +set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) +set(EX_CONF_DIR ${CMAKE_CURRENT_BINARY_DIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_BINARY_DIR}/fairmq) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-1-n-1.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-1-n-1.sh) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ex-1-n-1.json ${CMAKE_CURRENT_BINARY_DIR}/ex-1-n-1.json) + +# test + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-1-n-1.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-1-n-1.sh) + +add_test(NAME Example-1-n-1 COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-1-n-1.sh) +set_tests_properties(Example-1-n-1 PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received: ") + +# install + install( TARGETS fairmq-ex-1-n-1-sampler @@ -39,11 +55,9 @@ install( ) # configure run script with different executable paths for build and for install directories -set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) -set(EX_CONF_DIR ${CMAKE_CURRENT_BINARY_DIR}) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-1-n-1.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-1-n-1.sh) set(EX_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}) set(EX_CONF_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_DATADIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}/fairmq) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-1-n-1.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-1-n-1.sh_install) install( @@ -52,13 +66,7 @@ install( RENAME fairmq-start-ex-1-n-1.sh ) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ex-1-n-1.json ${CMAKE_CURRENT_BINARY_DIR}/ex-1-n-1.json) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/ex-1-n-1.json DESTINATION ${PROJECT_INSTALL_DATADIR} ) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-1-n-1.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-1-n-1.sh) - -add_test(NAME Example-1-n-1 COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-1-n-1.sh) -set_tests_properties(Example-1-n-1 PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received: ") diff --git a/examples/1-n-1/fairmq-start-ex-1-n-1.sh.in b/examples/1-n-1/fairmq-start-ex-1-n-1.sh.in index 0b3c3e1c..8b8c6493 100755 --- a/examples/1-n-1/fairmq-start-ex-1-n-1.sh.in +++ b/examples/1-n-1/fairmq-start-ex-1-n-1.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + ex2config="@EX_CONF_DIR@/ex-1-n-1.json" SAMPLER="fairmq-ex-1-n-1-sampler" diff --git a/examples/1-n-1/test-ex-1-n-1.sh.in b/examples/1-n-1/test-ex-1-n-1.sh.in index ea1d0b0e..c963df7a 100755 --- a/examples/1-n-1/test-ex-1-n-1.sh.in +++ b/examples/1-n-1/test-ex-1-n-1.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + ex2config="@CMAKE_CURRENT_BINARY_DIR@/ex-1-n-1.json" # setup a trap to kill everything if the test fails/timeouts diff --git a/examples/copypush/CMakeLists.txt b/examples/copypush/CMakeLists.txt index 455c89cb..7ceb82c0 100644 --- a/examples/copypush/CMakeLists.txt +++ b/examples/copypush/CMakeLists.txt @@ -24,6 +24,19 @@ target_link_libraries(fairmq-ex-copypush-sink PRIVATE ExampleCopyPushLib) add_custom_target(ExampleCopyPush DEPENDS fairmq-ex-copypush-sampler fairmq-ex-copypush-sink) +set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_BINARY_DIR}/fairmq) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-copypush.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-copypush.sh) + +# test + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-copypush.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-copypush.sh) + +add_test(NAME Example-CopyPush COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-copypush.sh) +set_tests_properties(Example-CopyPush PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received message: ") + +# install + install( TARGETS fairmq-ex-copypush-sampler @@ -34,9 +47,8 @@ install( ) # configure run script with different executable paths for build and for install directories -set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-copypush.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-copypush.sh) set(EX_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}/fairmq) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-copypush.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-copypush.sh_install) install( @@ -44,8 +56,3 @@ install( DESTINATION ${PROJECT_INSTALL_BINDIR} RENAME fairmq-start-ex-copypush.sh ) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-copypush.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-copypush.sh) - -add_test(NAME Example-CopyPush COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-copypush.sh) -set_tests_properties(Example-CopyPush PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received message: ") diff --git a/examples/copypush/fairmq-start-ex-copypush.sh.in b/examples/copypush/fairmq-start-ex-copypush.sh.in index 32ced02b..f4052182 100755 --- a/examples/copypush/fairmq-start-ex-copypush.sh.in +++ b/examples/copypush/fairmq-start-ex-copypush.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + SAMPLER="fairmq-ex-copypush-sampler" SAMPLER+=" --id sampler1" SAMPLER+=" --channel-config name=data,type=push,method=bind,rateLogging=0,address=tcp://*:5555,address=tcp://*:5556" diff --git a/examples/copypush/test-ex-copypush.sh.in b/examples/copypush/test-ex-copypush.sh.in index ee8612ae..e002648d 100755 --- a/examples/copypush/test-ex-copypush.sh.in +++ b/examples/copypush/test-ex-copypush.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + # setup a trap to kill everything if the test fails/timeouts trap 'kill -TERM $SAMPLER_PID; kill -TERM $SINK1_PID; kill -TERM $SINK2_PID; wait $SAMPLER_PID; wait $SINK1_PID; wait $SINK2_PID;' TERM diff --git a/examples/dds/CMakeLists.txt b/examples/dds/CMakeLists.txt index 72777a25..8ed9b99f 100644 --- a/examples/dds/CMakeLists.txt +++ b/examples/dds/CMakeLists.txt @@ -28,6 +28,17 @@ target_link_libraries(fairmq-ex-dds-sink PRIVATE ExampleDDSLib) add_custom_target(ExampleDDS DEPENDS fairmq-ex-dds-sampler fairmq-ex-dds-processor fairmq-ex-dds-sink) +set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) +set(DDS_PLUGIN_LIB_DIR ${CMAKE_BINARY_DIR}/fairmq/plugins/DDS) +set(FAIRMQ_BIN_DIR ${CMAKE_BINARY_DIR}/fairmq) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ex-dds-topology.xml ${CMAKE_CURRENT_BINARY_DIR}/ex-dds-topology.xml @ONLY) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ex-dds-hosts.cfg ${CMAKE_CURRENT_BINARY_DIR}/ex-dds-hosts.cfg COPYONLY) + +# test + +# install + install( TARGETS fairmq-ex-dds-sampler @@ -39,15 +50,11 @@ install( ) # configure run script with different executable paths for build and for install directories -set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) -set(DDS_PLUGIN_LIB_DIR ${CMAKE_BINARY_DIR}/fairmq/plugins/DDS) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ex-dds-topology.xml ${CMAKE_CURRENT_BINARY_DIR}/ex-dds-topology.xml @ONLY) set(EX_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}) set(DDS_PLUGIN_LIB_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_LIBDIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}/fairmq) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ex-dds-topology.xml ${CMAKE_CURRENT_BINARY_DIR}/ex-dds-topology.xml_install @ONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ex-dds-hosts.cfg ${CMAKE_CURRENT_BINARY_DIR}/ex-dds-hosts.cfg COPYONLY) - install( FILES ${CMAKE_CURRENT_BINARY_DIR}/ex-dds-topology.xml_install DESTINATION ${PROJECT_INSTALL_DATADIR} diff --git a/examples/multipart/CMakeLists.txt b/examples/multipart/CMakeLists.txt index 33ad6f97..2e545083 100644 --- a/examples/multipart/CMakeLists.txt +++ b/examples/multipart/CMakeLists.txt @@ -23,6 +23,19 @@ target_link_libraries(fairmq-ex-multipart-sink PRIVATE ExampleMultipartLib) add_custom_target(ExampleMultipart DEPENDS fairmq-ex-multipart-sampler fairmq-ex-multipart-sink) +set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_BINARY_DIR}/fairmq) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-multipart.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-multipart.sh) + +# test + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-multipart.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-multipart.sh) + +add_test(NAME Example-Multipart COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-multipart.sh) +set_tests_properties(Example-Multipart PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received message with 2 parts") + +# install + install( TARGETS fairmq-ex-multipart-sampler @@ -33,9 +46,8 @@ install( ) # configure run script with different executable paths for build and for install directories -set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-multipart.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-multipart.sh) set(EX_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}/fairmq) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-multipart.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-multipart.sh_install) install( @@ -43,8 +55,3 @@ install( DESTINATION ${PROJECT_INSTALL_BINDIR} RENAME fairmq-start-ex-multipart.sh ) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-multipart.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-multipart.sh) - -add_test(NAME Example-Multipart COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-multipart.sh) -set_tests_properties(Example-Multipart PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received message with 2 parts") diff --git a/examples/multipart/fairmq-start-ex-multipart.sh.in b/examples/multipart/fairmq-start-ex-multipart.sh.in index 297a6a5d..59611e58 100755 --- a/examples/multipart/fairmq-start-ex-multipart.sh.in +++ b/examples/multipart/fairmq-start-ex-multipart.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + SAMPLER="fairmq-ex-multipart-sampler" SAMPLER+=" --id sampler1" SAMPLER+=" --channel-config name=data,type=push,method=connect,rateLogging=0,address=tcp://127.0.0.1:5555" diff --git a/examples/multipart/test-ex-multipart.sh.in b/examples/multipart/test-ex-multipart.sh.in index 0b2975fa..db3bdf53 100755 --- a/examples/multipart/test-ex-multipart.sh.in +++ b/examples/multipart/test-ex-multipart.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + # setup a trap to kill everything if the test fails/timeouts trap 'kill -TERM $SAMPLER_PID; kill -TERM $SINK_PID; wait $SAMPLER_PID; wait $SINK_PID;' TERM diff --git a/examples/multiple-channels/CMakeLists.txt b/examples/multiple-channels/CMakeLists.txt index f4a4fb51..bdb75cc2 100644 --- a/examples/multiple-channels/CMakeLists.txt +++ b/examples/multiple-channels/CMakeLists.txt @@ -28,6 +28,19 @@ target_link_libraries(fairmq-ex-multiple-channels-sink PRIVATE ExampleMultipleCh add_custom_target(ExampleMultipleChannels DEPENDS fairmq-ex-multiple-channels-sampler fairmq-ex-multiple-channels-broadcaster fairmq-ex-multiple-channels-sink) +set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_BINARY_DIR}/fairmq) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-multiple-channels.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-multiple-channels.sh) + +# test + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-multiple-channels.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-multiple-channels.sh) + +add_test(NAME Example-Multiple-Channels COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-multiple-channels.sh) +set_tests_properties(Example-Multiple-Channels PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received messages from both sources.") + +# install + install( TARGETS fairmq-ex-multiple-channels-sampler @@ -39,9 +52,8 @@ install( ) # configure run script with different executable paths for build and for install directories -set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-multiple-channels.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-multiple-channels.sh) set(EX_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}/fairmq) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-multiple-channels.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-multiple-channels.sh_install) install( @@ -49,8 +61,3 @@ install( DESTINATION ${PROJECT_INSTALL_BINDIR} RENAME fairmq-start-ex-multiple-channels.sh ) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-multiple-channels.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-multiple-channels.sh) - -add_test(NAME Example-Multiple-Channels COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-multiple-channels.sh) -set_tests_properties(Example-Multiple-Channels PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received messages from both sources.") diff --git a/examples/multiple-channels/fairmq-start-ex-multiple-channels.sh.in b/examples/multiple-channels/fairmq-start-ex-multiple-channels.sh.in index 4e0d95ea..640f2f8e 100755 --- a/examples/multiple-channels/fairmq-start-ex-multiple-channels.sh.in +++ b/examples/multiple-channels/fairmq-start-ex-multiple-channels.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + SAMPLER="fairmq-ex-multiple-channels-sampler" SAMPLER+=" --id sampler1" SAMPLER+=" --channel-config name=data,type=push,method=bind,rateLogging=0,address=tcp://*:5555" diff --git a/examples/multiple-channels/test-ex-multiple-channels.sh.in b/examples/multiple-channels/test-ex-multiple-channels.sh.in index 32caf3ca..549872a8 100755 --- a/examples/multiple-channels/test-ex-multiple-channels.sh.in +++ b/examples/multiple-channels/test-ex-multiple-channels.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + # setup a trap to kill everything if the test fails/timeouts trap 'kill -TERM $SAMPLER_PID; kill -TERM $SINK_PID; kill -TERM $BROADCASTER_PID; wait $SAMPLER_PID; wait $SINK_PID; wait $BROADCASTER_PID;' TERM diff --git a/examples/multiple-transports/CMakeLists.txt b/examples/multiple-transports/CMakeLists.txt index fdc29356..f246234b 100644 --- a/examples/multiple-transports/CMakeLists.txt +++ b/examples/multiple-transports/CMakeLists.txt @@ -28,6 +28,18 @@ target_link_libraries(fairmq-ex-multiple-transports-sink PRIVATE ExampleMultiple add_custom_target(ExampleMultipleTransports DEPENDS fairmq-ex-multiple-transports-sampler1 fairmq-ex-multiple-transports-sampler2 fairmq-ex-multiple-transports-sink) +set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_BINARY_DIR}/fairmq) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-multiple-transports.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-multiple-transports.sh) + +# test + +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-Multiple-Transports COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-multiple-transports.sh) +set_tests_properties(Example-Multiple-Transports PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received messages from both sources.") + +# install + install( TARGETS fairmq-ex-multiple-transports-sampler1 @@ -38,10 +50,9 @@ install( RUNTIME DESTINATION ${PROJECT_INSTALL_BINDIR} ) -# configure run script with different executable paths for build and for install directories -set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-multiple-transports.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-multiple-transports.sh) +# configure run script with different executable paths for install directories set(EX_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}/fairmq) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-multiple-transports.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-multiple-transports.sh_install) install( @@ -49,8 +60,3 @@ install( DESTINATION ${PROJECT_INSTALL_BINDIR} RENAME fairmq-start-ex-multiple-transports.sh ) - -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-Multiple-Transports COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-multiple-transports.sh) -set_tests_properties(Example-Multiple-Transports PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received messages from both sources.") diff --git a/examples/multiple-transports/fairmq-start-ex-multiple-transports.sh.in b/examples/multiple-transports/fairmq-start-ex-multiple-transports.sh.in index 3280d239..bfcf07ac 100755 --- a/examples/multiple-transports/fairmq-start-ex-multiple-transports.sh.in +++ b/examples/multiple-transports/fairmq-start-ex-multiple-transports.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + SAMPLER1="fairmq-ex-multiple-transports-sampler1" SAMPLER1+=" --id sampler1" SAMPLER1+=" --severity debug" diff --git a/examples/multiple-transports/test-ex-multiple-transports.sh.in b/examples/multiple-transports/test-ex-multiple-transports.sh.in index ef7f9e7c..8660cf7e 100755 --- a/examples/multiple-transports/test-ex-multiple-transports.sh.in +++ b/examples/multiple-transports/test-ex-multiple-transports.sh.in @@ -1,4 +1,7 @@ #!/bin/bash + +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + SESSION="$(@CMAKE_BINARY_DIR@/fairmq/fairmq-uuid-gen -h)" 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;' TERM diff --git a/examples/region/CMakeLists.txt b/examples/region/CMakeLists.txt index a80a230e..ccc128de 100644 --- a/examples/region/CMakeLists.txt +++ b/examples/region/CMakeLists.txt @@ -24,6 +24,19 @@ target_link_libraries(fairmq-ex-region-sink PRIVATE ExampleRegionLib) add_custom_target(ExampleRegion DEPENDS fairmq-ex-region-sampler fairmq-ex-region-sink) +set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_BINARY_DIR}/fairmq) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-region.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-region.sh) + +# test + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-region.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-region.sh) + +add_test(NAME Example-Region COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-region.sh) +set_tests_properties(Example-Region PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received ack") + +# install + install( TARGETS fairmq-ex-region-sampler @@ -34,9 +47,8 @@ install( ) # configure run script with different executable paths for build and for install directories -set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-region.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-region.sh) set(EX_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}/fairmq) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-region.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-region.sh_install) install( @@ -44,8 +56,3 @@ install( DESTINATION ${PROJECT_INSTALL_BINDIR} RENAME fairmq-start-ex-region.sh ) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-region.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-region.sh) - -add_test(NAME Example-Region COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-region.sh) -set_tests_properties(Example-Region PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received ack") diff --git a/examples/region/fairmq-start-ex-region.sh.in b/examples/region/fairmq-start-ex-region.sh.in index ca668595..882edea1 100755 --- a/examples/region/fairmq-start-ex-region.sh.in +++ b/examples/region/fairmq-start-ex-region.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + msgSize="1000000" if [[ $1 =~ ^[0-9]+$ ]]; then diff --git a/examples/region/test-ex-region.sh.in b/examples/region/test-ex-region.sh.in index d864084c..595688b2 100755 --- a/examples/region/test-ex-region.sh.in +++ b/examples/region/test-ex-region.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + msgSize="1000000" SESSION="$(@CMAKE_BINARY_DIR@/fairmq/fairmq-uuid-gen -h)" diff --git a/examples/req-rep/CMakeLists.txt b/examples/req-rep/CMakeLists.txt index df5b4991..0c007fe2 100644 --- a/examples/req-rep/CMakeLists.txt +++ b/examples/req-rep/CMakeLists.txt @@ -24,6 +24,19 @@ target_link_libraries(fairmq-ex-req-rep-server PRIVATE ExampleReqRepLib) add_custom_target(ExampleReqRep DEPENDS fairmq-ex-req-rep-client fairmq-ex-req-rep-server) +set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_BINARY_DIR}/fairmq) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-req-rep.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-req-rep.sh) + +# test + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-req-rep.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-req-rep.sh) + +add_test(NAME Example-ReqRep COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-req-rep.sh) +set_tests_properties(Example-ReqRep PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received reply from server: ") + +# install + install( TARGETS fairmq-ex-req-rep-client @@ -34,9 +47,8 @@ install( ) # configure run script with different executable paths for build and for install directories -set(EX_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-req-rep.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-req-rep.sh) set(EX_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}) +set(FAIRMQ_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${PROJECT_INSTALL_BINDIR}/fairmq) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fairmq-start-ex-req-rep.sh.in ${CMAKE_CURRENT_BINARY_DIR}/fairmq-start-ex-req-rep.sh_install) install( @@ -44,8 +56,3 @@ install( DESTINATION ${PROJECT_INSTALL_BINDIR} RENAME fairmq-start-ex-req-rep.sh ) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test-ex-req-rep.sh.in ${CMAKE_CURRENT_BINARY_DIR}/test-ex-req-rep.sh) - -add_test(NAME Example-ReqRep COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test-ex-req-rep.sh) -set_tests_properties(Example-ReqRep PROPERTIES TIMEOUT "30" RUN_SERIAL true PASS_REGULAR_EXPRESSION "Received reply from server: ") diff --git a/examples/req-rep/fairmq-start-ex-req-rep.sh.in b/examples/req-rep/fairmq-start-ex-req-rep.sh.in index 025cf92a..2ff5c841 100755 --- a/examples/req-rep/fairmq-start-ex-req-rep.sh.in +++ b/examples/req-rep/fairmq-start-ex-req-rep.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + CLIENT="fairmq-ex-req-rep-client" CLIENT+=" --id client" CLIENT+=" --channel-config name=data,type=req,method=connect,rateLogging=0,address=tcp://127.0.0.1:5005" diff --git a/examples/req-rep/test-ex-req-rep.sh.in b/examples/req-rep/test-ex-req-rep.sh.in index c078ee0e..a6953103 100755 --- a/examples/req-rep/test-ex-req-rep.sh.in +++ b/examples/req-rep/test-ex-req-rep.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + # setup a trap to kill everything if the test fails/timeouts trap 'kill -TERM $CLIENT_PID; kill -TERM $SERVER_PID; wait $CLIENT_PID; wait $SERVER_PID;' TERM diff --git a/fairmq/CMakeLists.txt b/fairmq/CMakeLists.txt index 9b6a32b3..82f674f9 100644 --- a/fairmq/CMakeLists.txt +++ b/fairmq/CMakeLists.txt @@ -179,6 +179,7 @@ endif() ################### # configure files # ################### +set(FAIRMQ_BIN_DIR ${CMAKE_BINARY_DIR}/fairmq) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/run/startMQBenchmark.sh.in ${CMAKE_CURRENT_BINARY_DIR}/startMQBenchmark.sh) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/options/startConfigExample.sh.in ${CMAKE_CURRENT_BINARY_DIR}/startConfigExample.sh) diff --git a/fairmq/run/startMQBenchmark.sh.in b/fairmq/run/startMQBenchmark.sh.in index d0088163..a21f625c 100755 --- a/fairmq/run/startMQBenchmark.sh.in +++ b/fairmq/run/startMQBenchmark.sh.in @@ -1,5 +1,7 @@ #!/bin/bash +export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ + maxIterations="0" msgSize="1000000" transport="zeromq" diff --git a/fairmq/shmem/FairMQTransportFactorySHM.cxx b/fairmq/shmem/FairMQTransportFactorySHM.cxx index 32d124b3..1874a367 100644 --- a/fairmq/shmem/FairMQTransportFactorySHM.cxx +++ b/fairmq/shmem/FairMQTransportFactorySHM.cxx @@ -23,7 +23,7 @@ #include #include -#include // std::system +#include // getenv using namespace std; using namespace fair::mq::shmem; @@ -76,7 +76,7 @@ FairMQTransportFactorySHM::FairMQTransportFactorySHM(const string& id, const Fai try { - fShMutex = fair::mq::tools::make_unique(bipc::open_or_create, std::string("fmq_shm_" + fSessionName + "_mutex").c_str()); + fShMutex = fair::mq::tools::make_unique(bipc::open_or_create, string("fmq_shm_" + fSessionName + "_mutex").c_str()); if (zmq_ctx_set(fContext, ZMQ_IO_THREADS, numIoThreads) != 0) { @@ -125,7 +125,7 @@ FairMQTransportFactorySHM::FairMQTransportFactorySHM(const string& id, const Fai LOG(debug) << "found fairmq-shmmonitor."; } } - catch (std::exception& e) + catch (exception& e) { LOG(error) << "Exception during fairmq-shmmonitor initialization: " << e.what() << ", application will now exit"; exit(EXIT_FAILURE); @@ -149,7 +149,14 @@ void FairMQTransportFactorySHM::StartMonitor() auto env = boost::this_process::environment(); - boost::filesystem::path p = boost::process::search_path("fairmq-shmmonitor"); + vector ownPath = boost::this_process::path(); + + if (const char* fmqp = getenv("FAIRMQ_PATH")) + { + ownPath.insert(ownPath.begin(), boost::filesystem::path(fmqp)); + } + + boost::filesystem::path p = boost::process::search_path("fairmq-shmmonitor", ownPath); if (!p.empty()) { @@ -165,7 +172,7 @@ void FairMQTransportFactorySHM::StartMonitor() } else { - this_thread::sleep_for(std::chrono::milliseconds(10)); + this_thread::sleep_for(chrono::milliseconds(10)); if (++numTries > 1000) { LOG(error) << "Did not get response from fairmq-shmmonitor after " << 10 * 1000 << " milliseconds. Exiting."; @@ -238,7 +245,7 @@ FairMQPollerPtr FairMQTransportFactorySHM::CreatePoller(const vector(new FairMQPollerSHM(channels)); } -FairMQPollerPtr FairMQTransportFactorySHM::CreatePoller(const std::vector& channels) const +FairMQPollerPtr FairMQTransportFactorySHM::CreatePoller(const vector& channels) const { return unique_ptr(new FairMQPollerSHM(channels)); } @@ -305,7 +312,7 @@ FairMQTransportFactorySHM::~FairMQTransportFactorySHM() if (lastRemoved) { - boost::interprocess::named_mutex::remove(std::string("fmq_shm_" + fSessionName + "_mutex").c_str()); + boost::interprocess::named_mutex::remove(string("fmq_shm_" + fSessionName + "_mutex").c_str()); } }