mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2026-06-15 08:17:05 +00:00
- introduce FAIRMQ_TEST_LD_LIBRARY_PATH, which prepends a directory to each test's environment via ctest, so the tests can run against an alternative runtime library (e.g. a tsan-instrumented libstdc++) - LD_LIBRARY_PATH rather than an injected rpath: an rpath added via the linker flags cannot precede the rpath spack's gcc adds through its specs file, so the compiler's own libstdc++ would keep winning the runtime search order - scoped per test on purpose: an instrumented library has unresolved __tsan_* symbols and must not be loaded into uninstrumented tools like cmake, ctest or ninja - fail the configuration instead of silently dropping the injection on CMake < 3.22 (ENVIRONMENT_MODIFICATION) - cover the example tests too; they share the instrumented runtime but not the locale-cache warmup (their main() is the installed public header). The custom-controller env block was dead before: it tested lsan_options, which only ever existed in the add_example() function scope, so the test also never received the LSan suppressions
23 lines
1.1 KiB
CMake
23 lines
1.1 KiB
CMake
################################################################################
|
|
# Copyright (C) 2022-2023 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH #
|
|
# #
|
|
# This software is distributed under the terms of the #
|
|
# GNU Lesser General Public Licence (LGPL) version 3, #
|
|
# copied verbatim in the file "LICENSE" #
|
|
################################################################################
|
|
|
|
set(name "custom-controller")
|
|
set(exe "${exe_prefix}-${name}")
|
|
add_executable(${exe} main.cxx)
|
|
target_link_libraries(${exe} PRIVATE FairMQ)
|
|
set_target_properties(${exe} PROPERTIES ENABLE_EXPORTS ON)
|
|
|
|
set(test "${testsuite}.${name}")
|
|
add_test(NAME ${test} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${exe})
|
|
set_tests_properties(${test} PROPERTIES TIMEOUT 30)
|
|
# (the previous `if(lsan_options)` here could never fire -- that variable
|
|
# only ever existed in the add_example() function scope)
|
|
if(env_mods)
|
|
set_tests_properties(${test} PROPERTIES ENVIRONMENT_MODIFICATION "${env_mods}")
|
|
endif()
|