Files
RedBear-OS/local/recipes/kde/kf6-kio/source/autotests/CMakeLists.txt
T
2026-04-14 10:51:06 +01:00

231 lines
7.5 KiB
CMake

remove_definitions(-DQT_NO_CAST_FROM_ASCII)
remove_definitions(-DQT_NO_CAST_FROM_BYTEARRAY)
include(ECMAddTests)
find_package(Qt6Widgets REQUIRED)
########### unittests ###############
add_subdirectory(http)
find_package(Qt6Concurrent ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
if (ACL_FOUND)
set (kacltest_SRC kacltest.cpp)
endif()
ecm_add_tests(
${kacltest_SRC}
listdirtest.cpp
kmountpointtest.cpp
upurltest.cpp
dataprotocoltest.cpp
jobtest.cpp
jobremotetest.cpp
kfileitemtest.cpp
kprotocolinfotest.cpp
globaltest.cpp
mimetypefinderjobtest.cpp
mkpathjobtest.cpp
threadtest.cpp
udsentrytest.cpp
deletejobtest.cpp
deleteortrashjobtest.cpp
urlutiltest.cpp
batchrenamejobtest.cpp
ksambasharetest.cpp
krecentdocumenttest.cpp
filefiltertest.cpp
NAME_PREFIX "kiocore-"
LINK_LIBRARIES KF6::KIOCore KF6::I18n KF6::ConfigCore KF6::Service Qt6::Test Qt6::Network Qt6::Xml
)
target_link_libraries(threadtest Qt6::Concurrent)
target_link_libraries(deleteortrashjobtest KF6::KIOWidgets)
ecm_add_test(
connectionbackendtest.cpp
../src/core/connectionbackend.cpp
../src/core/kiocoreconnectiondebug.cpp
TEST_NAME connectionbackendtest
NAME_PREFIX "kiocore-"
LINK_LIBRARIES KF6::KIOCore Qt6::Test Qt6::Network KF6::I18n
)
# as per sysadmin request these are limited to linux only! https://invent.kde.org/frameworks/kio/-/merge_requests/1008
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND USE_FTPD_WSGIDAV_UNITTEST)
include(FindGem)
find_gem(ftpd)
set_package_properties(Gem_ftpd PROPERTIES TYPE REQUIRED
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."
PURPOSE "Ruby gem 'ftpd' required for testing the ftp worker."
URL "https://rubygems.org/gems/ftpd")
add_definitions(-DRubyExe_EXECUTABLE="${RubyExe_EXECUTABLE}")
ecm_add_tests(
ftptest.cpp
NAME_PREFIX "kiocore-"
LINK_LIBRARIES KF6::KIOCore KF6::I18n Qt6::Test Qt6::Network
)
find_package(WsgidavExe)
set_package_properties(WsgidavExe PROPERTIES TYPE REQUIRED
DESCRIPTION "Python webdav server. Can be easily installed by running `pip3 install wsgidav`, which will install it under your user's home dir."
PURPOSE "wsgidav required for running the webdavtest."
URL "https://pypi.org/project/WsgiDAV/")
ecm_add_tests(
webdavtest.cpp
NAME_PREFIX "kiocore-"
LINK_LIBRARIES KF6::KIOCore Qt6::Test Qt6::Network
)
endif()
if(UNIX)
ecm_add_tests(
privilegejobtest.cpp
NAME_PREFIX "kiocore-"
LINK_LIBRARIES KF6::KIOCore KF6::I18n Qt6::Test Qt6::Network
)
endif()
if (TARGET KF6::KIOGui)
ecm_add_tests(
favicontest.cpp
openurljobtest.cpp
kemailclientlauncherjobtest.cpp
NAME_PREFIX "kiogui-"
LINK_LIBRARIES KF6::KIOCore KF6::KIOGui KF6::WindowSystem Qt6::Test
)
foreach(_kprocessrunnerTest applicationlauncherjob commandlauncherjob kterminallauncherjob)
foreach(_systemd "" "SCOPE" "SERVICE")
set(_scope 0)
set(_service 0)
set(_forking 0)
if(_systemd STREQUAL "SERVICE")
set(KPR_TEST_TARGET ${_kprocessrunnerTest}_servicetest)
set(_service 1)
elseif(_systemd STREQUAL "SCOPE")
set(KPR_TEST_TARGET ${_kprocessrunnerTest}_scopetest)
set(_scope 1)
else()
set(KPR_TEST_TARGET ${_kprocessrunnerTest}_forkingtest)
set(_forking 1)
endif()
add_executable(${KPR_TEST_TARGET} ${_kprocessrunnerTest}test.cpp)
target_link_libraries(${KPR_TEST_TARGET} KF6::WindowSystem KF6::KIOCore KF6::KIOGui Qt6::Test)
ecm_mark_as_test(${KPR_TEST_TARGET})
add_test(NAME ${KPR_TEST_TARGET} COMMAND ${KPR_TEST_TARGET})
set_tests_properties(${KPR_TEST_TARGET} PROPERTIES ENVIRONMENT
"_KDE_APPLICATIONS_AS_SERVICE=${_service};
_KDE_APPLICATIONS_AS_SCOPE=${_scope};
_KDE_APPLICATIONS_AS_FORKING=${_forking};"
)
endforeach()
endforeach()
target_link_libraries(favicontest Qt6::Concurrent)
endif()
if (NOT ANDROID)
if (TARGET KF6::KIOWidgets)
ecm_add_tests(
clipboardupdatertest.cpp
dropjobtest.cpp
kdynamicjobtrackernowidgetstest.cpp
desktopexecparsertest.cpp
kdirlistertest.cpp
kdirmodeltest.cpp
kfileitemactionstest.cpp
fileundomanagertest.cpp
kurlcompletiontest.cpp
${jobguitest_SRC}
pastetest.cpp
kurifiltersearchprovideractionstest.cpp
NAME_PREFIX "kiowidgets-"
LINK_LIBRARIES KF6::KIOCore KF6::KIOWidgets Qt6::Test ${DBUS_LIB}
)
set(_libexec_dir_kf "${KDKE_INSTALL_FULL_LIBEXECDIR_KF}")
target_compile_definitions(desktopexecparsertest PRIVATE "KDE_INSTALL_FULL_LIBEXECDIR_KF=${_libexec_dir_kf}")
set(kurifiltertest_libs KF6::KIOCore KF6::KIOWidgets Qt6::Test ${DBUS_LIB})
set(URIFILTER_COLON_TEST kiowidgets-kurifiltertest-colon-separator)
ecm_add_test(kurifiltertest.cpp
LINK_LIBRARIES ${kurifiltertest_libs}
TEST_NAME ${URIFILTER_COLON_TEST}
)
target_compile_definitions(${URIFILTER_COLON_TEST} PUBLIC "-DWEBSHORTCUT_SEPARATOR=':'")
set(URIFILTER_SPACE_TEST kiowidgets-kurifiltertest-space-separator)
ecm_add_test(kurifiltertest.cpp
LINK_LIBRARIES ${kurifiltertest_libs}
TEST_NAME ${URIFILTER_SPACE_TEST}
)
target_compile_definitions(${URIFILTER_SPACE_TEST} PUBLIC "-DWEBSHORTCUT_SEPARATOR=' '")
# Same as kurlcompletiontest, but with immediate return, and results posted by thread later
ecm_add_test(
kurlcompletiontest.cpp
TEST_NAME kurlcompletiontest-nowait
NAME_PREFIX "kiowidgets-"
LINK_LIBRARIES KF6::KIOCore KF6::KIOWidgets Qt6::Test
)
set_target_properties(kurlcompletiontest-nowait PROPERTIES COMPILE_FLAGS "-DNO_WAIT")
endif()
if (TARGET KF6::KIOFileWidgets)
include_directories(${CMAKE_SOURCE_DIR}/src/filewidgets ${CMAKE_BINARY_DIR}/src/filewidgets)
ecm_add_tests(
kurlnavigatortest.cpp
kurlcomboboxtest.cpp
kdiroperatortest.cpp
kfilewidgettest.cpp
kfilecustomdialogtest.cpp
knewfilemenutest.cpp
kfilecopytomenutest.cpp
kfileplacesmodeltest.cpp
kfileplacesviewtest.cpp
kurlrequestertest.cpp
kfilefiltercombotest.cpp
NAME_PREFIX "kiofilewidgets-"
LINK_LIBRARIES KF6::KIOFileWidgets KF6::KIOWidgets KF6::Bookmarks Qt6::Test KF6::I18n KF6::WindowSystem
)
# TODO: fix symbol exports for windows -> 'KSambaShare::KSambaShare': inconsistent dll linkage
if (NOT WIN32)
ecm_add_test(
ksambashareprivatetest.cpp
../src/core/ksambashare.cpp
../src/core/kiocoredebug.cpp
TEST_NAME ksambashareprivatetest
NAME_PREFIX "kiocore-"
LINK_LIBRARIES KF6::KIOCore Qt6::Test Qt6::Network
)
endif()
set_tests_properties(kiofilewidgets-kfileplacesmodeltest PROPERTIES RUN_SERIAL TRUE)
set_tests_properties(kiofilewidgets-kfileplacesviewtest PROPERTIES RUN_SERIAL TRUE)
set_tests_properties(kiowidgets-kurifiltertest-space-separator PROPERTIES RUN_SERIAL TRUE)
endif()
endif()
# this should be done by cmake, see bug 371721
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set_property(TARGET jobtest APPEND PROPERTY AUTOMOC_MOC_OPTIONS --include ${CMAKE_BINARY_DIR}/src/core/moc_predefs.h)
endif()
# Benchmark, compiled, but not run automatically with ctest
add_executable(kcoredirlister_benchmark kcoredirlister_benchmark.cpp)
target_link_libraries(kcoredirlister_benchmark KF6::KIOCore KF6::KIOWidgets Qt6::Test)
add_executable(udsentry_api_comparison_benchmark udsentry_api_comparison_benchmark.cpp)
target_link_libraries(udsentry_api_comparison_benchmark KF6::KIOCore KF6::KIOWidgets Qt6::Test)
add_executable(udsentry_benchmark udsentry_benchmark.cpp)
target_link_libraries(udsentry_benchmark KF6::KIOCore KF6::KIOWidgets Qt6::Test)