Rocket/core/lib/tests
Sergio Benitez 1619bbbddc Support QUIC and HTTP/3.
This commit adds support for HTTP/3 and QUIC under a disabled-by-default
feature `http3-preview`. The current implementation depends on modified
versions of h3 and s2n-quic-h3 which will need to be upstreamed and
published before a release is possible.

During the course of development various facets of Rocket's internal
connection handling and recent listener APIs were improved. The complete
list of changes included in this PR is:

  * A `shutdown` module was introduced.
  * `config::Shutdown` was renamed to `ShutdownConfig` and moved to
    `shutdown` while being re-exported from `config`.
  * `ListenerAddr` is now called `Endpoint`. Various methods which
    previously referred to "addresses" now refer to "endpoints".
  * `Rocket::endpoint()` was renamed to `Rocket::endpoints()` and now
    returns an iterator over the endpoints Rocket is listening on.
  * `Endpoint` acquired various query utility methods.
  * The `{set_}remote()` methods now take/produce `Endpoint`s.
  * `TlsBindable` only accepts single-phase internal interfaces.
  * Bind error messages include candidate endpoint info when possible.
  * The warning message when a secret key is not configured now includes
    information about its effect on private cookies.

Internal changes include:

  * Config module tests were moved to `config/tests.rs`.
  * The cancellable I/O implementation was significantly simplified.
  * The `TripWire` implementation was simplified.
  * Individual shutdown stages can now be awaited on via `Stages`.
  * The `Shield` implementation was simplified.

Resolves #2723.
2024-03-18 20:23:22 -07:00
..
static Graduate 'serve' into core as 'fs', 'FileServer'. 2021-05-22 11:15:56 -07:00
absolute-uris-okay-issue-443.rs Overhaul URI types, parsers, 'uri!' macro. 2021-05-19 18:47:11 -07:00
adhoc-uri-normalizer.rs Improve and fix panic in 'AdHoc::normalizer()'. 2023-05-05 11:41:44 -07:00
byte-slices-form-field-issue-2148.rs Support raw byte slices '&[u8]' in form fields. 2023-03-23 15:31:24 -07:00
can-correct-bad-local-uri.rs Impl 'DerefMut', 'inner_mut()' for 'LocalRequest'. 2021-04-13 17:40:22 -07:00
can-launch-tls.rs Update to hyper 1. Enable custom + unix listeners. 2024-01-29 22:38:55 -08:00
catcher-cookies-1213.rs Update 'cookie' to 0.18. 2023-09-28 23:50:29 -07:00
conditionally-set-server-header-996.rs Allow customizing and removing 'Server' header. 2021-06-08 23:09:57 -07:00
config-proxy-proto-header.rs Fixup docs for 'proxy_proto_header'. 2024-01-22 18:41:20 -08:00
config-real-ip-header.rs Make real IP header configurable via 'ip_header'. 2023-03-20 12:57:21 -07:00
config-secret-key-1500.rs Remove 'Config::profile()'. CFG 'secret_key' field. 2021-03-09 21:40:53 -08:00
cookies-private.rs Update 'cookie' to 0.18. 2023-09-28 23:50:29 -07:00
derive-reexports.rs Test 'secret_key' validation, now on pre-launch. 2021-03-09 21:57:26 -08:00
deserialize-limits-issue-2268.rs Fix 'Limits' deserialization. 2022-08-01 13:11:02 -07:00
encoded-uris.rs Test 'secret_key' validation, now on pre-launch. 2021-03-09 21:57:26 -08:00
fairing_before_head_strip-issue-546.rs Retrieve managed state via a borrow: '&State<T>'. 2021-05-11 08:58:16 -05:00
file_server.rs Fix typos. 2023-11-17 17:04:49 +01:00
flash-lazy-removes-issue-466.rs Rename 'Flash' 'name', 'msg' to 'kind', 'message'. 2021-04-07 23:09:05 -07:00
form-validation-names.rs Update UI tests for nightly. 2022-11-18 19:30:35 -08:00
form_method-issue-45.rs Test 'secret_key' validation, now on pre-launch. 2021-03-09 21:57:26 -08:00
form_value_decoding-issue-82.rs Test 'secret_key' validation, now on pre-launch. 2021-03-09 21:57:26 -08:00
form_value_from_encoded_str-issue-1425.rs UTF-8 routes. Forms revamp. Temp files. Capped. 2021-03-04 01:51:21 -08:00
forward-includes-status-1560.rs Tidy custom forward status changes, update docs. 2023-04-11 12:55:57 -07:00
head_handling.rs Prefix 'content' responder names with 'Raw'. 2021-07-20 02:09:11 -07:00
http_serde.rs Implement 'De(Serialize)' for 'Status'. 2023-03-26 19:18:04 -07:00
launch-inspect.rs Introduce statically-enforced 'Rocket' phasing. 2021-04-13 19:26:45 -07:00
limits.rs Introduce statically-enforced 'Rocket' phasing. 2021-04-13 19:26:45 -07:00
local-client-access-runtime-in-drop.rs Rename 'rocket::ignite()' to 'rocket::build()'. 2021-04-08 01:07:52 -07:00
local-client-json.rs Drop sender to prevent async client read deadlock. 2021-06-25 09:27:36 -07:00
local-request-content-type-issue-505.rs Allow status customization in 'Forward' outcomes. 2023-04-11 12:47:20 -07:00
local_request_private_cookie-issue-368.rs Update 'cookie' to 0.18. 2023-09-28 23:50:29 -07:00
many-cookie-jars-at-once.rs Update 'cookie' to 0.18. 2023-09-28 23:50:29 -07:00
mapped-base-issue-1262.rs Introduce statically-enforced 'Rocket' phasing. 2021-04-13 19:26:45 -07:00
mount_point.rs Add 'must_use' to 'Rocket'. 2022-04-19 13:03:58 -07:00
multipart-limit.rs Forward whole-form errors in 'FromForm' derive. 2024-01-17 12:15:01 -08:00
nested-fairing-attaches.rs Retrieve managed state via a borrow: '&State<T>'. 2021-05-11 08:58:16 -05:00
on_launch_fairing_can_inspect_port.rs Support QUIC and HTTP/3. 2024-03-18 20:23:22 -07:00
panic-handling.rs Drop 'Data' after sending a response, not before. 2021-06-08 13:26:16 -07:00
precise-content-type-matching.rs Introduce statically-enforced 'Rocket' phasing. 2021-04-13 19:26:45 -07:00
raw-strings-multipart-files-1987.rs Rework 'local_cache!' so it returns unique refs. 2022-04-18 18:12:54 -07:00
recursive-singleton-fairing.rs Introduce 'Singleton' fairings. 2021-05-22 11:01:00 -07:00
redirect_from_catcher-issue-113.rs Rename 'rocket::ignite()' to 'rocket::build()'. 2021-04-08 01:07:52 -07:00
replace-content-type-518.rs Drop 'Data' after sending a response, not before. 2021-06-08 13:26:16 -07:00
responder_lifetime-issue-345.rs Retrieve managed state via a borrow: '&State<T>'. 2021-05-11 08:58:16 -05:00
route_guard.rs Hide 'RouteUri' fields to ensure URI coherence. 2023-04-10 13:26:54 -07:00
scoped-uri.rs Overhaul URI types, parsers, 'uri!' macro. 2021-05-19 18:47:11 -07:00
segments-issues-41-86.rs Overhaul URI types, parsers, 'uri!' macro. 2021-05-19 18:47:11 -07:00
sentinel.rs Update to hyper 1. Enable custom + unix listeners. 2024-01-29 22:38:55 -08:00
session-cookies-issue-1506.rs Update 'cookie' to 0.18. 2023-09-28 23:50:29 -07:00
shield.rs Graduate 'helmet' as 'shield' into core. 2021-05-22 11:01:00 -07:00
shutdown-fairings.rs Introduce shutdown fairings. 2022-05-07 06:12:32 -05:00
strict_and_lenient_forms.rs Test 'secret_key' validation, now on pre-launch. 2021-03-09 21:57:26 -08:00
timer-on-attach.rs Add 'must_use' to 'Rocket'. 2022-04-19 13:03:58 -07:00
tls-config-from-source-1503.rs Update to hyper 1. Enable custom + unix listeners. 2024-01-29 22:38:55 -08:00
twice_managed_state.rs Rename 'rocket::ignite()' to 'rocket::build()'. 2021-04-08 01:07:52 -07:00
typed-uri-docs-redef-issue-1373.rs Generate 'uri!' macro names independently of span. 2020-07-14 00:44:59 -07:00
unsound-local-request-1312.rs Test 'secret_key' validation, now on pre-launch. 2021-03-09 21:57:26 -08:00
untracked-vs-tracked.rs Update 'cookie' to 0.18. 2023-09-28 23:50:29 -07:00
uri-percent-encoding-issue-808.rs Allow '[' and ']' in URI paths. 2022-05-04 09:44:24 -07:00