Improve tests

This commit is contained in:
Ivan Baidakou
2025-02-14 11:23:31 +03:00
parent d49fad3d65
commit b0f3370338
4 changed files with 80 additions and 217 deletions
+17 -7
View File
@@ -5,17 +5,18 @@ set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
cmake_policy(SET CMP0063 NEW)
cmake_policy(SET CMP0077 NEW)
cmake_policy(SET CMP0135 NEW)
include(GenerateExportHeader)
#list(APPEND CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_LIBDIR})
include (FetchContent)
set(CMAKE_POSITION_INDEPENDENT_CODE True)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
find_package(
Boost
@@ -75,7 +76,7 @@ function(install_executable target)
COMMAND
cd ${syncspirit_BINARY_DIR} && sh
${syncspirit_SOURCE_DIR}/misc/make-appimage.sh
${target}
$<TARGET_FILE:${target}>
)
endif()
endfunction()
@@ -245,13 +246,22 @@ target_compile_options(syncspirit_core PRIVATE
-include ${CMAKE_CURRENT_BINARY_DIR}/include/syncspirit-export.h
)
FetchContent_Declare(MBDX
# GIT_REPOSITORY https://gitflic.ru/project/erthink/libmdbx.git
# GIT_TAG v0.13.3
URL https://libmdbx.dqdkfa.ru/release/libmdbx-amalgamated-0.13.3.tar.xz
URL_HASH SHA256=2e42505f1ceb57945569db3c1a5db9b5216d8f72da7c75c240ff81196f8e9a0b
)
set(BUILD_SHARED_LIBS true CACHE BOOL "BUILD_SHARED_LIBS")
set(MDBX_BUILD_TOOLS true CACHE BOOL "MDBX_BUILD_TOOLS")
set(MDBX_BUILD_TOOLS false CACHE BOOL "MDBX_BUILD_TOOLS")
set(MDBX_ENABLE_TESTS false CACHE BOOL "MDBX_ENABLE_TESTS")
set(MDBX_BUILD_CXX false CACHE BOOL "MDBX_BUILD_CXX")
set(MDBX_BUILD_SHARED_LIBRARY true CACHE BOOL "MDBX_BUILD_SHARED_LIBRARY")
set(MDBX_ALLOY_BUILD_DEFAULT true CACHE BOOL "MDBX_ALLOY_BUILD_DEFAULT")
set(MDBX_ALLOY_BUILD true CACHE BOOL "MDBX_ALLOY_BUILD")
add_subdirectory("lib/mbdx")
FetchContent_MakeAvailable(MBDX)
target_include_directories(syncspirit_core PUBLIC
${syncspirit_SOURCE_DIR}/lib/mbdx
+5 -6
View File
@@ -1,17 +1,18 @@
#!/usr/bin/sh
if [ -z "$1" ]; then
echo "Usage: make-appimage.sh application"
echo "Usage: make-appimage.sh path/to/app/application"
exit 1
fi
APP=$1
APP_PATH=$1
APP=basename $APP_PATH
APP_DIR="AppDir-$APP/usr/bin"
rm -rf "$APP_DIR"
mkdir -p "$APP_DIR"
strip --strip-all "./bin/$APP"
cp "./bin/$APP" "$APP_DIR"
strip --strip-all $APP_PATH
cp $APP_PATH "$APP_DIR"
if [ ! -e "./linuxdeploy-x86_64.AppImage" ]; then
echo "going to download linux-deploy..."
@@ -19,6 +20,4 @@ if [ ! -e "./linuxdeploy-x86_64.AppImage" ]; then
chmod +x linuxdeploy-x86_64.AppImage
fi
./linuxdeploy-x86_64.AppImage -v 2 --appdir "$APP_DIR" --output appimage -e "$APP_DIR/$APP" --icon-file "../misc/$APP.png" -d "../misc/$APP.desktop"
+58 -188
View File
@@ -37,195 +37,65 @@ generate_export_header(syncspirit_test_lib
EXPORT_FILE_NAME include/syncspirit-test-export.h
)
function(create_test source)
cmake_path(REMOVE_EXTENSION source LAST_ONLY OUTPUT_VARIABLE target)
add_executable(${target} ${source} $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(${target} syncspirit_test_lib)
add_test(
NAME "${target}-test"
COMMAND $<TARGET_FILE_NAME:${target}>
)
endfunction()
add_custom_command(TARGET syncspirit_test_lib PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_SOURCE_DIR}/tests/data ${CMAKE_BINARY_DIR}/data)
add_executable(009-uri 009-uri.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(009-uri syncspirit_test_lib)
add_test(009-uri "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/009-uri")
add_executable(010-upnp-support 010-upnp-support.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(010-upnp-support syncspirit_test_lib)
add_test(010-upnp-support "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/010-upnp-support")
add_executable(011-tls-util 011-tls-util.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(011-tls-util syncspirit_test_lib)
add_test(011-tls-util "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/011-tls-util")
add_executable(012-base32 012-base32.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(012-base32 syncspirit_test_lib)
add_test(012-base32 "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/012-base32")
add_executable(013-global-discovery 013-global-discovery.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(013-global-discovery syncspirit_test_lib)
add_test(013-global-discovery "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/013-global-discovery")
add_executable(014-configuration 014-configuration.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(014-configuration syncspirit_test_lib)
add_test(014-configuration "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/014-configuration")
add_executable(015-logger 015-logger.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(015-logger syncspirit_test_lib)
add_test(015-logger "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/015-logger")
add_executable(016-relay-support 016-relay-support.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(016-relay-support syncspirit_test_lib)
add_test(016-relay-support "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/016-relay-support")
add_executable(017-fs-utils 017-fs-utils.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(017-fs-utils syncspirit_test_lib)
add_test(017-fs-utils "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/017-fs-utils")
add_executable(018-dns 018-dns.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(018-dns syncspirit_test_lib)
add_test(018-dns "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/018-dns")
add_executable(020-generic-map 020-generic-map.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(020-generic-map syncspirit_test_lib)
add_test(020-generic-map "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/020-generic-map")
add_executable(021-orphaned-blocks 021-orphaned-blocks.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(021-orphaned-blocks syncspirit_test_lib)
add_test(021-orphaned-blocks "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/021-orphaned-blocks")
add_executable(022-version 022-version.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(022-version syncspirit_test_lib)
add_test(022-version "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/022-version")
add_executable(025-device_id 025-device_id.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(025-device_id syncspirit_test_lib)
add_test(025-device_id "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/025-device_id")
add_executable(026-file_info 026-file_info.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(026-file_info syncspirit_test_lib)
add_test(026-file_info "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/026-file_info")
add_executable(029-diff-generic 029-diff-generic.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(029-diff-generic syncspirit_test_lib)
add_test(029-diff-generic "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/029-diff-generic")
add_executable(030-diff-load-cluster 030-diff-load-cluster.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(030-diff-load-cluster syncspirit_test_lib)
add_test(030-diff-load-cluster "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/030-diff-load-cluster")
add_executable(031-diff-cluster_update 031-diff-cluster_update.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(031-diff-cluster_update syncspirit_test_lib)
add_test(031-diff-cluster_update "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/031-diff-cluster_update")
add_executable(032-diff-modify 032-diff-modify.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(032-diff-modify syncspirit_test_lib)
add_test(032-diff-modify "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/032-diff-modify")
add_executable(033-diffs-trivial 033-diffs-trivial.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(033-diffs-trivial syncspirit_test_lib)
add_test(033-diffs-trivial "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/033-diffs-trivial")
add_executable(034-diff-local_update 034-diff-local_update.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(034-diff-local_update syncspirit_test_lib)
add_test(034-diff-local_update "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/034-diff-local_update")
add_executable(036-diff-blocks 036-diff-blocks.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(036-diff-blocks syncspirit_test_lib)
add_test(036-diff-blocks "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/036-diff-blocks")
add_executable(037-diff-update_folder 037-diff-update_folder.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(037-diff-update_folder syncspirit_test_lib)
add_test(037-diff-update_folder "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/037-diff-update_folder")
add_executable(038-diff-clone_finish-file 038-diff-clone_finish-file.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(038-diff-clone_finish-file syncspirit_test_lib)
add_test(038-diff-clone_finish-file "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/038-diff-clone_finish-file")
add_executable(039-diff-remove-peer 039-diff-remove-peer.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(039-diff-remove-peer syncspirit_test_lib)
add_test(039-diff-remove-peer "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/039-diff-remove-peer")
add_executable(040-diff-contacts 040-diff-contacts.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(040-diff-contacts syncspirit_test_lib)
add_test(040-diff-contacts "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/040-diff-contacts")
add_executable(041-diff-remove-folder 041-diff-remove-folder.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(041-diff-remove-folder syncspirit_test_lib)
add_test(041-diff-remove-folder "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/041-diff-remove-folder")
add_executable(045-diff-advance 045-diff-advance.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(045-diff-advance syncspirit_test_lib)
add_test(045-diff-advance "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/041-diff-remove-folder")
add_executable(050-file_iterator 050-file_iterator.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(050-file_iterator syncspirit_test_lib)
add_test(050-file_iterator "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/050-file_iterator")
add_executable(051-block_iterator 051-block_iterator.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(051-block_iterator syncspirit_test_lib)
add_test(051-block_iterator "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/051-block_iterator")
add_executable(052-file_info 052-file_info.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(052-file_info syncspirit_test_lib)
add_test(052-file_info "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/052-file_info")
add_executable(053-scan_task 053-scan_task.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(053-scan_task syncspirit_test_lib)
add_test(053-scan_task "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/053-scan_task")
add_executable(054-updates_streamer 054-updates_streamer.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(054-updates_streamer syncspirit_test_lib)
add_test(054-updates_streamer "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/054-updates_streamer")
add_executable(055-resolver 055-resolver.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(055-resolver syncspirit_test_lib)
add_test(055-resolver "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/055-resolver")
add_executable(060-bep 060-bep.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(060-bep syncspirit_test_lib)
add_test(060-bep "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/060-bep")
add_executable(070-db 070-db.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(070-db syncspirit_test_lib)
add_test(070-db "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/070-db")
add_executable(071-fs_actor 071-fs_actor.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(071-fs_actor syncspirit_test_lib)
add_test(071-fs_actor "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/071-fs_actor")
add_executable(072-global_discovery 072-global_discovery.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(072-global_discovery syncspirit_test_lib)
add_test(072-global_discovery "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/072-global_discovery")
add_executable(073-dialer 073-dialer.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(073-dialer syncspirit_test_lib)
add_test(073-dialer "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/073-dialer")
add_executable(074-hasher 074-hasher.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(074-hasher syncspirit_test_lib)
add_test(074-hasher "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/074-hasher")
add_executable(075-controller 075-controller.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(075-controller syncspirit_test_lib)
add_test(075-controller "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/075-controller")
add_executable(077-initiator 077-initiator.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(077-initiator syncspirit_test_lib)
add_test(077-initiator "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/077-initiator")
add_executable(078-relay 078-relay.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(078-relay syncspirit_test_lib)
add_test(078-relay "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/078-relay")
add_executable(079-peer 079-peer.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(079-peer syncspirit_test_lib)
add_test(079-peer "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/079-peer")
add_executable(080-resolver 080-resolver.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(080-resolver syncspirit_test_lib)
add_test(080-resolver "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/080-resolver")
add_executable(085-scan-scheduler 085-scan-scheduler.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(085-scan-scheduler syncspirit_test_lib)
add_test(085-scan-scheduler "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/085-scan-scheduler")
add_executable(086-scan_actor 086-scan_actor.cpp $<$<PLATFORM_ID:Windows>:win32-resource.rc>)
target_link_libraries(086-scan_actor syncspirit_test_lib)
add_test(086-scan_actor "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/086-scan_actor")
create_test(009-uri.cpp)
create_test(010-upnp-support.cpp)
create_test(011-tls-util.cpp)
create_test(012-base32.cpp)
create_test(013-global-discovery.cpp)
create_test(014-configuration.cpp)
create_test(015-logger.cpp)
create_test(016-relay-support.cpp)
create_test(017-fs-utils.cpp)
create_test(018-dns.cpp)
create_test(020-generic-map.cpp)
create_test(021-orphaned-blocks.cpp)
create_test(022-version.cpp)
create_test(025-device_id.cpp)
create_test(026-file_info.cpp)
create_test(029-diff-generic.cpp)
create_test(030-diff-load-cluster.cpp)
create_test(031-diff-cluster_update.cpp)
create_test(032-diff-modify.cpp)
create_test(033-diffs-trivial.cpp)
create_test(034-diff-local_update.cpp)
create_test(036-diff-blocks.cpp)
create_test(037-diff-update_folder.cpp)
create_test(038-diff-clone_finish-file.cpp)
create_test(039-diff-remove-peer.cpp)
create_test(040-diff-contacts.cpp)
create_test(041-diff-remove-folder.cpp)
create_test(045-diff-advance.cpp)
create_test(050-file_iterator.cpp)
create_test(051-block_iterator.cpp)
create_test(052-file_info.cpp)
create_test(053-scan_task.cpp)
create_test(054-updates_streamer.cpp)
create_test(055-resolver.cpp)
create_test(060-bep.cpp)
create_test(070-db.cpp)
create_test(071-fs_actor.cpp)
create_test(072-global_discovery.cpp)
create_test(073-dialer.cpp)
create_test(074-hasher.cpp)
create_test(075-controller.cpp)
create_test(077-initiator.cpp)
create_test(078-relay.cpp)
create_test(079-peer.cpp)
create_test(080-resolver.cpp)
create_test(085-scan-scheduler.cpp)
create_test(086-scan_actor.cpp)
-16
View File
@@ -72,13 +72,6 @@ core:
3. use wxWidgets
- config & tui
- игнорированные девайсы: показать, удалить
- добавить/удалить/изменить директорию
- удалить/добавить/изменить девайс
- config versioning
- next activity
https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_sequences
https://stackoverflow.com/questions/64035952/how-to-key-press-detection-on-a-linux-terminal-low-level-style-in-python
@@ -133,12 +126,3 @@ https://forum.syncthing.net/t/a-few-questions-about-quic-hole-punching-and-stun/
OnBegin(diff&) -> outcome::result;
OnCommit(diff&) -> void;
OnRevert(diff&) -> void;
4. Diff
Apply()
Revert()
Commit() -> true/false. true если к-во ack'ов == то, что в регистраторе
Diff::Ack
5. По-умолчанию 1 подтверждение высылает сам источник, Commit ничего не делает