Files
tomato/auto_tests/scenarios/CMakeLists.txt
Green Sky 565efa4f39 Squashed 'external/toxcore/c-toxcore/' changes from 1828c5356..c9cdae001
c9cdae001 fix(toxav): remove extra copy of video frame on encode
4f6d4546b test: Improve the fake network library.
a2581e700 refactor(toxcore): generate `Friend_Request` and `Dht_Nodes_Response`
2aaa11770 refactor(toxcore): use Tox_Memory in generated events
5c367452b test(toxcore): fix incorrect mutex in tox_scenario_get_time
8f92e710f perf: Add a timed limit of number of cookie requests.
695b6417a test: Add some more simulated network support.
815ae9ce9 test(toxcore): fix thread-safety in scenario framework
6d85c754e test(toxcore): add unit tests for net_crypto
9c22e79cc test(support): add SimulatedEnvironment for deterministic testing
f34fcb195 chore: Update windows Dockerfile to debian stable (trixie).
ece0e8980 fix(group_moderation): allow validating unsorted sanction list signatures
a4fa754d7 refactor: rename struct Packet to struct Net_Packet
d6f330f85 cleanup: Fix some warnings from coverity.
e206bffa2 fix(group_chats): fix sync packets reverting topics
0e4715598 test: Add new scenario testing framework.
668291f44 refactor(toxcore): decouple Network_Funcs from sockaddr via IP_Port
fc4396cef fix: potential division by zero in toxav and unsafe hex parsing
8e8b352ab refactor: Add nullable annotations to struct members.
7740bb421 refactor: decouple net_crypto from DHT
1936d4296 test: add benchmark for toxav audio and video
46bfdc2df fix: correct printf format specifiers for unsigned integers
REVERT: 1828c5356 fix(toxav): remove extra copy of video frame on encode

git-subtree-dir: external/toxcore/c-toxcore
git-subtree-split: c9cdae001341e701fca980c9bb9febfeb95d2902
2026-01-11 14:42:31 +01:00

100 lines
4.2 KiB
CMake

add_library(scenario_framework
framework/framework.c
framework/framework.h)
target_link_libraries(scenario_framework PUBLIC misc_tools)
if(TARGET toxcore_static)
target_link_libraries(scenario_framework PUBLIC toxcore_static)
else()
target_link_libraries(scenario_framework PUBLIC toxcore_shared)
endif()
if(TARGET pthreads4w::pthreads4w)
target_link_libraries(scenario_framework PUBLIC pthreads4w::pthreads4w)
elseif(TARGET PThreads4W::PThreads4W)
target_link_libraries(scenario_framework PUBLIC PThreads4W::PThreads4W)
elseif(TARGET Threads::Threads)
target_link_libraries(scenario_framework PUBLIC Threads::Threads)
endif()
function(scenario_test target)
add_executable(auto_${target}_test ${target}_test.c)
target_link_libraries(auto_${target}_test PRIVATE misc_tools scenario_framework)
add_test(NAME ${target} COMMAND auto_${target}_test)
set_tests_properties(${target} PROPERTIES TIMEOUT "${TEST_TIMEOUT_SECONDS}")
# add the source dir as environment variable, so the testdata can be found
set_tests_properties(${target} PROPERTIES ENVIRONMENT "LLVM_PROFILE_FILE=${target}.profraw;srcdir=${CMAKE_CURRENT_SOURCE_DIR}/..")
endfunction()
scenario_test(scenario_avatar)
scenario_test(scenario_bootstrap)
scenario_test(scenario_conference)
scenario_test(scenario_conference_double_invite)
scenario_test(scenario_conference_invite_merge)
scenario_test(scenario_conference_offline)
scenario_test(scenario_conference_peer_nick)
scenario_test(scenario_conference_query)
scenario_test(scenario_conference_simple)
scenario_test(scenario_conference_two)
scenario_test(scenario_dht_nodes_response_api)
scenario_test(scenario_events)
scenario_test(scenario_file_cancel)
scenario_test(scenario_file_seek)
scenario_test(scenario_file_transfer)
scenario_test(scenario_friend_connection)
scenario_test(scenario_friend_delete)
scenario_test(scenario_friend_query)
scenario_test(scenario_friend_read_receipt)
scenario_test(scenario_friend_request)
scenario_test(scenario_friend_request_spam)
scenario_test(scenario_group_general)
scenario_test(scenario_group_invite)
scenario_test(scenario_group_message)
scenario_test(scenario_group_moderation)
scenario_test(scenario_group_save)
scenario_test(scenario_group_state)
scenario_test(scenario_group_sync)
scenario_test(scenario_group_tcp)
scenario_test(scenario_group_topic)
scenario_test(scenario_lan_discovery)
scenario_test(scenario_lossless_packet)
scenario_test(scenario_lossy_packet)
scenario_test(scenario_message)
scenario_test(scenario_netprof)
scenario_test(scenario_nospam)
scenario_test(scenario_overflow_recvq)
scenario_test(scenario_overflow_sendq)
scenario_test(scenario_reconnect)
scenario_test(scenario_save_friend)
scenario_test(scenario_save_load)
scenario_test(scenario_self_query)
scenario_test(scenario_send_message)
scenario_test(scenario_set_name)
scenario_test(scenario_set_status_message)
scenario_test(scenario_tox_many)
scenario_test(scenario_tox_many_tcp)
scenario_test(scenario_typing)
scenario_test(scenario_user_status)
if(BUILD_TOXAV)
scenario_test(scenario_toxav_basic)
scenario_test(scenario_toxav_many)
scenario_test(scenario_conference_av)
if(TARGET libvpx::libvpx)
target_link_libraries(auto_scenario_toxav_basic_test PRIVATE libvpx::libvpx)
target_link_libraries(auto_scenario_toxav_many_test PRIVATE libvpx::libvpx)
elseif(TARGET PkgConfig::VPX)
target_link_libraries(auto_scenario_toxav_basic_test PRIVATE PkgConfig::VPX)
target_link_libraries(auto_scenario_toxav_many_test PRIVATE PkgConfig::VPX)
else()
target_link_libraries(auto_scenario_toxav_basic_test PRIVATE ${VPX_LIBRARIES})
target_link_directories(auto_scenario_toxav_basic_test PRIVATE ${VPX_LIBRARY_DIRS})
target_include_directories(auto_scenario_toxav_basic_test SYSTEM PRIVATE ${VPX_INCLUDE_DIRS})
target_compile_options(auto_scenario_toxav_basic_test PRIVATE ${VPX_CFLAGS_OTHER})
target_link_libraries(auto_scenario_toxav_many_test PRIVATE ${VPX_LIBRARIES})
target_link_directories(auto_scenario_toxav_many_test PRIVATE ${VPX_LIBRARY_DIRS})
target_include_directories(auto_scenario_toxav_many_test SYSTEM PRIVATE ${VPX_INCLUDE_DIRS})
target_compile_options(auto_scenario_toxav_many_test PRIVATE ${VPX_CFLAGS_OTHER})
endif()
endif()