Skip to content

Commit d4f0cdf

Browse files
committed
Allow test working directories with a relative path
1 parent 306bb3d commit d4f0cdf

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

cmake/generate_documentation.cmake

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ if(CMKR_GENERATE_DOCUMENTATION)
55
# Hook the add_test function to capture the tests in the order declared in tests/cmake.toml
66
function(add_test)
77
cmake_parse_arguments(TEST "" "WORKING_DIRECTORY" "" ${ARGN})
8+
get_filename_component(TEST_WORKING_DIRECTORY "${TEST_WORKING_DIRECTORY}" NAME)
89
list(APPEND CMKR_TESTS "${TEST_WORKING_DIRECTORY}")
910
set(CMKR_TESTS "${CMKR_TESTS}" CACHE INTERNAL "")
1011
_add_test(${test} ${ARGN})
@@ -19,7 +20,9 @@ function(generate_documentation)
1920
set(example_folder "${PROJECT_SOURCE_DIR}/docs/examples")
2021
file(GLOB example_files "${example_folder}/*.md")
2122
list(REMOVE_ITEM example_files "${example_folder}/index.md")
22-
file(REMOVE ${example_files})
23+
if(example_files)
24+
file(REMOVE ${example_files})
25+
endif()
2326

2427
message(DEBUG "[cmkr] Test directories: ${CMKR_TESTS}")
2528
set(test_index 0)

src/gen.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -721,7 +721,11 @@ int generate_cmake(const char *path, bool root) {
721721
for (const auto &test : cmake.tests) {
722722
auto name = std::make_pair("NAME", test.name);
723723
auto configurations = std::make_pair("CONFIGURATIONS", test.configurations);
724-
auto working_directory = std::make_pair("WORKING_DIRECTORY", test.working_directory);
724+
auto dir = test.working_directory;
725+
if (fs::is_directory(fs::path(path) / dir)) {
726+
dir = "${CMAKE_CURRENT_LIST_DIR}/" + dir;
727+
}
728+
auto working_directory = std::make_pair("WORKING_DIRECTORY", dir);
725729
auto command = std::make_pair("COMMAND", test.command);
726730
auto arguments = std::make_pair("", test.arguments);
727731
cmd("add_test")(name, configurations, working_directory, command, arguments).endl();

tests/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)