From 97dcbd4019456b9a1c567faddb0521b7505d80fc Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Thu, 11 Feb 2021 10:03:24 +0100 Subject: Add tests to the cmake build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use QT_TESTCASE_SOURCEDIR instead of TESTS_SOURCE_DIR. Introduce Test::HttpServer and Test::Util targets. Query shared data location from server. Clean up "shared" resources. Note QT_TESTCASE_SOURCEDIR must be turned into the canonical form since the user can call on windows: "cmake \path\to\foo" instead of "cmake c:\path\to\foo" which will break all file:// urls. Note this patch breaks qmake builds. Task-number: QTBUG-91760 Change-Id: Ibc1f904ac9acd375d1ff70ff80f0c533497e3f20 Reviewed-by: Michael BrĂ¼ning --- CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ce56974d..8c7b24a45 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,8 +11,16 @@ project(QtWebEngineRepoSuperBuild LANGUAGES CXX C ) +option(FORCE_TEST_RUN "Forces test run after compilation" FALSE) + find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core) +# coin configures 'just' for test build +if(QT_BUILD_STANDALONE_TESTS) + qt_build_repo() + return() +endif() + set(installDir ${CMAKE_CURRENT_BINARY_DIR}/install) ### FEATURES @@ -123,6 +131,30 @@ if(QT_BUILD_EXAMPLES AND BUILD_SHARED_LIBS) externalproject_add_stepdependencies(examples install libs) endif() +if(FORCE_TEST_RUN OR QT_BUILD_TESTS) + find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS QuickTest Test) + unset(testRunCommand) + if(FORCE_TEST_RUN) + set(testRunCommand TEST_COMMAND ctest) + endif() + externalproject_add(tests + SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/tests + BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/tests + PREFIX tests + USES_TERMINAL_BUILD ON + USES_TERMINAL_TEST ON + BUILD_ALWAYS TRUE + CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + "${featureList}" + INSTALL_COMMAND "" + ${testRunCommand} + ) + externalproject_add_stepdependencies(tests install libs) + if(QT_BUILD_EXAMPLES AND BUILD_SHARED_LIBS) + externalproject_add_stepdependencies(tests install examples) + endif() +endif() + if(NOT Gn_FOUND) externalproject_add_stepdependencies(libs install gn) endif() -- cgit v1.2.3