Crafter.Network/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jorijn van der Graaf bdca27b871
test(quic): receive by callback, one callback at a time, ended once
ShouldRecieveByCallbackQUIC, seventeen checks. Bytes and a FIN that came
before OnRecieve are delivered by it before it returns. Registered while
1000 KiB keep arriving, with the first callbacks slowed to widen the
window and an echo sent from inside onData, every byte arrives in order
and no two of the stream's callbacks, onSent included, overlap; the
echo comes back whole. With every pool worker parked, 256 KiB goes out
and comes back by callback and SendAsync alone. The peer's Abort() and
a lost connection each end the stream not clean, once. Abort() from
inside onData caps a 1 MiB upload: no onData after it, onEnd(false),
and the peer's receive side ends while its next send is refused. A
wrapper destroyed inside its own onEnd, or moved while bytes flow,
breaks nothing; one destroyed on another thread mid-flow has no
callback run once its destructor returned. A second OnRecieve throws,
and a stream that cannot receive, or none, gets onEnd(false) at once.

With the serialisation disabled the overlap and order checks fail every
run; with Unregister's wait removed the destroyed-wrapper check fails
in most.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 02:32:48 +01:00
..
ShouldBindLoopbackEphemeral feat(tcp): socket errors as std::system_error, with the phase that failed 2026-10-31 20:33:37 +01:00
ShouldBindLoopbackQUIC test(listener): cover ListenerQUIC's bind address 2026-11-01 01:48:30 +01:00
ShouldBuildWithoutQUIC feat: TCP-only builds; TCP options and timeouts; receives that report and keep what arrived 2026-10-20 20:04:57 +02:00
ShouldConfigureTCP feat: TCP-only builds; TCP options and timeouts; receives that report and keep what arrived 2026-10-20 20:04:57 +02:00
ShouldConnectDualStack feat(tcp): socket errors as std::system_error, with the phase that failed 2026-10-31 20:33:37 +01:00
ShouldEchoWebTransport SPDX license 2026-07-22 17:55:45 +02:00
ShouldFallbackUnknownRoutes test(http): replay one fallback route table over both listeners 2026-07-28 19:42:16 +00:00
ShouldFollowRedirectsHTTP1 feat(http1): ClientHTTP1::Fetch follows redirects by the RFC, on a URL type 2026-10-31 20:39:43 +01:00
ShouldHonourQUICSettings quic settings 2026-08-25 19:17:22 +02:00
ShouldInteropCurlHTTP1 feat(http1): add an HTTP/1.1 client and listener 2026-07-27 00:45:09 +00:00
ShouldInteropCurlHTTPS1 test(https): give the TLS tests ports of their own 2026-07-28 20:34:23 +00:00
ShouldNotDropEarlyStreams SPDX license 2026-07-22 17:55:45 +02:00
ShouldNotifyClosedConnectionQUIC test(quic): a server deletes every connection from its OnClosed 2026-11-01 02:18:50 +01:00
ShouldParseHTTP1 feat(http1): add an HTTP/1.1 client and listener 2026-07-27 00:45:09 +00:00
ShouldParseURLs feat(http1): ClientHTTP1::Fetch follows redirects by the RFC, on a URL type 2026-10-31 20:39:43 +01:00
ShouldRecieveByCallbackQUIC test(quic): receive by callback, one callback at a time, ended once 2026-11-01 02:32:48 +01:00
ShouldRecieveTCP feat: TCP-only builds; TCP options and timeouts; receives that report and keep what arrived 2026-10-20 20:04:57 +02:00
ShouldReportClosedQUICStream feat: TCP-only builds; TCP options and timeouts; receives that report and keep what arrived 2026-10-20 20:04:57 +02:00
ShouldReportConnectErrors feat(tcp): socket errors as std::system_error, with the phase that failed 2026-10-31 20:33:37 +01:00
ShouldReportIoErrors feat(tcp): socket errors as std::system_error, with the phase that failed 2026-10-31 20:33:37 +01:00
ShouldReportListenerPortQUIC test(listener): cover ListenerQUIC::Port() 2026-11-01 01:45:31 +01:00
ShouldRequireClientCertificateHTTPS1 test(https): give the TLS tests ports of their own 2026-07-28 20:34:23 +00:00
ShouldReturnFromSendSyncQUIC test(quic): SendSync returns for a send the peer answered at once 2026-11-01 02:16:18 +01:00
ShouldSend SPDX license 2026-07-22 17:55:45 +02:00
ShouldSendRecieveHTTP SPDX license 2026-07-22 17:55:45 +02:00
ShouldSendRecieveHTTP1 docs(http1): document the HTTP/1.1 stack, and expose the client's timeout 2026-07-27 01:02:37 +00:00
ShouldSendRecieveHTTPS1 test(https): give the TLS tests ports of their own 2026-07-28 20:34:23 +00:00
ShouldSendRecieveKeepaliveHTTP SPDX license 2026-07-22 17:55:45 +02:00
ShouldSendRecieveKeepaliveHTTP1 feat(http1): add an HTTP/1.1 client and listener 2026-07-27 00:45:09 +00:00
ShouldSendRecieveLargeHTTP SPDX license 2026-07-22 17:55:45 +02:00
ShouldSendRecieveLargeHTTP1 feat(http1): add an HTTP/1.1 client and listener 2026-07-27 00:45:09 +00:00
ShouldSendRecieveQUICDatagram SPDX license 2026-07-22 17:55:45 +02:00
ShouldSendRecieveQUICStream SPDX license 2026-07-22 17:55:45 +02:00
ShouldSendWithoutBlockingQUIC test(quic): let the parked pool tasks leave before their flags go 2026-11-01 02:32:12 +01:00
ShouldShareSelfSignedCertificateQUIC test(listener): six processes share one selfSigned certificate from cold 2026-11-01 01:56:44 +01:00
ShouldSurviveAbuseHTTP1 fix(http1): close a finished connection instead of holding it until reap 2026-07-27 00:56:53 +00:00
ShouldSurviveConnectionChurn fix(quic): close stream handles whose async StreamStart lost the teardown race 2026-08-25 23:18:01 +00:00
ShouldTellPeerOfCloseQUIC test(quic): cover the peer being told that a ClientQUIC closed 2026-11-01 02:06:39 +01:00
ShouldTimeoutSilentHTTP1 feat(http1): bound the connect, and FetchHTTP1 for a URL with redirects 2026-10-31 20:28:32 +01:00