curl-curl/tests/http
Stefan Eissing 1a57302d1a
ratelimit: download finetune
When a download size is known and rate limiting is in effect, adjust the
duration of each measurement step and its rate for maximum precision.

Since it is unpredictable how long the last bytes of a download will
take, download speed can be thrown off if the "last bytes" are a
significant amount of the total download. Make the "last bytes" small in
comparision to the rest and "stretch" the rate limit intervals to
accommodate the difference.

Fix ngtcp2 receive data acknowldgements to be based on a local window
size tracking. This allows window updates controlled by rate limits.

Fix ratelimit wait time calculation to accomodate negative tokens.

h3 rate limit, update timeers

Make download rate limits work correctly in ngtcp2. Fix multi handling
of rate limits to set a timer for when limits will update again.

Without running the transfer on limit updates, protocols like h2/h3 may
stall if the server does not send due to stream windows being too small.

scorecard: measure download speedlimits

When running scorecard with --limit-rate=n, show the reported download
speed averages plus percentage deviation from the limit.

Closes #20228
2026-01-16 16:42:31 +01:00
..
testenv badwords: fix typos found 2026-01-14 03:11:33 +01:00
.gitignore tidy-up: mostly whitespace nits 2023-08-31 23:02:10 +00:00
CMakeLists.txt cmake: update a comment 2025-12-12 13:09:52 +01:00
config.ini.in pytest: add tests using sshd 2025-12-12 11:58:57 +01:00
conftest.py pytest: add tests using sshd 2025-12-12 11:58:57 +01:00
Makefile.am tidy-up: miscellaneous 2026-01-15 13:06:13 +01:00
requirements.txt GHA: bump pip-dependencies 2026-01-13 23:17:10 +01:00
scorecard.py ratelimit: download finetune 2026-01-16 16:42:31 +01:00
test_01_basic.py pytest: fix and improve reliability 2025-12-02 17:15:36 +01:00
test_02_download.py ratelimit: download finetune 2026-01-16 16:42:31 +01:00
test_03_goaway.py pytest fixes and improvements 2025-11-17 08:02:52 +01:00
test_04_stuttered.py pytest fixes and improvements 2025-11-17 08:02:52 +01:00
test_05_errors.py pytest: bump quiche version check update 2026-01-09 15:47:27 +01:00
test_06_eyeballs.py test: increase altsvc test reliability 2025-12-10 00:23:33 +01:00
test_07_upload.py pytest: test 07_22 stabilize 2026-01-03 00:48:54 +01:00
test_08_caddy.py pytest fixes and improvements 2025-11-17 08:02:52 +01:00
test_09_push.py pytest fixes and improvements 2025-11-17 08:02:52 +01:00
test_10_proxy.py badwords: fix issues found in tests 2025-11-17 13:30:35 +01:00
test_11_unix.py ip_quadruple/proxy: make port uint16_t 2025-11-27 14:32:01 +01:00
test_12_reuse.py test: increase altsvc test reliability 2025-12-10 00:23:33 +01:00
test_13_proxy_auth.py pytest fixes and improvements 2025-11-17 08:02:52 +01:00
test_14_auth.py pytest: quiche flakiness 2025-12-10 15:26:27 +01:00
test_15_tracing.py pytest: skip specific tests for no-verbose builds 2025-10-02 10:41:46 +02:00
test_16_info.py lib: timer stats improvements 2025-11-25 16:18:59 +01:00
test_17_ssl_use.py pytest: replace allowlist with feature check to enable OCSP test 17_08 2026-01-02 01:23:27 +01:00
test_18_methods.py pytest fixes and improvements 2025-11-17 08:02:52 +01:00
test_19_shutdown.py pytest fixes and improvements 2025-11-17 08:02:52 +01:00
test_20_websockets.py websocket: improve handling of 0-len frames 2025-08-28 11:00:02 +02:00
test_30_vsftpd.py ftp: make EPRT connections non-blocking 2025-12-06 14:48:04 +01:00
test_31_vsftpds.py ftp: make EPRT connections non-blocking 2025-12-06 14:48:04 +01:00
test_32_ftps_vsftpd.py ftp: make EPRT connections non-blocking 2025-12-06 14:48:04 +01:00
test_40_socks.py pytest: socksd startup delay 2025-12-09 16:03:38 +01:00
test_50_scp.py pytest: add tests using sshd 2025-12-12 11:58:57 +01:00
test_51_sftp.py pytest: add tests using sshd 2025-12-12 11:58:57 +01:00