Commit Graph

6559 Commits

Author SHA1 Message Date
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
Mark Phelps
7ff8622136 README: add Flipt reverst (#4542)
Signed-off-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
2024-11-05 01:42:39 -08:00
Marten Seemann
955506aa3b fix arming of keep-alive timer after sending PMTUD probe packets (#4716) 2024-11-04 04:09:10 -08:00
WeidiDeng
98de6aebf7 http3: fix graceful server shutdown (#4707)
* close connHandlingDone once only when the server is shutting down

* close underlying listeners during graceful  shutdown when there is no connection

* remove connDoneOnce
v0.48.1
2024-10-21 22:35:35 -07:00
Marten Seemann
6af2b1a478 http3: rename Server.CloseGracefully to Shutdown (#4701)
This is more consistent with standard library naming for graceful
shutdown methods for HTTP/1 and HTTP/2.
v0.48.0
2024-10-15 02:14:47 -07:00
Marten Seemann
4a9a81ca34 http3: output panic stack trace as a string (#4700)
It currently is logged as a byte slice.
2024-10-15 01:46:21 -07:00
Marten Seemann
588b93c817 http3: add (deprecated) type aliases for RoundTripper and SingleDestinationRoundTripper (#4699)
This will make transitioning to the new types easier.
2024-10-14 00:15:46 -07:00
Marten Seemann
2dc1e355ce http3: remove deprecated ListenAndServe and Server.SetQuicHeader (#4698) 2024-10-14 00:02:57 -07:00
Marten Seemann
d5d75921c8 qlog: remove deprecated DefaultTracer function (#4697) 2024-10-13 23:50:47 -07:00
Marten Seemann
29f903f486 http3: improve documentation for Transport and ClientConn (#4696) 2024-10-13 23:28:23 -07:00
Marten Seemann
0a6e362879 http3: don't expose ClientConn.HandleUnidirectionalStreams (#4695) 2024-10-13 22:45:49 -07:00
Marten Seemann
b4ae847386 http3: export the Capsule-Protocol header value (#4690) 2024-10-13 22:30:30 -07:00
Marten Seemann
1db805ce4f http3: improve the client API (#4693)
* http3: rename RoundTripper to Transport

* http3: rename SingleDestinationRoundTripper to ClientConn

* http3: construct the ClientConn via Transport.NewClientConn
2024-10-13 22:17:50 -07:00
Marten Seemann
eaa879f32f http3: send GOAWAY when server is shutting down (#4691)
* send goaway when server is shutting down

* http3: track next stream ID instead of last stream ID for GOAWAYs

* refactor the graceful shutdown integration tests

* http3: improve GOAWAY frame parsing tests

* http3: simplify server graceful shutdown logic

* http3: simplify parsing of GOAWAY frames

* http3: clean up initialization of server contexts

* http3: fix race condition in graceful shutdown logic

---------

Co-authored-by: WeidiDeng <weidi_deng@icloud.com>
2024-10-11 21:47:17 -07:00
Marten Seemann
8754d28a6a handshake: migrate tests away from Ginkgo (#4667) 2024-10-11 21:44:30 -07:00
Marten Seemann
e5693d0ad7 http3: immediately close all connections on Server.Close (#4689)
* http3: immediately close all connections on Server.Close

* http3: document connection closing when using ServeQUICConn
2024-10-09 13:24:13 -07:00
Marten Seemann
b2233591ad http3: fix capsule parsing (#4683)
The current code returns an io.ErrUnexpectedEOF on partial reads of the
capsule content.
2024-10-02 07:12:27 -07:00
Marten Seemann
e38d38d5d8 fuzzing: migrate tests for helper function away from Ginkgo (#4681) 2024-09-21 05:51:55 -07:00
Marten Seemann
aef34d59a9 proxy: migrate tests away from Ginkgo (#4680) 2024-09-21 05:15:13 -07:00
Marten Seemann
72c6180ce5 versionnegotiation: migrate tests away from Ginkgo (#4676)
* fix race condition in version negotiation tests

* versionnegotiation: migrate tests away from Ginkgo
2024-09-14 00:03:12 -07:00
Marten Seemann
3258060b48 utils: migrate tests away from Ginkgo (#4675) 2024-09-13 23:36:08 -07:00
sukun
d22d579733 don't cancel streams after shutdown (#4673)
This ensures that `stream.Write` and `stream.Read` return the error code
from connection close, if the stream was closed as a result of
connection close.
2024-09-13 21:47:48 -07:00
Marten Seemann
672f906a40 wire: migrate tests away from Ginkgo (#4643)
* wire: translate ACK frame tests

* wire: translate CONNECTION_CLOSE frame tests

* wire: translate DATA_BLOCKED frame tests

* wire: translate DATAGRAM frame tests

* wire: translate HANDSHAKE_DONE frame tests

* wire: translate MAX_DATA frame tests

* wire: translate MAX_STREAM_DATA frame tests

* wire: translate MAX_STREAMS frame tests

* wire: translate NEW_CONNECTION_ID frame tests

* wire: translate NEW_TOKEN frame tests

* wire: translate PATH_CHALLENGE frame tests

* wire: translate PATH_RESPONSE frame tests

* wire: translate PING frame test

* wire: translate RESET_STREAM frame tests

* wire: translate RETIRE_CONNECTION_ID frame tests

* wire: translate STOP_SENDING frame tests

* wire: translate STREAM_DATA_BLOCKED frame tests

* wire: translate STREAMS_BLOCKED frame tests

* wire: translate CRYPTO frame tests

* wire: translate STREAM frame tests

* wire: translate version negotiation tests

* wire: translate header tests

* wire: translate pool tests

* wire: translate frame logging tests

* wire: translate short header tests

* wire: translate framer parser tests

* wire: translate transport parameter tests
2024-09-12 19:27:39 -07:00
Marten Seemann
7a10ed602d utils: remove unused methods and constructor from RTTStats (#4672) 2024-09-12 00:55:57 -07:00
Marten Seemann
5247a8ee42 testdata: migrate tests away from Ginkgo (#4670) 2024-09-12 00:42:29 -07:00
Marten Seemann
06cfeb1034 ringbuffer: migrate test away from Ginkgo (#4671) 2024-09-12 00:26:02 -07:00
Marten Seemann
4aee0c0acd quicvarint: migrate tests away from Ginkgo (#4662) 2024-09-11 22:22:17 -07:00