diff options
author | Michal Klocek <michal.klocek@qt.io> | 2021-02-11 10:03:24 +0100 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2021-05-22 14:10:10 +0200 |
commit | 97dcbd4019456b9a1c567faddb0521b7505d80fc (patch) | |
tree | 9c77c5640b1563d853c79898cd64d87252fe8c41 /CMakeLists.txt | |
parent | dd523573f2981cc58d4da0ec6e2b061a6172a8eb (diff) |
Add tests to the cmake build
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 <michael.bruning@qt.io>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 32 |
1 files changed, 32 insertions, 0 deletions
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() |