From d010ba23222db328b16cfb5b582f995f1dc987bc Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Mon, 12 Aug 2024 11:11:12 +0200 Subject: [PATCH] build: make manpage_test work in split build --- CMakeLists.txt | 8 ++++++-- test/manpage_test.cpp | 25 +++++++++++++++++++------ 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2cba4dae..573f0cea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -445,7 +445,7 @@ if(WITH_TESTS) ) endif() - if(WITH_TOOLS AND WITH_MAN_OPTION) + if((WITH_TOOLS OR WITH_FUSE_DRIVER) AND WITH_MAN_OPTION) list(APPEND DWARFS_TESTS manpage_test) endif() @@ -474,8 +474,12 @@ if(WITH_TESTS) endif() if(TARGET manpage_test) - target_link_libraries(manpage_test PRIVATE mkdwarfs_main dwarfsck_main dwarfsextract_main) + if(WITH_TOOLS) + target_compile_definitions(manpage_test PRIVATE DWARFS_WITH_TOOLS) + target_link_libraries(manpage_test PRIVATE mkdwarfs_main dwarfsck_main dwarfsextract_main) + endif() if(WITH_FUSE_DRIVER) + target_compile_definitions(manpage_test PRIVATE DWARFS_WITH_FUSE_DRIVER) target_link_libraries(manpage_test PRIVATE dwarfs_main) endif() endif() diff --git a/test/manpage_test.cpp b/test/manpage_test.cpp index 5eb07e83..b5f03b85 100644 --- a/test/manpage_test.cpp +++ b/test/manpage_test.cpp @@ -24,10 +24,15 @@ #include #include #include +#include +#include #include #include +#include +#include + #include #include #include @@ -50,21 +55,31 @@ struct tool_defs { }; std::map const tools = { +#ifdef DWARFS_WITH_TOOLS {"mkdwarfs", {manpage::get_mkdwarfs_manpage(), mkdwarfs_main, "-H", false}}, - {"dwarfs", {manpage::get_dwarfs_manpage(), dwarfs_main, "-h", true}}, {"dwarfsck", {manpage::get_dwarfsck_manpage(), dwarfsck_main, "-h", false}}, {"dwarfsextract", {manpage::get_dwarfsextract_manpage(), dwarfsextract_main, "-h", false}}, +#endif +#ifdef DWARFS_WITH_FUSE_DRIVER + {"dwarfs", {manpage::get_dwarfs_manpage(), dwarfs_main, "-h", true}}, +#endif }; +auto const render_tests = ranges::views::keys(tools) | ranges::to; + std::array const coverage_tests{ +#ifdef DWARFS_WITH_TOOLS "mkdwarfs"s, "dwarfsck"s, "dwarfsextract"s, +#endif +#ifdef DWARFS_WITH_FUSE_DRIVER #ifndef DWARFS_TEST_RUNNING_ON_ASAN // FUSE driver is leaky, so we don't run this test under ASAN "dwarfs"s, #endif +#endif }; } // namespace @@ -86,11 +101,9 @@ TEST_P(manpage_render_test, basic) { } } -INSTANTIATE_TEST_SUITE_P( - dwarfs, manpage_render_test, - ::testing::Combine(::testing::Values("mkdwarfs", "dwarfs", "dwarfsck", - "dwarfsextract"), - ::testing::Bool())); +INSTANTIATE_TEST_SUITE_P(dwarfs, manpage_render_test, + ::testing::Combine(::testing::ValuesIn(render_tests), + ::testing::Bool())); namespace {