diff options
author | Christian Stenger <[email protected]> | 2022-02-10 13:21:19 +0100 |
---|---|---|
committer | Christian Stenger <[email protected]> | 2022-02-15 08:21:40 +0000 |
commit | 1652be1310f828343aa3f33dbe571fcadd0cc6d6 (patch) | |
tree | 178490e06c9e17c456f08c745319f9929649d808 | |
parent | 42f260747eee2440952f9753dfefff99ef43b346 (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]>
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 |