[INFO] fetching crate tork-core 0.1.0...
[INFO] testing tork-core-0.1.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate tork-core 0.1.0 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate tork-core 0.1.0
[INFO] finished tweaking crates.io crate tork-core 0.1.0
[INFO] tweaked toml for crates.io crate tork-core 0.1.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate tork-core 0.1.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate tork-core 0.1.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1d554d9c3b17ca70e5d684d6c66df3038f7d24f6959c10c94560eac8fe6de8e9
[INFO] running `Command { std: "docker" "start" "1d554d9c3b17ca70e5d684d6c66df3038f7d24f6959c10c94560eac8fe6de8e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1d554d9c3b17ca70e5d684d6c66df3038f7d24f6959c10c94560eac8fe6de8e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1d554d9c3b17ca70e5d684d6c66df3038f7d24f6959c10c94560eac8fe6de8e9" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1d554d9c3b17ca70e5d684d6c66df3038f7d24f6959c10c94560eac8fe6de8e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1d554d9c3b17ca70e5d684d6c66df3038f7d24f6959c10c94560eac8fe6de8e9" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling zerocopy v0.8.52
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling uncased v0.9.10
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling uuid v1.23.3
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]    Compiling figment v0.10.19
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling inlinable_string v0.1.15
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling data-encoding v2.11.0
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling cfb v0.7.3
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling async-lock v3.4.2
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling symlink v0.1.0
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling tagptr v0.2.0
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling infer v0.19.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling matchit v0.9.2
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling pear_codegen v0.2.9
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling garde_derive v0.23.0
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling pear v0.2.9
[INFO] [stderr]    Compiling garde v0.23.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling tungstenite v0.24.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling moka v0.12.15
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-tungstenite v0.24.0
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling tracing-appender v0.2.5
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tork-core v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 53.85s
[INFO] running `Command { std: "docker" "inspect" "1d554d9c3b17ca70e5d684d6c66df3038f7d24f6959c10c94560eac8fe6de8e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1d554d9c3b17ca70e5d684d6c66df3038f7d24f6959c10c94560eac8fe6de8e9" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.2.64
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling yasna v0.5.2
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling rcgen v0.13.2
[INFO] [stderr]    Compiling tork-core v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 25.62s
[INFO] running `Command { std: "docker" "inspect" "1d554d9c3b17ca70e5d684d6c66df3038f7d24f6959c10c94560eac8fe6de8e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1d554d9c3b17ca70e5d684d6c66df3038f7d24f6959c10c94560eac8fe6de8e9" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/tork-core/0762bf598a116fbb/out/tork_core-0762bf598a116fbb)
[INFO] [stdout] 
[INFO] [stdout] running 275 tests
[INFO] [stdout] {"context":"Tork","level":"INFO","message":"Starting Tork application","service":"app","timestamp":"2026-10-06T19:49:32.455765136Z"}
[INFO] [stdout] {"context":"Tork","level":"INFO","message":"Application is running on http://127.0.0.1:42989","service":"app","timestamp":"2026-10-06T19:49:32.455927136Z"}
[INFO] [stdout] {"context":"Tork","level":"INFO","message":"Shutting down","service":"app","timestamp":"2026-10-06T19:49:32.456071966Z"}
[INFO] [stdout] {"context":"HTTP","duration_ms":0,"level":"INFO","message":"GET / 200","method":"GET","path":"/","route":"/","service":"app","status":200,"timestamp":"2026-10-06T19:49:32.456633026Z"}
[INFO] [stdout] test app::hook_tests::scoped_on_request_fires_only_for_its_router ... ok
[INFO] [stdout] test app::tests::app_default_equals_new ... ok
[INFO] [stdout] test app::hook_tests::scoped_on_response_hooks_fire_in_reverse ... ok
[INFO] [stdout] test app::tests::upload_config_is_accepted_by_builder ... ok
[INFO] [stdout] test app::hook_tests::validation_error_fires_only_the_validation_hook ... ok
[INFO] [stdout] test app::tests::logger_config_is_accepted_by_builder ... ok
[INFO] [stdout] test app::tests::app_supports_multiple_distinct_state_types ... ok
[INFO] [stdout] test app::tests::on_ws_connect_and_disconnect_hooks_are_accepted_by_builder ... ok
[INFO] [stdout] {"context":"HTTP","duration_ms":0,"level":"INFO","message":"GET / 404","method":"GET","path":"/","route":"/","service":"app","status":404,"timestamp":"2026-10-06T19:49:32.464071469Z"}
[INFO] [stdout] test app::hook_tests::exception_handler_replaces_the_response ... ok
[INFO] [stdout] test app::tests::serve_runs_startup_then_shutdown ... ok
[INFO] [stdout] test app::hook_tests::request_hooks_run_in_registration_order ... ok
[INFO] [stdout] test app::hook_tests::on_error_fires_for_a_missing_route ... ok
[INFO] [stdout] test cache::handle::tests::a_missing_key_is_none ... ok
[INFO] [stdout] test app::tests::websocket_config_is_accepted_by_builder ... ok
[INFO] [stdout] test body::tests::capped_stream_errors_once_it_exceeds_the_limit ... ok
[INFO] [stdout] test body::tests::full_body_yields_its_buffer ... ok
[INFO] [stdout] test body::tests::streaming_body_yields_each_frame ... ok
[INFO] [stdout] test app::hook_tests::scoped_on_error_runs_after_the_global_hook ... ok
[INFO] [stdout] test app::tests::lifespan_with_event_hooks_is_a_conflict ... ok
[INFO] [stdout] test error::tests::classify_issue_falls_back_to_generic ... ok
[INFO] [stdout] test error::tests::classify_issue_recognizes_email_format ... ok
[INFO] [stdout] test error::tests::code_mapping_covers_every_kind ... ok
[INFO] [stdout] test error::tests::client_error_uses_problem_format ... ok
[INFO] [stdout] test cache::handle::tests::get_or_set_computes_once_then_hits_the_cache ... ok
[INFO] [stdout] test error::tests::classify_issue_recognizes_too_long ... ok
[INFO] [stdout] test error::tests::classify_issue_recognizes_strict_numeric_bounds ... ok
[INFO] [stdout] test cache::handle::tests::delete_and_clear_remove_entries ... ok
[INFO] [stdout] test error::tests::fallback_body_constant_is_valid_json ... ok
[INFO] [stdout] test error::tests::error_trait_source_is_none_when_unset ... ok
[INFO] [stdout] test error::tests::error_trait_source_returns_attached_source ... ok
[INFO] [stdout] test constants::tests::exported_constants_match_runtime_contract ... ok
[INFO] [stdout] test cache::handle::tests::round_trips_a_typed_value ... ok
[INFO] [stdout] test error::tests::conflict_constructor_uses_conflict_kind ... ok
[INFO] [stdout] test error::tests::service_unavailable_constructor_uses_service_unavailable_kind ... ok
[INFO] [stdout] test error::tests::status_mapping_matches_kind ... ok
[INFO] [stdout] test error::tests::take_source_is_none_without_a_source ... ok
[INFO] [stdout] test error::tests::other_cause_display_formats_inner_message ... ok
[INFO] [stdout] test error::tests::sample_cause_display_formats_inner_message ... ok
[INFO] [stdout] test error::tests::method_not_allowed_constructor_uses_method_not_allowed_kind ... ok
[INFO] [stdout] test error::tests::status_mapping_covers_every_kind ... ok
[INFO] [stdout] test error::tests::from_garde_report_classifies_field_errors ... ok
[INFO] [stdout] test error::tests::too_many_requests_constructor_uses_too_many_requests_kind ... ok
[INFO] [stdout] test error::tests::take_source_round_trips_the_typed_cause ... ok
[INFO] [stdout] test error::tests::server_error_is_redacted ... ok
[INFO] [stdout] test extract::body::tests::json_extractor_rejects_consumed_body ... ok
[INFO] [stdout] test error::tests::validation_details_are_serialized ... ok
[INFO] [stdout] test error::tests::with_source_records_the_type ... ok
[INFO] [stdout] test extract::body::tests::json_depth_guard_rejects_payloads_beyond_the_cap ... ok
[INFO] [stdout] test extract::body::tests::json_extractor_accepts_valid_json ... ok
[INFO] [stdout] test extract::body::tests::reads_body_within_limit ... ok
[INFO] [stdout] test extract::body::tests::json_extractor_rejects_invalid_json_shape ... ok
[INFO] [stdout] test extract::body::tests::json_depth_guard_ignores_brackets_inside_strings ... ok
[INFO] [stdout] test extract::body::tests::preserves_payload_too_large_errors_from_the_body ... ok
[INFO] [stdout] test extract::header::tests::bearer_token_happy_path ... ok
[INFO] [stdout] test extract::header::tests::bearer_token_invalid_utf8_header_is_unauthorized ... ok
[INFO] [stdout] test extract::header::tests::sse_resume_parses_a_typed_cursor ... ok
[INFO] [stdout] test extract::header::tests::sse_resume_valid_value_is_accessible_via_both_accessors ... ok
[INFO] [stdout] test extract::body::tests::rejects_body_over_limit ... ok
[INFO] [stdout] test extract::path::tests::invalid_param_is_unprocessable ... ok
[INFO] [stdout] test extract::tests::body_can_only_be_taken_once ... ok
[INFO] [stdout] test extract::tests::invalid_path_param_is_unprocessable ... ok
[INFO] [stdout] test extract::tests::path_param_lookup_and_parse ... ok
[INFO] [stdout] test extract::tests::take_upgrade_errors_without_an_upgrade ... ok
[INFO] [stdout] test extract::valid::tests::deeply_nested_body_is_rejected_before_validation ... ok
[INFO] [stdout] test extract::path::tests::missing_param_is_internal_router_error ... ok
[INFO] [stdout] test extract::tests::resource_is_cloned_from_registry ... ok
[INFO] [stdout] test extract::header::tests::last_event_id_into_inner_some_branch ... ok
[INFO] [stdout] test extract::header::tests::last_event_id_is_none_when_absent ... ok
[INFO] [stdout] test extract::valid::tests::valid_body_is_accepted ... ok
[INFO] [stdout] test extract::header::tests::bearer_token_missing_header_is_unauthorized ... ok
[INFO] [stdout] test extract::valid::tests::invalid_body_is_unprocessable_with_details ... ok
[INFO] [stdout] test extract::header::tests::last_event_id_reads_the_header ... ok
[INFO] [stdout] test hooks::tests::error_context_exposes_route ... ok
[INFO] [stdout] test hooks::tests::panic_event_carries_message ... ok
[INFO] [stdout] test extract::header::tests::sse_resume_missing_header_yields_none ... ok
[INFO] [stdout] test hooks::tests::error_event_carries_status_code_and_message ... ok
[INFO] [stdout] test hooks::tests::response_event_carries_status_and_elapsed ... ok
[INFO] [stdout] test lifespan::tests::missing_env_is_an_error ... ok
[INFO] [stdout] test logging::config::tests::builders_set_fields ... ok
[INFO] [stdout] test logging::config::tests::defaults_are_sensible ... ok
[INFO] [stdout] test hooks::tests::validation_event_carries_details ... ok
[INFO] [stdout] test hooks::tests::shared_accessors_expose_request_metadata ... ok
[INFO] [stdout] test logging::config::tests::file_and_telemetry_builders_cover_all_fields ... ok
[INFO] [stdout] test logging::event::tests::error_chain_is_truncated_at_the_cap ... ok
[INFO] [stdout] test logging::event::tests::default_error_detail_is_type_only ... ok
[INFO] [stdout] test logging::event::tests::field_skips_unserializable_values_and_emit_records_error_chain ... ok
[INFO] [stdout] test logging::format::tests::json_format_keeps_reserved_fields_and_serializes_error ... ok
[INFO] [stdout] test logging::format::tests::json_format_is_flat ... ok
[INFO] [stdout] test logging::logger::tests::for_context_and_framework_preserve_base_fields ... ok
[INFO] [stdout] test logging::config::tests::log_format_and_rotation_deserialize_from_lowercase ... ok
[INFO] [stdout] test logging::format::tests::console_format_with_color_and_error_field_uses_color_codes ... ok
[INFO] [stdout] test logging::logger::tests::from_request_uses_request_metadata_and_default_context ... ok
[INFO] [stdout] test lifespan::tests::cell_registers_resources_and_shuts_down ... ok
[INFO] [stdout] test error::tests::take_source_rejects_a_mismatched_type ... ok
[INFO] [stdout] test logging::logger::tests::trace_debug_warn_error_span_and_instrument_cover_helper_methods ... ok
[INFO] [stdout] test logging::span::tests::instrument_runs_the_future_and_returns_its_value ... ok
[INFO] [stdout] test logging::span::tests::span_enters_a_scope ... ok
[INFO] [stdout] test logging::subscriber::tests::build_format_honors_explicit_json_and_console_preferences ... ok
[INFO] [stdout] test logging::logger::tests::with_field_ignores_unserializable_values ... ok
[INFO] [stdout] test logging::subscriber::tests::install_accepts_file_sink_configuration ... ok
[INFO] [stdout] test logging::subscriber::tests::env_filter_uses_explicit_level_and_fallback ... ok
[INFO] [stdout] test middleware::body_limit::tests::constructors_scale_bytes_kb_and_mb ... ok
[INFO] [stdout] test logging::subscriber::tests::file_layer_writes_json_records ... ok
[INFO] [stdout] test logging::event::tests::message_only_includes_the_top_level_message_without_the_chain ... ok
[INFO] [stdout] test logging::format::tests::console_format_is_human_readable ... ok
[INFO] [stdout] test logging::logger::tests::emits_context_message_and_fields ... ok
[INFO] [stdout] test logging::subscriber::tests::stdout_and_file_layers_cover_blocking_and_non_blocking_paths ... ok
[INFO] [stdout] test extract::header::tests::bearer_token_wrong_scheme_is_unauthorized ... ok
[INFO] [stdout] test middleware::compression::tests::content_length_parses_only_valid_values ... ok
[INFO] [stdout] test middleware::cors::tests::preflight_vary_includes_method_and_headers ... ok
[INFO] [stdout] test middleware::compression::tests::event_stream_is_detected_and_bypasses_compression ... ok
[INFO] [stdout] test middleware::cors::tests::wildcard_without_credentials_returns_star ... ok
[INFO] [stdout] test middleware::https_redirect::tests::trusted_scheme_extension_takes_priority ... ok
[INFO] [stdout] test middleware::https_redirect::tests::uri_scheme_is_used_without_proxy_header ... ok
[INFO] [stdout] test middleware::cors::tests::join_builds_header_values_or_none ... ok
[INFO] [stdout] {"context":"tork_core::middleware::cors","level":"WARN","message":"tork: rejecting wildcard CORS configuration because credentials are enabled","service":"app","timestamp":"2026-10-06T19:49:32.525760333Z"}
[INFO] [stdout] test middleware::request_id::tests::header_name_builder_replaces_default_header ... ok
[INFO] [stdout] test middleware::cors::tests::wildcard_with_credentials_is_rejected ... ok
[INFO] [stdout] test middleware::cors::tests::join_handles_single_value ... ok
[INFO] [stdout] {"context":"HTTP","duration_ms":0,"level":"INFO","message":"GET / 200","method":"GET","path":"/","route":"/","service":"app","status":200,"timestamp":"2026-10-06T19:49:32.526888973Z"}
[INFO] [stdout] test middleware::security_headers::tests::builders_customize_and_disable_headers ... ok
[INFO] [stdout] test middleware::compression::tests::gzip_round_trips_through_flate2 ... ok
[INFO] [stdout] test middleware::security_headers::tests::defaults_set_the_baseline_headers ... ok
[INFO] [stdout] test middleware::proxy_headers::tests::default_impl_uses_new ... ok
[INFO] [stdout] test middleware::tests::chain_runs_outermost_first_and_reaches_dispatch ... ok
[INFO] [stdout] test middleware::proxy_headers::tests::builtin_metadata_is_stable ... ok
[INFO] [stdout] test middleware::tests::middleware_can_short_circuit ... ok
[INFO] [stdout] test middleware::cors::tests::exact_allow_list_accepts_listed_origin ... ok
[INFO] [stdout] test middleware::timeout::tests::constructors_preserve_requested_duration ... ok
[INFO] [stdout] test middleware::trace::tests::builtin_metadata_is_stable ... ok
[INFO] [stdout] test middleware::trusted_host::tests::allows_exact_and_wildcard_suffix_matches ... ok
[INFO] [stdout] test middleware::trusted_host::tests::strip_port_handles_names_ipv4_and_bracketed_ipv6 ... ok
[INFO] [stdout] test multipart::tests::default_form_schema_is_permissive_object ... ok
[INFO] [stdout] test multipart::tests::file_bytes_reports_size_and_contents ... ok
[INFO] [stdout] test multipart::tests::file_validation_enforces_size_type_and_sniff ... ok
[INFO] [stdout] test middleware::proxy_headers::tests::trust_builders_register_expected_networks ... ok
[INFO] [stdout] test middleware::tests::resolve_duplicates_applies_each_policy ... ok
[INFO] [stdout] test multipart::tests::form_parses_urlencoded_body ... ok
[INFO] [stdout] test multipart::tests::multipart_parse_reports_content_type_errors ... ok
[INFO] [stdout] test multipart::tests::multipart_binds_a_text_field_and_a_file ... ok
[INFO] [stdout] test multipart::tests::parse_error_includes_multipart_context ... ok
[INFO] [stdout] test multipart::tests::upload_config_builders_and_defaults_resolve ... ok
[INFO] [stdout] test middleware::body_limit::tests::read_body_with_limit_errors_after_crossing_limit ... ok
[INFO] [stdout] test multipart::tests::upload_file_reports_consumed_storage ... ok
[INFO] [stdout] test multipart::tests::parse_multipart_merges_route_and_app_config ... ok
[INFO] [stdout] test realtime::tests::broadcast_with_no_subscribers_reaches_nobody ... ok
[INFO] [stdout] test realtime::tests::dead_rooms_are_evicted_when_a_new_room_is_created ... ok
[INFO] [stdout] test multipart::tests::config_merge_prefers_route_over_app ... ok
[INFO] [stdout] test realtime::tests::rooms_with_live_handles_or_subscribers_are_kept ... ok
[INFO] [stdout] test realtime::tests::broadcast_reaches_every_subscriber ... ok
[INFO] [stdout] test middleware::cors::tests::exact_allow_list_rejects_unknown_origin ... ok
[INFO] [stdout] test multipart::tests::multipart_spool_flush_does_not_block_the_runtime ... ok
[INFO] [stdout] test error::tests::take_source_restores_state_when_downcast_defensively_fails ... ok
[INFO] [stdout] test multipart::tests::multipart_form_rejects_invalid_values_and_limits ... ok
[INFO] [stdout] test response::json::tests::json_response_preserves_custom_status_code ... ok
[INFO] [stdout] test multipart::tests::upload_file_reads_and_saves ... ok
[INFO] [stdout] test multipart::tests::upload_validation_covers_sniff_and_declared_type_paths ... ok
[INFO] [stdout] test response::tests::finish_helpers_serialize_success_values ... ok
[INFO] [stdout] test response::json::tests::json_response_does_not_leak_serialize_error_message ... ok
[INFO] [stdout] test response::tests::status_code_and_unit_into_response_are_empty ... ok
[INFO] [stdout] test response::json::tests::json_response_serializes_payload ... ok
[INFO] [stdout] test router::matcher::tests::normalized_request_path_covers_root_and_trailing_slashes ... ok
[INFO] [stdout] test router::matcher::tests::root_path_matches_and_method_not_allowed_uses_all_paths ... ok
[INFO] [stdout] test router::matcher::tests::unknown_path_is_not_found ... ok
[INFO] [stdout] test router::matcher::tests::wrong_method_is_method_not_allowed ... ok
[INFO] [stdout] test response::tests::result_into_response_and_finish_helpers_propagate_errors ... ok
[INFO] [stdout] test response::json::tests::json_wrapper_serializes_payload_with_default_ok_status ... ok
[INFO] [stdout] test cache::handle::tests::a_zero_ttl_never_expires ... ok
[INFO] [stdout] test response::json::tests::json_response_redacts_serialize_failures ... ok
[INFO] [stdout] test response::json::tests::json_wrapper_accepts_dynamic_json_value ... ok
[INFO] [stdout] test router::tests::nested_include_composes_prefixes_and_tags ... ok
[INFO] [stdout] test router::tests::root_route_drops_trailing_slash ... ok
[INFO] [stdout] test router::tests::route_meta_default_has_empty_collections ... ok
[INFO] [stdout] test router::tests::route_tag_deduplicates_repeated_tags ... ok
[INFO] [stdout] test router::tests::router_hooks_propagate_to_routes_outer_to_inner ... ok
[INFO] [stdout] test server::tests::run_with_shutdown_breaks_when_shutdown_resolves_first ... ok
[INFO] [stdout] test server::tests::helper_paths_cover_accept_errors_shutdown_and_signals ... ok
[INFO] [stdout] test server::tests::reuse_port_allows_two_listeners_on_the_same_port ... ok
[INFO] [stdout] test multipart::tests::upload_file_reads_in_chunks ... ok
[INFO] [stdout] {"context":"HTTP","duration_ms":0,"level":"INFO","message":"GET /users/42 200","method":"GET","path":"/users/42","route":"/users/{user_id}","service":"app","status":200,"timestamp":"2026-10-06T19:49:32.54393835Z"}
[INFO] [stdout] {"context":"HTTP","duration_ms":0,"level":"INFO","message":"GET /ping 200","method":"GET","path":"/ping","route":"/ping","service":"app","status":200,"timestamp":"2026-10-06T19:49:32.54420511Z"}
[INFO] [stdout] test server::tests::tork_service_new_returns_cloneable_service ... ok
[INFO] [stdout] test multipart::tests::multipart_form_takes_files_and_values ... ok
[INFO] [stdout] test service::tests::panic_message_handles_str_payload ... ok
[INFO] [stdout] test service::tests::panic_message_handles_string_payload ... ok
[INFO] [stdout] test service::tests::dispatches_to_matching_route ... ok
[INFO] [stdout] test security::tests::equal_values_match_and_others_do_not ... ok
[INFO] [stdout] test realtime::tests::the_same_id_returns_the_same_room ... ok
[INFO] [stdout] test service::tests::unknown_path_yields_not_found ... ok
[INFO] [stdout] test router::matcher::tests::trailing_slash_is_ignored ... ok
[INFO] [stdout] test server::tests::serves_a_request_over_tcp ... ok
[INFO] [stdout] test router::tests::prefix_is_prepended_to_routes ... ok
[INFO] [stdout] test service::tests::panic_message_handles_unknown_payload ... ok
[INFO] [stdout] test settings::tests::read_secrets_and_insert_nested_cover_edge_cases ... ok
[INFO] [stdout] test settings::tests::secret_string_is_masked_but_exposable ... ok
[INFO] [stdout] test settings::tests::load_merges_env_file_environment_specific_file_and_secrets ... ok
[INFO] [stdout] test settings::tests::environment_name_uses_prefix_and_default ... ok
[INFO] [stdout] test sse::tests::comment_and_multiline_raw_data_split_into_lines ... ok
[INFO] [stdout] test service::tests::wrong_method_yields_method_not_allowed ... ok
[INFO] [stdout] test sse::tests::encodes_event_id_retry_and_data ... ok
[INFO] [stdout] test settings::tests::builder_methods_store_configuration_sources ... ok
[INFO] [stdout] test router::matcher::tests::build_rejects_duplicate_same_method_and_path ... ok
[INFO] [stdout] test settings::tests::environment_variable_overrides_a_config_file ... ok
[INFO] [stdout] test sse::tests::builder_flags_toggle_headers_and_timeout_defaults ... ok
[INFO] [stdout] test router::matcher::tests::matches_and_captures_params ... ok
[INFO] [stdout] test sse::tests::falls_back_to_the_default_event_name ... ok
[INFO] [stdout] {"context":"tork","level":"WARN","message":"SSE event exceeds max_event_size, skipping","service":"app","timestamp":"2026-10-06T19:49:32.549106812Z"}
[INFO] [stdout] test settings::tests::environment_variable_overrides_and_nests ... ok
[INFO] [stdout] test sse::tests::into_response_sets_headers_and_streams_events ... ok
[INFO] [stdout] test sse::tests::serialize_error_is_reported_for_typed_sse_events ... ok
[INFO] [stdout] test sse::tests::oversized_events_are_skipped ... ok
[INFO] [stdout] test sse::tests::encodes_raw_data_with_event ... ok
[INFO] [stdout] test settings::tests::load_reports_configuration_parse_failures ... ok
[INFO] [stdout] test testing::client::tests::build_request_rejects_sensitive_headers_in_process_without_opt_in ... ok
[INFO] [stdout] test settings::tests::validation_failure_is_reported ... ok
[INFO] [stdout] test sse::tests::sse_limiter_caps_concurrent_permits_and_frees_them_on_drop ... ok
[INFO] [stdout] test state::tests::insert_and_get_by_type ... ok
[INFO] [stdout] test sse::tests::event_name_and_id_cannot_inject_extra_fields ... ok
[INFO] [stdout] test sse::tests::events_builder_handles_prebuilt_events ... ok
[INFO] [stdout] test testing::recorder::tests::recorder_helpers_find_context_and_message ... ok
[INFO] [stdout] test testing::client::tests::build_request_rejects_invalid_uri ... ok
[INFO] [stdout] {"context":"Tork","level":"INFO","message":"Starting Tork application","service":"app","timestamp":"2026-10-06T19:49:32.552086803Z"}
[INFO] [stdout] test testing::recorder::tests::visitor_ignores_invalid_json_fields_payload ... ok{"context":"RouterExplorer","level":"INFO","message":"Mapped {GET /json}","service":"app","timestamp":"2026-10-06T19:49:32.552251343Z"}
[INFO] [stdout] 
[INFO] [stdout] {"context":"RouterExplorer","level":"INFO","message":"Mapped {GET /stream}","service":"app","timestamp":"2026-10-06T19:49:32.552815114Z"}
[INFO] [stdout] {"context":"Tork","level":"INFO","message":"Application is running on http://127.0.0.1:37257","service":"app","timestamp":"2026-10-06T19:49:32.552947723Z"}
[INFO] [stdout] {"context":"HTTP","duration_ms":0,"level":"INFO","message":"GET /json 200","method":"GET","path":"/json","route":"/json","service":"app","status":200,"timestamp":"2026-10-06T19:49:32.553860514Z"}
[INFO] [stdout] test testing::request::tests::builder_collects_headers_query_and_bytes ... ok
[INFO] [stdout] test testing::request::tests::form_uses_urlencoding ... ok
[INFO] [stdout] test testing::request::tests::json_and_form_reset_body_on_serialize_failure ... ok
[INFO] [stdout] test testing::client::tests::build_request_merges_defaults_headers_cookies_and_content_type ... ok
[INFO] [stdout] test testing::request::tests::multipart_builder_encodes_text_and_file_parts ... ok
[INFO] [stdout] test settings::tests::defaults_apply_and_overrides_win ... ok
[INFO] [stdout] test testing::client::tests::build_request_allows_sensitive_headers_with_opt_in ... ok
[INFO] [stdout] test testing::cookie::tests::apply_uses_seeded_cookie_entries ... ok
[INFO] [stdout] test testing::cookie::tests::store_overwrites_values_and_sorts_header_output ... ok
[INFO] [stdout] test testing::sse::tests::next_event_parses_trailing_block_at_end_of_stream ... ok
[INFO] [stdout] test testing::sse::tests::parse_event_collects_name_id_and_multiline_data ... ok
[INFO] [stdout] test testing::sse::tests::parse_event_skips_heartbeat_only_blocks ... ok
[INFO] [stdout] test testing::response::tests::text_rejects_invalid_utf8 ... ok
[INFO] [stdout] test testing::sse::tests::event_json_reports_invalid_payload ... ok
[INFO] [stdout] test testing::sse::tests::next_event_reports_stream_errors ... ok
[INFO] [stdout] test testing::websocket::tests::builder_ignores_invalid_headers_and_keeps_query_and_subprotocols ... ok
[INFO] [stdout] test testing::response::tests::json_rejects_invalid_payload ... ok
[INFO] [stdout] test testing::websocket::tests::client_io_duplex_poll_shutdown_completes ... ok
[INFO] [stdout] test testing::tests::override_registry_reports_empty_and_produces_fresh_values ... ok
[INFO] [stdout] test testing::tests::take_override_reads_registered_override ... ok
[INFO] [stdout] test testing::websocket::tests::closed_error_uses_stable_code ... ok
[INFO] [stdout] test testing::response::tests::exposes_status_headers_bytes_and_json ... ok
[INFO] [stdout] test testing::websocket::tests::unsafe_header_marks_the_entry ... ok
[INFO] [stdout] {"context":"HTTP","duration_ms":0,"level":"INFO","message":"GET /stream 200","method":"GET","path":"/stream","route":"/stream","service":"app","status":200,"timestamp":"2026-10-06T19:49:32.559389306Z"}
[INFO] [stdout] test testing::websocket::tests::builder_keeps_query_parameters ... ok
[INFO] [stdout] {"context":"Tork","level":"INFO","message":"Shutting down","service":"app","timestamp":"2026-10-06T19:49:32.560159046Z"}
[INFO] [stdout] test testing::request::tests::unsafe_header_marks_the_entry ... ok
[INFO] [stdout] test testing::websocket::tests::client_io_duplex_supports_async_read_and_write ... ok
[INFO] [stdout] test testing::websocket::tests::client_io_tcp_supports_async_read_and_write ... ok
[INFO] [stdout] test testing::client::tests::real_port_transport_exercises_execute_and_execute_streaming ... ok
[INFO] [stdout] test testing::websocket::tests::client_io_tcp_poll_shutdown_completes ... ok
[INFO] [stdout] test testing::websocket::tests::decode_error_reports_json_failure ... ok
[INFO] [stdout] test testing::websocket::tests::rejected_error_uses_stable_code ... ok
[INFO] [stdout] test ws::tests::config_merge_prefers_route_over_app ... ok
[INFO] [stdout] test throttle::store::tests::distinct_keys_count_independently ... ok
[INFO] [stdout] test ws::tests::close_code_round_trips_through_u16 ... ok
[INFO] [stdout] test ws::tests::disconnect_info_exposes_duration_and_close_code ... ok
[INFO] [stdout] test ws::tests::duplex_accept_runs_hooks_and_exchanges_messages ... ok
[INFO] [stdout] test ws::tests::allowlists_and_allow_any_origin_override_same_origin_policy ... ok
[INFO] [stdout] test testing::sse::tests::next_event_timeout_reports_deadline ... ok
[INFO] [stdout] test ws::tests::deserialize_and_validate_accepts_valid_and_rejects_invalid ... ok
[INFO] [stdout] test ws::tests::messages_map_to_and_from_tungstenite ... ok
[INFO] [stdout] test ws::tests::route_config_overrides_app_defaults_for_new_limits ... ok
[INFO] [stdout] test ws::tests::frame_and_connection_errors_map_to_expected_results ... ok
[INFO] [stdout] test ws::tests::websocket_config_builders_and_connect_info_accessors_work ... ok
[INFO] [stdout] test ws::tests::ws_error_maps_to_an_http_status ... ok
[INFO] [stdout] test ws::tests::from_request_context_merges_config_and_captures_request_metadata ... ok
[INFO] [stdout] test ws::tests::ws_ip_limiter_caps_per_ip_and_releases_on_drop ... ok
[INFO] [stdout] test tests::runtime_block_on_executes_future ... ok
[INFO] [stdout] test ws::tests::handshake_builds_switching_protocols_response ... ok
[INFO] [stdout] test ws::tests::handshake_rejects_cross_origin_by_default_and_accepts_same_origin ... ok
[INFO] [stdout] test ws::tests::handshake_validates_required_headers ... ok
[INFO] [stdout] test sse::tests::client_timeout_finishes_without_emitting_a_done_event ... ok
[INFO] [stdout] test ws::tests::duplex_connection_helpers_cover_close_idle_and_validation_paths ... ok
[INFO] [stdout] test sse::tests::heartbeat_fires_while_the_source_is_idle ... ok
[INFO] [stdout] test cache::handle::tests::an_entry_expires_after_its_ttl ... ok
[INFO] [stdout] test cache::handle::tests::default_ttl_applies_to_plain_set ... ok
[INFO] [stdout] test app::hook_tests::without_catch_panics_a_panic_propagates - should panic ... ok
[INFO] [stdout] test throttle::store::tests::counts_within_a_window_then_resets_after_it ... ok
[INFO] [stdout] test app::hook_tests::catch_panics_converts_a_panic_into_a_500 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 275 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests tork_core
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test src/testing/recorder.rs - testing::recorder::assert_logs (line 158) ... ignored
[INFO] [stdout] test src/throttle/key.rs - throttle::key::ThrottleKey (line 14) ... ignored
[INFO] [stdout] test src/cache/handle.rs - cache::handle::Cache (line 24) - compile ... ok
[INFO] [stdout] test src/app.rs - app::App::throttle (line 183) - compile ... ok
[INFO] [stdout] test src/security.rs - security::constant_time_eq (line 18) ... ok
[INFO] [stdout] test src/middleware/security_headers.rs - middleware::security_headers::SecurityHeaders (line 35) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 1.22s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "1d554d9c3b17ca70e5d684d6c66df3038f7d24f6959c10c94560eac8fe6de8e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1d554d9c3b17ca70e5d684d6c66df3038f7d24f6959c10c94560eac8fe6de8e9", kill_on_drop: false }`
[INFO] [stdout] 1d554d9c3b17ca70e5d684d6c66df3038f7d24f6959c10c94560eac8fe6de8e9
