From dfcf97654cbc8258779799d966275f76336bf423 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Thu, 10 Nov 2022 14:05:55 +0100 Subject: [PATCH] Always build E2E tests, but only add to test suite if enabled Signed-off-by: Claudio Cambra --- .drone.yml | 4 ++-- test/CMakeLists.txt | 5 ++++- test/nextcloud_add_test.cmake | 37 +++++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index 7dfc88c02..ac25d7f66 100644 --- a/.drone.yml +++ b/.drone.yml @@ -9,7 +9,7 @@ steps: path: /drone/build commands: - cd /drone/build - - cmake -G Ninja -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11 -DCMAKE_BUILD_TYPE=Debug -DQUICK_COMPILER=ON -DBUILD_UPDATER=ON -DBUILD_TESTING=1 -DBUILD_E2E_TESTS=ON -DECM_ENABLE_SANITIZERS=address -DCMAKE_CXX_FLAGS=-Werror -DOPENSSL_ROOT_DIR=/usr/local/lib64 ../src + - cmake -G Ninja -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11 -DCMAKE_BUILD_TYPE=Debug -DQUICK_COMPILER=ON -DBUILD_UPDATER=ON -DBUILD_TESTING=1 -DADD_E2E_TESTS=ON -DECM_ENABLE_SANITIZERS=address -DCMAKE_CXX_FLAGS=-Werror -DOPENSSL_ROOT_DIR=/usr/local/lib64 ../src - name: compile image: ghcr.io/nextcloud/continuous-integration-client:client-5.15-11 @@ -79,7 +79,7 @@ steps: path: /drone/build commands: - cd /drone/build - - cmake -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_C_COMPILER=clang-14 -DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_BUILD_TYPE=Debug -DQUICK_COMPILER=ON -DBUILD_UPDATER=ON -DBUILD_TESTING=1 -DBUILD_E2E_TESTS=ON -DECM_ENABLE_SANITIZERS=address -DCMAKE_CXX_FLAGS=-Werror -DOPENSSL_ROOT_DIR=/usr/local/lib64 ../src + - cmake -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_C_COMPILER=clang-14 -DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_BUILD_TYPE=Debug -DQUICK_COMPILER=ON -DBUILD_UPDATER=ON -DBUILD_TESTING=1 -DADD_E2E_TESTS=ON -DECM_ENABLE_SANITIZERS=address -DCMAKE_CXX_FLAGS=-Werror -DOPENSSL_ROOT_DIR=/usr/local/lib64 ../src - name: compile image: ghcr.io/nextcloud/continuous-integration-client:client-5.15-11 volumes: diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index d37e0a26d..972f40d6d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -70,9 +70,12 @@ nextcloud_add_test(ShareModel) nextcloud_add_test(ShareeModel) nextcloud_add_test(SortedShareModel) -if(BUILD_E2E_TESTS) +if(ADD_E2E_TESTS) nextcloud_add_test(E2eServerSetup) nextcloud_add_test(E2eFileTransfer) +else() + nextcloud_build_test(E2eServerSetup) + nextcloud_build_test(E2eFileTransfer) endif() if( UNIX AND NOT APPLE ) diff --git a/test/nextcloud_add_test.cmake b/test/nextcloud_add_test.cmake index 98f3ef767..6bbcdf30f 100644 --- a/test/nextcloud_add_test.cmake +++ b/test/nextcloud_add_test.cmake @@ -1,5 +1,42 @@ find_package(Qt5 COMPONENTS Core Test Xml Network Qml Quick REQUIRED) +macro(nextcloud_build_test test_class) + set(CMAKE_AUTOMOC TRUE) + set(OWNCLOUD_TEST_CLASS ${test_class}) + string(TOLOWER "${OWNCLOUD_TEST_CLASS}" OWNCLOUD_TEST_CLASS_LOWERCASE) + + add_executable(${OWNCLOUD_TEST_CLASS}Test test${OWNCLOUD_TEST_CLASS_LOWERCASE}.cpp) + set_target_properties(${OWNCLOUD_TEST_CLASS}Test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY}) + + target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE + Nextcloud::sync + testutils + nextcloudCore + cmdCore + Qt5::Test + Qt5::Quick + ) + + if (WIN32) + target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE nextcloudsync_vfs_cfapi) + elseif (LINUX) + target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE nextcloudsync_vfs_xattr) + endif() + + IF(BUILD_UPDATER) + target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE updater) + endif() + + add_definitions(-DOWNCLOUD_TEST) + add_definitions(-DOWNCLOUD_BIN_PATH="${CMAKE_BINARY_DIR}/bin") + + target_include_directories(${OWNCLOUD_TEST_CLASS}Test PRIVATE + "${CMAKE_SOURCE_DIR}/test/" + ${CMAKE_SOURCE_DIR}/src/3rdparty/qtokenizer + ) + set_target_properties(${OWNCLOUD_TEST_CLASS}Test PROPERTIES FOLDER Tests) +endmacro() + macro(nextcloud_add_test test_class) set(CMAKE_AUTOMOC TRUE) set(OWNCLOUD_TEST_CLASS ${test_class})