From 26c30a11fee2f91ec8b31a36978a20e3e67ccafb Mon Sep 17 00:00:00 2001 From: Robert Adam Date: Tue, 8 Sep 2020 16:16:43 +0200 Subject: BUILD(cmake): Select tests based on built components As some tests only make sense to be run if a given component is included in the build (client/server), this commit makes sure no unnecessary tests are built (and run). Furthermore it removed the dependency of some tests on a certain target having a source-dir property. And finally it also removed the references to "NO_USE_SRV" from TestServerResolver as this macro is never defined anywhere (it's probably a remnant of the old qmake system). Co-Authored-By: Sebastian Parborg --- src/tests/CMakeLists.txt | 38 ++++++++++++++++++---- src/tests/TestCrypt/CMakeLists.txt | 4 +-- .../TestServerResolver/TestServerResolver.cpp | 8 ----- src/tests/TestXMLTools/CMakeLists.txt | 2 +- 4 files changed, 34 insertions(+), 18 deletions(-) (limited to 'src/tests') diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index bdfd06903..685ccb449 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -5,11 +5,37 @@ find_pkg(Qt5 COMPONENTS Test REQUIRED) -file(GLOB ITEMS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/*") +set(TESTS "") -foreach(ITEM ${ITEMS}) - if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}") - add_subdirectory(${ITEM}) - set_target_properties(${ITEM} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/tests") - endif() +macro(use_test TEST_NAME) + add_subdirectory("${TEST_NAME}") + list(APPEND TESTS "${TEST_NAME}") +endmacro() + +if(client) + use_test("TestXMLTools") +endif() + +if(server) + use_test("TestCrypt") +endif() + +# Shared tests +use_test("TestCryptographicHash") +use_test("TestCryptographicRandom") +use_test("TestFFDHE") +use_test("TestPacketDataStream") +use_test("TestPasswordGenerator") +use_test("TestSelfSignedCertificate") +use_test("TestServerAddress") +use_test("TestServerResolver") +use_test("TestSSLLocks") +use_test("TestStdAbs") +use_test("TestTimer") +use_test("TestUnresolvedServerAddress") + + +# Set output directory +foreach(CURRENT_TEST IN LISTS TESTS) + set_target_properties("${CURRENT_TEST}" PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/tests") endforeach() diff --git a/src/tests/TestCrypt/CMakeLists.txt b/src/tests/TestCrypt/CMakeLists.txt index 302e8a262..1500ae22f 100644 --- a/src/tests/TestCrypt/CMakeLists.txt +++ b/src/tests/TestCrypt/CMakeLists.txt @@ -7,9 +7,7 @@ add_executable(TestCrypt TestCrypt.cpp) set_target_properties(TestCrypt PROPERTIES AUTOMOC ON) -get_target_property(MURMUR_SOURCE_DIR murmur SOURCE_DIR) - -target_include_directories(TestCrypt PRIVATE ${MURMUR_SOURCE_DIR}) +target_include_directories(TestCrypt PRIVATE "${CMAKE_SOURCE_DIR}/src/murmur") target_link_libraries(TestCrypt PRIVATE shared Qt5::Test) diff --git a/src/tests/TestServerResolver/TestServerResolver.cpp b/src/tests/TestServerResolver/TestServerResolver.cpp index 786792080..cd2fbff3e 100644 --- a/src/tests/TestServerResolver/TestServerResolver.cpp +++ b/src/tests/TestServerResolver/TestServerResolver.cpp @@ -27,10 +27,6 @@ class TestServerResolver : public QObject { }; void TestServerResolver::simpleSrv() { -#ifdef USE_NO_SRV - return; -#endif - // Qt 5's SRV resolver does not work in Wine. // For more info, see https://bugs.winehq.org/show_bug.cgi?id=44296 if (PlatformCheck::IsWine()) { @@ -80,10 +76,6 @@ void TestServerResolver::simpleSrv() { } void TestServerResolver::srvCustomPort() { -#ifdef USE_NO_SRV - return; -#endif - // Qt 5's SRV resolver does not work in Wine. // For more info, see https://bugs.winehq.org/show_bug.cgi?id=44296 if (PlatformCheck::IsWine()) { diff --git a/src/tests/TestXMLTools/CMakeLists.txt b/src/tests/TestXMLTools/CMakeLists.txt index 0290f9b5f..0eb8aac12 100644 --- a/src/tests/TestXMLTools/CMakeLists.txt +++ b/src/tests/TestXMLTools/CMakeLists.txt @@ -3,7 +3,7 @@ # that can be found in the LICENSE file at the root of the # Mumble source tree or at . -get_target_property(MUMBLE_SOURCE_DIR mumble SOURCE_DIR) +set(MUMBLE_SOURCE_DIR "${CMAKE_SOURCE_DIR}/src/mumble") set(TESTXMLTOOLS_SOURCES TestXMLTools.cpp -- cgit v1.2.3