summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2021-02-11 10:03:24 +0100
committerMichal Klocek <michal.klocek@qt.io>2021-05-22 14:10:10 +0200
commit97dcbd4019456b9a1c567faddb0521b7505d80fc (patch)
tree9c77c5640b1563d853c79898cd64d87252fe8c41 /CMakeLists.txt
parentdd523573f2981cc58d4da0ec6e2b061a6172a8eb (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.txt32
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()