aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Stenger <[email protected]>2022-02-10 13:21:19 +0100
committerChristian Stenger <[email protected]>2022-02-15 08:21:40 +0000
commit1652be1310f828343aa3f33dbe571fcadd0cc6d6 (patch)
tree178490e06c9e17c456f08c745319f9929649d808
parent42f260747eee2440952f9753dfefff99ef43b346 (diff)
Tests: Provide some cmake files for manual tests
Add another option to mark a test as manual and use this for some existing. Manual tests will not be added as a ctest, but they can still get executed explicitly. Beside this allow to use a condition when using add_qtc_test(). Change-Id: I03d5397db36c0a2c9ee506a4214ed68fae6ad6e7 Reviewed-by: Alessandro Portale <[email protected]> Reviewed-by: <[email protected]>
-rw-r--r--cmake/QtCreatorAPI.cmake11
-rw-r--r--tests/manual/CMakeLists.txt14
-rw-r--r--tests/manual/debugger/CMakeLists.txt2
-rw-r--r--tests/manual/debugger/gui/CMakeLists.txt18
-rw-r--r--tests/manual/debugger/simple/CMakeLists.txt71
-rw-r--r--tests/manual/fakevim/CMakeLists.txt15
-rw-r--r--tests/manual/pluginview/CMakeLists.txt10
-rw-r--r--tests/manual/pluginview/plugins/plugin1/CMakeLists.txt14
-rw-r--r--tests/manual/pluginview/plugins/plugin2/CMakeLists.txt12
-rw-r--r--tests/manual/pluginview/plugins/plugin3/CMakeLists.txt13
-rw-r--r--tests/manual/process/CMakeLists.txt11
-rw-r--r--tests/manual/proparser/CMakeLists.txt47
-rw-r--r--tests/manual/shootout/CMakeLists.txt5
-rw-r--r--tests/manual/ssh/CMakeLists.txt2
-rw-r--r--tests/manual/ssh/sftpfsmodel/CMakeLists.txt18
-rw-r--r--tests/manual/ssh/shell/CMakeLists.txt13
-rw-r--r--tests/manual/widgets/crumblepath/CMakeLists.txt1
-rw-r--r--tests/manual/widgets/infolabel/CMakeLists.txt1
-rw-r--r--tests/manual/widgets/manhattanstyle/CMakeLists.txt1
-rw-r--r--tests/manual/widgets/tracing/CMakeLists.txt1
20 files changed, 270 insertions, 10 deletions
diff --git a/cmake/QtCreatorAPI.cmake b/cmake/QtCreatorAPI.cmake
index 1f36ac0af35..3a056ee7844 100644
--- a/cmake/QtCreatorAPI.cmake
+++ b/cmake/QtCreatorAPI.cmake
@@ -763,7 +763,8 @@ function(extend_qtc_executable name)
endfunction()
function(add_qtc_test name)
- cmake_parse_arguments(_arg "GTEST" "TIMEOUT" "DEFINES;DEPENDS;INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;SKIP_PCH" ${ARGN})
+ cmake_parse_arguments(_arg "GTEST;MANUALTEST" "TIMEOUT"
+ "DEFINES;DEPENDS;INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;SKIP_PCH;CONDITION" ${ARGN})
if ($_arg_UNPARSED_ARGUMENTS)
message(FATAL_ERROR "add_qtc_test had unparsed arguments!")
@@ -771,6 +772,10 @@ function(add_qtc_test name)
update_cached_list(__QTC_TESTS "${name}")
+ if (NOT _arg_CONDITION)
+ set(_arg_CONDITION ON)
+ endif()
+
string(TOUPPER "BUILD_TEST_${name}" _build_test_var)
set(_build_test_default ${BUILD_TESTS_BY_DEFAULT})
if (DEFINED ENV{QTC_${_build_test_var}})
@@ -778,7 +783,7 @@ function(add_qtc_test name)
endif()
set(${_build_test_var} "${_build_test_default}" CACHE BOOL "Build test ${name}.")
- if (NOT ${_build_test_var})
+ if (NOT ${_build_test_var} OR NOT ${_arg_CONDITION})
return()
endif()
@@ -820,7 +825,7 @@ function(add_qtc_test name)
enable_pch(${name})
endif()
- if (NOT _arg_GTEST)
+ if (NOT _arg_GTEST AND NOT _arg_MANUALTEST)
add_test(NAME ${name} COMMAND ${name})
if (DEFINED _arg_TIMEOUT)
set(timeout_option TIMEOUT ${_arg_TIMEOUT})
diff --git a/tests/manual/CMakeLists.txt b/tests/manual/CMakeLists.txt
index 6fbe426a215..436263a7e85 100644
--- a/tests/manual/CMakeLists.txt
+++ b/tests/manual/CMakeLists.txt
@@ -2,19 +2,19 @@
# add_subdirectory(clang-format-for-qtc)
# add_subdirectory(cplusplus-tools)
# add_subdirectory(cppquickfix)
-# add_subdirectory(debugger)
+add_subdirectory(debugger)
# add_subdirectory(distribution)
# add_subdirectory(dockwidgets)
-# add_subdirectory(fakevim)
+add_subdirectory(fakevim)
# add_subdirectory(features)
# add_subdirectory(filesystemview)
# add_subdirectory(genericproject)
-# add_subdirectory(pluginview)
-# add_subdirectory(process)
-# add_subdirectory(proparser)
+add_subdirectory(pluginview)
+add_subdirectory(process)
+add_subdirectory(proparser)
# add_subdirectory(qml)
# add_subdirectory(qt4projectmanager)
# add_subdirectory(search)
-# add_subdirectory(shootout)
-# add_subdirectory(ssh)
+add_subdirectory(shootout)
+add_subdirectory(ssh)
add_subdirectory(widgets)
diff --git a/tests/manual/debugger/CMakeLists.txt b/tests/manual/debugger/CMakeLists.txt
new file mode 100644
index 00000000000..165a1c1c24f
--- /dev/null
+++ b/tests/manual/debugger/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_subdirectory(gui)
+add_subdirectory(simple)
diff --git a/tests/manual/debugger/gui/CMakeLists.txt b/tests/manual/debugger/gui/CMakeLists.txt
new file mode 100644
index 00000000000..59e45b3804d
--- /dev/null
+++ b/tests/manual/debugger/gui/CMakeLists.txt
@@ -0,0 +1,18 @@
+cmake_minimum_required(VERSION 3.16)
+
+project(manual_test_debugger_gui LANGUAGES CXX)
+
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTOMOC ON)
+
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
+find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
+
+add_executable(manual_test_debugger_gui
+ mainwindow.cpp mainwindow.h mainwindow.ui
+ tst_gui.cpp
+)
+target_link_libraries(manual_test_debugger_gui PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
diff --git a/tests/manual/debugger/simple/CMakeLists.txt b/tests/manual/debugger/simple/CMakeLists.txt
new file mode 100644
index 00000000000..9f5de0707ea
--- /dev/null
+++ b/tests/manual/debugger/simple/CMakeLists.txt
@@ -0,0 +1,71 @@
+cmake_minimum_required(VERSION 3.16)
+
+project(simple_test_app LANGUAGES CXX)
+
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTOMOC ON)
+
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Gui Network Widgets)
+find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Network Widgets)
+find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Script Webkit WebkitWidgets QUIET)
+find_package(Boost QUIET)
+find_package(Eigen2 NO_MODULE QUIET)
+find_package(Eigen3 NO_MODULE QUIET)
+
+if (${QT_VERSION_MAJOR} LESS 6)
+ find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Xml)
+else()
+ find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core5Compat)
+endif()
+
+add_executable(simple_test_app simple_test_app.cpp)
+
+add_compile_definitions(simple_test_app "USE_GUILIB")
+
+if (Qt${QT_VERSION_MAJOR}Script_FOUND)
+ add_compile_definitions(simple_test_app "HAS_SCRIPT")
+endif()
+
+if (Boost_FOUND)
+ add_compile_definitions(simple_test_app "HAS_BOOST")
+ target_include_directories(simple_test_app PRIVATE ${Boost_INCLUDE_DIRS})
+endif()
+
+if (EIGEN2_FOUND)
+ add_compile_definitions(simple_test_app "HAS_EIGEN2")
+ target_include_directories(simple_test_app PRIVATE ${EIGEN2_INCLUDE_DIR})
+endif()
+
+if (EIGEN3_FOUND)
+ add_compile_definitions(simple_test_app "HAS_EIGEN3")
+ target_include_directories(simple_test_app PRIVATE ${EIGEN3_INCLUDE_DIR})
+endif()
+
+target_link_libraries(simple_test_app PRIVATE Qt${QT_VERSION_MAJOR}::Core
+ PRIVATE Qt${QT_VERSION_MAJOR}::CorePrivate
+ PRIVATE Qt${QT_VERSION_MAJOR}::Gui
+ PRIVATE Qt${QT_VERSION_MAJOR}::Network
+ PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
+if (${QT_VERSION_MAJOR} LESS 6)
+ target_link_libraries(simple_test_app PRIVATE Qt${QT_VERSION_MAJOR}::Xml)
+ if (Qt${QT_VERSION_MAJOR}Script_FOUND)
+ target_link_libraries(simple_test_app PRIVATE Qt${QT_VERSION_MAJOR}::Script)
+ endif()
+else()
+ target_link_libraries(simple_test_app PRIVATE Qt${QT_VERSION_MAJOR}::Core5Compat)
+endif()
+
+if (Qt${QT_VERSION_MAJOR}Webkit_FOUND)
+ target_link_libraries(simple_test_app PRIVATE Qt${QT_VERSION_MAJOR}::Webkit)
+endif()
+
+if (Qt${QT_VERSION_MAJOR}WebkitWidgets_FOUND)
+ target_link_libraries(simple_test_app PRIVATE Qt${QT_VERSION_MAJOR}::WebkitWidgets)
+endif()
+
+# and the plugin
+add_library(simple_test_plugin simple_test_plugin.cpp)
+target_link_libraries(simple_test_plugin PRIVATE Qt${QT_VERSION_MAJOR}::Core)
diff --git a/tests/manual/fakevim/CMakeLists.txt b/tests/manual/fakevim/CMakeLists.txt
new file mode 100644
index 00000000000..45c07b000e2
--- /dev/null
+++ b/tests/manual/fakevim/CMakeLists.txt
@@ -0,0 +1,15 @@
+add_qtc_test(tst_manual_fakevim
+ MANUALTEST
+ DEPENDS Utils
+ INCLUDES "${PROJECT_SOURCE_PATH}/src/plugins/fakevim"
+ DEFINES FAKEVIM_STANDALONE
+ SOURCES
+ main.cpp
+)
+
+extend_qtc_test(tst_manual_fakevim
+ SOURCES_PREFIX "${PROJECT_SOURCE_DIR}/src/plugins/fakevim/"
+ SOURCES
+ fakevimactions.cpp fakevimactions.h
+ fakevimhandler.cpp fakevimhandler.h
+)
diff --git a/tests/manual/pluginview/CMakeLists.txt b/tests/manual/pluginview/CMakeLists.txt
new file mode 100644
index 00000000000..c4df73e8c57
--- /dev/null
+++ b/tests/manual/pluginview/CMakeLists.txt
@@ -0,0 +1,10 @@
+add_qtc_test(tst_manual_pluginview
+ MANUALTEST
+ DEPENDS ExtensionSystem Utils
+ SOURCES
+ plugindialog.cpp plugindialog.h
+)
+
+add_subdirectory(plugins/plugin1)
+add_subdirectory(plugins/plugin2)
+add_subdirectory(plugins/plugin3)
diff --git a/tests/manual/pluginview/plugins/plugin1/CMakeLists.txt b/tests/manual/pluginview/plugins/plugin1/CMakeLists.txt
new file mode 100644
index 00000000000..67e26e8097f
--- /dev/null
+++ b/tests/manual/pluginview/plugins/plugin1/CMakeLists.txt
@@ -0,0 +1,14 @@
+add_library(tst_manual_plugin1 SHARED
+ plugin1.cpp plugin1.h
+)
+
+set_target_properties(tst_manual_plugin1 PROPERTIES
+ OUTPUT_NAME "plugin1"
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/.."
+ ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/.."
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/.."
+)
+
+target_link_libraries(tst_manual_plugin1 PRIVATE ExtensionSystem
+ PRIVATE tst_manual_plugin2
+ PRIVATE tst_manual_plugin3)
diff --git a/tests/manual/pluginview/plugins/plugin2/CMakeLists.txt b/tests/manual/pluginview/plugins/plugin2/CMakeLists.txt
new file mode 100644
index 00000000000..fd372b683b0
--- /dev/null
+++ b/tests/manual/pluginview/plugins/plugin2/CMakeLists.txt
@@ -0,0 +1,12 @@
+add_library(tst_manual_plugin2 SHARED
+ plugin2.cpp plugin2.h
+)
+
+set_target_properties(tst_manual_plugin2 PROPERTIES
+ OUTPUT_NAME "plugin2"
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/.."
+ ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/.."
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/.."
+)
+
+target_link_libraries(tst_manual_plugin2 PRIVATE ExtensionSystem)
diff --git a/tests/manual/pluginview/plugins/plugin3/CMakeLists.txt b/tests/manual/pluginview/plugins/plugin3/CMakeLists.txt
new file mode 100644
index 00000000000..e70653bb3a5
--- /dev/null
+++ b/tests/manual/pluginview/plugins/plugin3/CMakeLists.txt
@@ -0,0 +1,13 @@
+add_library(tst_manual_plugin3 SHARED
+ plugin3.cpp plugin3.h
+)
+
+set_target_properties(tst_manual_plugin3 PROPERTIES
+ OUTPUT_NAME "plugin3"
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/.."
+ ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/.."
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/.."
+)
+
+target_link_libraries(tst_manual_plugin3 PRIVATE ExtensionSystem
+ PRIVATE tst_manual_plugin2)
diff --git a/tests/manual/process/CMakeLists.txt b/tests/manual/process/CMakeLists.txt
new file mode 100644
index 00000000000..381f8b234e9
--- /dev/null
+++ b/tests/manual/process/CMakeLists.txt
@@ -0,0 +1,11 @@
+add_qtc_test(tst_manual_qtcprocess
+ MANUALTEST
+ DEPENDS Utils
+ SOURCES
+ main.cpp
+ mainwindow.cpp mainwindow.h
+)
+
+set_target_properties(tst_manual_qtcprocess PROPERTIES
+ OUTPUT_NAME "process"
+)
diff --git a/tests/manual/proparser/CMakeLists.txt b/tests/manual/proparser/CMakeLists.txt
new file mode 100644
index 00000000000..a3fecbe5076
--- /dev/null
+++ b/tests/manual/proparser/CMakeLists.txt
@@ -0,0 +1,47 @@
+add_qtc_test(tst_manual_proparser
+ MANUALTEST
+ DEPENDS Qt5::Core Qt5::Core5Compat
+ DEFINES
+ "QMAKE_BUILTIN_PRFS"
+ "QT_NO_CAST_TO_ASCII"
+ "QT_RESTRICTED_CAST_FROM_ASCII"
+ "QT_USE_QSTRINGBUILDER"
+ "PROEVALUATOR_FULL"
+ "PROEVALUATOR_CUMULATIVE"
+ "PROEVALUATOR_INIT_PROPS"
+ INCLUDES
+ "${PROJECT_SOURCE_DIR}/src/shared/proparser/"
+ "${PROJECT_SOURCE_DIR}/src/libs/"
+ SOURCES
+ main.cpp
+)
+
+extend_qtc_test(tst_manual_proparser
+ SOURCES_PREFIX "${PROJECT_SOURCE_DIR}/src/shared/proparser/"
+ SOURCES
+ ioutils.cpp ioutils.h
+ profileevaluator.cpp profileevaluator.h
+ proitems.cpp proitems.h
+ proparser.qrc
+ qmake_global.h
+ qmakebuiltins.cpp
+ qmakeevaluator.cpp qmakeevaluator.h qmakeevaluator_p.h
+ qmakeglobals.cpp qmakeglobals.h
+ qmakeparser.cpp qmakeparser.h
+ qmakevfs.cpp qmakevfs.h
+ registry.cpp registry_p.h
+)
+
+extend_qtc_test(tst_manual_proparser
+ SOURCES_PREFIX "${PROJECT_SOURCE_DIR}/src/libs/utils/"
+ SOURCES porting.h
+)
+
+extend_qtc_test(tst_manual_proparser CONDITION WIN32
+ DEPENDS advapi32
+)
+
+extend_qtc_test(tst_manual_proparser
+ PROPERTIES
+ OUTPUT_NAME "testreader"
+)
diff --git a/tests/manual/shootout/CMakeLists.txt b/tests/manual/shootout/CMakeLists.txt
new file mode 100644
index 00000000000..b1cada1846a
--- /dev/null
+++ b/tests/manual/shootout/CMakeLists.txt
@@ -0,0 +1,5 @@
+add_qtc_test(tst_manual_shootout
+ MANUALTEST
+ SOURCES
+ tst_codesize.cpp
+)
diff --git a/tests/manual/ssh/CMakeLists.txt b/tests/manual/ssh/CMakeLists.txt
new file mode 100644
index 00000000000..91464d83178
--- /dev/null
+++ b/tests/manual/ssh/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_subdirectory(sftpfsmodel)
+add_subdirectory(shell)
diff --git a/tests/manual/ssh/sftpfsmodel/CMakeLists.txt b/tests/manual/ssh/sftpfsmodel/CMakeLists.txt
new file mode 100644
index 00000000000..3e6119cd911
--- /dev/null
+++ b/tests/manual/ssh/sftpfsmodel/CMakeLists.txt
@@ -0,0 +1,18 @@
+file(RELATIVE_PATH RELATIVE_TEST_PATH "${PROJECT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}")
+file(RELATIVE_PATH TEST_RELATIVE_LIBEXEC_PATH "/${RELATIVE_TEST_PATH}" "/${IDE_LIBEXEC_PATH}")
+
+add_qtc_test(tst_manual_sftpfsmodel
+ MANUALTEST
+ DEPENDS Utils QtcSsh Qt5::Widgets
+ INCLUDES "${PROJECT_SOURCE_DIR}/src/shared/modeltest"
+ DEFINES "TEST_RELATIVE_LIBEXEC_PATH=\"${TEST_RELATIVE_LIBEXEC_PATH}\""
+ SOURCES
+ main.cpp
+ window.cpp window.h window.ui
+)
+
+extend_qtc_test(tst_manual_sftpfsmodel
+ SOURCES_PREFIX "${PROJECT_SOURCE_DIR}/src/shared/modeltest/"
+ SOURCES
+ modeltest.cpp modeltest.h
+)
diff --git a/tests/manual/ssh/shell/CMakeLists.txt b/tests/manual/ssh/shell/CMakeLists.txt
new file mode 100644
index 00000000000..f7748f2e96b
--- /dev/null
+++ b/tests/manual/ssh/shell/CMakeLists.txt
@@ -0,0 +1,13 @@
+file(RELATIVE_PATH RELATIVE_TEST_PATH "${PROJECT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}")
+file(RELATIVE_PATH TEST_RELATIVE_LIBEXEC_PATH "/${RELATIVE_TEST_PATH}" "/${IDE_LIBEXEC_PATH}")
+
+add_qtc_test(tst_manual_shell
+ MANUALTEST
+ CONDITION UNIX
+ DEPENDS Utils QtcSsh Qt5::Network
+ DEFINES "TEST_RELATIVE_LIBEXEC_PATH=\"${TEST_RELATIVE_LIBEXEC_PATH}\""
+ SOURCES
+ argumentscollector.cpp argumentscollector.h
+ main.cpp
+ shell.cpp shell.h
+)
diff --git a/tests/manual/widgets/crumblepath/CMakeLists.txt b/tests/manual/widgets/crumblepath/CMakeLists.txt
index 2c67246208c..0729605e98d 100644
--- a/tests/manual/widgets/crumblepath/CMakeLists.txt
+++ b/tests/manual/widgets/crumblepath/CMakeLists.txt
@@ -1,4 +1,5 @@
add_qtc_test(tst_manual_widgets_crumblepath
+ MANUALTEST
DEPENDS Qt5::Gui Utils Core
SOURCES
tst_manual_widgets_crumblepath.cpp
diff --git a/tests/manual/widgets/infolabel/CMakeLists.txt b/tests/manual/widgets/infolabel/CMakeLists.txt
index dd45ab113a7..62d30424d0c 100644
--- a/tests/manual/widgets/infolabel/CMakeLists.txt
+++ b/tests/manual/widgets/infolabel/CMakeLists.txt
@@ -1,4 +1,5 @@
add_qtc_test(tst_manual_widgets_infolabel
+ MANUALTEST
DEPENDS Qt5::Gui Utils Core
SOURCES
tst_manual_widgets_infolabel.cpp
diff --git a/tests/manual/widgets/manhattanstyle/CMakeLists.txt b/tests/manual/widgets/manhattanstyle/CMakeLists.txt
index 78d44526cad..16273bd0b57 100644
--- a/tests/manual/widgets/manhattanstyle/CMakeLists.txt
+++ b/tests/manual/widgets/manhattanstyle/CMakeLists.txt
@@ -1,4 +1,5 @@
add_qtc_test(tst_manual_widgets_manhattanstyle
+ MANUALTEST
DEPENDS Qt5::Gui Utils Core
SOURCES
tst_manual_widgets_manhattanstyle.cpp
diff --git a/tests/manual/widgets/tracing/CMakeLists.txt b/tests/manual/widgets/tracing/CMakeLists.txt
index e380ed503c1..1dbd69984c5 100644
--- a/tests/manual/widgets/tracing/CMakeLists.txt
+++ b/tests/manual/widgets/tracing/CMakeLists.txt
@@ -1,4 +1,5 @@
add_qtc_test(tst_manual_widgets_tracing
+ MANUALTEST
CONDITION TARGET Tracing
DEPENDS Tracing Utils Core Qt5::Gui Qt5::Quick
SOURCES