Warning, /frameworks/kio/autotests/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 remove_definitions(-DQT_NO_CAST_FROM_ASCII)
0002 remove_definitions(-DQT_NO_CAST_FROM_BYTEARRAY)
0003
0004 include(ECMAddTests)
0005
0006 if(NOT ANDROID)
0007 add_subdirectory(http)
0008 endif()
0009 add_subdirectory(kcookiejar)
0010
0011 find_package(Qt${QT_MAJOR_VERSION}Widgets REQUIRED)
0012
0013 ########### unittests ###############
0014
0015 find_package(Qt${QT_MAJOR_VERSION}Concurrent ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
0016
0017 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND
0018 EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.65.0)
0019 set(ktcpsockettest_SRC ktcpsockettest.cpp)
0020 endif()
0021
0022 if (ACL_FOUND)
0023 set (kacltest_SRC kacltest.cpp)
0024 endif()
0025
0026 ecm_add_tests(
0027 ${kacltest_SRC}
0028 listdirtest.cpp
0029 kmountpointtest.cpp
0030 upurltest.cpp
0031 dataprotocoltest.cpp
0032 jobtest.cpp
0033 jobremotetest.cpp
0034 kfileitemtest.cpp
0035 kprotocolinfotest.cpp
0036 ${ktcpsockettest_SRC}
0037 globaltest.cpp
0038 mimetypefinderjobtest.cpp
0039 mkpathjobtest.cpp
0040 threadtest.cpp
0041 udsentrytest.cpp
0042 deletejobtest.cpp
0043 deleteortrashjobtest.cpp
0044 urlutiltest.cpp
0045 batchrenamejobtest.cpp
0046 ksambasharetest.cpp
0047 krecentdocumenttest.cpp
0048 filefiltertest.cpp
0049 NAME_PREFIX "kiocore-"
0050 LINK_LIBRARIES KF5::KIOCore KF5::I18n KF5::ConfigCore Qt${QT_MAJOR_VERSION}::Test Qt${QT_MAJOR_VERSION}::Network Qt${QT_MAJOR_VERSION}::Xml
0051 )
0052
0053 target_link_libraries(threadtest Qt${QT_MAJOR_VERSION}::Concurrent)
0054
0055 target_link_libraries(deleteortrashjobtest KF5::KIOWidgets)
0056
0057 if(TARGET Qt6::Core5Compat)
0058 target_link_libraries(dataprotocoltest Qt6::Core5Compat)
0059 endif()
0060
0061 ecm_add_test(
0062 http_jobtest.cpp
0063 httpserver_p.cpp
0064 TEST_NAME http_jobtest
0065 NAME_PREFIX "kiocore-"
0066 LINK_LIBRARIES KF5::KIOCore KF5::I18n Qt${QT_MAJOR_VERSION}::Test Qt${QT_MAJOR_VERSION}::Network
0067 )
0068
0069 # as per sysadmin request these are limited to linux only! https://invent.kde.org/frameworks/kio/-/merge_requests/1008
0070 if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND USE_FTPD_WSGIDAV_UNITTEST)
0071 include(FindGem)
0072 find_gem(ftpd)
0073 set_package_properties(Gem_ftpd PROPERTIES TYPE REQUIRED
0074 DESCRIPTION "Ruby ftpd gem. Either install it from your distribution's repos or by running `gem install --user-install ftpd`, which will install it under your user's home dir."
0075 PURPOSE "Ruby gem 'ftpd' required for testing the ftp worker."
0076 URL "https://rubygems.org/gems/ftpd")
0077 add_definitions(-DRubyExe_EXECUTABLE="${RubyExe_EXECUTABLE}")
0078 ecm_add_tests(
0079 ftptest.cpp
0080 NAME_PREFIX "kiocore-"
0081 LINK_LIBRARIES KF5::KIOCore KF5::I18n Qt${QT_MAJOR_VERSION}::Test Qt${QT_MAJOR_VERSION}::Network
0082 )
0083
0084 find_package(WsgidavExe)
0085 set_package_properties(WsgidavExe PROPERTIES TYPE REQUIRED
0086 DESCRIPTION "Python webdav server. Can be easily installed by running `pip3 install wsgidav`, which will install it under your user's home dir."
0087 PURPOSE "wsgidav required for running the webdavtest."
0088 URL "https://pypi.org/project/WsgiDAV/")
0089 ecm_add_tests(
0090 webdavtest.cpp
0091 NAME_PREFIX "kiocore-"
0092 LINK_LIBRARIES KF5::KIOCore Qt${QT_MAJOR_VERSION}::Test Qt${QT_MAJOR_VERSION}::Network
0093 )
0094 endif()
0095
0096 if(UNIX)
0097 ecm_add_tests(
0098 privilegejobtest.cpp
0099 NAME_PREFIX "kiocore-"
0100 LINK_LIBRARIES KF5::KIOCore KF5::I18n Qt${QT_MAJOR_VERSION}::Test Qt${QT_MAJOR_VERSION}::Network
0101 )
0102 endif()
0103
0104 if (TARGET KF5::KIOGui)
0105 ecm_add_tests(
0106 favicontest.cpp
0107 openurljobtest.cpp
0108 kemailclientlauncherjobtest.cpp
0109 NAME_PREFIX "kiogui-"
0110 LINK_LIBRARIES KF5::KIOCore KF5::KIOGui KF5::WindowSystem Qt${QT_MAJOR_VERSION}::Test
0111 )
0112
0113 foreach(_kprocessrunnerTest applicationlauncherjob commandlauncherjob kterminallauncherjob)
0114 foreach(_systemd "" "SCOPE" "SERVICE")
0115 set(_scope 0)
0116 set(_service 0)
0117 if(_systemd STREQUAL "SERVICE")
0118 set(KPR_TEST_TARGET ${_kprocessrunnerTest}_servicetest)
0119 set(_service 1)
0120 elseif(_systemd STREQUAL "SCOPE")
0121 set(KPR_TEST_TARGET ${_kprocessrunnerTest}_scopetest)
0122 set(_scope 1)
0123 else()
0124 set(KPR_TEST_TARGET ${_kprocessrunnerTest}_forkingtest)
0125 endif()
0126 add_executable(${KPR_TEST_TARGET} ${_kprocessrunnerTest}test.cpp)
0127 target_link_libraries(${KPR_TEST_TARGET} KF5::WindowSystem KF5::KIOCore KF5::KIOGui Qt${QT_MAJOR_VERSION}::Test)
0128 ecm_mark_as_test(${KPR_TEST_TARGET})
0129 add_test(NAME ${KPR_TEST_TARGET} COMMAND ${KPR_TEST_TARGET})
0130 set_tests_properties(${KPR_TEST_TARGET} PROPERTIES ENVIRONMENT
0131 "KDE_APPLICATIONS_AS_SERVICE=${_service};KDE_APPLICATIONS_AS_SCOPE=${_scope}")
0132 endforeach()
0133 endforeach()
0134
0135 target_link_libraries(favicontest Qt${QT_MAJOR_VERSION}::Concurrent)
0136 endif()
0137
0138 if (NOT ANDROID)
0139 if (TARGET KF5::KIOWidgets)
0140 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND
0141 EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.4.0)
0142 set(jobguitest_SRC jobguitest.cpp)
0143 endif()
0144
0145 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND
0146 EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.107.0)
0147 set(accessmanagertest_SRC accessmanagertest.cpp)
0148 endif()
0149
0150 ecm_add_tests(
0151 clipboardupdatertest.cpp
0152 dropjobtest.cpp
0153 kdynamicjobtrackernowidgetstest.cpp
0154 krununittest.cpp
0155 desktopexecparsertest.cpp
0156 kdirlistertest.cpp
0157 kdirmodeltest.cpp
0158 kfileitemactionstest.cpp
0159 fileundomanagertest.cpp
0160 kurlcompletiontest.cpp
0161 ${jobguitest_SRC}
0162 pastetest.cpp
0163 ${accessmanagertest_SRC}
0164 kurifiltersearchprovideractionstest.cpp
0165 NAME_PREFIX "kiowidgets-"
0166 LINK_LIBRARIES KF5::KIOCore KF5::KIOWidgets Qt${QT_MAJOR_VERSION}::Test Qt${QT_MAJOR_VERSION}::DBus
0167 )
0168 set_target_properties(krununittest PROPERTIES COMPILE_FLAGS "-DKDE_INSTALL_FULL_LIBEXECDIR_KF=\"\\\"${KDKE_INSTALL_FULL_LIBEXECDIR_KF}\\\"\"")
0169
0170 set(_libexec_dir_kf "${KDKE_INSTALL_FULL_LIBEXECDIR_KF}")
0171 target_compile_definitions(desktopexecparsertest PRIVATE "KDE_INSTALL_FULL_LIBEXECDIR_KF=${_libexec_dir_kf}")
0172
0173 set(kurifiltertest_libs KF5::KIOCore KF5::KIOWidgets Qt${QT_MAJOR_VERSION}::Test Qt${QT_MAJOR_VERSION}::DBus)
0174
0175 set(URIFILTER_COLON_TEST kiowidgets-kurifiltertest-colon-separator)
0176 ecm_add_test(kurifiltertest.cpp
0177 LINK_LIBRARIES ${kurifiltertest_libs}
0178 TEST_NAME ${URIFILTER_COLON_TEST}
0179 )
0180 target_compile_definitions(${URIFILTER_COLON_TEST} PUBLIC "-DWEBSHORTCUT_SEPARATOR=':'")
0181
0182 set(URIFILTER_SPACE_TEST kiowidgets-kurifiltertest-space-separator)
0183 ecm_add_test(kurifiltertest.cpp
0184 LINK_LIBRARIES ${kurifiltertest_libs}
0185 TEST_NAME ${URIFILTER_SPACE_TEST}
0186 )
0187 target_compile_definitions(${URIFILTER_SPACE_TEST} PUBLIC "-DWEBSHORTCUT_SEPARATOR=' '")
0188
0189 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND
0190 EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.107.0)
0191 # Same as accessmanagertest, but using QNetworkAccessManager, to make sure we
0192 # behave the same
0193 ecm_add_test(
0194 accessmanagertest.cpp
0195 TEST_NAME accessmanagertest-qnam
0196 NAME_PREFIX "kiowidgets-"
0197 LINK_LIBRARIES KF5::KIOCore KF5::KIOWidgets Qt${QT_MAJOR_VERSION}::Test
0198 )
0199 set_target_properties(accessmanagertest-qnam PROPERTIES COMPILE_FLAGS "-DUSE_QNAM")
0200 endif()
0201
0202 # Same as kurlcompletiontest, but with immediate return, and results posted by thread later
0203 ecm_add_test(
0204 kurlcompletiontest.cpp
0205 TEST_NAME kurlcompletiontest-nowait
0206 NAME_PREFIX "kiowidgets-"
0207 LINK_LIBRARIES KF5::KIOCore KF5::KIOWidgets Qt${QT_MAJOR_VERSION}::Test
0208 )
0209 set_target_properties(kurlcompletiontest-nowait PROPERTIES COMPILE_FLAGS "-DNO_WAIT")
0210
0211
0212 endif()
0213
0214 if (TARGET KF5::KIOFileWidgets)
0215 find_package(KF5XmlGui ${KF_DEP_VERSION} REQUIRED)
0216 include_directories(${CMAKE_SOURCE_DIR}/src/filewidgets ${CMAKE_BINARY_DIR}/src/filewidgets)
0217 ecm_add_tests(
0218 kurlnavigatortest.cpp
0219 kurlcomboboxtest.cpp
0220 kdiroperatortest.cpp
0221 kfilewidgettest.cpp
0222 kfilecustomdialogtest.cpp
0223 knewfilemenutest.cpp
0224 kfilecopytomenutest.cpp
0225 kfileplacesmodeltest.cpp
0226 kfileplacesviewtest.cpp
0227 kurlrequestertest.cpp
0228 kfilefiltercombotest.cpp
0229 NAME_PREFIX "kiofilewidgets-"
0230 LINK_LIBRARIES KF5::KIOFileWidgets KF5::KIOWidgets KF5::XmlGui KF5::Bookmarks Qt${QT_MAJOR_VERSION}::Test KF5::I18n
0231 )
0232
0233 # TODO: fix symbol exports for windows -> 'KSambaShare::KSambaShare': inconsistent dll linkage
0234 if (NOT WIN32)
0235 ecm_add_test(
0236 ksambashareprivatetest.cpp
0237 ../src/core/ksambashare.cpp
0238 ../src/core/kiocoredebug.cpp
0239 TEST_NAME ksambashareprivatetest
0240 NAME_PREFIX "kiocore-"
0241 LINK_LIBRARIES KF5::KIOCore Qt${QT_MAJOR_VERSION}::Test Qt${QT_MAJOR_VERSION}::Network
0242 )
0243 endif()
0244
0245 set_tests_properties(kiofilewidgets-kfileplacesmodeltest PROPERTIES RUN_SERIAL TRUE)
0246 set_tests_properties(kiofilewidgets-kfileplacesviewtest PROPERTIES RUN_SERIAL TRUE)
0247 set_tests_properties(kiowidgets-kurifiltertest-space-separator PROPERTIES RUN_SERIAL TRUE)
0248 endif()
0249 endif()
0250
0251 # this should be done by cmake, see bug 371721
0252 if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND Qt${QT_MAJOR_VERSION}Core_VERSION VERSION_GREATER 5.8.0)
0253 set_property(TARGET jobtest APPEND PROPERTY AUTOMOC_MOC_OPTIONS --include ${CMAKE_BINARY_DIR}/src/core/moc_predefs.h)
0254 endif()
0255
0256 # Benchmark, compiled, but not run automatically with ctest
0257 add_executable(kcoredirlister_benchmark kcoredirlister_benchmark.cpp)
0258 target_link_libraries(kcoredirlister_benchmark KF5::KIOCore KF5::KIOWidgets Qt${QT_MAJOR_VERSION}::Test)
0259
0260 add_executable(udsentry_api_comparison_benchmark udsentry_api_comparison_benchmark.cpp)
0261 target_link_libraries(udsentry_api_comparison_benchmark KF5::KIOCore KF5::KIOWidgets Qt${QT_MAJOR_VERSION}::Test)
0262
0263 add_executable(udsentry_benchmark udsentry_benchmark.cpp)
0264 target_link_libraries(udsentry_benchmark KF5::KIOCore KF5::KIOWidgets Qt${QT_MAJOR_VERSION}::Test)