Commit Graph

6635 Commits

Author SHA1 Message Date
Marten Seemann
1ccf2c3bff fix accounting for lost RESET_STREAM frames in the send stream (#4804) 2024-12-28 17:09:14 +08:00
Marten Seemann
72a934f375 don't enqueue send stream for sending on duplicate Close calls (#4815) 2024-12-28 16:43:16 +08:00
Marten Seemann
810ef27db5 don't generate empty STREAM frames in the send stream (#4812) 2024-12-28 16:21:48 +08:00
Marten Seemann
55687a684f migrate multiplexer tests away from Ginkgo (#4814)
Also fixes the tests to properly clean up the multiplexer.
2024-12-28 16:10:34 +08:00
Marten Seemann
1ea7929453 fix flaky TestSendStreamLargeWrites (#4813) 2024-12-28 16:02:20 +08:00
Marten Seemann
9cf118fc82 fix flaky MITM packet injection test (#4810)
Instead of transferring data in one direction, we should echo the data
sent. This makes sure that a roughly equal number of packets is sent in
each direction.
2024-12-28 15:38:54 +08:00
Marten Seemann
56bebc4e61 migrate the stream tests away from Ginkgo (#4799)
* translate the receive stream tests

* translate the send stream tests

* translate the stream tests
2024-12-28 15:06:24 +08:00
RPRX
3552381374 http3: allow concurrent calls to Body.Close (#4798) 2024-12-28 10:52:17 +08:00
Marten Seemann
f6e7789854 ci: disable SA1029 staticcheck (context key check) in test files (#4802) 2024-12-27 17:31:21 +08:00
Marten Seemann
e653d54b21 migrate the packet packer tests away from Ginkgo (#4788) 2024-12-27 11:53:40 +08:00
Marten Seemann
baee2b4aa0 migrate platform-dependent UDP socket test code away from Ginkgo (#4797) 2024-12-26 15:02:18 +08:00
Marten Seemann
29ad06c8fa migrate the TokenStore tests away from Ginkgo (#4795) 2024-12-24 18:25:15 +08:00
Marten Seemann
abfd38d3f6 migrate the buffer pool tests away from Ginkgo (#4796) 2024-12-24 18:06:38 +08:00
Marten Seemann
484c0ba7b4 wire: don't allocate an empty data slice for empty STREAM frames (#4794)
Minor optimization, but it simplifies testing in some cases.
2024-12-24 13:16:32 +08:00
Marten Seemann
7d54aa41a3 remove unneeded Connection.GetVersion method (#4792)
Instead, use Connection.ConnectionState().Version.
2024-12-23 20:29:26 +08:00
Marten Seemann
0264fd6f4f migrate the config tests away from Ginkgo (#4790) 2024-12-23 19:04:26 +08:00
Marten Seemann
c92207c72b trace dropping of packets by the Transport when no server is set (#4789) 2024-12-23 18:54:46 +08:00
Marten Seemann
b493c5d827 migrate the transport tests away from Ginkgo (#4783)
* migrate the transport tests away from Ginkgo

* simplify mock net.PacketConn implementation
2024-12-23 14:47:44 +08:00
Marten Seemann
848042c69b ci: fix Codecov environment variables (#4786) 2024-12-23 13:34:13 +08:00
Marten Seemann
5dbb46dcc1 utils: remove unused now parameter from RTTStats.UpdateRTT (#4780) 2024-12-22 14:50:31 +08:00
Marten Seemann
a584e58099 flowcontrol: reset the connection send window when 0-RTT is rejected (#4764) 2024-12-22 11:36:14 +08:00
Marten Seemann
95998056d5 update GoMock to v0.5.0 (#4776) 2024-12-21 10:56:18 +08:00
Marten Seemann
1004266ac1 migrate framer tests away from Ginkgo (#4775) 2024-12-21 10:52:51 +08:00
Marten Seemann
468cea250d fix flaky non-QUIC packet multiplexing test (#4766) 2024-12-19 11:32:50 +08:00
Marten Seemann
408ba9f053 use a 24h maximum token age if Transport.MaxTokenAge is unset (#4763) 2024-12-18 19:44:03 +08:00
Marten Seemann
32c9c81962 improve stream limit 0-RTT integration test (#4761) 2024-12-18 14:34:48 +08:00
Marten Seemann
febc07fec7 ci: use go test for integration tests (#4759) 2024-12-18 14:19:35 +08:00
Marten Seemann
0192a17a3d fix flaky multiplex integration test (#4760) 2024-12-18 14:07:03 +08:00
Marten Seemann
9083be4322 fix connection ID length integration test (#4757) 2024-12-18 12:25:09 +08:00
Marten Seemann
3886be4e95 introduce a test helper function to create a UDP socket on localhost (#4756) 2024-12-17 23:30:00 +08:00
Marten Seemann
8cb88ee145 fix timeout integration tests on Windows (#4758)
The Go timer resolution on Windows leaves a lot to be desired. By
bumping the timeout duration the test will take longer, but at least it
won't be flaky.
2024-12-17 21:22:42 +08:00
Marten Seemann
691086db7f migrate integration tests away from Ginkgo (#4736)
* use require in benchmark tests

* translate the QLOGDIR test

* translate handshake tests

* translate the handshake RTT tests

* translate the early data test

* translate the MTU tests

* translate the key update test

* translate the stateless reset tests

* translate the packetization test

* translate the close test

* translate the resumption test

* translate the tracer test

* translate the connection ID length test

* translate the RTT tests

* translate the multiplexing tests

* translate the drop tests

* translate the handshake drop tests

* translate the 0-RTT tests

* translate the hotswap test

* translate the stream test

* translate the unidirectional stream test

* translate the timeout tests

* translate the MITM test

* rewrite the datagram tests

* translate the cancellation tests

* translate the deadline tests

* translate the test helpers
2024-12-16 23:43:59 +08:00
Marten Seemann
5e198b0db1 fix documentation for ConnectionState.SupportsDatagrams (#4754)
Support for QUIC datagrams (RFC 9221) is a unilateral declaration.
2024-12-14 11:18:11 +08:00
Marten Seemann
2dca400b5c migrate HTTP/3 integration tests away from Ginkgo (#4746) 2024-12-05 14:58:29 +08:00
Marten Seemann
33183297dd qlog: simplify QLOGDIR test by using t.Setenv and t.TempDir (#4745)
* qlog: simplify QLOGDIR test by using t.Setenv

* use testing.T.TempDir
2024-12-05 10:38:23 +08:00
dependabot[bot]
b83d11ac79 ci: bump codecov/codecov-action from 4 to 5 (#4741)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-03 11:25:00 +08:00
Marten Seemann
71a27d40c9 wait until handshaking connections have terminated when closing server (#4743) 2024-12-03 11:10:13 +08:00
Marten Seemann
363533dc7a remove the Token field from the StatelessResetError (#4740)
There's nothing the application could possibly do with this value.
2024-12-02 13:57:46 +08:00
Marten Seemann
a302d7ba4d enable DPLPMTUD on macOS dual-stack sockets (#4723)
* enable DPLPMTUD on macOS dual-stack sockets

https://datatracker.ietf.org/doc/draft-seemann-tsvwg-udp-fragmentation/
contains details on how IP fragmentation is handled on different
platforms.

* only enable DF on macOS Sequoia (and newer) dual-stack sockets

* fix macOS version numbers

* fix comment in MTU integration test

* skip dual-stack test on old macOS versions
2024-12-01 14:50:49 +08:00
Marten Seemann
aed4d8df0c ci: disable the unparam linter for tests (#4738) 2024-12-01 12:27:32 +08:00
Marten Seemann
2e4cef10ab flowcontrol: rewrite tests, use require instead of Ginkgo (#4734) 2024-11-30 14:27:57 +08:00
Marten Seemann
36ed693996 flowcontrol: fix timestamp used for receive window auto-tuning (#4735) 2024-11-29 13:59:22 +08:00
Marten Seemann
a7795541c9 logging: use code generation to generate the multiplexed tracers (#4677)
* logging: use code generation to generate the multiplexed tracers

* logging: ignore auto-generated files for code coverage

* logging: move code generation comment to generator script
2024-11-28 23:57:11 +08:00
Marten Seemann
40a768e77b flowcontrol: avoid calling time.Now(), pass time as a function parameter (#4731) 2024-11-28 17:46:22 +08:00
Marten Seemann
90a824a849 flowcontrol: fix start of the flow-control auto-tuning period (#4730)
The period should start when the first frame is received, not when the data is
first read. This makes a difference when the first STREAM frame is received
out of order.
2024-11-28 15:48:42 +08:00
Marten Seemann
ca31dd355c use IP_PMTUDISC_PROBE instead of IP_PMTUDISC_DO on Linux (#4729) 2024-11-26 10:20:05 +08:00
Marten Seemann
7b769f7a31 ci: simplify the go generate script (#4728) 2024-11-25 12:40:15 +08:00
Marten Seemann
3e0a67b247 ci: update golangci-lint to v1.62.0 (#4725) 2024-11-18 16:01:39 +01:00
Marten Seemann
21219d1122 fix documentation for IP fragmentation socket options on Windows (#4724)
https://datatracker.ietf.org/doc/draft-seemann-tsvwg-udp-fragmentation/
contains details for IP fragmentation on different platforms.
2024-11-15 12:28:19 -08:00
Jason E. Aten, Ph.D.
86ebed7cf7 fix race condition in closed connection packet handling (#4720) 2024-11-07 08:47:17 -08:00