[INFO] fetching crate vpn-shroud 2.0.2... [INFO] testing vpn-shroud-2.0.2 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate vpn-shroud 2.0.2 into /workspace/builds/worker-6-tc2/source [INFO] started tweaking crates.io crate vpn-shroud 2.0.2 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate vpn-shroud 2.0.2 [INFO] tweaked toml for crates.io crate vpn-shroud 2.0.2 written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate vpn-shroud 2.0.2 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate vpn-shroud 2.0.2 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f66522b32b0486c117f8b3bfe2612663d3715ed0e8862ea78470914f32c069b9 [INFO] running `Command { std: "docker" "start" "-a" "f66522b32b0486c117f8b3bfe2612663d3715ed0e8862ea78470914f32c069b9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f66522b32b0486c117f8b3bfe2612663d3715ed0e8862ea78470914f32c069b9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f66522b32b0486c117f8b3bfe2612663d3715ed0e8862ea78470914f32c069b9", kill_on_drop: false }` [INFO] [stdout] f66522b32b0486c117f8b3bfe2612663d3715ed0e8862ea78470914f32c069b9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a50c0117b0ce0947fa691889bb57c600fd543a10cc1aba5487604037060f8a72 [INFO] running `Command { std: "docker" "start" "-a" "a50c0117b0ce0947fa691889bb57c600fd543a10cc1aba5487604037060f8a72", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling parking v2.2.1 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling winnow v1.0.0 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling toml_datetime v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling cc v1.2.58 [INFO] [stderr] Compiling endi v1.1.1 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling async-io v2.6.0 [INFO] [stderr] Compiling futures-lite v2.6.1 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling async-task v4.7.1 [INFO] [stderr] Compiling libdbus-sys v0.2.7 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling nix v0.31.2 [INFO] [stderr] Compiling piper v0.2.5 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling event-listener v5.4.1 [INFO] [stderr] Compiling async-executor v1.14.0 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling ordered-stream v0.2.0 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling event-listener-strategy v0.5.4 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling async-channel v2.5.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling toml_parser v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling async-lock v3.4.2 [INFO] [stderr] Compiling blocking v1.6.2 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling async-broadcast v0.7.2 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling ureq-proto v0.6.0 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling dbus v0.9.10 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling toml_edit v0.25.8+spec-1.1.0 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling pastey v0.2.1 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling utf8-zero v0.8.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling ctrlc v3.5.2 [INFO] [stderr] Compiling proc-macro-crate v3.5.0 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling enumflags2_derive v0.7.12 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling notify-rust v4.12.0 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling rustls-webpki v0.103.10 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling polling v3.11.0 [INFO] [stderr] Compiling async-signal v0.2.13 [INFO] [stderr] Compiling zvariant_utils v3.3.0 [INFO] [stderr] Compiling enumflags2 v0.7.12 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling async-process v2.5.0 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling zvariant_derive v5.10.0 [INFO] [stderr] Compiling zvariant v5.10.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling ureq v3.3.0 [INFO] [stderr] Compiling zbus_names v4.3.1 [INFO] [stderr] Compiling zbus_macros v5.13.0 [INFO] [stderr] Compiling zbus v5.13.0 [INFO] [stderr] Compiling ksni v0.3.3 [INFO] [stderr] Compiling vpn-shroud v2.0.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 22s [INFO] running `Command { std: "docker" "inspect" "a50c0117b0ce0947fa691889bb57c600fd543a10cc1aba5487604037060f8a72", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a50c0117b0ce0947fa691889bb57c600fd543a10cc1aba5487604037060f8a72", kill_on_drop: false }` [INFO] [stdout] a50c0117b0ce0947fa691889bb57c600fd543a10cc1aba5487604037060f8a72 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5b088d5364909c099e9aac51ae5e1eadbc7ad4a67f06a87f8deb615b1d2a37c3 [INFO] running `Command { std: "docker" "start" "-a" "5b088d5364909c099e9aac51ae5e1eadbc7ad4a67f06a87f8deb615b1d2a37c3", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling polling v3.11.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling async-io v2.6.0 [INFO] [stderr] Compiling async-signal v0.2.13 [INFO] [stderr] Compiling async-process v2.5.0 [INFO] [stderr] Compiling zbus v5.13.0 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tokio-test v0.4.5 [INFO] [stderr] Compiling ksni v0.3.3 [INFO] [stderr] Compiling vpn-shroud v2.0.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 55.34s [INFO] running `Command { std: "docker" "inspect" "5b088d5364909c099e9aac51ae5e1eadbc7ad4a67f06a87f8deb615b1d2a37c3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5b088d5364909c099e9aac51ae5e1eadbc7ad4a67f06a87f8deb615b1d2a37c3", kill_on_drop: false }` [INFO] [stdout] 5b088d5364909c099e9aac51ae5e1eadbc7ad4a67f06a87f8deb615b1d2a37c3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 496bb83cb0efe50f03e2e9ae6c055cb1a489facd6f485e3ea8b85de77288a8fc [INFO] running `Command { std: "docker" "start" "-a" "496bb83cb0efe50f03e2e9ae6c055cb1a489facd6f485e3ea8b85de77288a8fc", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.37s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shroud-0952732a5cfce220) [INFO] [stdout] [INFO] [stdout] running 259 tests [INFO] [stdout] test cli::validation::tests::test_contains_shell_metacharacters ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_path_empty_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_timeout_injection_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_path_valid ... ok [INFO] [stdout] test cli::validation::tests::test_validate_timeout_negative_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_timeout_non_numeric_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_path_too_long_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_sanitize_for_display ... ok [INFO] [stdout] test cli::validation::tests::test_looks_like_injection ... ok [INFO] [stdout] test cli::validation::tests::test_validate_timeout_too_large_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_path_null_bytes_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_timeout_valid ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_level_valid ... ok [INFO] [stdout] test cli::validation::tests::test_validate_timeout_zero_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_real_world_names_accepted ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_shell_chars_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_too_long_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_empty_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_newlines_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_trims_whitespace ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_null_bytes_rejected ... ok [INFO] [stdout] test config::settings::tests::test_dns_mode_default ... ok [INFO] [stdout] test config::settings::tests::test_dns_mode_display ... ok [INFO] [stdout] test config::settings::tests::test_config_error_display ... ok [INFO] [stdout] test config::settings::tests::test_killswitch_config_default ... ok [INFO] [stdout] test config::settings::tests::test_headless_config_default ... ok [INFO] [stdout] test config::settings::tests::test_config_default ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_level_injection ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_level_invalid ... ok [INFO] [stdout] test config::settings::tests::test_ipv6_mode_serialize ... ok [INFO] [stdout] test config::settings::tests::test_dns_mode_serialize ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_valid ... ok [INFO] [stdout] test config::settings::tests::test_headless_config_serialize_roundtrip ... ok [INFO] [stdout] test config::settings::tests::test_killswitch_config_roundtrip ... ok [INFO] [stdout] test config::settings::tests::test_config_partial_parse ... ok [INFO] [stdout] test config::settings::tests::test_config_serialize_deserialize ... ok [INFO] [stdout] test config::settings::tests::test_validate_custom_doh_blocklist_injection_rejected ... ok [INFO] [stdout] test config::settings::tests::test_validate_custom_doh_blocklist_non_ip_rejected ... ok [INFO] [stdout] test config::settings::tests::test_validate_degraded_threshold_bounds ... ok [INFO] [stdout] test config::settings::tests::test_validate_custom_doh_blocklist_valid ... ok [INFO] [stdout] test config::settings::tests::test_validate_health_endpoint_http_rejected ... ok [INFO] [stdout] test config::settings::tests::test_validate_empty_last_server ... ok [INFO] [stdout] test config::settings::tests::test_validate_health_endpoint_https_ok ... ok [INFO] [stdout] test config::settings::tests::test_validate_health_endpoints_too_many ... ok [INFO] [stdout] test config::settings::tests::test_load_returns_defaults_when_file_missing ... ok [INFO] [stdout] test config::settings::tests::test_validate_health_interval_too_high ... ok [INFO] [stdout] test config::settings::tests::test_validate_health_interval_too_low ... ok [INFO] [stdout] test config::settings::tests::test_validate_no_last_server ... ok [INFO] [stdout] test config::settings::tests::test_validate_reconnect_attempts_too_high ... ok [INFO] [stdout] test config::settings::tests::test_validate_valid_last_server ... ok [INFO] [stdout] test health::checker::tests::test_default_config_has_multiple_endpoints ... ok [INFO] [stdout] test health::checker::tests::test_default_impl ... ok [INFO] [stdout] test config::settings::tests::test_load_validated_returns_defaults_for_missing_file ... ok [INFO] [stdout] test health::checker::tests::test_config_clone ... ok [INFO] [stdout] test health::checker::tests::test_degraded_counter_increments ... ok [INFO] [stdout] test health::checker::tests::test_config_with_single_endpoint ... ok [INFO] [stdout] test health::checker::tests::test_degraded_threshold_boundary ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_check_empty_unknown ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_check_private_secure ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_check_public_leaks ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_result_equality ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_check_localhost_secure ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_check_mixed ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_cloudflare_trace_ipv6 ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_cloudflare_trace_missing_ip ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_empty_body ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_garbage ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_plain_text_ipv4 ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_html ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_plain_text_trimmed ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_plain_text_ipv6 ... ok [INFO] [stdout] test config::settings::tests::test_migration_from_version_0_adds_defaults ... ok [INFO] [stdout] test health::checker::tests::test_failure_threshold_boundary ... ok [INFO] [stdout] test health::checker::tests::test_health_checker_reset ... ok [INFO] [stdout] test config::settings::tests::test_save_creates_directory_and_writes_config ... ok [INFO] [stdout] test health::checker::tests::test_failure_counter_increments ... ok [INFO] [stdout] test config::settings::tests::test_validate_health_interval_zero_ok ... ok [INFO] [stdout] test config::settings::tests::test_save_atomic_no_temp_file_remains ... ok [INFO] [stdout] test health::checker::tests::test_health_config_default ... ok [INFO] [stdout] test health::checker::tests::test_health_config_dns_leak_check_default ... ok [INFO] [stdout] test config::settings::tests::test_unknown_fields_ignored ... ok [INFO] [stdout] test health::checker::tests::test_health_result_clone ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_check_no_nameservers_unknown ... ok [INFO] [stdout] test config::settings::tests::test_save_sets_secure_permissions ... ok [INFO] [stdout] test health::checker::tests::test_health_config_with_exit_ip ... ok [INFO] [stdout] test health::checker::tests::test_is_safe_resolver_172_boundary ... ok [INFO] [stdout] test health::checker::tests::test_health_result_equality ... ok [INFO] [stdout] test health::checker::tests::test_is_safe_resolver_ipv6_private ... ok [INFO] [stdout] test config::settings::tests::test_save_then_load_roundtrip ... ok [INFO] [stdout] test config::settings::tests::test_load_validated_rejects_invalid_config ... ok [INFO] [stdout] test health::checker::tests::test_health_result_debug ... ok [INFO] [stdout] test health::checker::tests::test_health_config_custom ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_cloudflare_trace ... ok [INFO] [stdout] test health::checker::tests::test_parse_resolv_conf_basic ... ok [INFO] [stdout] test health::checker::tests::test_parse_resolv_conf_empty ... ok [INFO] [stdout] test health::checker::tests::test_parse_resolv_conf_multiple ... ok [INFO] [stdout] test health::checker::tests::test_reset_clears_all_counters ... ok [INFO] [stdout] test health::checker::tests::test_reset_is_idempotent ... ok [INFO] [stdout] test health::checker::tests::test_suspend_expired_not_suspended ... ok [INFO] [stdout] test health::checker::tests::test_suspend_preserves_counters ... ok [INFO] [stdout] test health::tests::health_tests::test_custom_config ... ok [INFO] [stdout] test health::tests::health_tests::test_default_config_values ... ok [INFO] [stdout] test health::tests::health_tests::test_degraded_threshold_logic ... ok [INFO] [stdout] test health::checker::tests::test_parse_resolv_conf_with_comments ... ok [INFO] [stdout] test health::tests::health_tests::test_health_checker_new ... ok [INFO] [stdout] test health::tests::health_tests::test_health_checker_with_config ... ok [INFO] [stdout] test health::tests::health_tests::test_health_result_variants ... ok [INFO] [stdout] test health::checker::tests::test_is_safe_resolver_loopback ... ok [INFO] [stdout] test health::checker::tests::test_is_safe_resolver_not_an_ip ... ok [INFO] [stdout] test health::checker::tests::test_parse_resolv_conf_no_nameservers ... ok [INFO] [stdout] test health::checker::tests::test_resume_clears_suspension ... ok [INFO] [stdout] test config::settings::tests::test_load_with_invalid_toml_returns_defaults ... ok [INFO] [stdout] test health::checker::tests::test_resume_when_not_suspended ... ok [INFO] [stdout] test health::checker::tests::test_is_safe_resolver_private ... ok [INFO] [stdout] test health::checker::tests::test_suspend_sets_until ... ok [INFO] [stdout] test health::checker::tests::test_is_safe_resolver_public_unsafe ... ok [INFO] [stdout] test health::tests::health_tests::test_latency_edge_cases ... ok [INFO] [stdout] test health::tests::health_tests::test_health_result_clone ... ok [INFO] [stdout] test ipc::protocol::tests::test_error_message ... ok [INFO] [stdout] test ipc::protocol::tests::test_deserialize_invalid_json ... ok [INFO] [stdout] test ipc::protocol::tests::test_command_deserialize_connect ... ok [INFO] [stdout] test ipc::protocol::tests::test_command_serialize_connect ... ok [INFO] [stdout] test ipc::protocol::tests::test_response_is_not_ok_for_error ... ok [INFO] [stdout] test ipc::protocol::tests::test_deserialize_empty_object ... ok [INFO] [stdout] test ipc::protocol::tests::test_error_message_none_for_ok ... ok [INFO] [stdout] test ipc::protocol::tests::test_command_descriptions ... ok [INFO] [stdout] test ipc::protocol::tests::test_response_serialize_error ... ok [INFO] [stdout] test ipc::protocol::tests::test_response_serialize_ok ... ok [INFO] [stdout] test ipc::protocol::tests::test_response_serialize_version_mismatch ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_quit ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_hello ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_killswitch_enable ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_response_status ... ok [INFO] [stdout] test ipc::protocol::tests::test_response_serialize_hello_ok ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_reconnect ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_killswitch_disable ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_list_with_filter ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_response_connections ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_ping ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_status ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_list_no_filter ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_disconnect ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_switch ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_version ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_version_info ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_connect_empty ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_connect_valid ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_list_invalid_type ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_other_commands ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_switch_empty ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_list_no_type ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_switch_valid ... ok [INFO] [stdout] test ipc::protocol::tests::test_validation_hello_valid ... ok [INFO] [stdout] test ipc::protocol::tests::test_validation_hello_zero ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_list_valid_type ... ok [INFO] [stdout] test ipc::protocol::tests::test_vpn_connection_info_roundtrip ... ok [INFO] [stdout] test notifications::manager::tests::accessor_tests::test_sound_critical_default_false ... ok [INFO] [stdout] test notifications::manager::tests::config_update_tests::test_update_config ... ok [INFO] [stdout] test ipc::protocol::tests::test_vpn_connection_info_serialize ... ok [INFO] [stdout] test notifications::manager::tests::config_update_tests::test_update_throttle ... ok [INFO] [stdout] test notifications::manager::tests::accessor_tests::test_sound_critical ... ok [INFO] [stdout] test notifications::manager::tests::accessor_tests::test_suppressed_count_initial ... ok [INFO] [stdout] test notifications::manager::tests::accessor_tests::test_timeout_ms ... ok [INFO] [stdout] test notifications::manager::tests::config_tests::test_defaults ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_enabled_by_default ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_first_run_disable ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_killswitch_disable ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_health_disable ... ok [INFO] [stdout] test notifications::manager::tests::should_display_tests::test_disabled_category ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_per_category_disable ... ok [INFO] [stdout] test notifications::manager::tests::should_display_tests::test_enabled_and_not_throttled ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_reconnection_disable ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_master_disable ... ok [INFO] [stdout] test notifications::manager::tests::should_display_tests::test_throttled ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_error_disable ... ok [INFO] [stdout] test notifications::manager::tests::throttle_tests::test_after_window_not_throttled ... ok [INFO] [stdout] test ipc::protocol::tests::test_response_is_ok ... ok [INFO] [stdout] test notifications::manager::tests::throttle_tests::test_same_category_throttled ... ok [INFO] [stdout] test ipc::protocol::tests::test_socket_path_uses_xdg ... ok [INFO] [stdout] test notifications::types::tests::action_tests::test_action_equality ... ok [INFO] [stdout] test notifications::types::tests::action_tests::test_action_inequality ... ok [INFO] [stdout] test notifications::manager::tests::throttle_tests::test_different_category_not_throttled ... ok [INFO] [stdout] test notifications::manager::tests::should_display_tests::test_throttled_increments_suppressed ... ok [INFO] [stdout] test notifications::manager::tests::throttle_tests::test_first_event_not_throttled ... ok [INFO] [stdout] test notifications::manager::tests::throttle_tests::test_no_throttle_when_disabled ... ok [INFO] [stdout] test notifications::types::tests::action_tests::test_dismiss_action ... ok [INFO] [stdout] test notifications::types::tests::action_tests::test_new_action ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_all_categories_have_config_key ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_config_keys ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_critical_timeout_longer ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_icons_are_symbolic ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_icons_contain_expected_keywords ... ok [INFO] [stdout] test notifications::types::tests::action_tests::test_reconnect_action ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_should_play_sound ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_urgency_critical ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_supports_actions ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_urgency_low ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_urgency_normal ... ok [INFO] [stdout] test notifications::types::tests::notification_tests::test_category_preserved ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_disconnection_disable ... ok [INFO] [stdout] test notifications::types::tests::notification_tests::test_new_inherits_category_defaults ... ok [INFO] [stdout] test notifications::types::tests::notification_tests::test_title_and_body ... ok [INFO] [stdout] test notifications::types::tests::notification_tests::test_with_urgency_override ... ok [INFO] [stdout] test notifications::types::tests::notification_tests::test_with_action ... ok [INFO] [stdout] test notifications::types::tests::urgency_tests::test_urgency_clone ... ok [INFO] [stdout] test notifications::types::tests::notification_tests::test_with_timeout_override ... ok [INFO] [stdout] test notifications::types::tests::urgency_tests::test_urgency_debug ... ok [INFO] [stdout] test notifications::types::tests::urgency_tests::test_urgency_inequality ... ok [INFO] [stdout] test state::machine::tests::test_connected_to_degraded ... ok [INFO] [stdout] test state::machine::tests::test_connected_health_ok_no_transition ... ok [INFO] [stdout] test notifications::types::tests::urgency_tests::test_urgency_equality ... ok [INFO] [stdout] test state::machine::tests::test_connected_vpn_down_triggers_reconnect ... ok [INFO] [stdout] test state::machine::tests::test_connecting_connection_failed ... ok [INFO] [stdout] test state::machine::tests::test_connecting_nm_vpn_down ... ok [INFO] [stdout] test state::machine::tests::test_connecting_to_connected ... ok [INFO] [stdout] test state::machine::tests::test_default_config_values ... ok [INFO] [stdout] test state::machine::tests::test_default_impl ... ok [INFO] [stdout] test state::machine::tests::test_connected_vpn_changed ... ok [INFO] [stdout] test state::machine::tests::test_degraded_vpn_down ... ok [INFO] [stdout] test state::machine::tests::test_disconnected_to_connecting ... ok [INFO] [stdout] test state::machine::tests::test_external_connection_detected ... ok [INFO] [stdout] test state::machine::tests::test_failed_external_recovery ... ok [INFO] [stdout] test state::machine::tests::test_degraded_health_ok_recovery ... ok [INFO] [stdout] test state::machine::tests::test_degraded_to_reconnecting ... ok [INFO] [stdout] test state::machine::tests::test_failed_user_enable_restarts ... ok [INFO] [stdout] test state::machine::tests::test_reconnecting_connection_failed ... ok [INFO] [stdout] test state::machine::tests::test_full_lifecycle ... ok [INFO] [stdout] test state::machine::tests::test_reconnecting_success ... ok [INFO] [stdout] test state::machine::tests::test_reconnecting_timeout_increments ... ok [INFO] [stdout] test state::machine::tests::test_retry_exhaustion ... ok [INFO] [stdout] test state::machine::tests::test_retries_accessor ... ok [INFO] [stdout] test state::machine::tests::test_reconnecting_timeout_exhausted ... ok [INFO] [stdout] test state::machine::tests::test_set_state_same_state_no_log ... ok [INFO] [stdout] test state::machine::tests::test_max_retries_accessor ... ok [INFO] [stdout] test state::machine::tests::test_unhandled_events_return_none ... ok [INFO] [stdout] test state::types::tests::test_active_vpn_info ... ok [INFO] [stdout] test state::types::tests::test_all_event_variants ... ok [INFO] [stdout] test state::machine::tests::test_set_state_logs_transition ... ok [INFO] [stdout] test state::types::tests::test_all_transition_reasons ... ok [INFO] [stdout] test state::machine::tests::test_sleep_event_no_transition ... ok [INFO] [stdout] test state::types::tests::test_event_clone ... ok [INFO] [stdout] test state::machine::tests::test_user_disable_from_any_state ... ok [INFO] [stdout] test state::types::tests::test_event_display ... ok [INFO] [stdout] test state::machine::tests::test_user_disable_resets_retries ... ok [INFO] [stdout] test state::types::tests::test_nm_vpn_state_display ... ok [INFO] [stdout] test state::types::tests::test_nm_vpn_state_equality ... ok [INFO] [stdout] test state::types::tests::test_transition_reason_display ... ok [INFO] [stdout] test state::machine::tests::test_wake_event_returns_none ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_display ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_is_busy ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_is_active ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_equality ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_clone ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_name ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_level_case_insensitive ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_pong ... ok [INFO] [stdout] test config::settings::tests::test_validate_valid_config ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_server_name ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/shroud-3f4228b130b43131) [INFO] [stdout] test health::checker::tests::test_health_config_default_no_exit_ip ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 259 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 796 tests [INFO] [stdout] test autostart::tests::test_disable_removes_desktop_file ... ignored, requires XDG desktop environment - run with: cargo test -- --ignored [INFO] [stdout] test autostart::tests::test_enable_creates_desktop_file ... ignored, requires XDG desktop environment - run with: cargo test -- --ignored [INFO] [stdout] test autostart::tests::test_desktop_file_path_returns_valid_path ... ok [INFO] [stdout] test autostart::tests::test_disable_succeeds_when_not_enabled ... ok [INFO] [stdout] test autostart::tests::test_enable_creates_parent_directory ... ok [INFO] [stdout] test autostart::tests::test_cleanup_old_systemd_succeeds_when_no_service ... ok [INFO] [stdout] test autostart::tests::test_toggle_disables_when_enabled ... ignored, requires XDG desktop environment - run with: cargo test -- --ignored [INFO] [stdout] test autostart::tests::test_toggle_enables_when_disabled ... ignored, requires XDG desktop environment - run with: cargo test -- --ignored [INFO] [stdout] test autostart::tests::test_status_returns_valid_struct ... ok [INFO] [stdout] test cli::args::security_tests::test_log_level_case_insensitive ... ok [INFO] [stdout] test autostart::tests::test_find_binary_returns_existing_path ... ok [INFO] [stdout] test cli::args::security_tests::test_log_level_injection_rejected ... ok [INFO] [stdout] test cli::args::security_tests::test_log_level_valid_accepted ... ok [INFO] [stdout] test autostart::tests::test_is_enabled_does_not_panic ... ok [INFO] [stdout] test cli::args::security_tests::test_log_level_invalid_rejected ... ok [INFO] [stdout] test cli::args::security_tests::test_log_path_empty_rejected ... ok [INFO] [stdout] test autostart::tests::test_generate_desktop_entry_contains_required_fields ... ok [INFO] [stdout] test cli::args::security_tests::test_log_path_null_bytes_rejected ... ok [INFO] [stdout] test cli::args::security_tests::test_timeout_max_accepted ... ok [INFO] [stdout] test cli::args::security_tests::test_timeout_too_large_rejected ... ok [INFO] [stdout] test cli::args::security_tests::test_timeout_negative_rejected ... ok [INFO] [stdout] test cli::args::security_tests::test_timeout_valid_accepted ... ok [INFO] [stdout] test cli::args::security_tests::test_timeout_zero_rejected ... ok [INFO] [stdout] test cli::args::security_tests::test_verbosity_clamped ... ok [INFO] [stdout] test cli::args::security_tests::test_vpn_name_empty_rejected ... ok [INFO] [stdout] test cli::args::security_tests::test_vpn_name_null_bytes_rejected ... ok [INFO] [stdout] test cli::args::security_tests::test_vpn_name_too_long_rejected ... ok [INFO] [stdout] test cli::args::tests::test_command_help_flag ... ok [INFO] [stdout] test cli::args::tests::test_combined_verbose_flags ... ok [INFO] [stdout] test cli::args::tests::test_connect_command ... ok [INFO] [stdout] test cli::args::tests::test_debug_on ... ok [INFO] [stdout] test cli::args::tests::test_daemon_mode_no_command ... ok [INFO] [stdout] test cli::args::tests::test_import_command ... ok [INFO] [stdout] test cli::args::tests::test_killswitch_default_status ... ok [INFO] [stdout] test cli::args::tests::test_invalid_command ... ok [INFO] [stdout] test cli::args::tests::test_killswitch_toggle ... ok [INFO] [stdout] test cli::args::tests::test_list_json_flag ... ok [INFO] [stdout] test cli::args::tests::test_list_alias ... ok [INFO] [stdout] test cli::args::tests::test_list_with_type_filter ... ok [INFO] [stdout] test cli::args::tests::test_quit_aliases ... ok [INFO] [stdout] test cli::args::security_tests::test_vpn_name_newlines_rejected ... ok [INFO] [stdout] test cli::args::tests::test_doctor_command ... ok [INFO] [stdout] test cli::args::security_tests::test_vpn_name_shell_chars_rejected ... ok [INFO] [stdout] test cli::args::tests::test_quiet_flag ... ok [INFO] [stdout] test cli::args::tests::test_help_command ... ok [INFO] [stdout] test cli::args::tests::test_status_command ... ok [INFO] [stdout] test cli::args::tests::test_status_json ... ok [INFO] [stdout] test cli::args::tests::test_timeout_flag ... ok [INFO] [stdout] test cli::args::tests::test_verbose_flags ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_auto_reconnect_on ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_connect ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_auto_reconnect_toggle ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_debug_dump ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_debug_off ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_debug_on ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_debug_tail_is_local ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_disconnect ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_killswitch_off ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_killswitch_on ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_killswitch_status ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_debug_log_path ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_list_no_filter ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_auto_reconnect_status ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_killswitch_toggle ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_list_with_filter ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_local_commands_return_none ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_quit ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_ping ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_reload ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_reconnect ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_restart ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_refresh ... ok [INFO] [stdout] test cli::args::tests::test_verify_killswitch_command ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_status ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_switch ... ok [INFO] [stdout] test cli::args::tests::test_verify_ks_alias ... ok [INFO] [stdout] test cli::handlers::tests::handle_response_tests::test_ar_status_response ... ok [INFO] [stdout] test cli::handlers::tests::handle_response_tests::test_debug_info_response ... ok [INFO] [stdout] test cli::handlers::tests::handle_response_tests::test_error_response ... ok [INFO] [stdout] test cli::handlers::tests::handle_response_tests::test_ok_response ... ok [INFO] [stdout] test cli::handlers::tests::handle_response_tests::test_json_output_error ... ok [INFO] [stdout] test cli::handlers::tests::args_to_command_tests::test_auto_reconnect_off ... ok [INFO] [stdout] test cli::handlers::tests::test_handle_autostart_on_off ... ignored, requires XDG desktop environment - run with: cargo test -- --ignored [INFO] [stdout] test cli::handlers::tests::handle_response_tests::test_status_response_disconnected ... ok [INFO] [stdout] test cli::handlers::tests::test_handle_autostart_toggle ... ignored, requires XDG desktop environment - run with: cargo test -- --ignored [INFO] [stdout] test cli::handlers::tests::handle_response_tests::test_ks_status_response ... ok [INFO] [stdout] test cli::handlers::tests::handle_response_tests::test_connections_response ... ok [INFO] [stdout] test cli::handlers::tests::test_help_connect ... ok [INFO] [stdout] test cli::handlers::tests::handle_response_tests::test_json_output_ok ... ok [INFO] [stdout] test cli::handlers::tests::test_handle_autostart_status ... ok [INFO] [stdout] test cli::handlers::tests::test_handle_cleanup_returns_zero ... ok [INFO] [stdout] test cli::handlers::tests::test_handle_version_returns_zero ... ok [INFO] [stdout] test cli::handlers::tests::handle_response_tests::test_pong_response ... ok [INFO] [stdout] test cli::handlers::tests::handle_response_tests::test_quiet_ok ... ok [INFO] [stdout] test cli::handlers::tests::test_handle_autostart_json_output ... ok [INFO] [stdout] test cli::handlers::tests::handle_response_tests::test_status_response_connected ... ok [INFO] [stdout] test cli::handlers::tests::handle_response_tests::test_ok_message_response ... ok [INFO] [stdout] test cli::handlers::tests::test_help_invalid_command ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_level_injection ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_level_invalid ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_level_valid ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_path_empty_rejected ... ok [INFO] [stdout] test cli::handlers::tests::test_help_main ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_path_too_long_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_path_valid ... ok [INFO] [stdout] test cli::handlers::tests::test_is_daemon_running_returns_bool ... ok [INFO] [stdout] test cli::validation::tests::test_contains_shell_metacharacters ... ok [INFO] [stdout] test cli::validation::tests::test_looks_like_injection ... ok [INFO] [stdout] test cli::validation::tests::test_validate_timeout_injection_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_timeout_valid ... ok [INFO] [stdout] test cli::validation::tests::test_sanitize_for_display ... ok [INFO] [stdout] test cli::validation::tests::test_validate_timeout_zero_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_empty_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_newlines_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_path_null_bytes_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_null_bytes_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_shell_chars_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_real_world_names_accepted ... ok [INFO] [stdout] test cli::validation::tests::test_validate_timeout_non_numeric_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_valid ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_too_long_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_timeout_negative_rejected ... ok [INFO] [stdout] test cli::validation::tests::test_validate_log_level_case_insensitive ... ok [INFO] [stdout] test cli::validation::tests::test_validate_timeout_too_large_rejected ... ok [INFO] [stdout] test config::settings::tests::test_dns_mode_default ... ok [INFO] [stdout] test config::settings::tests::test_dns_mode_display ... ok [INFO] [stdout] test cli::validation::tests::test_validate_vpn_name_trims_whitespace ... ok [INFO] [stdout] test config::settings::tests::test_config_default ... ok [INFO] [stdout] test config::settings::tests::test_config_error_display ... ok [INFO] [stdout] test config::settings::tests::test_config_partial_parse ... ok [INFO] [stdout] test config::settings::tests::test_killswitch_config_default ... ok [INFO] [stdout] test config::settings::tests::test_headless_config_serialize_roundtrip ... ok [INFO] [stdout] test config::settings::tests::test_load_validated_returns_defaults_for_missing_file ... ok [INFO] [stdout] test config::settings::tests::test_dns_mode_serialize ... ok [INFO] [stdout] test config::settings::tests::test_headless_config_default ... ok [INFO] [stdout] test config::settings::tests::test_ipv6_mode_serialize ... ok [INFO] [stdout] test config::settings::tests::test_killswitch_config_roundtrip ... ok [INFO] [stdout] test config::settings::tests::test_load_returns_defaults_when_file_missing ... ok [INFO] [stdout] test config::settings::tests::test_config_serialize_deserialize ... ok [INFO] [stdout] test config::settings::tests::test_load_validated_rejects_invalid_config ... ok [INFO] [stdout] test config::settings::tests::test_validate_health_interval_too_high ... ok [INFO] [stdout] test config::settings::tests::test_validate_health_interval_too_low ... ok [INFO] [stdout] test config::settings::tests::test_unknown_fields_ignored ... ok [INFO] [stdout] test config::settings::tests::test_validate_custom_doh_blocklist_injection_rejected ... ok [INFO] [stdout] test config::settings::tests::test_validate_custom_doh_blocklist_non_ip_rejected ... ok [INFO] [stdout] test config::settings::tests::test_validate_custom_doh_blocklist_valid ... ok [INFO] [stdout] test config::settings::tests::test_validate_degraded_threshold_bounds ... ok [INFO] [stdout] test config::settings::tests::test_validate_health_interval_zero_ok ... ok [INFO] [stdout] test config::settings::tests::test_validate_no_last_server ... ok [INFO] [stdout] test config::settings::tests::test_validate_valid_config ... ok [INFO] [stdout] test config::settings::tests::test_validate_valid_last_server ... ok [INFO] [stdout] test config::settings::tests::test_validate_reconnect_attempts_too_high ... ok [INFO] [stdout] test daemon::lock::tests::test_lock_file_path_uses_runtime_dir ... ok [INFO] [stdout] test config::settings::tests::test_validate_health_endpoint_https_ok ... ok [INFO] [stdout] test config::settings::tests::test_validate_empty_last_server ... ok [INFO] [stdout] test dbus::monitor::tests::test_dedup_after_window_accepted ... ok [INFO] [stdout] test config::settings::tests::test_validate_health_endpoint_http_rejected ... ok [INFO] [stdout] test config::settings::tests::test_validate_health_endpoints_too_many ... ok [INFO] [stdout] test dbus::monitor::tests::test_dedup_different_event_type_accepted ... ok [INFO] [stdout] test dbus::monitor::tests::test_dedup_different_vpn_accepted ... ok [INFO] [stdout] test dbus::monitor::tests::test_dedup_window_reasonable ... ok [INFO] [stdout] test dbus::monitor::tests::test_dedup_unknown_vpn_filtered ... ok [INFO] [stdout] test dbus::monitor::tests::test_nm_event_debug ... ok [INFO] [stdout] test dbus::monitor::tests::test_dedup_first_event_accepted ... ok [INFO] [stdout] test dbus::monitor::tests::test_nm_event_clone ... ok [INFO] [stdout] test dbus::monitor::tests::test_dedup_same_event_within_window_rejected ... ok [INFO] [stdout] test dbus::monitor::tests::test_vpn_failure_reason_all_known ... ok [INFO] [stdout] test dbus::monitor::tests::test_nm_monitor_new ... ok [INFO] [stdout] test dbus::monitor::tests::test_vpn_failure_reason_basic_codes ... ok [INFO] [stdout] test dbus::monitor::tests::test_vpn_failure_reason_unknown_includes_code ... ok [INFO] [stdout] test dbus::tests::dbus_tests::test_connection_type_detection ... ok [INFO] [stdout] test dbus::tests::dbus_tests::test_dbus_path_parsing ... ok [INFO] [stdout] test dbus::monitor::tests::test_vpn_failure_reason ... ok [INFO] [stdout] test dbus::tests::dbus_tests::test_nm_event_variants ... ok [INFO] [stdout] test dbus::tests::dbus_tests::test_event_channel_capacity ... ok [INFO] [stdout] test dbus::tests::dbus_tests::test_nm_event_clone ... ok [INFO] [stdout] test dbus::types::tests::failure_reasons::test_all_known_reasons_non_empty ... ok [INFO] [stdout] test dbus::tests::dbus_tests::test_vpn_state_parsing ... ok [INFO] [stdout] test dbus::types::tests::nm_active_state::test_from_u32 ... ok [INFO] [stdout] test dbus::types::tests::nm_active_state::test_is_connected ... ok [INFO] [stdout] test dbus::tests::dbus_tests::test_vpn_state_to_event ... ok [INFO] [stdout] test dbus::types::tests::failure_reasons::test_unknown_reason ... ok [INFO] [stdout] test config::settings::tests::test_load_with_invalid_toml_returns_defaults ... ok [INFO] [stdout] test dbus::types::tests::failure_reasons::test_known_reasons ... ok [INFO] [stdout] test dbus::types::tests::nm_active_state::test_is_transitioning ... ok [INFO] [stdout] test dbus::types::tests::nm_device_state::test_is_connected ... ok [INFO] [stdout] test dbus::types::tests::nm_vpn_state::test_descriptions ... ok [INFO] [stdout] test dbus::types::tests::nm_vpn_state::test_from_u32_unknown ... ok [INFO] [stdout] test dbus::types::tests::nm_vpn_state::test_is_activating ... ok [INFO] [stdout] test dbus::types::tests::nm_device_state::test_from_u32 ... ok [INFO] [stdout] test dbus::types::tests::nm_vpn_state::test_is_active ... ok [INFO] [stdout] test dbus::types::tests::nm_vpn_state::test_from_u32_known ... ok [INFO] [stdout] test dbus::types::tests::nm_vpn_state::test_is_disconnected ... ok [INFO] [stdout] test dbus::types::tests::path_parsing::test_build_active_path ... ok [INFO] [stdout] test dbus::types::tests::path_parsing::test_parse_path_id_no_slash ... ok [INFO] [stdout] test dbus::types::tests::path_parsing::test_parse_path_id ... ok [INFO] [stdout] test dbus::types::tests::path_parsing::test_parse_path_id_root ... ok [INFO] [stdout] test dbus::types::tests::path_parsing::test_parse_path_id_simple ... ok [INFO] [stdout] test dbus::types::tests::nm_vpn_state::test_is_failed ... ok [INFO] [stdout] test dbus::types::tests::path_parsing::test_build_settings_path ... ok [INFO] [stdout] test config::settings::tests::test_save_creates_directory_and_writes_config ... ok [INFO] [stdout] test config::settings::tests::test_migration_from_version_0_adds_defaults ... ok [INFO] [stdout] test headless::config::tests::auto_connect_validation::test_empty_server ... ok [INFO] [stdout] test headless::config::tests::auto_connect_validation::test_valid_server ... ok [INFO] [stdout] test dbus::types::tests::type_detection::test_non_vpn_types ... ok [INFO] [stdout] test headless::config::tests::log_level::test_as_str ... ok [INFO] [stdout] test dbus::types::tests::type_detection::test_vpn_types ... ok [INFO] [stdout] test headless::config::tests::auto_connect_validation::test_too_long_server ... ok [INFO] [stdout] test headless::config::tests::log_level::test_from_str_known ... ok [INFO] [stdout] test headless::config::tests::log_level::test_from_str_case_insensitive ... ok [INFO] [stdout] test headless::config::tests::log_level::test_roundtrip ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_case_insensitive ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_connect_shortcut ... ok [INFO] [stdout] test headless::config::tests::log_level::test_from_str_unknown_defaults_to_info ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_disconnect ... ok [INFO] [stdout] test config::settings::tests::test_save_sets_secure_permissions ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_help_text_contains_commands ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_empty_input ... ok [INFO] [stdout] test daemon::lock::tests::test_acquire_lock_writes_pid ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_connect ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_help_variants ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_whitespace_only ... ok [INFO] [stdout] test headless::config::tests::systemd_messages::test_constants ... ok [INFO] [stdout] test headless::config::tests::systemd_messages::test_mainpid ... ok [INFO] [stdout] test headless::config::tests::systemd_messages::test_status ... ok [INFO] [stdout] test headless::config::tests::watchdog_validation::test_empty_watchdog ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_connect_missing_arg ... ok [INFO] [stdout] test headless::config::tests::watchdog_validation::test_valid_watchdog ... ok [INFO] [stdout] test headless::config::tests::watchdog_validation::test_non_numeric_watchdog ... ok [INFO] [stdout] test headless::config::tests::watchdog_validation::test_valid_watchdog_small ... ok [INFO] [stdout] test config::settings::tests::test_save_then_load_roundtrip ... ok [INFO] [stdout] test headless::config::tests::systemd_messages::test_errno ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_killswitch_off ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_killswitch_on ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_quit_variants ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_status ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_list ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_unknown ... ok [INFO] [stdout] test headless::config::tests::stdin_command::test_whitespace_handling ... ok [INFO] [stdout] test headless::runtime_helpers::tests::paths::test_default_pid_path ... ok [INFO] [stdout] test headless::runtime_helpers::tests::paths::test_default_socket_path ... ok [INFO] [stdout] test headless::runtime_helpers::tests::phase::test_running_can_accept ... ok [INFO] [stdout] test headless::runtime_helpers::tests::phase::test_running_is_not_terminal ... ok [INFO] [stdout] test headless::runtime_helpers::tests::phase::test_starting_cannot_accept ... ok [INFO] [stdout] test headless::runtime_helpers::tests::phase::test_stopping_cannot_accept ... ok [INFO] [stdout] test headless::runtime_helpers::tests::phase::test_stopped_is_terminal ... ok [INFO] [stdout] test headless::runtime_helpers::tests::pid::test_parse_pid_valid ... ok [INFO] [stdout] test headless::runtime_helpers::tests::pid::test_parse_pid_invalid ... ok [INFO] [stdout] test headless::runtime_helpers::tests::pid::test_format_pid ... ok [INFO] [stdout] test headless::runtime_helpers::tests::signals::test_sighup_reload ... ok [INFO] [stdout] test headless::runtime_helpers::tests::pid::test_roundtrip ... ok [INFO] [stdout] test headless::runtime_helpers::tests::pid::test_validate_pid_path_empty ... ok [INFO] [stdout] test headless::runtime_helpers::tests::signals::test_sigterm_shutdown ... ok [INFO] [stdout] test headless::runtime_helpers::tests::validate::test_empty_socket ... ok [INFO] [stdout] test headless::runtime_helpers::tests::pid::test_validate_pid_path_null ... ok [INFO] [stdout] test headless::runtime_helpers::tests::validate::test_multiple_errors ... ok [INFO] [stdout] test headless::config::tests::watchdog_validation::test_zero_watchdog ... ok [INFO] [stdout] test headless::runtime_helpers::tests::validate::test_short_watchdog ... ok [INFO] [stdout] test headless::runtime_helpers::tests::validate::test_empty_auto_connect ... ok [INFO] [stdout] test headless::runtime_helpers::tests::signals::test_sigusr1_log_status ... ok [INFO] [stdout] test headless::runtime_helpers::tests::pid::test_validate_pid_path_valid ... ok [INFO] [stdout] test config::settings::tests::test_save_atomic_no_temp_file_remains ... ok [INFO] [stdout] test headless::runtime_helpers::tests::signals::test_sigint_shutdown ... ok [INFO] [stdout] test headless::runtime_helpers::tests::signals::test_sigquit_shutdown ... ok [INFO] [stdout] test headless::runtime_helpers::tests::watchdog::test_parse_small ... ok [INFO] [stdout] test headless::runtime_helpers::tests::watchdog::test_parse_valid ... ok [INFO] [stdout] test headless::runtime_helpers::tests::validate::test_valid_config ... ok [INFO] [stdout] test headless::runtime_helpers::tests::watchdog::test_parse_zero ... ok [INFO] [stdout] test headless::tests::headless_tests::test_headless_config_defaults ... ok [INFO] [stdout] test headless::systemd::tests::test_no_socket_returns_false ... ok [INFO] [stdout] test headless::tests::headless_tests::test_headless_config_startup_server ... ok [INFO] [stdout] test headless::runtime_helpers::tests::watchdog::test_parse_invalid ... ok [INFO] [stdout] test headless::tests::headless_tests::test_signal_mapping ... ok [INFO] [stdout] test headless::tests::headless_tests::test_ipc_socket_path ... ok [INFO] [stdout] test headless::tests::headless_tests::test_systemd_notify_messages ... ok [INFO] [stdout] test headless::tests::headless_tests::test_watchdog_interval_calculation ... ok [INFO] [stdout] test health::checker::tests::test_config_clone ... ok [INFO] [stdout] test headless::systemd::tests::test_watchdog_interval_none ... ok [INFO] [stdout] test health::checker::tests::test_default_impl ... ok [INFO] [stdout] test health::checker::tests::test_config_with_single_endpoint ... ok [INFO] [stdout] test headless::runtime_helpers::tests::signals::test_unknown_signal_ignore ... ok [INFO] [stdout] test health::checker::tests::test_default_config_has_multiple_endpoints ... ok [INFO] [stdout] test headless::tests::headless_tests::test_auto_connect_server_selection ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_check_empty_unknown ... ok [INFO] [stdout] test health::checker::tests::test_degraded_threshold_boundary ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_check_private_secure ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_check_mixed ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_check_public_leaks ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_cloudflare_trace_ipv6 ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_empty_body ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_garbage ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_html ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_check_localhost_secure ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_cloudflare_trace_missing_ip ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_check_no_nameservers_unknown ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_plain_text_ipv4 ... ok [INFO] [stdout] test health::checker::tests::test_dns_leak_result_equality ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_plain_text_trimmed ... ok [INFO] [stdout] test health::checker::tests::test_degraded_counter_increments ... ok [INFO] [stdout] test health::checker::tests::test_health_checker_reset ... ok [INFO] [stdout] test health::checker::tests::test_health_config_custom ... ok [INFO] [stdout] test health::checker::tests::test_health_config_default ... ok [INFO] [stdout] test health::checker::tests::test_failure_counter_increments ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_cloudflare_trace ... ok [INFO] [stdout] test health::checker::tests::test_failure_threshold_boundary ... ok [INFO] [stdout] test health::checker::tests::test_health_config_dns_leak_check_default ... ok [INFO] [stdout] test health::checker::tests::test_health_config_default_no_exit_ip ... ok [INFO] [stdout] test health::checker::tests::test_health_config_with_exit_ip ... ok [INFO] [stdout] test health::checker::tests::test_extract_ip_from_plain_text_ipv6 ... ok [INFO] [stdout] test health::checker::tests::test_health_result_debug ... ok [INFO] [stdout] test health::checker::tests::test_health_result_equality ... ok [INFO] [stdout] test health::checker::tests::test_health_result_clone ... ok [INFO] [stdout] test health::checker::tests::test_is_safe_resolver_172_boundary ... ok [INFO] [stdout] test health::checker::tests::test_is_safe_resolver_ipv6_private ... ok [INFO] [stdout] test health::checker::tests::test_is_safe_resolver_loopback ... ok [INFO] [stdout] test health::checker::tests::test_parse_resolv_conf_basic ... ok [INFO] [stdout] test health::checker::tests::test_parse_resolv_conf_empty ... ok [INFO] [stdout] test health::checker::tests::test_is_safe_resolver_public_unsafe ... ok [INFO] [stdout] test health::checker::tests::test_is_safe_resolver_private ... ok [INFO] [stdout] test health::checker::tests::test_is_safe_resolver_not_an_ip ... ok [INFO] [stdout] test health::checker::tests::test_reset_clears_all_counters ... ok [INFO] [stdout] test health::checker::tests::test_reset_is_idempotent ... ok [INFO] [stdout] test health::checker::tests::test_resume_clears_suspension ... ok [INFO] [stdout] test health::checker::tests::test_suspend_expired_not_suspended ... ok [INFO] [stdout] test health::checker::tests::test_resume_when_not_suspended ... ok [INFO] [stdout] test health::checker::tests::test_suspend_preserves_counters ... ok [INFO] [stdout] test health::checker::tests::test_suspend_sets_until ... ok [INFO] [stdout] test health::tests::health_tests::test_custom_config ... ok [INFO] [stdout] test health::tests::health_tests::test_default_config_values ... ok [INFO] [stdout] test health::tests::health_tests::test_degraded_threshold_logic ... ok [INFO] [stdout] test health::tests::health_tests::test_health_checker_new ... ok [INFO] [stdout] test health::tests::health_tests::test_health_checker_with_config ... ok [INFO] [stdout] test health::tests::health_tests::test_health_result_variants ... ok [INFO] [stdout] test health::tests::health_tests::test_latency_edge_cases ... ok [INFO] [stdout] test health::tests::health_tests::test_health_result_clone ... ok [INFO] [stdout] test import::detector::tests::test_detect_wireguard_from_conf ... ok [INFO] [stdout] test import::detector::tests::test_detect_unknown_conf ... ok [INFO] [stdout] test health::checker::tests::test_parse_resolv_conf_multiple ... ok [INFO] [stdout] test import::detector::tests::test_detect_unknown_extension ... ok [INFO] [stdout] test import::validator::tests::test_wireguard_missing_interface ... ok [INFO] [stdout] test ipc::client::tests::test_all_client_error_variants_display ... ok [INFO] [stdout] test ipc::client::tests::test_client_error_connection ... ok [INFO] [stdout] test ipc::client::tests::test_client_error_display ... ok [INFO] [stdout] test import::validator::tests::test_wireguard_missing_private_key ... ok [INFO] [stdout] test ipc::client::tests::test_client_error_parse_display ... ok [INFO] [stdout] test import::validator::tests::test_wireguard_valid ... ok [INFO] [stdout] test import::validator::tests::test_openvpn_missing_remote ... ok [INFO] [stdout] test import::validator::tests::test_openvpn_valid ... ok [INFO] [stdout] test import::detector::tests::test_detect_openvpn_extension ... ok [INFO] [stdout] test ipc::client::tests::test_client_error_send_display ... ok [INFO] [stdout] test ipc::client::tests::test_daemon_not_running ... ok [INFO] [stdout] test ipc::client::tests::test_client_error_receive_display ... ok [INFO] [stdout] test ipc::client::tests::test_send_command_when_daemon_not_running ... ok [INFO] [stdout] test ipc::client::tests::test_send_command_status_when_not_running ... ok [INFO] [stdout] test health::checker::tests::test_parse_resolv_conf_no_nameservers ... ok [INFO] [stdout] test health::checker::tests::test_parse_resolv_conf_with_comments ... ok [INFO] [stdout] test ipc::client::tests::test_connect_to_daemon_error ... ok [INFO] [stdout] test ipc::protocol::tests::test_deserialize_empty_object ... ok [INFO] [stdout] test ipc::protocol::tests::test_error_message_none_for_ok ... ok [INFO] [stdout] test ipc::protocol::tests::test_command_serialize_connect ... ok [INFO] [stdout] test ipc::protocol::tests::test_response_serialize_error ... ok [INFO] [stdout] test ipc::protocol::tests::test_response_serialize_hello_ok ... ok [INFO] [stdout] test ipc::protocol::tests::test_command_descriptions ... ok [INFO] [stdout] test ipc::protocol::tests::test_response_serialize_version_mismatch ... ok [INFO] [stdout] test ipc::protocol::tests::test_command_deserialize_connect ... ok [INFO] [stdout] test ipc::protocol::tests::test_deserialize_invalid_json ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_disconnect ... ok [INFO] [stdout] test ipc::protocol::tests::test_response_serialize_ok ... ok [INFO] [stdout] test ipc::protocol::tests::test_error_message ... ok [INFO] [stdout] test ipc::protocol::tests::test_response_is_not_ok_for_error ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_hello ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_list_no_filter ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_killswitch_disable ... ok [INFO] [stdout] test ipc::protocol::tests::test_response_is_ok ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_killswitch_enable ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_quit ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_reconnect ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_response_connections ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_list_with_filter ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_status ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_ping ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_pong ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_response_status ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_version_info ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_version ... ok [INFO] [stdout] test ipc::protocol::tests::test_roundtrip_switch ... ok [INFO] [stdout] test ipc::protocol::tests::test_socket_path_uses_xdg ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_switch_valid ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_list_valid_type ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_other_commands ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_connect_empty ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_switch_empty ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_list_invalid_type ... ok [INFO] [stdout] test ipc::protocol::tests::test_validation_hello_valid ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_connect_valid ... ok [INFO] [stdout] test ipc::protocol::tests::test_validation_hello_zero ... ok [INFO] [stdout] test ipc::protocol::tests::test_validate_list_no_type ... ok [INFO] [stdout] test ipc::protocol::tests::test_vpn_connection_info_roundtrip ... ok [INFO] [stdout] test ipc::protocol::tests::test_vpn_connection_info_serialize ... ok [INFO] [stdout] test ipc::server::tests::test_get_peer_pid_returns_some ... ok [INFO] [stdout] test ipc::server::tests::test_handle_connection_invalid_command_validation ... ok [INFO] [stdout] test ipc::server::tests::test_handle_connection_valid_command ... ok [INFO] [stdout] test ipc::server::tests::test_handle_connection_invalid_json ... ok [INFO] [stdout] test ipc::server::tests::test_handle_connection_handshake_then_ping ... ok [INFO] [stdout] test ipc::server::tests::test_handle_connection_multiple_commands ... ok [INFO] [stdout] test ipc::server::tests::test_handle_connection_status_command ... ok [INFO] [stdout] test ipc::server::tests::test_handle_connection_empty_line ... ok [INFO] [stdout] test killswitch::cleanup_logic::tests::test_build_chain_cleanup_order ... ok [INFO] [stdout] test ipc::server::tests::test_server_error_display_cleanup ... ok [INFO] [stdout] test killswitch::cleanup_logic::tests::test_build_delete_chain ... ok [INFO] [stdout] test killswitch::cleanup_logic::tests::test_build_flush_chain ... ok [INFO] [stdout] test ipc::server::tests::test_server_error_display_bind ... ok [INFO] [stdout] test ipc::server::tests::test_handle_connection_version_mismatch ... ok [INFO] [stdout] test ipc::server::tests::test_server_creation ... ok [INFO] [stdout] test killswitch::boot::tests::test_boot_chain_name_is_different ... ok [INFO] [stdout] test killswitch::cleanup_logic::tests::test_chain_exists_in_output_found ... ok [INFO] [stdout] test killswitch::cleanup_logic::tests::test_chain_exists_in_output_not_found ... ok [INFO] [stdout] test killswitch::cleanup_logic::tests::test_find_shroud_rules ... ok [INFO] [stdout] test killswitch::cleanup_logic::tests::test_find_shroud_rules_empty ... ok [INFO] [stdout] test killswitch::cleanup_logic::tests::test_manual_cleanup_custom_binaries ... ok [INFO] [stdout] test ipc::server::tests::test_symlink_socket_rejected ... ok [INFO] [stdout] test killswitch::cleanup_logic::tests::test_chain_exists_partial_no_match ... ok [INFO] [stdout] test killswitch::cleanup_logic::tests::test_cleanup_order ... ok [INFO] [stdout] test killswitch::cleanup_logic::tests::test_shroud_chains_non_empty ... ok [INFO] [stdout] test killswitch::cleanup_logic::tests::test_manual_cleanup_instructions ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_chain_name_constant ... ok [INFO] [stdout] test killswitch::cleanup::tests::test_cleanup_result_variants ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_doh_providers_are_valid_ips ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_doh_providers_list_not_empty ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_kill_switch_error_display ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_kill_switch_new_defaults ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_kill_switch_status_variants ... ok [INFO] [stdout] test killswitch::cleanup_logic::tests::test_build_remove_jump ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_set_config_updates_all_fields ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_set_vpn_server_and_clear ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_nft_table_constant ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_toggle_cooldown_constant ... ok [INFO] [stdout] test killswitch::firewall::leak_tests::test_killswitch_allows_lan ... ignored [INFO] [stdout] test killswitch::firewall::leak_tests::test_killswitch_allows_localhost ... ignored [INFO] [stdout] test killswitch::firewall::leak_tests::test_killswitch_allows_vpn_interface ... ignored [INFO] [stdout] test killswitch::firewall::leak_tests::test_killswitch_allows_vpn_server ... ignored [INFO] [stdout] test killswitch::firewall::leak_tests::test_killswitch_blocks_ipv6 ... ignored [INFO] [stdout] test killswitch::firewall::leak_tests::test_killswitch_creates_drop_rules ... ignored [INFO] [stdout] test killswitch::firewall::leak_tests::test_killswitch_disable_removes_rules ... ignored [INFO] [stdout] test killswitch::firewall::leak_tests::test_killswitch_idempotent_disable ... ignored [INFO] [stdout] test killswitch::firewall::leak_tests::test_killswitch_idempotent_enable ... ignored [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_configured_vpn_server_ip ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_build_complete_script_ipv6_tunnel ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_build_complete_script_logging ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_build_complete_script_ipv6_block ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_build_complete_script_dhcp ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_build_complete_script_ipv6_off ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_strict_mode_doh_rules ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_custom_doh_in_iptables ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_build_complete_script_lan_allowed ... ok [INFO] [stdout] test killswitch::firewall::ks_expanded_tests::test_build_complete_script_with_vpn_ips ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_dns_localhost_without_ipv6 ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_dns_localhost_mode ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_doh_blocking ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_dns_localhost_with_ipv6 ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_dns_any_mode ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_custom_doh_blocklist ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_dns_tunnel_mode ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_input_chain ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_doh_blocking_disabled ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_ruleset_dhcp ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_ruleset_basic_structure ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_ruleset_vpn_interfaces ... ok [INFO] [stdout] test killswitch::firewall::security_tests::test_ip_address_validation ... ok [INFO] [stdout] test killswitch::firewall::security_tests::test_iptables_command_escaping ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_ruleset_ipv6_block ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_log_prefix ... ok [INFO] [stdout] test killswitch::firewall::security_tests::test_interface_name_validation ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_ruleset_ipv6_tunnel ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_ruleset_local_network ... ok [INFO] [stdout] test killswitch::firewall::tests::test_kill_switch_set_server ... ok [INFO] [stdout] test killswitch::firewall::tests::test_kill_switch_configuration_update ... ok [INFO] [stdout] test killswitch::firewall::tests::test_doh_blocking_rules ... ok [INFO] [stdout] test killswitch::firewall::tests::test_kill_switch_status ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_vpn_server_ips ... ok [INFO] [stdout] test killswitch::firewall::tests::test_dns_rule_ordering ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_ruleset_ipv6_off ... ok [INFO] [stdout] test killswitch::firewall::tests::test_kill_switch_with_config ... ok [INFO] [stdout] test killswitch::paths::tests::test_iptables_path_contains_iptables ... ok [INFO] [stdout] test killswitch::paths::tests::test_ip6tables_path_contains_ip6tables ... ok [INFO] [stdout] test killswitch::paths::tests::test_log_detected_paths_does_not_panic ... ok [INFO] [stdout] test killswitch::firewall::tests::test_any_mode_dns_rules ... ok [INFO] [stdout] test killswitch::paths::tests::test_nft_path_contains_nft ... ok [INFO] [stdout] test killswitch::paths::tests::test_path_strings_are_absolute ... ok [INFO] [stdout] test killswitch::rules::tests::chain_validation_tests::test_empty_chain ... ok [INFO] [stdout] test killswitch::rules::tests::chain_validation_tests::test_max_length_chain ... ok [INFO] [stdout] test killswitch::rules::tests::chain_validation_tests::test_too_long_chain ... ok [INFO] [stdout] test killswitch::rules::tests::chain_validation_tests::test_valid_chain_names ... ok [INFO] [stdout] test killswitch::rules::tests::classify_tests::test_ipv6_loopback ... ok [INFO] [stdout] test killswitch::rules::tests::classify_tests::test_ipv6_public ... ok [INFO] [stdout] test killswitch::rules::tests::classify_tests::test_link_local ... ok [INFO] [stdout] test killswitch::rules::tests::classify_tests::test_loopback ... ok [INFO] [stdout] test killswitch::rules::tests::classify_tests::test_private_lan ... ok [INFO] [stdout] test killswitch::rules::tests::classify_tests::test_public ... ok [INFO] [stdout] test killswitch::rules::tests::constants_tests::test_doh_providers_are_public ... ok [INFO] [stdout] test killswitch::rules::tests::constants_tests::test_lan_subnets_are_private ... ok [INFO] [stdout] test killswitch::rules::tests::constants_tests::test_vpn_prefixes_non_empty ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_vpn_server_ipv6 ... ok [INFO] [stdout] test killswitch::paths::tests::test_paths_are_absolute ... ok [INFO] [stdout] test killswitch::rules::tests::dns_rule_tests::test_custom_doh_blocking ... ok [INFO] [stdout] test killswitch::rules::tests::dns_rule_tests::test_any_mode_accepts_all_dns ... ok [INFO] [stdout] test killswitch::paths::tests::test_paths_not_empty ... ok [INFO] [stdout] test killswitch::firewall::tests::test_build_complete_script ... ok [INFO] [stdout] test killswitch::firewall::nft_tests::test_nft_vpn_server_ipv6_blocked_when_block_mode ... ok [INFO] [stdout] test killswitch::rules::tests::dns_rule_tests::test_custom_doh_blocking_empty ... ok [INFO] [stdout] test killswitch::firewall::tests::test_tunnel_mode_dns_rules ... ok [INFO] [stdout] test killswitch::firewall::tests::test_localhost_mode_dns_rules ... ok [INFO] [stdout] test killswitch::rules::tests::chain_validation_tests::test_chain_injection ... ok [INFO] [stdout] test killswitch::rules::tests::dns_rule_tests::test_localhost_mode_allows_loopback_dns ... ok [INFO] [stdout] test killswitch::rules::tests::dns_rule_tests::test_doh_blocking ... ok [INFO] [stdout] test killswitch::rules::tests::dns_rule_tests::test_tunnel_mode_accept_before_drop ... ok [INFO] [stdout] test killswitch::rules::tests::dns_rule_tests::test_tunnel_mode_allows_vpn_dns ... ok [INFO] [stdout] test killswitch::rules::tests::dns_rule_tests::test_localhost_mode_blocks_other_dns ... ok [INFO] [stdout] test killswitch::rules::tests::doh_tests::test_unknown_provider ... ok [INFO] [stdout] test killswitch::rules::tests::dns_rule_tests::test_tunnel_mode_blocks_other_dns ... ok [INFO] [stdout] test killswitch::rules::tests::ipv6_rule_tests::test_ipv6_block_allows_loopback ... ok [INFO] [stdout] test killswitch::rules::tests::ipv6_rule_tests::test_ipv6_rules_use_ip6tables ... ok [INFO] [stdout] test killswitch::rules::tests::ipv6_rule_tests::test_ipv6_tunnel_allows_vpn ... ok [INFO] [stdout] test killswitch::rules::tests::ipv6_rule_tests::test_ipv6_tunnel_drops_rest ... ok [INFO] [stdout] test killswitch::rules::tests::rule_building_tests::test_default_drop_rule ... ok [INFO] [stdout] test killswitch::rules::tests::rule_building_tests::test_lan_rules ... ok [INFO] [stdout] test killswitch::rules::tests::rule_building_tests::test_loopback_rule ... ok [INFO] [stdout] test killswitch::rules::tests::doh_tests::test_known_providers ... ok [INFO] [stdout] test killswitch::rules::tests::rule_building_tests::test_server_allow_rule ... ok [INFO] [stdout] test killswitch::rules::tests::ipv6_rule_tests::test_ipv6_block_drops_rest ... ok [INFO] [stdout] test killswitch::rules::tests::rule_building_tests::test_vpn_interface_rules ... ok [INFO] [stdout] test killswitch::rules::tests::test_is_valid_private_cidr_accepts_rfc1918 ... ok [INFO] [stdout] test killswitch::sudo_check::tests::test_sudo_access_status_debug ... ok [INFO] [stdout] test killswitch::sudo_check::tests::test_sudo_access_status_clone ... ok [INFO] [stdout] test killswitch::rules::tests::test_is_valid_ipv4_accepts_valid ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_boot_killswitch_concept ... ok [INFO] [stdout] test killswitch::rules::tests::test_is_valid_private_cidr_rejects_public ... ok [INFO] [stdout] test killswitch::sudo_check::tests::test_sudo_access_status_equality ... ok [INFO] [stdout] test killswitch::rules::tests::test_is_valid_ipv4_rejects_injection ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_doh_ports ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_chain_name_constant ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_ipv6_mode_security ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_ipv6_mode_variants ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_dns_mode_security_ranking ... ok [INFO] [stdout] test killswitch::sudo_check::tests::test_sudo_access_status_inequality ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_killswitch_default ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_killswitch_error_display ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_killswitch_error_is_error_trait ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_killswitch_new ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_cleanup_concept ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_dns_mode_variants ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_loopback_always_allowed ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_lan_ranges ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_killswitch_status_copy ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_rule_order_concept ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_stale_rules_detection_concept ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_nft_table_name ... ok [INFO] [stdout] test killswitch::tests::privileged_tests::test_full_killswitch_enable_disable_cycle ... ignored, Requires root privileges [INFO] [stdout] test killswitch::tests::privileged_tests::test_iptables_chain_creation ... ignored, Requires root privileges [INFO] [stdout] test killswitch::tests::killswitch_tests::test_vpn_interface_patterns_accepted ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_doh_provider_ips ... ok [INFO] [stdout] test killswitch::tests::killswitch_tests::test_killswitch_status_variants ... ok [INFO] [stdout] test killswitch::tests::privileged_tests::test_iptables_rule_insertion ... ignored, Requires root privileges [INFO] [stdout] test killswitch::verify::tests::test_report_serialization ... ok [INFO] [stdout] test logging::tests::test_debug_logging_toggle ... ok [INFO] [stdout] test killswitch::verify::tests::test_summary_generation ... ok [INFO] [stdout] test killswitch::verify::tests::test_nft_checks_pass ... ok [INFO] [stdout] test killswitch::verify::tests::test_iptables_chain_missing ... ok [INFO] [stdout] test logging::tests::test_get_log_file_path ... ok [INFO] [stdout] test killswitch::verify::tests::test_iptables_checks_pass ... ok [INFO] [stdout] test logging::tests::test_verbose_to_level ... ok [INFO] [stdout] test logging::tests::test_log_directory_not_empty ... ok [INFO] [stdout] test mode::tests::test_display_trait ... ok [INFO] [stdout] test killswitch::verify::tests::test_aggregate_verdict ... ok [INFO] [stdout] test mode::tests::test_explicit_headless_flag ... ok [INFO] [stdout] test logging::tests::test_parse_level ... ok [INFO] [stdout] test mode::tests::test_headless_takes_priority ... ok [INFO] [stdout] test mode::tests::test_default_is_always_desktop ... ok [INFO] [stdout] test nm::client::tests::security_tests::test_parse_active_vpns_invalid_states ... ok [INFO] [stdout] test nm::client::tests::test_parse_active_vpns ... ok [INFO] [stdout] test nm::client::tests::security_tests::test_vpn_name_with_shell_metacharacters ... ok [INFO] [stdout] test nm::client::tests::security_tests::test_parse_vpn_connections_malicious_output ... ok [INFO] [stdout] test nm::client::tests::test_parse_active_vpns_activating_over_deactivating ... ok [INFO] [stdout] test nm::client::tests::test_parse_active_vpns_empty_output ... ok [INFO] [stdout] test nm::client::tests::test_parse_active_vpns_multiple ... ok [INFO] [stdout] test mode::tests::test_explicit_desktop_flag ... ok [INFO] [stdout] test nm::client::tests::test_parse_active_vpns_with_colons_in_name ... ok [INFO] [stdout] test nm::client::tests::test_parse_vpn_connections_no_vpns ... ok [INFO] [stdout] test nm::client::tests::test_parse_vpn_connections_with_colons_in_name ... ok [INFO] [stdout] test nm::client::tests::test_parse_vpn_connections_with_spaces_in_name ... ok [INFO] [stdout] test nm::client::tests::test_parse_vpn_uuid_basic ... ok [INFO] [stdout] test nm::client::tests::test_parse_vpn_connections_basic ... ok [INFO] [stdout] test nm::client::tests::test_parse_vpn_uuid_empty_output ... ok [INFO] [stdout] test nm::client::tests::test_parse_vpn_connections_empty_output ... ok [INFO] [stdout] test nm::client::tests::test_parse_active_vpns_only_deactivating ... ok [INFO] [stdout] test nm::client::tests::test_parse_active_vpns_priority_activated_over_activating ... ok [INFO] [stdout] test nm::client::tests::test_parse_active_vpns_unknown_state_ignored ... ok [INFO] [stdout] test nm::connections::tests::test_vpn_connection_struct ... ok [INFO] [stdout] test nm::connections::tests::test_vpn_type_clone ... ok [INFO] [stdout] test nm::client::tests::test_parse_vpn_uuid_ignores_non_vpn ... ok [INFO] [stdout] test nm::client::tests::test_parse_vpn_uuid_not_found ... ok [INFO] [stdout] test nm::connections::tests::test_vpn_type_display_openvpn ... ok [INFO] [stdout] test nm::client::tests::test_parse_vpn_uuid_with_single_colon_in_uuid ... ok [INFO] [stdout] test nm::connections::tests::test_vpn_type_equality ... ok [INFO] [stdout] test nm::connections::tests::test_vpn_type_display_unknown ... ok [INFO] [stdout] test nm::connections::tests::test_vpn_connection_clone ... ok [INFO] [stdout] test nm::connections::tests::test_vpn_type_display_wireguard ... ok [INFO] [stdout] test nm::connections::tests::test_nmcli_command_returns_string ... ok [INFO] [stdout] test nm::parsing::tests::is_vpn_type_tests::test_vpn_types ... ok [INFO] [stdout] test nm::parsing::tests::parse_active_vpns_tests::test_basic ... ok [INFO] [stdout] test nm::parsing::tests::is_vpn_type_tests::test_non_vpn_types ... ok [INFO] [stdout] test nm::parsing::tests::parse_active_vpns_tests::test_empty_output ... ok [INFO] [stdout] test nm::parsing::tests::parse_active_vpns_tests::test_colons_in_name ... ok [INFO] [stdout] test nm::parsing::tests::parse_active_vpns_tests::test_deactivating ... ok [INFO] [stdout] test nm::parsing::tests::parse_vpn_connections_tests::test_basic ... ok [INFO] [stdout] test nm::parsing::tests::parse_vpn_connections_tests::test_colons_in_name ... ok [INFO] [stdout] test nm::parsing::tests::parse_vpn_connections_tests::test_empty ... ok [INFO] [stdout] test nm::parsing::tests::parse_vpn_uuid_tests::test_basic ... ok [INFO] [stdout] test nm::parsing::tests::parse_active_vpns_tests::test_filters_non_vpn ... ok [INFO] [stdout] test nm::parsing::tests::parse_active_vpns_tests::test_multiple_states ... ok [INFO] [stdout] test nm::connections::tests::test_vpn_type_debug ... ok [INFO] [stdout] test nm::parsing::tests::parse_vpn_connections_tests::test_spaces_in_name ... ok [INFO] [stdout] test nm::parsing::tests::parse_active_vpns_tests::test_unknown_state_ignored ... ok [INFO] [stdout] test nm::parsing::tests::parse_vpn_uuid_tests::test_empty ... ok [INFO] [stdout] test nm::parsing::tests::parse_vpn_uuid_tests::test_ignores_non_vpn ... ok [INFO] [stdout] test nm::parsing::tests::parse_vpn_connections_tests::test_no_vpns ... ok [INFO] [stdout] test nm::parsing::tests::parse_vpn_uuid_tests::test_real_uuid ... ok [INFO] [stdout] test nm::parsing::tests::parse_vpn_uuid_tests::test_not_found ... ok [INFO] [stdout] test nm::parsing::tests::select_best_vpn_tests::test_empty ... ok [INFO] [stdout] test nm::parsing::tests::select_best_vpn_tests::test_prefers_activated ... ok [INFO] [stdout] test notifications::manager::tests::accessor_tests::test_sound_critical ... ok [INFO] [stdout] test nm::parsing::tests::select_best_vpn_tests::test_prefers_activating_over_deactivating ... ok [INFO] [stdout] test notifications::manager::tests::config_tests::test_defaults ... ok [INFO] [stdout] test notifications::manager::tests::config_update_tests::test_update_config ... ok [INFO] [stdout] test nm::parsing::tests::parse_vpn_uuid_tests::test_wireguard ... ok [INFO] [stdout] test nm::parsing::tests::select_best_vpn_tests::test_deactivating_only ... ok [INFO] [stdout] test notifications::manager::tests::accessor_tests::test_timeout_ms ... ok [INFO] [stdout] test notifications::manager::tests::accessor_tests::test_suppressed_count_initial ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_disconnection_disable ... ok [INFO] [stdout] test notifications::manager::tests::config_update_tests::test_update_throttle ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_first_run_disable ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_enabled_by_default ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_health_disable ... ok [INFO] [stdout] test notifications::manager::tests::accessor_tests::test_sound_critical_default_false ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_killswitch_disable ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_master_disable ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_reconnection_disable ... ok [INFO] [stdout] test notifications::manager::tests::should_display_tests::test_enabled_and_not_throttled ... ok [INFO] [stdout] test notifications::manager::tests::should_display_tests::test_throttled ... ok [INFO] [stdout] test notifications::manager::tests::should_display_tests::test_throttled_increments_suppressed ... ok [INFO] [stdout] test notifications::manager::tests::throttle_tests::test_after_window_not_throttled ... ok [INFO] [stdout] test notifications::manager::tests::throttle_tests::test_different_category_not_throttled ... ok [INFO] [stdout] test notifications::manager::tests::throttle_tests::test_first_event_not_throttled ... ok [INFO] [stdout] test notifications::manager::tests::throttle_tests::test_no_throttle_when_disabled ... ok [INFO] [stdout] test notifications::manager::tests::throttle_tests::test_same_category_throttled ... ok [INFO] [stdout] test notifications::types::tests::action_tests::test_action_equality ... ok [INFO] [stdout] test notifications::types::tests::action_tests::test_action_inequality ... ok [INFO] [stdout] test notifications::types::tests::action_tests::test_dismiss_action ... ok [INFO] [stdout] test notifications::types::tests::action_tests::test_new_action ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_all_categories_have_config_key ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_config_keys ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_icons_are_symbolic ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_should_play_sound ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_supports_actions ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_icons_contain_expected_keywords ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_per_category_disable ... ok [INFO] [stdout] test notifications::manager::tests::should_display_tests::test_disabled_category ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_urgency_normal ... ok [INFO] [stdout] test notifications::types::tests::notification_tests::test_category_preserved ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_urgency_critical ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_urgency_low ... ok [INFO] [stdout] test notifications::types::tests::notification_tests::test_new_inherits_category_defaults ... ok [INFO] [stdout] test notifications::types::tests::notification_tests::test_title_and_body ... ok [INFO] [stdout] test notifications::types::tests::notification_tests::test_with_action ... ok [INFO] [stdout] test notifications::types::tests::urgency_tests::test_urgency_clone ... ok [INFO] [stdout] test notifications::types::tests::notification_tests::test_with_urgency_override ... ok [INFO] [stdout] test notifications::types::tests::urgency_tests::test_urgency_equality ... ok [INFO] [stdout] test notifications::types::tests::notification_tests::test_with_timeout_override ... ok [INFO] [stdout] test notifications::types::tests::urgency_tests::test_urgency_inequality ... ok [INFO] [stdout] test state::machine::tests::test_connected_to_degraded ... ok [INFO] [stdout] test notifications::types::tests::urgency_tests::test_urgency_debug ... ok [INFO] [stdout] test state::machine::tests::test_connected_vpn_changed ... ok [INFO] [stdout] test state::machine::tests::test_connected_health_ok_no_transition ... ok [INFO] [stdout] test state::machine::tests::test_connecting_to_connected ... ok [INFO] [stdout] test notifications::types::tests::category_tests::test_critical_timeout_longer ... ok [INFO] [stdout] test state::machine::tests::test_connected_vpn_down_triggers_reconnect ... ok [INFO] [stdout] test state::machine::tests::test_default_config_values ... ok [INFO] [stdout] test state::machine::tests::test_connecting_connection_failed ... ok [INFO] [stdout] test state::machine::tests::test_connecting_nm_vpn_down ... ok [INFO] [stdout] test state::machine::tests::test_default_impl ... ok [INFO] [stdout] test state::machine::tests::test_degraded_health_ok_recovery ... ok [INFO] [stdout] test state::machine::tests::test_degraded_to_reconnecting ... ok [INFO] [stdout] test notifications::types::tests::action_tests::test_reconnect_action ... ok [INFO] [stdout] test state::machine::tests::test_external_connection_detected ... ok [INFO] [stdout] test state::machine::tests::test_failed_external_recovery ... ok [INFO] [stdout] test state::machine::tests::test_failed_user_enable_restarts ... ok [INFO] [stdout] test state::machine::tests::test_full_lifecycle ... ok [INFO] [stdout] test state::machine::tests::test_reconnecting_connection_failed ... ok [INFO] [stdout] test state::machine::tests::test_reconnecting_success ... ok [INFO] [stdout] test state::machine::tests::test_reconnecting_timeout_exhausted ... ok [INFO] [stdout] test state::machine::tests::test_reconnecting_timeout_increments ... ok [INFO] [stdout] test state::machine::tests::test_disconnected_to_connecting ... ok [INFO] [stdout] test state::machine::tests::test_degraded_vpn_down ... ok [INFO] [stdout] test state::machine::tests::test_max_retries_accessor ... ok [INFO] [stdout] test state::machine::tests::test_retries_accessor ... ok [INFO] [stdout] test state::machine::tests::test_retry_exhaustion ... ok [INFO] [stdout] test state::machine::tests::test_unhandled_events_return_none ... ok [INFO] [stdout] test state::machine::tests::test_wake_event_returns_none ... ok [INFO] [stdout] test state::types::tests::test_active_vpn_info ... ok [INFO] [stdout] test state::machine::tests::test_set_state_logs_transition ... ok [INFO] [stdout] test state::machine::tests::test_set_state_same_state_no_log ... ok [INFO] [stdout] test state::machine::tests::test_user_disable_resets_retries ... ok [INFO] [stdout] test state::types::tests::test_all_event_variants ... ok [INFO] [stdout] test state::machine::tests::test_user_disable_from_any_state ... ok [INFO] [stdout] test state::machine::tests::test_sleep_event_no_transition ... ok [INFO] [stdout] test notifications::manager::tests::is_enabled_tests::test_error_disable ... ok [INFO] [stdout] test state::types::tests::test_event_clone ... ok [INFO] [stdout] test state::types::tests::test_transition_reason_display ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_display ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_is_active ... ok [INFO] [stdout] test state::types::tests::test_all_transition_reasons ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_name ... ok [INFO] [stdout] test state::types::tests::test_event_display ... ok [INFO] [stdout] test state::types::tests::test_nm_vpn_state_display ... ok [INFO] [stdout] test state::types::tests::test_nm_vpn_state_equality ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_clone ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_equality ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_is_busy ... ok [INFO] [stdout] test state::types::tests::test_vpn_state_server_name ... ok [INFO] [stdout] test supervisor::tests::handler_tests::test_all_ipc_command_variants_constructable ... ok [INFO] [stdout] test supervisor::tests::handler_tests::test_ipc_response_ar_status ... ok [INFO] [stdout] test supervisor::tests::handler_tests::test_ipc_response_debug_info ... ok [INFO] [stdout] test supervisor::tests::handler_tests::test_ipc_command_response_types ... ok [INFO] [stdout] test supervisor::tests::handler_tests::test_all_vpn_command_variants ... ok [INFO] [stdout] test supervisor::tests::handler_tests::test_ipc_response_ks_status ... ok [INFO] [stdout] test supervisor::tests::handler_tests::test_ipc_response_ok_message ... ok [INFO] [stdout] test supervisor::tests::handler_tests::test_ipc_response_pong ... ok [INFO] [stdout] test supervisor::tests::handler_tests::test_vpn_command_serialization ... ok [INFO] [stdout] test supervisor::tests::handler_tests::test_ipc_response_status ... ok [INFO] [stdout] test supervisor::tests::reconnect_tests::test_exponential_backoff_sequence ... ok [INFO] [stdout] test supervisor::tests::reconnect_tests::test_retry_reset_on_success ... ok [INFO] [stdout] test supervisor::tests::state_sync_detects_external_disconnect ... ok [INFO] [stdout] test supervisor::tests::reconnect_stops_if_vpn_already_connected ... ok [INFO] [stdout] test supervisor::tests::disconnect_calls_nm_disconnect_and_transitions_to_disconnected ... ok [INFO] [stdout] test supervisor::tests::supervisor_tests::test_grace_period_logic ... ok [INFO] [stdout] test killswitch::sudo_check::tests::test_check_sudo_access_with_message_returns_result ... ok [INFO] [stdout] test killswitch::sudo_check::tests::test_sudo_access_check_returns_valid_status ... ok [INFO] [stdout] test supervisor::tests::supervisor_tests::test_reconnect_timing_calculations ... ok [INFO] [stdout] test supervisor::tests::supervisor_tests::test_supervisor_constants_reasonable ... ok [INFO] [stdout] test tests::test_vpn_state_server_name ... ok [INFO] [stdout] test tray::service::tests::test_extract_short_name ... ok [INFO] [stdout] test tray::service::tests::test_extract_short_name_leading_hyphen ... ok [INFO] [stdout] test tray::service::tests::test_extract_short_name_multiple_hyphens ... ok [INFO] [stdout] test tray::service::tests::test_extract_short_name_numbers_only ... ok [INFO] [stdout] test tray::service::tests::test_extract_short_name_trailing_hyphen ... ok [INFO] [stdout] test tray::service::tests::test_extract_short_name_unicode ... ok [INFO] [stdout] test tray::service::tests::test_shared_state_clone ... ok [INFO] [stdout] test supervisor::tests::disconnect_disables_kill_switch_config ... ok [INFO] [stdout] test tray::service::tests::test_shared_state_modify_vpn_state ... ok [INFO] [stdout] test tray::service::tests::test_extract_short_name_no_hyphen ... ok [INFO] [stdout] test tray::service::tests::test_shared_state_default ... ok [INFO] [stdout] test tray::service::tests::test_shared_state_modify_connections ... ok [INFO] [stdout] test tray::service::tests::test_shared_state_toggle_flags ... ok [INFO] [stdout] test tray::service::tests::test_vpn_command_all_variants ... ok [INFO] [stdout] test tray::service::tests::test_vpn_command_connect ... ok [INFO] [stdout] test tray::service::tests::test_vpn_command_debug ... ok [INFO] [stdout] test tray::service::tests::test_vpn_command_disconnect ... ok [INFO] [stdout] test tray::service::tests::test_vpn_command_toggle_auto_reconnect ... ok [INFO] [stdout] test tray::service::tests::test_vpn_command_toggle_autostart ... ok [INFO] [stdout] test tray::service::tests::test_vpn_command_toggle_killswitch ... ok [INFO] [stdout] test tray::tests::tray_tests::test_command_channel ... ok [INFO] [stdout] test tray::tests::tray_tests::test_extract_short_name ... ok [INFO] [stdout] test tray::tests::tray_tests::test_menu_item_enabled_state ... ok [INFO] [stdout] test tray::tests::tray_tests::test_shared_state_clone ... ok [INFO] [stdout] test tray::tests::tray_tests::test_shared_state_modification ... ok [INFO] [stdout] test tray::tests::tray_tests::test_vpn_command_variants ... ok [INFO] [stdout] test util::backoff::tests::test_capped_at_max ... ok [INFO] [stdout] test tray::tests::tray_tests::test_shared_state_default ... ok [INFO] [stdout] test util::backoff::tests::test_jitter_bounded ... ok [INFO] [stdout] test util::backoff::tests::test_first_attempt_no_delay ... ok [INFO] [stdout] test util::backoff::tests::test_jitter_zero ... ok [INFO] [stdout] test util::backoff::tests::test_linear_growth ... ok [INFO] [stdout] test util::backoff::tests::test_saturating_mul_no_panic ... ok [INFO] [stdout] test util::backoff::tests::test_zero_base ... ok [INFO] [stdout] test supervisor::tests::state_sync_detects_external_vpn_connection ... ok [INFO] [stdout] test supervisor::tests::state_sync_detects_external_vpn_switch ... ok [INFO] [stdout] test import::importer::tests::test_import_file_with_force ... FAILED [INFO] [stdout] test import::importer::tests::test_connection_exists ... FAILED [INFO] [stdout] test supervisor::tests::connect_calls_nm_connect_and_transitions_to_connected ... ok [INFO] [stdout] test daemon::lock::tests::test_lock_conflict_detection ... ok [INFO] [stdout] test daemon::lock::tests::test_lock_file_permissions ... ok [INFO] [stdout] test daemon::lock::tests::test_release_lock_removes_file ... ok [INFO] [stdout] test daemon::lock::tests::test_release_lock_idempotent ... ok [INFO] [stdout] test supervisor::tests::connect_failure_leaves_state_machine_not_connected ... ok [INFO] [stdout] test supervisor::tests::connect_to_nonexistent_vpn_stays_disconnected ... ok [INFO] [stdout] test supervisor::tests::reconnect_retries_on_failure_up_to_max_attempts ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- import::importer::tests::test_import_file_with_force stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'import::importer::tests::test_import_file_with_force' (619) panicked at src/import/importer.rs:267:44: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x60b06a7ad78a - std[e72de78501789eb0]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x60b06a7ad78a - std[e72de78501789eb0]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x60b06a7ad78a - std[e72de78501789eb0]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x60b06a7ad78a - <::print::DisplayBacktrace as core[6aaeda2c7ad07a48]::fmt::Display>::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x60b06a7c4faa - ::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x60b06a7c4faa - core[6aaeda2c7ad07a48]::fmt::write [INFO] [stdout] 6: 0x60b06a7b2a12 - std[e72de78501789eb0]::io::default_write_fmt::> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x60b06a7b2a12 - as std[e72de78501789eb0]::io::Write>::write_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x60b06a788def - ::print [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x60b06a788def - std[e72de78501789eb0]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x60b06a7a4189 - std[e72de78501789eb0]::panicking::default_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x60b06a61a5dc - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x60b06a61a5dc - test[4f12b380f1fb68c5]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x60b06a7a4402 - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x60b06a7a4402 - std[e72de78501789eb0]::panicking::panic_with_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x60b06a788ea8 - std[e72de78501789eb0]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x60b06a780459 - std[e72de78501789eb0]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x60b06a789f8d - __rustc[78a4cf188af856fc]::rust_begin_unwind [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x60b06a7c576c - core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x60b06a7c54e2 - core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867:5 [INFO] [stdout] 20: 0x60b06a4205a2 - >::unwrap [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x60b06a4205a2 - shroud[3193ff2750a93eef]::import::importer::tests::make_nmcli_stub [INFO] [stdout] at /opt/rustwide/workdir/src/import/importer.rs:267:44 [INFO] [stdout] 22: 0x60b06a40b872 - shroud[3193ff2750a93eef]::import::importer::tests::test_import_file_with_force::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/import/importer.rs:297:20 [INFO] [stdout] 23: 0x60b06a3c40f2 - > as core[6aaeda2c7ad07a48]::future::future::Future>::poll [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/future/future.rs:133:9 [INFO] [stdout] 24: 0x60b06a3c41ad - >> as core[6aaeda2c7ad07a48]::future::future::Future>::poll [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/future/future.rs:133:9 [INFO] [stdout] 25: 0x60b06a49e87d - ::block_on::>>>::{closure#0}::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:769:70 [INFO] [stdout] 26: 0x60b06a49e59b - tokio[2c5b2b5d844605ce]::task::coop::with_budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:167:5 [INFO] [stdout] 27: 0x60b06a49e59b - tokio[2c5b2b5d844605ce]::task::coop::budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:133:5 [INFO] [stdout] 28: 0x60b06a49e59b - ::block_on::>>>::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:769:25 [INFO] [stdout] 29: 0x60b06a477bc0 - ::enter::, ::block_on>>>::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:446:19 [INFO] [stdout] 30: 0x60b06a49ca6d - ::block_on::>>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:768:44 [INFO] [stdout] 31: 0x60b06a49b1e4 - ::enter::<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:856:68 [INFO] [stdout] 32: 0x60b06a31ae2b - >::set::<::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/scoped.rs:40:9 [INFO] [stdout] 33: 0x60b06a3b2279 - tokio[2c5b2b5d844605ce]::runtime::context::set_scheduler::<(alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context.rs:176:38 [INFO] [stdout] 34: 0x60b06a1df882 - >::try_with::, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/local.rs:462:12 [INFO] [stdout] 35: 0x60b06a1def8e - >::with::, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/local.rs:426:20 [INFO] [stdout] 36: 0x60b06a391e9d - tokio[2c5b2b5d844605ce]::runtime::context::set_scheduler::<(alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context.rs:176:17 [INFO] [stdout] 37: 0x60b06a4835c0 - ::enter::<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:856:27 [INFO] [stdout] 38: 0x60b06a483d56 - ::block_on::>>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:756:24 [INFO] [stdout] 39: 0x60b06a499460 - ::block_on::>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:200:33 [INFO] [stdout] 40: 0x60b06a42c843 - tokio[2c5b2b5d844605ce]::runtime::context::runtime::enter_runtime::<::block_on>>::{closure#0}, ()> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/runtime.rs:65:16 [INFO] [stdout] 41: 0x60b06a476fc1 - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:188:9 [INFO] [stdout] 42: 0x60b06a354014 - ::block_on_inner::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:371:52 [INFO] [stdout] 43: 0x60b06a3543af - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:345:18 [INFO] [stdout] 44: 0x60b06a420f24 - shroud[3193ff2750a93eef]::import::importer::tests::test_import_file_with_force [INFO] [stdout] at /opt/rustwide/workdir/src/import/importer.rs:307:45 [INFO] [stdout] 45: 0x60b06a40b107 - shroud[3193ff2750a93eef]::import::importer::tests::test_import_file_with_force::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/import/importer.rs:294:43 [INFO] [stdout] 46: 0x60b06a19dce6 - >::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 47: 0x60b06a60e6bb - core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 48: 0x60b06a60e6bb - test[4f12b380f1fb68c5]::__rust_begin_short_backtrace::, fn() -> core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:663:18 [INFO] [stdout] 49: 0x60b06a61b0ab - test[4f12b380f1fb68c5]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:74 [INFO] [stdout] 50: 0x60b06a61b0ab - as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 51: 0x60b06a61b0ab - std[e72de78501789eb0]::panicking::catch_unwind::do_call::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 52: 0x60b06a61b0ab - std[e72de78501789eb0]::panicking::catch_unwind::, core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 53: 0x60b06a61b0ab - std[e72de78501789eb0]::panic::catch_unwind::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 54: 0x60b06a61b0ab - test[4f12b380f1fb68c5]::run_test_in_process [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:27 [INFO] [stdout] 55: 0x60b06a61b0ab - test[4f12b380f1fb68c5]::run_test::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:607:43 [INFO] [stdout] 56: 0x60b06a6167c4 - test[4f12b380f1fb68c5]::run_test::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:637:41 [INFO] [stdout] 57: 0x60b06a6167c4 - std[e72de78501789eb0]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 58: 0x60b06a61dcb2 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 59: 0x60b06a61dcb2 - ::{closure#1}::{closure#0}> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 60: 0x60b06a61dcb2 - std[e72de78501789eb0]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 61: 0x60b06a61dcb2 - std[e72de78501789eb0]::panicking::catch_unwind::<(), core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 62: 0x60b06a61dcb2 - std[e72de78501789eb0]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 63: 0x60b06a61dcb2 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 64: 0x60b06a61dcb2 - ::{closure#1} as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 65: 0x60b06a7acb3f - + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 66: 0x60b06a7acb3f - ::new::thread_start [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 67: 0x71ebc9d95aa4 - [INFO] [stdout] 68: 0x71ebc9e22a64 - clone [INFO] [stdout] 69: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- import::importer::tests::test_connection_exists stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'import::importer::tests::test_connection_exists' (618) panicked at src/import/importer.rs:267:44: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x60b06a7ad78a - std[e72de78501789eb0]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x60b06a7ad78a - std[e72de78501789eb0]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x60b06a7ad78a - std[e72de78501789eb0]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x60b06a7ad78a - <::print::DisplayBacktrace as core[6aaeda2c7ad07a48]::fmt::Display>::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x60b06a7c4faa - ::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x60b06a7c4faa - core[6aaeda2c7ad07a48]::fmt::write [INFO] [stdout] 6: 0x60b06a7b2a12 - std[e72de78501789eb0]::io::default_write_fmt::> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x60b06a7b2a12 - as std[e72de78501789eb0]::io::Write>::write_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x60b06a788def - ::print [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x60b06a788def - std[e72de78501789eb0]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x60b06a7a4189 - std[e72de78501789eb0]::panicking::default_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x60b06a61a5dc - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x60b06a61a5dc - test[4f12b380f1fb68c5]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x60b06a7a4402 - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x60b06a7a4402 - std[e72de78501789eb0]::panicking::panic_with_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x60b06a788ea8 - std[e72de78501789eb0]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x60b06a780459 - std[e72de78501789eb0]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x60b06a789f8d - __rustc[78a4cf188af856fc]::rust_begin_unwind [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x60b06a7c576c - core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x60b06a7c54e2 - core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867:5 [INFO] [stdout] 20: 0x60b06a4205a2 - >::unwrap [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x60b06a4205a2 - shroud[3193ff2750a93eef]::import::importer::tests::make_nmcli_stub [INFO] [stdout] at /opt/rustwide/workdir/src/import/importer.rs:267:44 [INFO] [stdout] 22: 0x60b06a40b330 - shroud[3193ff2750a93eef]::import::importer::tests::test_connection_exists::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/import/importer.rs:286:20 [INFO] [stdout] 23: 0x60b06a3c40f2 - > as core[6aaeda2c7ad07a48]::future::future::Future>::poll [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/future/future.rs:133:9 [INFO] [stdout] 24: 0x60b06a3c41ad - >> as core[6aaeda2c7ad07a48]::future::future::Future>::poll [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/future/future.rs:133:9 [INFO] [stdout] 25: 0x60b06a49e87d - ::block_on::>>>::{closure#0}::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:769:70 [INFO] [stdout] 26: 0x60b06a49e59b - tokio[2c5b2b5d844605ce]::task::coop::with_budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:167:5 [INFO] [stdout] 27: 0x60b06a49e59b - tokio[2c5b2b5d844605ce]::task::coop::budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:133:5 [INFO] [stdout] 28: 0x60b06a49e59b - ::block_on::>>>::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:769:25 [INFO] [stdout] 29: 0x60b06a477bc0 - ::enter::, ::block_on>>>::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:446:19 [INFO] [stdout] 30: 0x60b06a49ca6d - ::block_on::>>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:768:44 [INFO] [stdout] 31: 0x60b06a49b1e4 - ::enter::<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:856:68 [INFO] [stdout] 32: 0x60b06a31ae2b - >::set::<::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/scoped.rs:40:9 [INFO] [stdout] 33: 0x60b06a3b2279 - tokio[2c5b2b5d844605ce]::runtime::context::set_scheduler::<(alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context.rs:176:38 [INFO] [stdout] 34: 0x60b06a1df882 - >::try_with::, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/local.rs:462:12 [INFO] [stdout] 35: 0x60b06a1def8e - >::with::, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/local.rs:426:20 [INFO] [stdout] 36: 0x60b06a391e9d - tokio[2c5b2b5d844605ce]::runtime::context::set_scheduler::<(alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context.rs:176:17 [INFO] [stdout] 37: 0x60b06a4835c0 - ::enter::<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:856:27 [INFO] [stdout] 38: 0x60b06a483d56 - ::block_on::>>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:756:24 [INFO] [stdout] 39: 0x60b06a499460 - ::block_on::>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:200:33 [INFO] [stdout] 40: 0x60b06a42c843 - tokio[2c5b2b5d844605ce]::runtime::context::runtime::enter_runtime::<::block_on>>::{closure#0}, ()> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/runtime.rs:65:16 [INFO] [stdout] 41: 0x60b06a476fc1 - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:188:9 [INFO] [stdout] 42: 0x60b06a354014 - ::block_on_inner::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:371:52 [INFO] [stdout] 43: 0x60b06a3543af - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:345:18 [INFO] [stdout] 44: 0x60b06a420d64 - shroud[3193ff2750a93eef]::import::importer::tests::test_connection_exists [INFO] [stdout] at /opt/rustwide/workdir/src/import/importer.rs:290:45 [INFO] [stdout] 45: 0x60b06a40b0d7 - shroud[3193ff2750a93eef]::import::importer::tests::test_connection_exists::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/import/importer.rs:283:38 [INFO] [stdout] 46: 0x60b06a19dca6 - >::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 47: 0x60b06a60e6bb - core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 48: 0x60b06a60e6bb - test[4f12b380f1fb68c5]::__rust_begin_short_backtrace::, fn() -> core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:663:18 [INFO] [stdout] 49: 0x60b06a61b0ab - test[4f12b380f1fb68c5]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:74 [INFO] [stdout] 50: 0x60b06a61b0ab - as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 51: 0x60b06a61b0ab - std[e72de78501789eb0]::panicking::catch_unwind::do_call::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 52: 0x60b06a61b0ab - std[e72de78501789eb0]::panicking::catch_unwind::, core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 53: 0x60b06a61b0ab - std[e72de78501789eb0]::panic::catch_unwind::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 54: 0x60b06a61b0ab - test[4f12b380f1fb68c5]::run_test_in_process [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:27 [INFO] [stdout] 55: 0x60b06a61b0ab - test[4f12b380f1fb68c5]::run_test::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:607:43 [INFO] [stdout] 56: 0x60b06a6167c4 - test[4f12b380f1fb68c5]::run_test::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:637:41 [INFO] [stdout] 57: 0x60b06a6167c4 - std[e72de78501789eb0]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 58: 0x60b06a61dcb2 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 59: 0x60b06a61dcb2 - ::{closure#1}::{closure#0}> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 60: 0x60b06a61dcb2 - std[e72de78501789eb0]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 61: 0x60b06a61dcb2 - std[e72de78501789eb0]::panicking::catch_unwind::<(), core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 62: 0x60b06a61dcb2 - std[e72de78501789eb0]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 63: 0x60b06a61dcb2 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 64: 0x60b06a61dcb2 - ::{closure#1} as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 65: 0x60b06a7acb3f - + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 66: 0x60b06a7acb3f - ::new::thread_start [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 67: 0x71ebc9d95aa4 - [INFO] [stdout] 68: 0x71ebc9e22a64 - clone [INFO] [stdout] 69: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] import::importer::tests::test_connection_exists [INFO] [stdout] import::importer::tests::test_import_file_with_force [INFO] [stdout] [INFO] [stdout] test result: FAILED. 776 passed; 2 failed; 18 ignored; 0 measured; 0 filtered out; finished in 47.24s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--bin shroud` [INFO] running `Command { std: "docker" "inspect" "496bb83cb0efe50f03e2e9ae6c055cb1a489facd6f485e3ea8b85de77288a8fc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "496bb83cb0efe50f03e2e9ae6c055cb1a489facd6f485e3ea8b85de77288a8fc", kill_on_drop: false }` [INFO] [stdout] 496bb83cb0efe50f03e2e9ae6c055cb1a489facd6f485e3ea8b85de77288a8fc