Add test utils library
authorFelix Weilbach <felix.weilbach@t-online.de>
Mon, 1 Feb 2021 20:07:17 +0000 (21:07 +0100)
committerCamila (Rebase PR Action) <hello@camila.codes>
Tue, 2 Feb 2021 13:35:04 +0000 (13:35 +0000)
The test utils library collects all dependencies that are needed for
tests and gets automatically linked with every test.

Signed-off-by: Felix Weilbach <felix.weilbach@t-online.de>
src/cmd/CMakeLists.txt
test/CMakeLists.txt
test/nextcloud_add_test.cmake

index f7b6a10a5ae221fbbfbd0683510a26af3371b01b..cea2066006c19490a38dd196dc8c91d6caf8fab9 100644 (file)
@@ -2,12 +2,19 @@ project(cmd)
 set(CMAKE_AUTOMOC TRUE)
 
 set(cmd_NAME ${APPLICATION_EXECUTABLE}cmd)
-set(cmd_SRC
-    cmd.cpp
-    simplesslerrorhandler.cpp
-    netrcparser.cpp
-   )
 
+add_library(cmdCore STATIC simplesslerrorhandler.cpp netrcparser.cpp)
+
+target_link_libraries(cmdCore
+  PUBLIC
+  "${csync_NAME}"
+  "${synclib_NAME}"
+  Qt5::Core
+  Qt5::Network
+  )
+
+# Need tokenizer for netrc parser
+target_include_directories(cmdCore PRIVATE ${CMAKE_SOURCE_DIR}/src/3rdparty/qtokenizer)
 
 if(UNIX AND NOT APPLE)
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE")
@@ -20,14 +27,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
 endif()
 
 if(NOT BUILD_LIBRARIES_ONLY)
-    add_executable(${cmd_NAME}  ${cmd_SRC})
+    add_executable(${cmd_NAME} cmd.cpp)
     set_target_properties(${cmd_NAME} PROPERTIES
         RUNTIME_OUTPUT_DIRECTORY  ${BIN_OUTPUT_DIRECTORY} )
 
-    target_link_libraries(${cmd_NAME} "${csync_NAME}" "${synclib_NAME}" Qt5::Core Qt5::Network)
-
-    # Need tokenizer for netrc parser
-    target_include_directories(${cmd_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/src/3rdparty/qtokenizer)
+    target_link_libraries(${cmd_NAME} cmdCore)
 endif()
 
 # OSX: Copy nextcloudcmd to app bundle, src/gui will run macdeployqt
index f3bbc516a8f9862d03e77a66eca2405ec9d5d9c8..2297eb0da89e132b9823daa5f1ec9e4d3248fde6 100644 (file)
@@ -5,68 +5,73 @@ include(nextcloud_add_test.cmake)
 
 set(CMAKE_AUTOMOC TRUE)
 
-add_library(syncenginetestutils STATIC syncenginetestutils.cpp)
-target_link_libraries(syncenginetestutils PUBLIC ${APPLICATION_EXECUTABLE}sync Qt5::Test)
-target_include_directories(syncenginetestutils PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+add_library(testutils
+  STATIC
+  syncenginetestutils.cpp
+  pushnotificationstestutils.cpp
+)
 
-nextcloud_add_test(NextcloudPropagator "")
+target_link_libraries(testutils PUBLIC ${APPLICATION_EXECUTABLE}sync Qt5::Test)
+target_include_directories(testutils PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+
+nextcloud_add_test(NextcloudPropagator)
 
 IF(BUILD_UPDATER)
-    nextcloud_add_test(Updater "")
+    nextcloud_add_test(Updater)
 endif()
 
-nextcloud_add_test(NetrcParser ../src/cmd/netrcparser.cpp)
-nextcloud_add_test(OwnSql "")
-nextcloud_add_test(SyncJournalDB "")
-nextcloud_add_test(SyncFileItem "")
-nextcloud_add_test(ConcatUrl "")
-nextcloud_add_test(Cookies "")
-nextcloud_add_test(XmlParse "")
-nextcloud_add_test(ChecksumValidator "")
-
-nextcloud_add_test(ClientSideEncryption "")
-nextcloud_add_test(ExcludedFiles "")
-
-nextcloud_add_test(Utility "")
-nextcloud_add_test(SyncEngine "")
-nextcloud_add_test(SyncVirtualFiles "")
-nextcloud_add_test(SyncMove "")
-nextcloud_add_test(SyncDelete "")
-nextcloud_add_test(SyncConflict "")
-nextcloud_add_test(SyncFileStatusTracker "")
-nextcloud_add_test(Download "")
-nextcloud_add_test(ChunkingNg "")
-nextcloud_add_test(AsyncOp "")
-nextcloud_add_test(UploadReset "")
-nextcloud_add_test(AllFilesDeleted "")
-nextcloud_add_test(Blacklist "")
-nextcloud_add_test(LocalDiscovery "")
-nextcloud_add_test(RemoteDiscovery "")
-nextcloud_add_test(Permissions "")
-nextcloud_add_test(SelectiveSync "")
-nextcloud_add_test(DatabaseError "")
-nextcloud_add_test(LockedFiles "../src/gui/lockwatcher.cpp")
-nextcloud_add_test(FolderWatcher "")
-nextcloud_add_test(Capabilities "")
-nextcloud_add_test(PushNotifications "pushnotificationstestutils.cpp")
+nextcloud_add_test(NetrcParser)
+nextcloud_add_test(OwnSql)
+nextcloud_add_test(SyncJournalDB)
+nextcloud_add_test(SyncFileItem)
+nextcloud_add_test(ConcatUrl)
+nextcloud_add_test(Cookies)
+nextcloud_add_test(XmlParse)
+nextcloud_add_test(ChecksumValidator)
+
+nextcloud_add_test(ClientSideEncryption)
+nextcloud_add_test(ExcludedFiles)
+
+nextcloud_add_test(Utility)
+nextcloud_add_test(SyncEngine)
+nextcloud_add_test(SyncVirtualFiles)
+nextcloud_add_test(SyncMove)
+nextcloud_add_test(SyncDelete)
+nextcloud_add_test(SyncConflict)
+nextcloud_add_test(SyncFileStatusTracker)
+nextcloud_add_test(Download)
+nextcloud_add_test(ChunkingNg)
+nextcloud_add_test(AsyncOp)
+nextcloud_add_test(UploadReset)
+nextcloud_add_test(AllFilesDeleted)
+nextcloud_add_test(Blacklist)
+nextcloud_add_test(LocalDiscovery)
+nextcloud_add_test(RemoteDiscovery)
+nextcloud_add_test(Permissions)
+nextcloud_add_test(SelectiveSync)
+nextcloud_add_test(DatabaseError)
+nextcloud_add_test(LockedFiles)
+nextcloud_add_test(FolderWatcher)
+nextcloud_add_test(Capabilities)
+nextcloud_add_test(PushNotifications)
 
 if( UNIX AND NOT APPLE )
-    nextcloud_add_test(InotifyWatcher "${FolderWatcher_SRC}")
+    nextcloud_add_test(InotifyWatcher)
 endif(UNIX AND NOT APPLE)
 
 if (WIN32)
-    nextcloud_add_test(LongWinPath "")
-    nextcloud_add_test(SyncCfApi "")
+    nextcloud_add_test(LongWinPath)
+    nextcloud_add_test(SyncCfApi)
 elseif(LINUX) # elseif(LINUX OR APPLE)
-    nextcloud_add_test(SyncXAttr "")
+    nextcloud_add_test(SyncXAttr)
 endif()
 
-nextcloud_add_benchmark(LargeSync "")
+nextcloud_add_benchmark(LargeSync)
 
-nextcloud_add_test(FolderMan "")
-nextcloud_add_test(RemoteWipe "")
+nextcloud_add_test(FolderMan)
+nextcloud_add_test(RemoteWipe)
 
-nextcloud_add_test(OAuth "../src/gui/creds/oauth.cpp")
+nextcloud_add_test(OAuth)
 
 configure_file(test_journal.db "${PROJECT_BINARY_DIR}/bin/test_journal.db" COPYONLY)
 
index 07e9d1e83628fd27942af0a902bd7dc5079c0fa5..2d775fcae380016fa2183e0b9028d9dc29c8b5fa 100644 (file)
@@ -1,17 +1,18 @@
 find_package(Qt5 COMPONENTS Core Test Xml Network Qml Quick REQUIRED)
 
-macro(nextcloud_add_test test_class additional_cpp)
+macro(nextcloud_add_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 ${additional_cpp})
+    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
       ${APPLICATION_EXECUTABLE}sync
-      syncenginetestutils
+      testutils
       nextcloudCore
+      cmdCore
       Qt5::Test
       Qt5::Quick
     )
@@ -35,17 +36,23 @@ macro(nextcloud_add_test test_class additional_cpp)
         )
 endmacro()
 
-macro(nextcloud_add_benchmark test_class additional_cpp)
+macro(nextcloud_add_benchmark 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}Bench benchmarks/bench${OWNCLOUD_TEST_CLASS_LOWERCASE}.cpp ${additional_cpp})
+    add_executable(${OWNCLOUD_TEST_CLASS}Bench benchmarks/bench${OWNCLOUD_TEST_CLASS_LOWERCASE}.cpp)
     set_target_properties(${OWNCLOUD_TEST_CLASS}Bench PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY})
 
     target_link_libraries(${OWNCLOUD_TEST_CLASS}Bench
-        ${APPLICATION_EXECUTABLE}sync syncenginetestutils
-        Qt5::Core Qt5::Test Qt5::Xml Qt5::Network
+      ${APPLICATION_EXECUTABLE}sync
+      testutils
+      nextcloudCore
+      cmdCore
+      Qt5::Core
+      Qt5::Test
+      Qt5::Xml
+      Qt5::Network
     )
 
     IF(BUILD_UPDATER)