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()