Verified Commit 09105813 authored by Alberto Miranda's avatar Alberto Miranda ♨️
Browse files

Fix tests so that they can run concurrently

parent e0b754a1
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -34,7 +34,35 @@ target_link_libraries(
  tests PUBLIC Catch2::Catch2 Boost::iostreams fmt::fmt cargo posix_file
)

# prepare the environment for the Cargo daemon
set(CARGO_TESTS_DIRECTORY "${CMAKE_BINARY_DIR}/Testing")
file(MAKE_DIRECTORY ${CARGO_TESTS_DIRECTORY})

set(TEST_DIRECTORY "${CARGO_TESTS_DIRECTORY}/cargo_server")
file(MAKE_DIRECTORY ${TEST_DIRECTORY})

set(CARGO_ADDRESS
    ${CARGO_TRANSPORT_PROTOCOL}://${CARGO_BIND_ADDRESS}:${CARGO_BIND_PORT})

add_test(NAME start_cargo
  COMMAND
    ${CMAKE_SOURCE_DIR}/scripts/runner.sh start /dev/null
        ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4
          $<TARGET_FILE:cargo_server> -l ${CARGO_ADDRESS} -o ${TEST_DIRECTORY}/cargo.log
)

set_tests_properties(start_cargo
        PROPERTIES FIXTURES_SETUP cargo_daemon)

add_test(NAME stop_cargo
  COMMAND cargo_shutdown --server ${CARGO_ADDRESS}
)

set_tests_properties(stop_cargo
        PROPERTIES FIXTURES_CLEANUP cargo_daemon)

catch_discover_tests(
  tests EXTRA_ARGS
  "-S ${CARGO_TRANSPORT_PROTOCOL}://${CARGO_BIND_ADDRESS}:${CARGO_BIND_PORT}"
  PROPERTIES FIXTURES_REQUIRED cargo_daemon
)
+10 −8
Original line number Diff line number Diff line
@@ -215,10 +215,11 @@ SCENARIO("Parallel reads", "[flex_stager][parallel_reads]") {

        cargo::server server{server_address};

        const auto sources = prepare_datasets(cargo::dataset::type::parallel,
                                              "source-dataset-{}", NDATASETS);
        const auto targets = prepare_datasets(cargo::dataset::type::posix,
                                              "target-dataset-{}", NDATASETS);
        const auto sources =
                prepare_datasets(cargo::dataset::type::parallel,
                                 "pr-source-dataset-{}", NDATASETS);
        const auto targets = prepare_datasets(
                cargo::dataset::type::posix, "pr-target-dataset-{}", NDATASETS);

        static std::vector<scoped_file> input_files;
        input_files.reserve(sources.size());
@@ -275,10 +276,11 @@ SCENARIO("Parallel writes", "[flex_stager][parallel_writes]") {

        cargo::server server{server_address};

        const auto sources = prepare_datasets(cargo::dataset::type::posix,
                                              "source-dataset-{}", NDATASETS);
        const auto targets = prepare_datasets(cargo::dataset::type::parallel,
                                              "target-dataset-{}", NDATASETS);
        const auto sources = prepare_datasets(
                cargo::dataset::type::posix, "pw-source-dataset-{}", NDATASETS);
        const auto targets =
                prepare_datasets(cargo::dataset::type::parallel,
                                 "pw-target-dataset-{}", NDATASETS);

        static std::vector<scoped_file> input_files;
        input_files.reserve(sources.size());