Commit Graph

6848 Commits

Author SHA1 Message Date
Marten Seemann
92aa7b41d5 handshake: store key update interval in an atomic (#5234)
* handshake: store key update interval in an atomic

We recently changed the way the key update interval is set in tests to
use an environment variable. This resolved a race condition that existed
in the earlier logic, however, parsing of the environment variable now
shows up in benchmark tests.

Using an atomic variable should have a negligible performance impact.

* use an atomic swap
2025-06-21 12:14:07 +02:00
Marten Seemann
4bc9dfca93 improve documentation for the various error types (#5233) 2025-06-21 09:23:29 +02:00
Marten Seemann
b9d934ff8b http3: tighten checks for incorrect use of RequestStream (#5231)
The RequestStream is a low-level API that’s used by WebTransport,
CONNECT-UDP and CONNECT-IP. Methods on the RequestStream must be called
in a certain order, and we should detect misuse of the API.
2025-06-20 09:55:11 +02:00
Marten Seemann
7d5e0570c4 http3: avoid reinitilising the frame parser on the stream (#5232)
No functional change expected.
2025-06-20 07:34:03 +02:00
Marten Seemann
f27b056998 http3: remove deprecated RoundTripper (#5230) 2025-06-20 05:44:53 +02:00
Marten Seemann
66e2539b2e http3: explicitly expose all method on the RequestStream (#5216) 2025-06-19 12:16:26 +02:00
Marten Seemann
f16ffc6d16 http3: add ClientConn.Context, CloseWithError and Conn (#5219) 2025-06-17 18:29:27 +02:00
Marten Seemann
e536ee6ebb ci: add Go 1.25rc1 to tested Go versions (#5224)
* ci: add Go 1.25rc1 to tested Go versions

* fix rc name
2025-06-17 05:13:09 +02:00
Marten Seemann
d33d293fd2 ci: enable the usetesting linter (#5222)
This linter is useful to detect the creation of temporary directories
and the setting of environment variables in tests.
2025-06-11 09:39:07 +02:00
Marten Seemann
aa22706d78 ci: enable the nolintlint linter (#5221)
This linter helps us find unneeded nolint statements.
2025-06-11 06:52:21 +02:00
Marten Seemann
01921ede97 rename Conn receiver variable (#5215)
No functional change expected.
2025-06-09 13:48:36 +02:00
Marten Seemann
39f6e120c0 http3: remove deprecated SingleDestinationRoundTripper type (#5217) 2025-06-09 13:46:53 +02:00
Marten Seemann
6c82ac07cf http3: convert Connection interface to Conn struct (#5204) 2025-06-09 12:16:07 +02:00
Marten Seemann
5f3d617dec convert Connection interface to Conn struct (#5195) 2025-06-09 11:51:46 +02:00
Marten Seemann
eb08018a5c explictly expose all method on the Stream (#5214)
This hides the fact that a Stream is composed of a ReceiveStream and a
SendStream. This is an implementation detail and should not be exposed.
2025-06-09 11:14:58 +02:00
Marten Seemann
1b07674b19 handle stream-related frame in the streams map (#5212)
* handle stream-related frame in the streams map

* remove stream manager interface and mock
2025-06-09 10:00:46 +02:00
Marten Seemann
4f23ac2752 remove connection flow controller mock (#5213)
No functional change expected.
2025-06-09 09:26:23 +02:00
Marten Seemann
6f2a3f1a1c ci: enable Codecov test analysis (#5210)
* ci: enable Codecov test analysis

* ci: set package name for pre-built test binary
2025-06-09 09:09:30 +02:00
Marten Seemann
41fce88a63 simplify stream ID handling in the outgoing streams map (#5209)
No functional change expected.
2025-06-08 14:27:14 +02:00
Marten Seemann
576aa1747f simplify stream ID handling in the incoming streams map (#5207)
* simplify stream ID handling in the incoming streams map

No functional change expected.

* protocol: move stream ID constant definition
2025-06-08 12:25:36 +02:00
Marten Seemann
3a53b81692 fix Goroutine leak on version negotiation race with context cancel (#5203) 2025-06-08 05:19:46 +02:00
Marten Seemann
9580396fa1 http3: simplify connection closing in the frame parser (#5196)
No functional change expected.
2025-06-07 07:21:53 +02:00
Marten Seemann
30dede9803 ci: remove leftover check for Ginkgo imports (#5198) 2025-06-07 07:09:37 +02:00
Marten Seemann
f41858edc9 mocks: simplify mockgen command to generate MockCryptoSetup (#5197)
No functional change expected.
2025-06-07 06:49:49 +02:00
Marten Seemann
08be0f73c0 ci: stop using Ginkgo test command (#5194)
* ci: stop using Ginkgo test command

* ci: remove integrationtest directory for unit tests
2025-06-02 04:38:05 +02:00
Marten Seemann
3eb8a134cb congestion: migrate tests away from Ginkgo (#5193) 2025-06-01 09:52:47 +02:00
Marten Seemann
488ba91262 ackhandler: migrate the ECN tests away from Ginkgo (#5084) 2025-06-01 06:40:58 +02:00
Marten Seemann
1169d97e81 convert ReceiveStream interface to a struct (#5173) 2025-06-01 06:08:18 +02:00
Marten Seemann
78e77bcfdb convert SendStream to a struct (#5172) 2025-06-01 05:53:53 +02:00
Marten Seemann
eb656df2fe convert Stream interface to a struct (#5149) 2025-06-01 05:40:05 +02:00
Marten Seemann
7ca7a973ef avoid triggering macOS dual-stack flakiness in HTTP/3 integration tests (#5187)
Unfortunately, there’s still no fix in sight for https://github.com/golang/go/issues/67226.
2025-05-31 10:40:20 +02:00
Marten Seemann
eb427b599e http3: fix flaky TestConnControlStreamFailure (#5188) 2025-05-31 10:21:17 +02:00
Marten Seemann
f8a1711ce7 http3: fix flaky TestServerRequestHeaderTooLarge (#5186) 2025-05-31 09:58:20 +02:00
Marten Seemann
a39928c556 http3: fix flaky TestClientResponseValidation (#5183) 2025-05-31 09:48:45 +02:00
Marten Seemann
06aad3b4ba fix flaky TestTransportReplaceWithClosed (#5181) 2025-05-31 07:52:56 +02:00
Marten Seemann
d5f5dfa9d3 fix flaky TestGracefulShutdownPendingStreams (#5179) 2025-05-31 07:33:57 +02:00
Marten Seemann
1d58651358 fix flaky TestHTTPRequestAfterGracefulShutdown (#5178) 2025-05-31 07:31:20 +02:00
Marten Seemann
c00a673d98 fix flaky TestConnectionPathValidation (#5175) 2025-05-31 06:02:30 +02:00
Marten Seemann
06ee16ee67 fix flaky TestDatagramLoss (#5174) 2025-05-31 05:01:47 +02:00
Marten Seemann
4dd059522f mockquic: remove package (#5171) 2025-05-30 08:10:16 +02:00
Marten Seemann
56ff2a58cc http3: use actual QUIC connection in stream tests (#5170) 2025-05-30 06:47:53 +02:00
Marten Seemann
e539fc4e88 http3: fix flaky TestClientStreamHijacking (#5169) 2025-05-30 05:11:04 +02:00
Marten Seemann
e354463e64 http3: use actual QUIC connection in frames tests (#5165)
* http3: use actual QUIC connection in frames tests

* wait for handshake completion
2025-05-30 04:54:48 +02:00
Marten Seemann
9ef305508d http3: use actual QUIC stream in state tracking stream tests (#5166)
* http3: use actual QUIC stream in state tracking stream tests

* avoid sleeps
2025-05-30 04:47:17 +02:00
Marten Seemann
d9528a5643 http3: use actual QUIC connection in transport tests (#5164) 2025-05-29 15:10:30 +02:00
Marten Seemann
4e81b28694 http3: use actual QUIC connection and stream in conn tests (#5163)
* http3: use actual QUIC connection and stream in conn tests

* add errror assertion

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-29 14:42:36 +02:00
Marten Seemann
77dff99007 http3: use actual QUIC connection and stream in client tests (#5162) 2025-05-29 13:06:36 +02:00
Marten Seemann
293d45da4b http3: use actual QUIC connection and stream in server tests (#5161) 2025-05-29 11:06:09 +02:00
Marten Seemann
5c3af443c1 http3: simplify HTTP datagram handling (#5156) 2025-05-29 06:23:05 +02:00
Marten Seemann
0b834e6f46 http3: convert Stream from an interface to a struct (#5154) 2025-05-29 05:41:40 +02:00