set(TEST_TIMEOUT_SECONDS "" CACHE STRING "Limit runtime of each test to the number of seconds specified") add_library(auto_test_support auto_test_support.c auto_test_support.h) target_link_modules(auto_test_support toxcore misc_tools) function(auto_test target) if(AUTOTEST AND NOT (MSVC AND ARGV1 STREQUAL "MSVC_DONT_BUILD")) add_executable(auto_${target}_test ${target}_test.c) target_link_modules(auto_${target}_test toxcore misc_tools auto_test_support) if(NOT ARGV1 STREQUAL "DONT_RUN") add_test(NAME ${target} COMMAND ${CROSSCOMPILING_EMULATOR} 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}") endif() endif() endfunction() auto_test(TCP) auto_test(announce) auto_test(conference) auto_test(conference_double_invite) auto_test(conference_invite_merge) auto_test(conference_peer_nick) auto_test(conference_simple) auto_test(conference_two) auto_test(crypto) #auto_test(dht) # Doesn't work with UNITY_BUILD. auto_test(dht_getnodes_api) auto_test(encryptsave) auto_test(file_transfer) auto_test(file_saving) auto_test(forwarding) auto_test(friend_connection) auto_test(friend_request) auto_test(friend_request_spam) auto_test(group_general) auto_test(group_invite) auto_test(group_message) auto_test(group_moderation) auto_test(group_save) auto_test(group_state) auto_test(group_sync) auto_test(group_tcp) auto_test(group_topic) auto_test(invalid_tcp_proxy) auto_test(invalid_udp_proxy) auto_test(lan_discovery) auto_test(lossless_packet) auto_test(lossy_packet) auto_test(network) auto_test(onion) auto_test(overflow_recvq) auto_test(overflow_sendq) auto_test(reconnect) auto_test(save_friend) auto_test(save_load) auto_test(send_message) auto_test(set_name) auto_test(set_status_message) auto_test(tox_dispatch) auto_test(tox_events) auto_test(tox_many) auto_test(tox_many_tcp) auto_test(tox_strncasecmp) auto_test(typing) auto_test(version) auto_test(save_compatibility) if(NON_HERMETIC_TESTS) auto_test(bootstrap) auto_test(tcp_relay) endif() if(BUILD_TOXAV) auto_test(conference_av MSVC_DONT_BUILD) auto_test(toxav_basic) auto_test(toxav_many) endif() if(PROXY_TEST) auto_test(proxy) endif()