From a4eb193ea2d05ad6af821013c9bea17068773542 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Wed, 24 Mar 2021 22:33:30 +0300 Subject: unit_tests: dynamic path to test_lib.pdb --- test/unit_tests/CMakeLists.txt | 8 +++++++- test/unit_tests/fixtures.hpp | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/unit_tests/CMakeLists.txt b/test/unit_tests/CMakeLists.txt index 90f8bed..ae43fbb 100644 --- a/test/unit_tests/CMakeLists.txt +++ b/test/unit_tests/CMakeLists.txt @@ -9,4 +9,10 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") install(FILES "$" DESTINATION bin/test OPTIONAL) endif() -add_test(NAME unit_tests COMMAND unit_tests --log_level=all --no_color_output) +if(MSVC) + # Set the working directory so that the unit_tests binary can find the + # test_lib shared library binary. + add_test(NAME unit_tests + COMMAND unit_tests --log_level=all --no_color_output -- --test_lib_pdb "$" + WORKING_DIRECTORY "$") +endif() diff --git a/test/unit_tests/fixtures.hpp b/test/unit_tests/fixtures.hpp index 85451d4..60047df 100644 --- a/test/unit_tests/fixtures.hpp +++ b/test/unit_tests/fixtures.hpp @@ -115,7 +115,12 @@ private: } static boost::filesystem::path get_module_pdb_path() { - return Paths::get().exe_dir / (get_module_name() + ".pdb"); + // That's pretty ad-hoc, but seems to work; based on + // https://www.boost.org/doc/libs/1_70_0/libs/test/doc/html/boost_test/runtime_config/custom_command_line_arguments.html + BOOST_TEST_REQUIRE(boost::unit_test::framework::master_test_suite().argc == 3); + BOOST_TEST_REQUIRE(boost::unit_test::framework::master_test_suite().argv[1] == + "--test_lib_pdb"); + return boost::unit_test::framework::master_test_suite().argv[2]; } }; -- cgit v1.2.3