toxcore/auto_tests
Rodrigo Martins 96843fbae4
Take advantage of fast networks for file transfers
- Make sender send more data per iteration.
- Make receiver iterate more often while receiving.

Before this commit tox would send at maximum around 4MiB/s. With this
patch sustained speeds of up to 100MiB/s were observed on a
low-latency, high-bandwidth network.

As a consequence of iterating more frequently the receiver's CPU usage
is increased for the duration of the transfer. The data structures
used to represent friends and file transfers cause the sender code use
costly loops that do little real work. This patch makes this problem
more visible: the sender uses more CPU while sending.

Poor network conditions were simulated using the netem kernel
facility: $ tc qdisc add dev lo root netem delay 100ms 50ms \
loss 1% duplicate 1% corrupt 1% reorder 25% 50%
and no adverse behavior was encountered. Tests were conducted
using toxic using both UDP and TCP.
2022-02-15 12:22:11 +00:00
..
data Add save file generator, save compatibility test, and generate a save file 2018-08-19 10:38:51 +00:00
auto_test_support.c Fix some minor issues with autotests 2022-01-26 10:27:41 -05:00
auto_test_support.h Add autotest for dht getnodes API 2022-02-10 10:33:34 -05:00
bootstrap_test.c Separate run_auto_tests into a library 2022-01-25 14:25:36 -05:00
BUILD.bazel perf: Reduce minimal encoding size of packed events. 2022-02-12 17:44:44 +00:00
check_compat.h cleanup: Remove old check Suite compat layer. 2022-01-16 01:37:37 +00:00
conference_av_test.c Fix some minor issues with autotests 2022-01-26 10:27:41 -05:00
conference_double_invite_test.c Fix some minor issues with autotests 2022-01-26 10:27:41 -05:00
conference_invite_merge_test.c Fix some minor issues with autotests 2022-01-26 10:27:41 -05:00
conference_peer_nick_test.c Fix some minor issues with autotests 2022-01-26 10:27:41 -05:00
conference_simple_test.c chore: Remove config.h. 2021-12-15 10:26:50 +00:00
conference_test.c Fix some minor issues with autotests 2022-01-26 10:27:41 -05:00
conference_two_test.c chore: Remove config.h. 2021-12-15 10:26:50 +00:00
crypto_test.c cleanup: Remove old check Suite compat layer. 2022-01-16 01:37:37 +00:00
dht_getnodes_api_test.c Add autotest for dht getnodes API 2022-02-10 10:33:34 -05:00
dht_test.c Make more functions take const pointers to IP_Port 2022-02-03 11:17:29 -05:00
encryptsave_test.c cleanup: Don't use VLAs for huge allocations. 2022-02-11 03:05:30 +00:00
file_saving_test.c chore: Remove config.h. 2021-12-15 10:26:50 +00:00
file_transfer_test.c chore: Remove config.h. 2021-12-15 10:26:50 +00:00
friend_connection_test.c Separate run_auto_tests into a library 2022-01-25 14:25:36 -05:00
friend_request_test.c chore: Remove config.h. 2021-12-15 10:26:50 +00:00
invalid_tcp_proxy_test.c chore: Remove config.h. 2021-12-15 10:26:50 +00:00
invalid_udp_proxy_test.c chore: Remove config.h. 2021-12-15 10:26:50 +00:00
lan_discovery_test.c chore: Remove config.h. 2021-12-15 10:26:50 +00:00
lossless_packet_test.c Fix some minor issues with autotests 2022-01-26 10:27:41 -05:00
lossy_packet_test.c Fix some minor issues with autotests 2022-01-26 10:27:41 -05:00
Makefile.inc Get skeletons out of the closet 2022-02-10 08:16:10 -05:00
messenger_test.c cleanup: Add more nonnull and nullable annotations. 2022-02-09 20:03:34 +00:00
network_test.c Make more functions take const pointers to IP_Port 2022-02-03 11:17:29 -05:00
onion_test.c Make more functions take const pointers to IP_Port 2022-02-03 11:17:29 -05:00
overflow_recvq_test.c Fix some minor issues with autotests 2022-01-26 10:27:41 -05:00
overflow_sendq_test.c Separate run_auto_tests into a library 2022-01-25 14:25:36 -05:00
reconnect_test.c Fix some minor issues with autotests 2022-01-26 10:27:41 -05:00
save_compatibility_test.c cleanup: Minor fixes in test code. 2021-12-07 17:13:58 +00:00
save_friend_test.c cleanup: Don't use VLAs for huge allocations. 2022-02-11 03:05:30 +00:00
save_load_test.c chore: Remove config.h. 2021-12-15 10:26:50 +00:00
send_message_test.c Fix some minor issues with autotests 2022-01-26 10:27:41 -05:00
set_name_test.c Take advantage of fast networks for file transfers 2022-02-15 12:22:11 +00:00
set_status_message_test.c chore: Remove config.h. 2021-12-15 10:26:50 +00:00
tcp_relay_test.c Separate run_auto_tests into a library 2022-01-25 14:25:36 -05:00
TCP_test.c Make functions take const pointer to IP_Port wherever possible 2022-02-03 10:54:48 -05:00
tox_dispatch_test.c perf: Reduce minimal encoding size of packed events. 2022-02-12 17:44:44 +00:00
tox_events_test.c perf: Reduce minimal encoding size of packed events. 2022-02-12 17:44:44 +00:00
tox_many_tcp_test.c cleanup: Remove old check Suite compat layer. 2022-01-16 01:37:37 +00:00
tox_many_test.c chore: Remove config.h. 2021-12-15 10:26:50 +00:00
tox_one_test.c cleanup: Don't use VLAs for huge allocations. 2022-02-11 03:05:30 +00:00
tox_strncasecmp_test.c cleanup: Remove old check Suite compat layer. 2022-01-16 01:37:37 +00:00
toxav_basic_test.c fix: Fix toxav_basic_test buffer overflow. 2022-01-13 22:36:53 +00:00
toxav_many_test.c chore: Remove config.h. 2021-12-15 10:26:50 +00:00
typing_test.c Fix some minor issues with autotests 2022-01-26 10:27:41 -05:00
version_test.c chore: Remove config.h. 2021-12-15 10:26:50 +00:00