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 <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Christian Stenger
2022-02-10 13:21:19 +01:00
parent 42f260747e
commit 1652be1310
20 changed files with 270 additions and 10 deletions
+8 -3
View File
@@ -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})
+7 -7
View File
@@ -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)
+2
View File
@@ -0,0 +1,2 @@
add_subdirectory(gui)
add_subdirectory(simple)
+18
View File
@@ -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)
@@ -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)
+15
View File
@@ -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
)
+10
View File
@@ -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)
@@ -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)
@@ -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)
@@ -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)
+11
View File
@@ -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"
)
+47
View File
@@ -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"
)
+5
View File
@@ -0,0 +1,5 @@
add_qtc_test(tst_manual_shootout
MANUALTEST
SOURCES
tst_codesize.cpp
)
+2
View File
@@ -0,0 +1,2 @@
add_subdirectory(sftpfsmodel)
add_subdirectory(shell)
@@ -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
)
+13
View File
@@ -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
)
@@ -1,4 +1,5 @@
add_qtc_test(tst_manual_widgets_crumblepath
MANUALTEST
DEPENDS Qt5::Gui Utils Core
SOURCES
tst_manual_widgets_crumblepath.cpp
@@ -1,4 +1,5 @@
add_qtc_test(tst_manual_widgets_infolabel
MANUALTEST
DEPENDS Qt5::Gui Utils Core
SOURCES
tst_manual_widgets_infolabel.cpp
@@ -1,4 +1,5 @@
add_qtc_test(tst_manual_widgets_manhattanstyle
MANUALTEST
DEPENDS Qt5::Gui Utils Core
SOURCES
tst_manual_widgets_manhattanstyle.cpp
@@ -1,4 +1,5 @@
add_qtc_test(tst_manual_widgets_tracing
MANUALTEST
CONDITION TARGET Tracing
DEPENDS Tracing Utils Core Qt5::Gui Qt5::Quick
SOURCES