cf12defd28
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
231 lines
7.5 KiB
CMake
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)
|