[INFO] fetching crate shell-tunnel 0.26.0...
[INFO] testing shell-tunnel-0.26.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate shell-tunnel 0.26.0 into /workspace/builds/worker-4-tc1/source
[INFO] removed /workspace/builds/worker-4-tc1/source/.cargo/config.toml
[INFO] started tweaking crates.io crate shell-tunnel 0.26.0
[INFO] finished tweaking crates.io crate shell-tunnel 0.26.0
[INFO] tweaked toml for crates.io crate shell-tunnel 0.26.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate shell-tunnel 0.26.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate shell-tunnel 0.26.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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-tungstenite v0.24.0
[INFO] [stderr]   Downloaded rustls-pki-types v1.13.2
[INFO] [stderr]   Downloaded vt100 v0.16.2
[INFO] [stderr]   Downloaded vte v0.15.0
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.7
[INFO] [stderr]   Downloaded zipsign-api v0.1.5
[INFO] [stderr]   Downloaded self-replace v1.5.0
[INFO] [stderr]   Downloaded self_update v0.42.0
[INFO] [stderr]   Downloaded tungstenite v0.24.0
[INFO] [stderr]   Downloaded flate2 v1.1.8
[INFO] [stderr]   Downloaded cc v1.2.52
[INFO] [stderr]   Downloaded webpki-roots v1.0.5
[INFO] [stderr]   Downloaded lexopt v0.3.1
[INFO] [stderr]   Downloaded tungstenite v0.28.0
[INFO] [stderr]   Downloaded tokio-tungstenite v0.28.0
[INFO] [stderr]   Downloaded axum v0.8.8
[INFO] [stderr]   Downloaded axum-server v0.8.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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] d3c3c961765c3a1f6a752f253c4ea1f4d2cc91e2440679fccb121b89c5373d57
[INFO] running `Command { std: "docker" "start" "d3c3c961765c3a1f6a752f253c4ea1f4d2cc91e2440679fccb121b89c5373d57", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d3c3c961765c3a1f6a752f253c4ea1f4d2cc91e2440679fccb121b89c5373d57", 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" "d3c3c961765c3a1f6a752f253c4ea1f4d2cc91e2440679fccb121b89c5373d57" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d3c3c961765c3a1f6a752f253c4ea1f4d2cc91e2440679fccb121b89c5373d57", 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" "d3c3c961765c3a1f6a752f253c4ea1f4d2cc91e2440679fccb121b89c5373d57" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling zerocopy v0.8.33
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling zmij v1.0.14
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling ryu v1.0.22
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling lexopt v0.3.1
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling vte v0.15.0
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling vt100 v0.16.2
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling tungstenite v0.28.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling hyper-util v0.1.19
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling shell-tunnel v0.26.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.18s
[INFO] running `Command { std: "docker" "inspect" "d3c3c961765c3a1f6a752f253c4ea1f4d2cc91e2440679fccb121b89c5373d57", 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" "d3c3c961765c3a1f6a752f253c4ea1f4d2cc91e2440679fccb121b89c5373d57" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling find-msvc-tools v0.1.7
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rustls-pki-types v1.13.2
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling cc v1.2.52
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.7
[INFO] [stderr]    Compiling webpki-roots v1.0.5
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling hyper-util v0.1.19
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling shell-tunnel v0.26.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tungstenite v0.24.0
[INFO] [stderr]    Compiling tokio-tungstenite v0.24.0
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 43.49s
[INFO] running `Command { std: "docker" "inspect" "d3c3c961765c3a1f6a752f253c4ea1f4d2cc91e2440679fccb121b89c5373d57", 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" "d3c3c961765c3a1f6a752f253c4ea1f4d2cc91e2440679fccb121b89c5373d57" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shell_tunnel-7054a74ad5417fe0)
[INFO] [stdout] 
[INFO] [stdout] running 417 tests
[INFO] [stdout] test api::fs::tests::a_well_formed_out_of_bounds_range_is_unsatisfiable ... ok
[INFO] [stdout] test api::fs::tests::content_range_yields_its_start_offset ... ok
[INFO] [stdout] test api::fs::tests::io_error_maps_to_507_only_when_the_raw_code_means_out_of_space ... ok
[INFO] [stdout] test api::fs::tests::refuse_if_reserved_fails_closed_when_relative_cannot_be_computed ... ok
[INFO] [stdout] test api::fs::tests::resolve_limit_clamps_to_the_configured_bounds ... ok
[INFO] [stdout] test api::fs::tests::ranges_parse_into_inclusive_bounds ... ok
[INFO] [stdout] test api::handlers::tests::test_health_endpoint ... ok
[INFO] [stdout] test api::fs::tests::an_unreadable_nested_subdirectory_does_not_abort_the_whole_walk ... ok
[INFO] [stdout] test api::router::tests::test_cors_allow_any_opt_in ... ok
[INFO] [stdout] test api::router::tests::test_cors_restrictive_by_default ... ok
[INFO] [stdout] test api::handlers::tests::test_api_info_endpoint ... ok
[INFO] [stdout] test api::handlers::tests::test_app_state_new ... ok
[INFO] [stdout] test api::router::tests::test_required_capability_mapping ... ok
[INFO] [stdout] test api::router::tests::test_required_capability_unknown_fails_closed ... ok
[INFO] [stdout] test api::router::tests::test_server_config_default ... ok
[INFO] [stdout] test api::router::tests::test_server_config_with_security ... ok
[INFO] [stdout] test api::router::tests::test_security_config_development ... ok
[INFO] [stdout] test api::sweep::tests::the_sweep_reports_what_it_removed ... ok
[INFO] [stdout] test api::types::tests::create_session_request_refuses_every_field ... ok
[INFO] [stdout] test api::types::tests::test_ws_message_execute ... ok
[INFO] [stdout] test api::router::tests::test_server_config_custom ... ok
[INFO] [stdout] test api::fs::tests::malformed_or_unrecognised_ranges_are_ignored_not_refused ... ok
[INFO] [stdout] test api::types::tests::test_ws_message_output ... ok
[INFO] [stdout] test api::websocket::tests::test_ws_message_execute_parse ... ok
[INFO] [stdout] test api::types::tests::ws_client_message_refuses_an_unknown_field ... ok
[INFO] [stdout] test api::router::tests::test_router_creation ... ok
[INFO] [stdout] test api::types::tests::test_create_session_request_default ... ok
[INFO] [stdout] test api::types::tests::ws_server_message_tolerates_an_unknown_field ... ok
[INFO] [stdout] test audit::tests::an_execution_event_carries_who_what_and_outcome ... ok
[INFO] [stdout] test api::router::tests::test_secure_router_creation ... ok
[INFO] [stdout] test api::types::tests::test_execute_command_request ... ok
[INFO] [stdout] test api::types::tests::test_error_response_serialization ... ok
[INFO] [stdout] test audit::tests::reopening_appends_rather_than_truncating ... ok
[INFO] [stdout] test api::router::tests::test_security_config_default ... ok
[INFO] [stdout] test api::router::tests::test_security_config_secure ... ok
[INFO] [stdout] test api::types::tests::execute_request_refuses_an_unknown_field ... ok
[INFO] [stdout] test audit::tests::a_denial_records_why_without_the_token ... ok
[INFO] [stdout] test audit::tests::a_disabled_sink_records_nothing ... ok
[INFO] [stdout] test audit::tests::absent_fields_are_omitted_rather_than_null ... ok
[INFO] [stdout] test api::websocket::tests::test_ws_message_ping_parse ... ok
[INFO] [stdout] test cli::tests::test_api_key ... ok
[INFO] [stdout] test cli::tests::test_combined_options ... ok
[INFO] [stdout] test cli::tests::test_config_file ... ok
[INFO] [stdout] test cli::tests::test_connect_and_device_name_conflict ... ok
[INFO] [stdout] test cli::tests::test_invalid_host ... ok
[INFO] [stdout] test cli::tests::test_invalid_port ... ok
[INFO] [stdout] test cli::tests::test_log_level ... ok
[INFO] [stdout] test cli::tests::test_host_port ... ok
[INFO] [stdout] test cli::tests::test_no_auth ... ok
[INFO] [stdout] test cli::tests::test_connect_and_tunnel_conflict ... ok
[INFO] [stdout] test cli::tests::test_no_rate_limit ... ok
[INFO] [stdout] test cli::tests::test_connect_subcommand ... ok
[INFO] [stdout] test audit::tests::an_unbounded_log_never_rotates ... ok
[INFO] [stdout] test cli::tests::test_default_args ... ok
[INFO] [stdout] test audit::tests::events_are_appended_one_per_line ... ok
[INFO] [stdout] test audit::tests::a_bounded_log_rotates_instead_of_growing ... ok
[INFO] [stdout] test cli::tests::test_capabilities_csv ... ok
[INFO] [stdout] test cli::tests::test_connect_and_relay_conflict ... ok
[INFO] [stdout] test cli::tests::test_require_auth ... ok
[INFO] [stdout] test cli::tests::test_capabilities_trims_and_ignores_blanks ... ok
[INFO] [stdout] test audit::tests::rotation_keeps_counting_from_an_existing_file ... ok
[INFO] [stdout] test cli::tests::test_tunnel_command_flag ... ok
[INFO] [stdout] test cli::tests::test_connect_and_explicit_host_conflict ... ok
[INFO] [stdout] test cli::tests::test_tunnel_flag ... ok
[INFO] [stdout] test cli::tests::test_capabilities_repeated_accumulate ... ok
[INFO] [stdout] test cli::tests::test_long_options ... ok
[INFO] [stdout] test cli::tests::test_preset ... ok
[INFO] [stdout] test cli::tests::test_no_tunnel_by_default ... ok
[INFO] [stdout] test cli::tests::the_audit_rotation_limit_maps_absent_zero_and_a_size_differently ... ok
[INFO] [stdout] test config::tests::a_non_loopback_bind_is_not_host_checked ... ok
[INFO] [stdout] test config::tests::a_configured_non_loopback_host_now_decides_the_posture ... ok
[INFO] [stdout] test config::tests::a_loopback_server_answers_only_to_local_names ... ok
[INFO] [stdout] test api::fs::tests::etag_reflects_size_and_discriminates_on_mtime ... ok
[INFO] [stdout] test config::tests::a_non_loopback_bind_is_exposed_on_its_own ... ok
[INFO] [stdout] test config::tests::a_scope_named_on_the_command_line_replaces_the_files_scope ... ok
[INFO] [stdout] test config::tests::a_tunnel_or_a_relay_makes_it_exposed ... ok
[INFO] [stdout] test config::tests::an_explicit_scope_is_left_alone ... ok
[INFO] [stdout] test config::tests::an_unknown_preset_lists_the_valid_ones ... ok
[INFO] [stdout] test config::tests::an_unparseable_host_is_exposed_rather_than_local ... ok
[INFO] [stdout] test config::tests::explicit_capabilities_are_left_alone_too ... ok
[INFO] [stdout] test config::tests::exposure_scopes_the_issued_token_instead_of_warning_about_it ... ok
[INFO] [stdout] test cli::tests::test_version_flag ... ok
[INFO] [stdout] test config::tests::a_configured_host_and_port_survive_when_no_flag_names_them ... ok
[INFO] [stdout] test config::tests::loopback_bind_without_a_public_path_is_local ... ok
[INFO] [stdout] test config::tests::a_disabled_rate_limit_still_warns ... ok
[INFO] [stdout] test config::tests::a_named_host_and_port_beat_the_configured_ones ... ok
[INFO] [stdout] test config::tests::a_non_loopback_bind_no_longer_warns_because_it_now_decides_the_posture ... ok
[INFO] [stdout] test config::tests::test_apply_args ... ok
[INFO] [stdout] test config::tests::test_apply_args_capabilities_and_preset ... ok
[INFO] [stdout] test config::tests::a_published_server_is_not_host_checked ... ok
[INFO] [stdout] test config::tests::test_apply_no_auth ... ok
[INFO] [stdout] test cli::tests::test_tunnel_paths_are_mutually_exclusive ... ok
[INFO] [stdout] test config::tests::test_config_from_json ... ok
[INFO] [stdout] test config::tests::a_preset_and_capabilities_on_one_command_line_still_union ... ok
[INFO] [stdout] test cli::tests::test_help_flag ... ok
[INFO] [stdout] test config::tests::a_preset_named_on_the_command_line_replaces_the_files_capabilities ... ok
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test config::tests::test_no_auth_overrides_require_auth ... ok
[INFO] [stdout] test config::tests::test_no_auth_overrides_scope_implied_auth ... ok
[INFO] [stdout] test config::tests::test_public_exposure_does_not_warn_about_a_scoped_token ... ok
[INFO] [stdout] test config::tests::test_invalid_host ... ok
[INFO] [stdout] test config::tests::test_public_exposure_warns_about_disabled_rate_limit ... ok
[INFO] [stdout] test config::tests::test_public_exposure_is_quiet_on_a_scoped_loopback_setup ... ok
[INFO] [stdout] test config::tests::test_public_exposure_keeps_a_supplied_key ... ok
[INFO] [stdout] test config::tests::extra_allowed_hosts_join_the_defaults ... ok
[INFO] [stdout] test config::tests::test_apply_require_auth ... ok
[INFO] [stdout] test config::tests::ipv6_loopback_is_local ... ok
[INFO] [stdout] test config::tests::test_scope_implies_auth_on ... ok
[INFO] [stdout] test config::tests::test_cli_tunnel_command_overrides_config_file ... ok
[INFO] [stdout] test config::tests::test_cli_tunnel_overrides_config_file ... ok
[INFO] [stdout] test config::tests::test_config_file_transport_survives_unrelated_args ... ok
[INFO] [stdout] test config::tests::test_to_server_config_scopes_capabilities ... ok
[INFO] [stdout] test config::tests::test_to_server_config ... ok
[INFO] [stdout] test config::tests::test_to_server_config_invalid_preset_errors ... ok
[INFO] [stdout] test config::tests::test_transport_defaults_to_local_only ... ok
[INFO] [stdout] test config::tests::test_config_from_json_with_capabilities_and_preset ... ok
[INFO] [stdout] test config::tests::the_exposed_token_is_not_a_wildcard ... ok
[INFO] [stdout] test error::tests::test_pty_error_display ... ok
[INFO] [stdout] test error::tests::test_session_exists_display ... ok
[INFO] [stdout] test config::tests::the_read_only_refusal_names_its_replacement ... ok
[INFO] [stdout] test config::tests::test_public_exposure_no_longer_warns_about_an_unscoped_token_because_it_scopes_it ... ok
[INFO] [stdout] test error::tests::test_session_not_found_display ... ok
[INFO] [stdout] test config::tests::test_public_exposure_refuses_no_auth ... ok
[INFO] [stdout] test config::tests::test_resolve_capabilities_invalid_preset_errors ... ok
[INFO] [stdout] test error::tests::test_timeout_display ... ok
[INFO] [stdout] test config::tests::test_resolve_capabilities_none_by_default ... ok
[INFO] [stdout] test config::tests::test_resolve_capabilities_preset_plus_extra ... ok
[INFO] [stdout] test config::tests::test_transport_mode_from_config_file ... ok
[INFO] [stdout] test error::tests::test_io_error_conversion ... ok
[INFO] [stdout] test execution::command::tests::test_command_builder_chain ... ok
[INFO] [stdout] test execution::command::tests::test_command_builder_empty ... ok
[INFO] [stdout] test execution::command::tests::a_timeout_above_the_ceiling_is_clamped ... ok
[INFO] [stdout] test execution::command::tests::test_command_envs ... ok
[INFO] [stdout] test execution::executor::tests::test_command_builder ... ok
[INFO] [stdout] test execution::command::tests::test_command_new ... ok
[INFO] [stdout] test execution::executor::tests::test_default_timeout ... ok
[INFO] [stdout] test execution::command::tests::a_zero_timeout_is_raised_to_the_floor ... ok
[INFO] [stdout] test config::tests::test_transport_command_from_config_file ... ok
[INFO] [stdout] test execution::command::tests::a_timeout_within_the_range_is_taken_as_asked ... ok
[INFO] [stdout] test execution::command::tests::an_unset_timeout_is_the_default ... ok
[INFO] [stdout] test config::tests::test_config_serialization ... ok
[INFO] [stdout] test execution::executor::tests::test_executor_new ... ok
[INFO] [stdout] test execution::result::tests::test_execution_result_failed ... ok
[INFO] [stdout] test execution::command::tests::test_command_builder_build ... ok
[INFO] [stdout] test config::tests::test_config_partial_json ... ok
[INFO] [stdout] test config::tests::test_public_exposure_enables_auth_and_generates_a_key ... ok
[INFO] [stdout] test execution::result::tests::test_execution_result_new ... ok
[INFO] [stdout] test execution::result::tests::test_output_trimmed ... ok
[INFO] [stdout] test config::tests::test_transport_command_mode_requires_a_command ... ok
[INFO] [stdout] test execution::result::tests::test_execution_result_success ... ok
[INFO] [stdout] test execution::result::tests::test_execution_result_timeout ... ok
[INFO] [stdout] test execution::result::tests::test_output_chunk_combined ... ok
[INFO] [stdout] test fs::platform::tests::empty_components_are_refused ... ok
[INFO] [stdout] test execution::result::tests::test_output_lines ... ok
[INFO] [stdout] test fs::platform::tests::null_bytes_are_refused ... ok
[INFO] [stdout] test execution::result::tests::test_output_chunk_stdout ... ok
[INFO] [stdout] test fs::platform::tests::ordinary_names_pass ... ok
[INFO] [stdout] test fs::platform::tests::reserved_device_names_are_refused ... ok
[INFO] [stdout] test fs::root::machine_wide_tests::a_relative_path_is_refused_rather_than_resolved_against_the_cwd ... ok
[INFO] [stdout] test execution::pipe::tests::an_idle_pipe_reports_empty_without_blocking ... ok
[INFO] [stdout] test fs::root::machine_wide_tests::a_unc_path_is_refused_as_malformed ... ok
[INFO] [stdout] test fs::root::machine_wide_tests::every_filesystem_anchor_is_in_scope ... ok
[INFO] [stdout] test fs::platform::tests::is_out_of_space_matches_enospc_and_edquot_only ... ok
[INFO] [stdout] test fs::platform::tests::stream_separators_are_refused ... ok
[INFO] [stdout] test fs::root::machine_wide_tests::an_absolute_path_resolves ... ok
[INFO] [stdout] test fs::platform::tests::a_name_containing_two_dots_is_not_traversal ... ok
[INFO] [stdout] test fs::root::tests::a_create_target_may_not_escape_through_a_missing_segment ... ok
[INFO] [stdout] test fs::platform::tests::drives_that_all_answer_do_not_wait_for_the_deadline ... ok
[INFO] [stdout] test fs::root::machine_wide_tests::machine_wide_scope_has_no_single_path ... ok
[INFO] [stdout] test fs::root::tests::a_create_target_need_not_exist_yet ... ok
[INFO] [stdout] test fs::root::machine_wide_tests::one_file_gets_one_name ... ok
[INFO] [stdout] test fs::root::machine_wide_tests::a_drive_that_did_not_answer_is_refused_and_named ... ok
[INFO] [stdout] test execution::executor::tests::test_execute_simple_echo ... ok
[INFO] [stdout] test fs::root::machine_wide_tests::the_banner_line_names_what_is_reachable ... ok
[INFO] [stdout] test fs::root::tests::a_dangling_symlink_pointing_outside_the_root_is_refused_by_resolve_existing ... ok
[INFO] [stdout] test execution::executor::tests::test_execute_with_timeout ... ok
[INFO] [stdout] test execution::pipe::tests::a_pass_stops_at_its_budget ... ok
[INFO] [stdout] test fs::root::tests::absolute_paths_are_refused ... ok
[INFO] [stdout] test fs::root::tests::a_dangling_symlink_pointing_outside_the_root_is_refused_by_resolve_for_create ... ok
[INFO] [stdout] test fs::root::tests::a_symlink_out_of_the_root_is_refused ... ok
[INFO] [stdout] test fs::platform::tests::trailing_dot_or_space_is_refused ... ok
[INFO] [stdout] test fs::root::machine_wide_tests::a_backslash_led_path_is_not_absolute_on_unix ... ok
[INFO] [stdout] test fs::root::tests::relative_renders_posix_separators ... ok
[INFO] [stdout] test fs::root::tests::an_escape_looks_the_same_whether_or_not_the_target_exists ... ok
[INFO] [stdout] test fs::root::machine_wide_tests::a_missing_file_is_not_found_rather_than_an_escape ... ok
[INFO] [stdout] test fs::root::tests::dot_dot_traversal_is_refused ... ok
[INFO] [stdout] test fs::root::tests::a_file_inside_the_root_resolves ... ok
[INFO] [stdout] test fs::root::tests::a_single_dot_names_the_root_itself ... ok
[INFO] [stdout] test fs::root::tests::an_escape_through_an_existing_directory_is_refused ... ok
[INFO] [stdout] test execution::pipe::tests::a_finished_command_ends_its_pipe ... ok
[INFO] [stdout] test fs::root::tests::a_filename_containing_two_dots_resolves ... ok
[INFO] [stdout] test fs::sha256::tests::hashing_a_file_matches_hashing_its_bytes ... ok
[INFO] [stdout] test fs::root::tests::a_missing_file_inside_the_root_is_not_found ... ok
[INFO] [stdout] test fs::transfer::tests::a_live_session_is_visible_under_its_staging_directory ... ok
[INFO] [stdout] test fs::transfer::tests::a_conflict_names_the_holder_not_the_refused_caller ... ok
[INFO] [stdout] test fs::sha256::tests::incremental_updates_match_a_single_update ... ok
[INFO] [stdout] test fs::sha256::tests::the_empty_input_vector ... ok
[INFO] [stdout] test fs::root::tests::reserved_and_stream_names_are_refused ... ok
[INFO] [stdout] test fs::transfer::tests::a_chunk_that_would_exceed_the_declared_size_is_refused ... ok
[INFO] [stdout] test fs::transfer::tests::a_chunk_at_the_wrong_offset_is_refused_with_the_expected_one ... ok
[INFO] [stdout] test fs::sha256::tests::the_nist_vector_for_abc ... ok
[INFO] [stdout] test fs::transfer::tests::a_chunk_landing_exactly_on_the_declared_size_is_accepted ... ok
[INFO] [stdout] test fs::transfer::tests::a_chunk_above_the_ceiling_is_refused ... ok
[INFO] [stdout] test fs::transfer::tests::a_refused_create_still_consumes_a_serial ... ok
[INFO] [stdout] test fs::transfer::tests::a_mismatched_checksum_is_refused ... ok
[INFO] [stdout] test fs::transfer::tests::sweeping_drops_sessions_past_their_ttl ... ok
[INFO] [stdout] test fs::transfer::tests::a_nonexistent_path_cannot_be_canonicalized_so_answers_true ... ok
[INFO] [stdout] test fs::transfer::tests::sweep_orphan_parts_removes_leftover_part_files_and_nothing_else ... ok
[INFO] [stdout] test fs::transfer::tests::a_session_starts_at_offset_zero ... ok
[INFO] [stdout] test fs::transfer::tests::a_store_at_the_relay_size_enforces_it ... ok
[INFO] [stdout] test fs::transfer::tests::cancelling_removes_the_session_and_frees_the_destination ... ok
[INFO] [stdout] test fs::transfer::tests::chunks_advance_the_offset ... ok
[INFO] [stdout] test fs::transfer::tests::completing_an_upload_keeps_the_destination_claimed_until_explicitly_released ... ok
[INFO] [stdout] test fs::tree::tests::an_unreadable_entry_at_the_root_is_not_named_with_a_leading_slash ... ok
[INFO] [stdout] test fs::tree::tests::the_listing_truncates_but_the_count_does_not ... ok
[INFO] [stdout] test fs::tree::tests::an_entry_that_fails_to_enumerate_lands_in_failures ... ok
[INFO] [stdout] test fs::tree::tests::a_dry_run_counts_everything_and_removes_nothing ... ok
[INFO] [stdout] test fs::transfer::tests::create_does_not_sweep_expired_sessions_itself ... ok
[INFO] [stdout] test fs::tree::tests::a_real_run_removes_the_whole_tree ... ok
[INFO] [stdout] test fs::transfer::tests::an_orphan_part_file_is_not_a_live_session ... ok
[INFO] [stdout] test fs::tree::tests::a_directory_symlink_is_removed_without_descending_into_its_target ... ok
[INFO] [stdout] test fs::transfer::tests::a_matching_checksum_completes ... ok
[INFO] [stdout] test fs::tree::tests::a_symlink_is_removed_without_touching_its_target ... ok
[INFO] [stdout] test fs::transfer::tests::a_pre_existing_symlink_at_the_predicted_staging_path_cannot_be_written_through ... ok
[INFO] [stdout] test output::sanitizer::tests::test_empty_input ... ok
[INFO] [stdout] test output::sanitizer::tests::test_strip_ansi_str ... ok
[INFO] [stdout] test output::sanitizer::tests::test_strip_bold ... ok
[INFO] [stdout] test output::sanitizer::tests::test_strip_cursor_movement ... ok
[INFO] [stderr] 2026-10-06T18:15:22.135372Z  INFO shell_tunnel::logging::tests: test info message
[INFO] [stderr] 2026-10-06T18:15:22.135444Z  WARN shell_tunnel::logging::tests: test warn message
[INFO] [stderr] 2026-10-06T18:15:22.135460Z ERROR shell_tunnel::logging::tests: test error message
[INFO] [stdout] test output::sanitizer::tests::test_preserve_newlines ... ok
[INFO] [stdout] test output::sanitizer::tests::test_plain_text ... ok
[INFO] [stdout] test output::screen::tests::test_clear_method ... ok
[INFO] [stdout] test logging::tests::a_second_try_init_fails_instead_of_panicking ... ok
[INFO] [stdout] test output::screen::tests::test_clear_screen_sequence ... ok
[INFO] [stdout] test output::screen::tests::test_cursor_position ... ok
[INFO] [stdout] test output::sanitizer::tests::test_only_escape_codes ... ok
[INFO] [stdout] test output::sanitizer::tests::test_preserve_tabs ... ok
[INFO] [stdout] test logging::tests::test_logging_works ... ok
[INFO] [stdout] test output::sanitizer::tests::test_complex_sequence ... ok
[INFO] [stdout] test output::sanitizer::tests::test_osc_title ... ok
[INFO] [stdout] test output::sanitizer::tests::test_strip_color_codes ... ok
[INFO] [stdout] test process::tests::a_group_that_never_adopted_a_child_kills_nothing ... ok
[INFO] [stdout] test output::screen::tests::test_process_text ... ok
[INFO] [stdout] test output::screen::tests::test_process_with_newlines ... ok
[INFO] [stdout] test output::screen::tests::test_custom_size ... ok
[INFO] [stdout] test process::tests::a_quoted_command_reaches_the_shell_intact ... ok
[INFO] [stdout] test fs::transfer::tests::two_sessions_may_not_target_the_same_path ... ok
[INFO] [stdout] test relay::protocol::tests::a_requested_device_name_survives_the_wire ... ok
[INFO] [stdout] test relay::protocol::tests::an_old_relays_enrolled_message_has_no_reflexive_addr ... ok
[INFO] [stdout] test output::screen::tests::test_lines_trimmed ... ok
[INFO] [stdout] test relay::protocol::tests::an_old_devices_attach_has_no_attach_id ... ok
[INFO] [stdout] test process::tests::shell_command_runs_a_trivial_command ... ok
[INFO] [stdout] test output::screen::tests::test_process_ansi_colors ... ok
[INFO] [stdout] test output::screen::tests::test_new_screen ... ok
[INFO] [stdout] test relay::protocol::tests::direct_ready_roundtrips ... ok
[INFO] [stdout] test relay::protocol::tests::attach_roundtrips ... ok
[INFO] [stdout] test process::tests::a_quoted_path_is_one_argument ... ok
[INFO] [stdout] test relay::protocol::tests::label_is_optional ... ok
[INFO] [stdout] test relay::protocol::tests::enroll_roundtrips ... ok
[INFO] [stdout] test relay::protocol::tests::direct_ready_without_a_fingerprint_deserializes_as_none ... ok
[INFO] [stdout] test relay::protocol::tests::peer_ready_without_a_fingerprint_deserializes_as_none ... ok
[INFO] [stdout] test relay::protocol::tests::relay_messages_roundtrip ... ok
[INFO] [stdout] test relay::protocol::tests::unknown_message_types_are_rejected ... ok
[INFO] [stdout] test relay::proxy::tests::hop_by_hop_headers_are_not_forwarded ... ok
[INFO] [stdout] test relay::proxy::tests::the_websocket_flag_defaults_to_false_for_older_peers ... ok
[INFO] [stdout] test relay::reachability::tests::a_v4_mapped_address_is_read_as_the_v4_it_carries ... ok
[INFO] [stdout] test relay::proxy::tests::device_path_is_split_from_the_remainder ... ok
[INFO] [stdout] test relay::proxy::tests::non_device_paths_are_rejected ... ok
[INFO] [stdout] test relay::reachability::tests::ipv6_is_judged_by_the_same_rule ... ok
[INFO] [stdout] test relay::reachability::tests::carrier_grade_nat_counts_as_private ... ok
[INFO] [stdout] test relay::reachability::tests::loopback_pairs_are_not_refused ... ok
[INFO] [stdout] test relay::reachability::tests::one_gateway_seen_twice_is_not_refused ... ok
[INFO] [stdout] test fs::transfer::tests::a_cap_limits_concurrent_sessions_and_releasing_one_frees_a_slot ... ok
[INFO] [stdout] test relay::reachability::tests::a_private_address_paired_with_a_public_one_is_impossible ... ok
[INFO] [stdout] test relay::reachability::tests::two_private_addresses_are_not_refused ... ok
[INFO] [stdout] test relay::reachability::tests::the_relation_does_not_depend_on_which_side_is_asking ... ok
[INFO] [stdout] test relay::proxy::tests::proxy_messages_roundtrip ... ok
[INFO] [stdout] test relay::reachability::tests::two_public_addresses_are_not_refused ... ok
[INFO] [stdout] test relay::registry::tests::a_heartbeat_keeps_a_device_attached ... ok
[INFO] [stdout] test relay::registry::tests::attach_and_get ... ok
[INFO] [stdout] test relay::registry::tests::a_replaced_attachment_is_told_it_was_superseded ... ok
[INFO] [stdout] test relay::registry::tests::a_signal_reaches_the_devices_control_session ... ok
[INFO] [stdout] test relay::registry::tests::listing_reports_attached_devices ... ok
[INFO] [stdout] test relay::registry::tests::detach_removes_the_device ... ok
[INFO] [stdout] test relay::registry::tests::reattaching_replaces_the_previous_entry ... ok
[INFO] [stdout] test relay::registry::tests::stale_devices_are_evicted ... ok
[INFO] [stdout] test relay::registry::tests::an_evicted_attachment_is_told_it_was_evicted ... ok
[INFO] [stdout] test relay::registry::tests::detaching_a_replaced_attachment_leaves_its_replacement_attached ... ok
[INFO] [stdout] test relay::registry::tests::listing_an_empty_registry_is_empty ... ok
[INFO] [stdout] test process::tests::a_group_kills_a_background_process_the_command_left_behind ... ok
[INFO] [stdout] test process::tests::killing_a_group_whose_child_already_exited_is_harmless ... ok
[INFO] [stdout] test relay::registry::tests::registry_is_shared_across_clones ... ok
[INFO] [stdout] test relay::tests::a_base_matching_the_scheme_default_needs_no_hint ... ok
[INFO] [stdout] test relay::tests::a_direct_request_between_two_public_addresses_signals_the_target ... ok
[INFO] [stdout] test relay::tests::a_portless_base_inherits_the_listen_port ... ok
[INFO] [stdout] test relay::tests::an_explicit_port_is_the_operator_stating_intent ... ok
[INFO] [stdout] test relay::tests::an_explicit_port_survives_resolution ... ok
[INFO] [stdout] test relay::tests::a_portless_base_on_a_nondefault_port_gets_a_corrected_suggestion ... ok
[INFO] [stdout] test relay::tests::an_observed_address_is_used_when_the_operator_configured_none ... ok
[INFO] [stdout] test relay::tests::a_proxy_chain_scheme_takes_the_first_entry ... ok
[INFO] [stdout] test relay::tests::constant_time_eq_matches_equality ... ok
[INFO] [stdout] test relay::tests::device_names_must_be_url_path_safe ... ok
[INFO] [stdout] test relay::tests::ipv6_literals_look_for_the_port_after_the_bracket ... ok
[INFO] [stdout] test relay::registry::tests::touch_only_succeeds_for_attached_devices ... ok
[INFO] [stdout] test relay::tests::no_host_header_means_nothing_observed ... ok
[INFO] [stdout] test relay::tests::a_direct_request_between_addresses_that_cannot_reach_each_other_is_refused_without_signalling ... ok
[INFO] [stdout] test relay::tests::public_base_defaults_to_the_bind_address ... ok
[INFO] [stdout] test relay::tests::resolution_leaves_a_default_port_base_alone ... ok
[INFO] [stdout] test relay::tests::terminating_tls_makes_the_advertised_url_https ... ok
[INFO] [stdout] test relay::tests::public_url_uses_the_device_path_prefix ... ok
[INFO] [stdout] test relay::tests::the_declined_direct_connection_is_logged_with_both_devices_named ... ok
[INFO] [stdout] test relay::tests::the_port_is_spliced_into_the_authority_not_the_tail ... ok
[INFO] [stdout] test relay::tests::the_forwarded_scheme_and_host_are_preferred_over_the_direct_host ... ok
[INFO] [stdout] test security::auth::tests::test_add_key_with_capabilities ... ok
[INFO] [stdout] test security::auth::tests::test_api_key_store_disabled ... ok
[INFO] [stdout] test relay::tests::the_other_refusals_are_unchanged_by_the_reachability_check ... ok
[INFO] [stdout] test security::auth::tests::test_api_key_store_extract ... ok
[INFO] [stdout] test security::auth::tests::test_api_key_store_multiple_keys ... ok
[INFO] [stdout] test security::auth::tests::test_auth_config_default ... ok
[INFO] [stdout] test security::auth::tests::test_auth_config_disabled ... ok
[INFO] [stdout] test security::auth::tests::test_capabilities_of_unknown_key_is_none ... ok
[INFO] [stdout] test security::auth::tests::test_generate_api_key ... ok
[INFO] [stdout] test relay::tests::a_configured_base_wins_over_what_the_connection_observed ... ok
[INFO] [stdout] test relay::tests::a_loopback_pair_is_still_signalled ... ok
[INFO] [stdout] test security::auth::tests::test_api_key_store_add_remove ... ok
[INFO] [stdout] test relay::tests::an_unrecognized_scheme_is_left_alone ... ok
[INFO] [stdout] test security::auth::tests::the_secret_half_is_not_a_function_of_the_printed_half ... ok
[INFO] [stdout] test security::capability::tests::file_presets_carry_no_exec ... ok
[INFO] [stdout] test security::auth::tests::test_token_record_full_control ... ok
[INFO] [stdout] test security::capability::tests::test_empty_set_satisfies_nothing ... ok
[INFO] [stdout] test security::capability::tests::test_insert ... ok
[INFO] [stdout] test security::auth::tests::keys_generated_back_to_back_are_all_distinct ... ok
[INFO] [stdout] test security::capability::tests::test_membership_is_exact ... ok
[INFO] [stdout] test security::rate_limit::tests::a_refund_returns_the_slot_it_was_charged ... ok
[INFO] [stdout] test security::auth::tests::test_legacy_key_maps_to_full_control ... ok
[INFO] [stdout] test security::rate_limit::tests::remaining_reflects_a_refund ... ok
[INFO] [stdout] test security::rate_limit::tests::test_rate_limit_config_custom ... ok
[INFO] [stdout] test security::rate_limit::tests::test_rate_limit_config_default ... ok
[INFO] [stdout] test security::rate_limit::tests::test_rate_limit_config_disabled ... ok
[INFO] [stdout] test security::rate_limit::tests::test_rate_limiter_allows_requests ... ok
[INFO] [stdout] test security::rate_limit::tests::test_rate_limiter_blocks_excess ... ok
[INFO] [stdout] test security::capability::tests::test_multiple_capabilities ... ok
[INFO] [stdout] test security::rate_limit::tests::test_rate_limiter_disabled ... ok
[INFO] [stdout] test security::capability::tests::test_presets ... ok
[INFO] [stdout] test security::capability::tests::read_only_is_gone_rather_than_silently_redefined ... ok
[INFO] [stdout] test security::rate_limit::tests::a_refund_without_a_charge_creates_nothing ... ok
[INFO] [stdout] test security::rate_limit::tests::test_rate_limiter_ipv6 ... ok
[INFO] [stdout] test security::rate_limit::tests::test_rate_limiter_remaining_count ... ok
[INFO] [stdout] test security::validation::tests::test_looks_like_injection ... ok
[INFO] [stdout] test security::validation::tests::test_permissive_allows_dangerous ... ok
[INFO] [stdout] test security::capability::tests::test_wildcard_satisfies_everything ... ok
[INFO] [stdout] test security::rate_limit::tests::test_rate_limiter_stats ... ok
[INFO] [stdout] test security::validation::tests::test_sanitize_for_display ... ok
[INFO] [stdout] test security::validation::tests::test_blocked_patterns ... ok
[INFO] [stdout] test security::validation::tests::test_validate_command_ok ... ok
[INFO] [stdout] test security::validation::tests::test_validate_dangerous_shutdown ... ok
[INFO] [stdout] test security::validation::tests::test_validate_command_too_long ... ok
[INFO] [stdout] test security::validation::tests::test_validate_command_empty ... ok
[INFO] [stdout] test security::validation::tests::test_validate_null_byte ... ok
[INFO] [stdout] test security::validation::tests::test_validate_timeout ... ok
[INFO] [stdout] test security::validation::tests::test_validate_working_dir ... ok
[INFO] [stdout] test security::validation::tests::test_validation_config_strict ... ok
[INFO] [stdout] test session::context::tests::a_command_that_never_reported_an_exit_code_neither_succeeded_nor_failed ... ok
[INFO] [stdout] test security::rate_limit::tests::test_rate_limiter_different_ips ... ok
[INFO] [stdout] test session::context::tests::test_context_new ... ok
[INFO] [stdout] test session::context::tests::test_execution_count_increments ... ok
[INFO] [stdout] test session::context::tests::test_record_execution ... ok
[INFO] [stdout] test session::id::tests::test_display_format ... ok
[INFO] [stdout] test session::id::tests::test_hash_eq ... ok
[INFO] [stdout] test session::id::tests::test_parse_valid ... ok
[INFO] [stdout] test session::id::tests::test_roundtrip ... ok
[INFO] [stdout] test session::id::tests::test_parse_invalid ... ok
[INFO] [stdout] test security::rate_limit::tests::the_hop_marker_is_stripped_before_any_handler_sees_it ... ok
[INFO] [stdout] test security::validation::tests::test_validate_dangerous_fork_bomb ... ok
[INFO] [stdout] test security::validation::tests::test_validate_dangerous_rm ... ok
[INFO] [stdout] test session::state::tests::test_can_execute ... ok
[INFO] [stdout] test security::validation::tests::test_validation_config_default ... ok
[INFO] [stdout] test session::state::tests::test_created_to_idle_is_valid ... ok
[INFO] [stdout] test session::state::tests::test_default ... ok
[INFO] [stdout] test session::state::tests::test_is_terminal ... ok
[INFO] [stdout] test session::state::tests::test_valid_transitions ... ok
[INFO] [stdout] test session::store::tests::a_session_running_a_command_is_never_swept ... ok
[INFO] [stdout] test session::store::tests::a_session_within_the_ttl_stays ... ok
[INFO] [stdout] test session::store::tests::an_idle_session_is_swept ... ok
[INFO] [stdout] test session::store::tests::test_create_session ... ok
[INFO] [stdout] test session::store::tests::test_get_nonexistent ... ok
[INFO] [stdout] test session::store::tests::test_get_session ... ok
[INFO] [stdout] test session::store::tests::test_list_ids ... ok
[INFO] [stdout] test session::store::tests::test_remove_matching ... ok
[INFO] [stdout] test session::store::tests::test_remove_session ... ok
[INFO] [stdout] test session::store::tests::test_update_nonexistent ... ok
[INFO] [stdout] test session::state::tests::test_invalid_from_terminated ... ok
[INFO] [stdout] test session::store::tests::test_update_session ... ok
[INFO] [stdout] test tunnel::spawned::tests::cloudflared_command_points_at_the_local_server ... ok
[INFO] [stdout] test tunnel::spawned::tests::cloudflared_extracts_the_boxed_quick_tunnel_url ... ok
[INFO] [stdout] test tunnel::spawned::tests::cloudflared_extracts_url_from_a_log_line ... ok
[INFO] [stdout] test session::state::tests::test_invalid_idle_to_created ... ok
[INFO] [stdout] test tunnel::spawned::tests::urls_are_trimmed_of_framing_and_punctuation ... ok
[INFO] [stdout] test tunnel::spawned::tests::cloudflared_ignores_unrelated_urls ... ok
[INFO] [stdout] test tunnel::spawned::tests::custom_command_accepts_any_url ... ok
[INFO] [stdout] test tunnel::spawned::tests::custom_command_exports_the_local_address ... ok
[INFO] [stdout] test relay::proxy::tests::end_to_end_headers_are_forwarded ... ok
[INFO] [stdout] test relay::protocol::tests::request_direct_roundtrips ... ok
[INFO] [stdout] test relay::proxy::tests::a_bare_device_path_maps_to_the_root ... ok
[INFO] [stdout] test relay::protocol::tests::direct_connect_relay_messages_roundtrip ... ok
[INFO] [stdout] test tunnel::spawned::tests::lines_without_a_url_yield_none ... ok
[INFO] [stdout] test session::id::tests::test_uniqueness ... ok
[INFO] [stdout] test tunnel::tests::missing_program_reports_an_install_hint ... ok
[INFO] [stdout] test session::store::tests::test_concurrent_access ... ok
[INFO] [stdout] test relay::registry::tests::taking_from_an_empty_pool_times_out_and_asks_for_a_refill ... ok
[INFO] [stdout] test tunnel::tests::a_provider_that_exits_without_a_url_is_an_error ... ok
[INFO] [stdout] test tunnel::tests::publishes_the_url_a_provider_prints ... ok
[INFO] [stdout] test tunnel::tests::dropping_the_handle_stops_the_tunnel_process ... ok
[INFO] [stdout] test fs::transfer::tests::a_poisoned_sessions_lock_does_not_leak_the_claim_or_the_staging_file ... ok
[INFO] [stdout] test tunnel::tests::a_silent_provider_times_out ... ok
[INFO] [stdout] test security::rate_limit::tests::a_refund_of_an_expired_charge_takes_nothing_from_anyone_else ... ok
[INFO] [stdout] test fs::platform::tests::a_drive_that_never_answers_is_left_out_and_named ... ok
[INFO] [stdout] test process::tests::reaping_on_drop_is_opt_in_and_it_works ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 417 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.12s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/shell_tunnel-4a5d044c88920a38)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test tests::a_preset_with_extras_is_listed_rather_than_named ... ok
[INFO] [stdout] test tests::a_generated_enroll_token_says_it_is_not_saved ... ok
[INFO] [stdout] test tests::an_explicit_file_capability_list_counts_too ... ok
[INFO] [stdout] test tests::a_nested_audit_log_under_the_fs_root_is_detected ... ok
[INFO] [stdout] test tests::an_explicit_preset_is_named_rather_than_the_promoted_one ... ok
[INFO] [stdout] test tests::a_wildcard_scope_is_never_described_as_scoped ... ok
[INFO] [stdout] test tests::an_explicit_audit_path_wins_in_either_posture ... ok
[INFO] [stdout] test tests::audit_log_outside_the_fs_root_is_not_flagged ... ok
[INFO] [stdout] test tests::the_exposed_banner_is_silent_about_an_allow_host_nobody_gave ... ok
[INFO] [stdout] test tests::an_explicit_capability_list_is_spelled_out ... ok
[INFO] [stdout] test tests::the_exposed_banner_names_the_scope_and_the_trail ... ok
[INFO] [stdout] test tests::a_scope_that_withholds_nothing_says_so ... ok
[INFO] [stdout] test tests::an_exposed_run_gets_an_audit_trail_it_did_not_ask_for ... ok
[INFO] [stdout] test tests::an_unauthenticated_server_has_no_token_to_describe ... ok
[INFO] [stdout] test tests::an_unresolved_scope_is_the_wildcard ... ok
[INFO] [stdout] test tests::a_scope_that_withholds_something_does_not_say_it_withholds_nothing ... ok
[INFO] [stdout] test tests::a_token_holding_exec_is_not_confined_by_the_file_root ... ok
[INFO] [stdout] test tests::the_file_presets_have_nothing_but_the_file_api ... ok
[INFO] [stdout] test tests::the_local_banner_says_nothing ... ok
[INFO] [stdout] test tests::audit_log_under_the_fs_root_is_detected ... ok
[INFO] [stdout] test tests::an_uncheckable_audit_log_path_is_an_error_not_a_silent_pass ... ok
[INFO] [stdout] test tests::an_unresolved_scope_is_not_treated_as_file_only ... ok
[INFO] [stdout] test tests::the_exposed_banner_says_allow_host_did_nothing ... ok
[INFO] [stdout] test tests::an_explicit_capability_list_is_ordered ... ok
[INFO] [stdout] test tests::a_local_run_still_creates_nothing ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests shell_tunnel
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test src/execution/mod.rs - execution (line 10) - compile ... ok
[INFO] [stdout] test src/api/mod.rs - api (line 26) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 21) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 50) - compile ... ok
[INFO] [stdout] test src/security/mod.rs - security (line 31) ... ok
[INFO] [stdout] test src/output/mod.rs - output (line 9) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.06s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d3c3c961765c3a1f6a752f253c4ea1f4d2cc91e2440679fccb121b89c5373d57", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d3c3c961765c3a1f6a752f253c4ea1f4d2cc91e2440679fccb121b89c5373d57", kill_on_drop: false }`
[INFO] [stdout] d3c3c961765c3a1f6a752f253c4ea1f4d2cc91e2440679fccb121b89c5373d57
