[INFO] cloning repository https://github.com/flakesonnix/MeowV
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/flakesonnix/MeowV" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflakesonnix%2FMeowV", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflakesonnix%2FMeowV'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7c98ea626c6a24a6b7f08be6e01787238c769468
[INFO] testing flakesonnix/MeowV against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflakesonnix%2FMeowV" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-4-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/flakesonnix/MeowV
[INFO] finished tweaking git repo https://github.com/flakesonnix/MeowV
[INFO] tweaked toml for git repo https://github.com/flakesonnix/MeowV written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/flakesonnix/MeowV on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/flakesonnix/MeowV already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 07c4fd9ed5751b60f3cc9890f1330426c6785bda9413b0ff142132843581769b
[INFO] running `Command { std: "docker" "start" "07c4fd9ed5751b60f3cc9890f1330426c6785bda9413b0ff142132843581769b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "07c4fd9ed5751b60f3cc9890f1330426c6785bda9413b0ff142132843581769b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "07c4fd9ed5751b60f3cc9890f1330426c6785bda9413b0ff142132843581769b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "07c4fd9ed5751b60f3cc9890f1330426c6785bda9413b0ff142132843581769b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "07c4fd9ed5751b60f3cc9890f1330426c6785bda9413b0ff142132843581769b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling game_edition v0.1.0 (/opt/rustwide/workdir/crates/game_edition)
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling protocol v0.1.0 (/opt/rustwide/workdir/crates/protocol)
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling server_browser v0.1.0 (/opt/rustwide/workdir/crates/server_browser)
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling resource_manifest v0.1.0 (/opt/rustwide/workdir/crates/resource_manifest)
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling server v0.1.0 (/opt/rustwide/workdir/crates/server)
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling client v0.1.0 (/opt/rustwide/workdir/crates/client)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 12s
[INFO] running `Command { std: "docker" "inspect" "07c4fd9ed5751b60f3cc9890f1330426c6785bda9413b0ff142132843581769b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "07c4fd9ed5751b60f3cc9890f1330426c6785bda9413b0ff142132843581769b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling server v0.1.0 (/opt/rustwide/workdir/crates/server)
[INFO] [stderr]    Compiling protocol v0.1.0 (/opt/rustwide/workdir/crates/protocol)
[INFO] [stderr]    Compiling server_browser v0.1.0 (/opt/rustwide/workdir/crates/server_browser)
[INFO] [stderr]    Compiling resource_manifest v0.1.0 (/opt/rustwide/workdir/crates/resource_manifest)
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling game_edition v0.1.0 (/opt/rustwide/workdir/crates/game_edition)
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling client v0.1.0 (/opt/rustwide/workdir/crates/client)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 44.99s
[INFO] running `Command { std: "docker" "inspect" "07c4fd9ed5751b60f3cc9890f1330426c6785bda9413b0ff142132843581769b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "07c4fd9ed5751b60f3cc9890f1330426c6785bda9413b0ff142132843581769b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.42s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/client-7aee2a4215d76f77)
[INFO] [stdout] 
[INFO] [stdout] running 87 tests
[INFO] [stdout] test fetch::tests::test_contains_path_traversal ... ok
[INFO] [stdout] test fetch::tests::test_fetch_report_json ... ok
[INFO] [stdout] test fetch::tests::test_fetch_report_to_text ... ok
[INFO] [stdout] test fetch::tests::test_manifest_empty ... ok
[INFO] [stdout] test fetch::tests::test_manifest_entry_sort_key ... ok
[INFO] [stdout] test fetch::tests::test_is_symlink_in_path ... ok
[INFO] [stdout] test fetch::tests::test_commit_symlink_target_rejected ... ok
[INFO] [stdout] test fetch::tests::test_manifest_outcome_is_updated ... ok
[INFO] [stdout] test fetch::tests::test_file_fetch_success ... ok
[INFO] [stdout] test fetch::tests::test_load_cache_manifest_malformed ... ok
[INFO] [stdout] test fetch::tests::test_load_cache_manifest_not_found ... ok
[INFO] [stdout] test fetch::tests::test_manifest_with_entry_add ... ok
[INFO] [stdout] test fetch::tests::test_manifest_with_entry_order ... ok
[INFO] [stdout] test fetch::tests::test_manifest_with_entry_replace ... ok
[INFO] [stdout] test fetch::tests::test_file_fetch_size_exceeded ... ok
[INFO] [stdout] test fetch::tests::test_contains_path_traversal_standalone ... ok
[INFO] [stdout] test fetch::tests::test_needs_fetch ... ok
[INFO] [stdout] test fetch::tests::test_report_empty ... ok
[INFO] [stdout] test fetch::tests::test_hash_mismatch_does_not_commit ... ok
[INFO] [stdout] test fetch::tests::test_commit_path_traversal_rejected ... ok
[INFO] [stdout] test fetch::tests::test_manifest_updated_on_commit_in_report ... ok
[INFO] [stdout] test fetch::tests::test_symlink_in_cache_path_rejected ... ok
[INFO] [stdout] test fetch::tests::test_file_fetch_hash_mismatch ... ok
[INFO] [stdout] test fetch::tests::test_file_source_not_found ... ok
[INFO] [stdout] test fetch::tests::test_commit_after_fetch_success ... ok
[INFO] [stdout] test fetch::tests::test_staging_cleaned_up_after_commit_failure ... ok
[INFO] [stdout] test fetch::tests::test_outcome_is_success ... ok
[INFO] [stdout] test fetch::tests::test_sanitize_name ... ok
[INFO] [stdout] test fetch::tests::test_sha256_hex_helper ... ok
[INFO] [stdout] test fetch::tests::test_no_commit_without_gate ... ok
[INFO] [stdout] test hash::tests::display_and_parse_roundtrip ... ok
[INFO] [stdout] test hash::tests::genesis_is_all_zeros ... ok
[INFO] [stdout] test hash::tests::hash_chain_link_changes_with_prev ... ok
[INFO] [stdout] test hash::tests::display_matches_expected_format ... ok
[INFO] [stdout] test fetch::tests::test_manifest_to_text_with_entries ... ok
[INFO] [stdout] test hash::tests::reject_missing_prefix ... ok
[INFO] [stdout] test fetch::tests::test_save_cache_manifest_atomic_write ... ok
[INFO] [stdout] test hash::tests::hash_chain_link_produces_valid_hash_format ... ok
[INFO] [stdout] test hash::tests::hash_chain_link_changes_with_payload ... ok
[INFO] [stdout] test reconciliation::tests::test_build_cache_path ... ok
[INFO] [stdout] test hash::tests::serde_roundtrip ... ok
[INFO] [stdout] test reconciliation::tests::test_already_consistent ... ok
[INFO] [stdout] test reconciliation::tests::test_announcement_missing ... ok
[INFO] [stdout] test reconciliation::tests::test_derive_key_from_cache_path ... ok
[INFO] [stdout] test reconciliation::tests::test_empty_everything ... ok
[INFO] [stdout] test fetch::tests::test_save_and_load_cache_manifest ... ok
[INFO] [stdout] test reconciliation::tests::test_action_label ... ok
[INFO] [stdout] test fetch::tests::test_unsupported_scheme ... ok
[INFO] [stdout] test hash::tests::hash_chain_link_is_deterministic ... ok
[INFO] [stdout] test hash::tests::reject_wrong_hex_length ... ok
[INFO] [stdout] test reconciliation::tests::test_deterministic_ordering ... ok
[INFO] [stdout] test hash::tests::reject_invalid_hex_chars ... ok
[INFO] [stdout] test reconciliation::tests::test_hash_mismatch ... ok
[INFO] [stdout] test reconciliation::tests::test_is_healthy ... ok
[INFO] [stdout] test reconciliation::tests::test_manifest_corrupted_flag ... ok
[INFO] [stdout] test reconciliation::tests::test_missing_cache_file ... ok
[INFO] [stdout] test reconciliation::tests::test_missing_manifest_entry ... ok
[INFO] [stdout] test reconciliation::tests::test_missing_manifest_with_corrupted_flag_not_reapplied ... ok
[INFO] [stdout] test reconciliation::tests::test_multiple_identical_keys_not_duplicated ... ok
[INFO] [stdout] test reconciliation::tests::test_orphaned_cache_file ... ok
[INFO] [stdout] test reconciliation::tests::test_multiple_issues_combined ... ok
[INFO] [stdout] test reconciliation::tests::test_plan_json_serialization ... ok
[INFO] [stdout] test reconciliation::tests::test_plan_to_text_empty ... ok
[INFO] [stdout] test reconciliation::tests::test_plan_to_text_with_entries ... ok
[INFO] [stdout] test reconciliation::tests::test_reconcile_multiple_resources ... ok
[INFO] [stdout] test reconciliation::tests::test_plan_to_text_with_manifest_corrupted_flag ... ok
[INFO] [stdout] test repair::tests::test_announcement_missing_not_included_in_m6_15_plan ... ok
[INFO] [stdout] test repair::tests::test_hash_mismatch_maps_to_replace ... ok
[INFO] [stdout] test repair::tests::test_empty_repair_plan ... ok
[INFO] [stdout] test repair::tests::test_manifest_corrupted_maps_to_rebuild ... ok
[INFO] [stdout] test fetch::tests::test_update_cache_manifest_after_commit ... ok
[INFO] [stdout] test repair::tests::test_missing_manifest_maps_to_manifest_repair ... ok
[INFO] [stdout] test repair::tests::test_missing_cache_maps_to_refetch ... ok
[INFO] [stdout] test repair::tests::test_orphan_not_included_in_m6_15_plan ... ok
[INFO] [stdout] test repair::tests::test_repair_plan_ordering_is_deterministic ... ok
[INFO] [stdout] test repair::tests::test_repair_plan_text_and_json ... ok
[INFO] [stdout] test state::tests::apply_entry_rejects_postcondition_mismatch ... ok
[INFO] [stdout] test state::tests::apply_manifest_rebuild_replaces_all_entries ... ok
[INFO] [stdout] test state::tests::apply_entry_rejects_precondition_mismatch ... ok
[INFO] [stdout] test state::tests::apply_file_refetch_replaces_existing_entry ... ok
[INFO] [stdout] test reconciliation::tests::test_reconciliation_report_stability ... ok
[INFO] [stdout] test state::tests::apply_manifest_entry_repair_inserts_new_entry ... ok
[INFO] [stdout] test state::tests::apply_entry_chained_mutations_track_hash ... ok
[INFO] [stdout] test state::tests::into_snapshot_produces_verifiable_snapshot ... ok
[INFO] [stdout] test fetch::tests::test_replace_invalid_committed ... ok
[INFO] [stdout] test fetch::tests::test_execute_fetch_report_correct_mappings ... ok
[INFO] [stdout] test fetch::tests::test_update_cache_manifest_replaces_duplicate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 87 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/client-0c9c2caf0096b4c0)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_ping.rs (/opt/rustwide/target/debug/deps/cli_ping-d8c21bdf6e2f39fd)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test cli_ping_once_success ... ok
[INFO] [stdout] test cli_ping_once_timeout ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/fetch_execution.rs (/opt/rustwide/target/debug/deps/fetch_execution-cc4ee5af9b23ae19)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test fetch_hash_mismatch_does_not_create_manifest ... ok
[INFO] [stdout] test fetch_hash_mismatch_does_not_commit ... ok
[INFO] [stdout] test fetch_report_to_text_includes_all_entries ... ok
[INFO] [stdout] test fetch_hash_mismatch_cleans_staging ... ok
[INFO] [stdout] test fetch_missing_file_via_file_source_reports_success ... ok
[INFO] [stdout] test fetch_report_json_is_valid ... ok
[INFO] [stdout] test fetch_skipped_when_not_allowed ... ok
[INFO] [stdout] test fetch_commit_report_to_text ... ok
[INFO] [stdout] test fetch_stage_only_does_not_create_manifest ... ok
[INFO] [stdout] test fetch_commit_report_json ... ok
[INFO] [stdout] test fetch_commit_creates_manifest ... ok
[INFO] [stdout] test fetch_commits_to_cache_when_allowed ... ok
[INFO] [stdout] test fetch_replace_invalid_report_to_text ... ok
[INFO] [stdout] test fetch_replace_invalid_updates_manifest ... ok
[INFO] [stdout] test fetch_commit_manifest_in_json_report ... ok
[INFO] [stdout] test fetch_replace_invalid_commits_to_cache ... ok
[INFO] [stdout] test fetch_skipped_when_no_cache_dir ... ok
[INFO] [stdout] test fetch_committed_file_content_is_correct ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/heartbeat.rs (/opt/rustwide/target/debug/deps/heartbeat-f0a9e5e73de35b41)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test helper_ignores_mismatched_pong ... ok
[INFO] [stdout] test helper_ignores_unrelated_server_messages ... ok
[INFO] [stdout] test helper_sends_ping_and_receives_matching_pong ... ok
[INFO] [stdout] test helper_times_out_when_matching_pong_never_arrives ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/heartbeat_edge.rs (/opt/rustwide/target/debug/deps/heartbeat_edge-8a56ca1100ca1336)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test heartbeat_loop_timeout_continues_without_disconnect ... ok
[INFO] [stdout] test heartbeat_loop_sequence_numbers_increment ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/heartbeat_enforcement.rs (/opt/rustwide/target/debug/deps/heartbeat_enforcement-74c99cc24525d2e7)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test strict_enforcement_disconnect_sets_metrics_correctly ... ok
[INFO] [stdout] test strict_disconnects_after_threshold_timeouts ... ok
[INFO] [stdout] test strict_stays_connected_when_heartbeats_are_healthy ... ok
[INFO] [stdout] test report_only_does_not_disconnect_on_missed_heartbeats ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/heartbeat_loop.rs (/opt/rustwide/target/debug/deps/heartbeat_loop-40231b790255ca65)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test heartbeat_shutdown_does_not_require_stdin_eof ... ok
[INFO] [stdout] test heartbeat_loop_stops_when_stop_signal_received ... ok
[INFO] [stdout] test heartbeat_loop_sends_multiple_pings ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/preflight_cli.rs (/opt/rustwide/target/debug/deps/preflight_cli-8b8e827ca6320711)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test preflight_plan_missing_file_errors ... ok
[INFO] [stdout] test strict_policy_without_trusted_keys_fails ... ok
[INFO] [stdout] test preflight_reports_replace_invalid_for_bad_cached_file ... ok
[INFO] [stdout] test preflight_reports_already_available_with_local_cache ... ok
[INFO] [stdout] test preflight_plan_generates_text ... ok
[INFO] [stdout] test preflight_json_output_can_be_written_to_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/replay_determinism.rs (/opt/rustwide/target/debug/deps/replay_determinism-d1f3d76e45fb808b)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test replay_with_empty_journal_returns_snapshot_unchanged ... ok
[INFO] [stdout] test replay_rejects_hash_chain_break ... ok
[INFO] [stdout] test replay_snapshot_written_to_disk_is_loadable ... ok
[INFO] [stdout] test replay_from_genesis_produces_correct_snapshot ... ok
[INFO] [stdout] test replay_is_deterministic ... ok
[INFO] [stdout] test chained_replay_preserves_prior_state ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/server_heartbeat.rs (/opt/rustwide/target/debug/deps/server_heartbeat-f00b86076b36e381)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test handle_server_ping_sequence_zero ... ok
[INFO] [stdout] test multiple_server_pings_get_matching_pongs ... ok
[INFO] [stdout] test server_ping_elicits_server_pong ... ok
[INFO] [stdout] test unrelated_server_messages_not_disrupted_by_server_ping ... ok
[INFO] [stdout] test server_ping_handled_while_waiting_for_heartbeat_pong ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/game_edition-5b4201c1723e726b)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test tests::enhanced_like_name_returns_enhanced ... ok
[INFO] [stdout] test tests::legacy_like_name_returns_legacy ... ok
[INFO] [stdout] test tests::unknown_path_returns_unknown_edition ... ok
[INFO] [stdout] test tests::platform_detection_matches_target ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/protocol-7652c432ba2f1751)
[INFO] [stdout] 
[INFO] [stdout] running 183 tests
[INFO] [stdout] test signature_engine::tests::key_config_error_display ... ok
[INFO] [stdout] test signature_engine::tests::key_config_empty_rejected ... ok
[INFO] [stdout] test signature_engine::tests::key_config_wrong_key_length_rejected ... ok
[INFO] [stdout] test signature_engine::tests::empty_plan_skipped ... ok
[INFO] [stdout] test signature_engine::tests::full_flow_reject_unsigned ... ok
[INFO] [stdout] test signature_engine::tests::policy_strict_allows_empty ... ok
[INFO] [stdout] test signature_engine::tests::key_config_duplicate_key_id_rejected ... ok
[INFO] [stdout] test signature_engine::tests::malformed_signature_bytes ... ok
[INFO] [stdout] test signature_engine::tests::key_config_valid_passes ... ok
[INFO] [stdout] test signature_engine::tests::key_config_unsupported_algorithm_rejected ... ok
[INFO] [stdout] test signature_engine::tests::full_flow_no_trusted_keys_skipped ... ok
[INFO] [stdout] test signature_engine::tests::malformed_key_material_wrong_length ... ok
[INFO] [stdout] test signature_engine::tests::policy_report_only_never_rejects ... ok
[INFO] [stdout] test signature_engine::tests::policy_strict_rejects_invalid ... ok
[INFO] [stdout] test signature_engine::tests::policy_strict_rejects_unsigned ... ok
[INFO] [stdout] test signature_engine::tests::policy_violation_implements_debug_and_eq ... ok
[INFO] [stdout] test signature_engine::tests::report_to_text_empty ... ok
[INFO] [stdout] test signature_engine::tests::policy_violation_message_contains_details ... ok
[INFO] [stdout] test signature_engine::tests::report_to_text_invalid ... ok
[INFO] [stdout] test signature_engine::tests::report_is_empty ... ok
[INFO] [stdout] test signature_engine::tests::skipped_entries_not_verified ... ok
[INFO] [stdout] test signature_engine::tests::unsupported_algorithm_in_engine ... ok
[INFO] [stdout] test signature_engine::tests::verification_error_display ... ok
[INFO] [stdout] test tests::blocked_policy_maps_to_would_block ... ok
[INFO] [stdout] test tests::allowed_policy_maps_to_would_allow ... ok
[INFO] [stdout] test tests::build_canonical_payload_basic_structure ... ok
[INFO] [stdout] test tests::build_canonical_payload_empty_algorithm_returns_none ... ok
[INFO] [stdout] test tests::all_resources_available_is_allowed ... ok
[INFO] [stdout] test signature_engine::tests::unknown_key_id_in_engine ... ok
[INFO] [stdout] test tests::all_login_capabilities_merges_deterministically ... ok
[INFO] [stdout] test signature_engine::tests::corrupted_payload_fails ... ok
[INFO] [stdout] test signature_engine::tests::valid_signature_roundtrip ... ok
[INFO] [stdout] test signature_engine::tests::full_flow_plan_and_engine_valid ... ok
[INFO] [stdout] test signature_engine::tests::policy_strict_allows_valid ... ok
[INFO] [stdout] test signature_engine::tests::plan_mirroring_multi_resource ... ok
[INFO] [stdout] test signature_engine::tests::report_to_text_contains_all_fields ... ok
[INFO] [stdout] test signature_engine::tests::report_to_text_valid ... ok
[INFO] [stdout] test signature_engine::tests::wrong_key_fails ... ok
[INFO] [stdout] test tests::build_canonical_payload_no_signature_returns_none ... ok
[INFO] [stdout] test tests::capability_gate_report_not_supported ... ok
[INFO] [stdout] test tests::build_canonical_payload_deterministic_sorting ... ok
[INFO] [stdout] test tests::capability_gate_report_supported ... ok
[INFO] [stdout] test tests::capability_negotiation_unsupported_optional_is_warning_only ... ok
[INFO] [stdout] test tests::capability_negotiation_optional_and_feature_flag_warnings_are_report_only ... ok
[INFO] [stdout] test tests::capability_negotiation_missing_required_reports_would_reject ... ok
[INFO] [stdout] test tests::evaluate_source_policy_unknown_scheme_blocked ... ok
[INFO] [stdout] test tests::exact_match_result_has_current_version ... ok
[INFO] [stdout] test tests::extra_report_entry_ignored ... ok
[INFO] [stdout] test tests::evaluate_source_policy_file_allowed ... ok
[INFO] [stdout] test tests::evaluate_source_policy_ipfs_allowed ... ok
[INFO] [stdout] test tests::fetch_execution_plan_already_available_no_fetch_needed ... ok
[INFO] [stdout] test tests::fetch_execution_plan_https_source_produces_steps ... ok
[INFO] [stdout] test tests::fetch_execution_plan_empty_preflight ... ok
[INFO] [stdout] test tests::fetch_execution_plan_deterministic_output ... ok
[INFO] [stdout] test tests::capability_negotiation_report_text_is_deterministic ... ok
[INFO] [stdout] test tests::fetch_execution_plan_blocked_by_resource_policy ... ok
[INFO] [stdout] test tests::capability_negotiation_accepts_all_required_capabilities ... ok
[INFO] [stdout] test tests::evaluate_source_policy_https_allowed ... ok
[INFO] [stdout] test tests::fetch_execution_plan_blocked_by_signature ... ok
[INFO] [stdout] test tests::fetch_execution_plan_no_network_or_write_behavior ... ok
[INFO] [stdout] test tests::fetch_execution_plan_replace_invalid_also_plans ... ok
[INFO] [stdout] test tests::fetch_execution_plan_text_output_contains_steps ... ok
[INFO] [stdout] test tests::current_protocol_profile_includes_expected_capabilities ... ok
[INFO] [stdout] test tests::deterministic_evaluation_ordering ... ok
[INFO] [stdout] test tests::build_canonical_payload_json_serialization_roundtrip ... ok
[INFO] [stdout] test tests::client_ping_round_trip_unchanged_by_m4_16 ... ok
[INFO] [stdout] test tests::fetch_execution_plan_json_serialization ... ok
[INFO] [stdout] test tests::fetch_execution_plan_text_output_shows_blocked ... ok
[INFO] [stdout] test tests::fetch_execution_plan_unsupported_resource_blocked ... ok
[INFO] [stdout] test tests::fetch_execution_plan_would_verify_after_fetch_also_plans ... ok
[INFO] [stdout] test tests::hash_mismatch_required_is_blocked ... ok
[INFO] [stdout] test tests::login_capability_payload_normalized_deterministically ... ok
[INFO] [stdout] test tests::join_gate_decision_serializes_deserializes ... ok
[INFO] [stdout] test tests::login_optional_capabilities_roundtrip ... ok
[INFO] [stdout] test tests::login_required_capabilities_roundtrip ... ok
[INFO] [stdout] test tests::login_unknown_feature_flags_are_tolerated ... ok
[INFO] [stdout] test tests::login_feature_flags_roundtrip ... ok
[INFO] [stdout] test tests::login_missing_capability_payload_rejected ... ok
[INFO] [stdout] test tests::login_unknown_typed_capability_rejected ... ok
[INFO] [stdout] test tests::missing_optional_only_is_warning_only ... ok
[INFO] [stdout] test tests::login_with_capability_payload_roundtrips ... ok
[INFO] [stdout] test tests::missing_recommended_only_is_warning_only ... ok
[INFO] [stdout] test tests::missing_report_entry_counts_as_missing ... ok
[INFO] [stdout] test tests::missing_signature_returns_not_provided ... ok
[INFO] [stdout] test tests::negotiate_capability_intersection_deterministic ... ok
[INFO] [stdout] test tests::negotiate_compatible_dry_run_overlap ... ok
[INFO] [stdout] test tests::missing_required_capability_returns_error ... ok
[INFO] [stdout] test tests::negotiate_incompatible_no_overlap ... ok
[INFO] [stdout] test tests::negotiate_exact_current_protocol_match ... ok
[INFO] [stdout] test tests::negotiate_selects_highest_shared_version ... ok
[INFO] [stdout] test tests::plan_empty_resources ... ok
[INFO] [stdout] test tests::plan_action_display ... ok
[INFO] [stdout] test tests::missing_required_is_blocked ... ok
[INFO] [stdout] test tests::plan_malformed_signature_empty_algorithm ... ok
[INFO] [stdout] test tests::plan_no_trusted_keys_all_unknown ... ok
[INFO] [stdout] test tests::plan_to_text_empty ... ok
[INFO] [stdout] test tests::negotiate_no_shared_capabilities ... ok
[INFO] [stdout] test tests::plan_trusted_key_matches_case_sensitive ... ok
[INFO] [stdout] test tests::plan_unknown_key_id ... ok
[INFO] [stdout] test tests::plan_to_text_output_format ... ok
[INFO] [stdout] test tests::plan_unsupported_algorithm ... ok
[INFO] [stdout] test tests::plan_key_trusted_any_algorithm_match ... ok
[INFO] [stdout] test tests::plan_no_signature_no_reject_unsigned ... ok
[INFO] [stdout] test tests::plan_malformed_signature_empty_sig ... ok
[INFO] [stdout] test tests::plan_no_signature_reject_unsigned ... ok
[INFO] [stdout] test tests::plan_multiple_resources_sorted ... ok
[INFO] [stdout] test tests::plan_malformed_signature_empty_key_id ... ok
[INFO] [stdout] test tests::plan_valid_signed_announcement_trusted_key ... ok
[INFO] [stdout] test tests::preflight_selected_source_in_text ... ok
[INFO] [stdout] test tests::preflight_source_policy_in_text ... ok
[INFO] [stdout] test tests::preflight_selected_source_deterministic_output ... ok
[INFO] [stdout] test tests::preflight_source_policy_json_serialization ... ok
[INFO] [stdout] test tests::preflight_source_policy_none_when_no_selected_source ... ok
[INFO] [stdout] test tests::preflight_source_policy_absent_in_json_when_no_sources ... ok
[INFO] [stdout] test tests::preflight_sources_deterministic_output ... ok
[INFO] [stdout] test tests::preflight_sources_duplicate_in_text ... ok
[INFO] [stdout] test tests::preflight_sources_invalid_scheme_in_text ... ok
[INFO] [stdout] test tests::preflight_sources_no_behavior_change ... ok
[INFO] [stdout] test tests::present_required_capability_succeeds ... ok
[INFO] [stdout] test tests::present_signature_returns_not_checked ... ok
[INFO] [stdout] test tests::preflight_sources_valid_in_text ... ok
[INFO] [stdout] test tests::preflight_sources_valid_in_json ... ok
[INFO] [stdout] test tests::profile_supports_existing_capability ... ok
[INFO] [stdout] test tests::protocol_compatibility_profile_serializes_deserializes ... ok
[INFO] [stdout] test tests::protocol_messages_include_resource_types ... ok
[INFO] [stdout] test tests::protocol_ranges_overlap_false ... ok
[INFO] [stdout] test tests::protocol_ranges_overlap_true ... ok
[INFO] [stdout] test tests::protocol_negotiation_result_serializes_deserializes ... ok
[INFO] [stdout] test tests::resource_download_preflight_all_available ... ok
[INFO] [stdout] test tests::resource_download_preflight_invalid_file_replace ... ok
[INFO] [stdout] test tests::resource_announcement_serializes_with_signature ... ok
[INFO] [stdout] test tests::resource_download_preflight_resource_policy_blocks ... ok
[INFO] [stdout] test tests::resource_announcement_serializes_without_signature ... ok
[INFO] [stdout] test tests::resource_download_preflight_strict_signature_blocks ... ok
[INFO] [stdout] test tests::select_fetch_source_empty_returns_none ... ok
[INFO] [stdout] test tests::resource_download_preflight_missing_file_fetch_and_verify ... ok
[INFO] [stdout] test tests::resource_download_preflight_ordering_deterministic ... ok
[INFO] [stdout] test tests::fetch_execution_plan_missing_source_blocked ... ok
[INFO] [stdout] test tests::preflight_source_policy_no_behavior_change ... ok
[INFO] [stdout] test tests::preflight_selected_source_json_serialization ... ok
[INFO] [stdout] test tests::preflight_selected_source_no_behavior_change ... ok
[INFO] [stdout] test tests::preflight_no_selected_source_when_none_valid ... ok
[INFO] [stdout] test tests::select_fetch_source_lowest_priority_selected ... ok
[INFO] [stdout] test tests::profile_does_not_support_missing_capability ... ok
[INFO] [stdout] test tests::preflight_source_policy_deterministic_output ... ok
[INFO] [stdout] test tests::select_fetch_source_tie_break_by_uri ... ok
[INFO] [stdout] test tests::server_ping_serializes_and_deserializes ... ok
[INFO] [stdout] test tests::serialize_deserialize_resource_announcement ... ok
[INFO] [stdout] test tests::server_pong_client_has_distinct_serde_type_from_server_pong ... ok
[INFO] [stdout] test tests::select_fetch_source_tie_break_by_id ... ok
[INFO] [stdout] test tests::server_pong_client_message_serializes_and_deserializes ... ok
[INFO] [stdout] test tests::serialize_deserialize_resource_availability_report ... ok
[INFO] [stdout] test tests::server_pong_round_trip_unchanged_by_m4_16 ... ok
[INFO] [stdout] test tests::server_ping_has_distinct_serde_type_from_client_ping ... ok
[INFO] [stdout] test tests::shared_capabilities_intersection_deterministic ... ok
[INFO] [stdout] test tests::signature_algorithm_display_and_from_str_roundtrip ... ok
[INFO] [stdout] test tests::signature_algorithm_is_known ... ok
[INFO] [stdout] test tests::server_pong_sequence_max_round_trips ... ok
[INFO] [stdout] test tests::signature_algorithm_unknown_from_str_fails ... ok
[INFO] [stdout] test tests::signature_metadata_error_display ... ok
[INFO] [stdout] test tests::size_mismatch_required_is_blocked ... ok
[INFO] [stdout] test tests::stub_returns_invalid_for_empty_algorithm ... ok
[INFO] [stdout] test tests::server_ping_sequence_zero_round_trips ... ok
[INFO] [stdout] test tests::signature_algorithm_known_names_includes_ed25519 ... ok
[INFO] [stdout] test tests::stub_returns_invalid_for_empty_key_id ... ok
[INFO] [stdout] test tests::stub_returns_invalid_for_empty_signature ... ok
[INFO] [stdout] test tests::stub_returns_not_checked_for_valid_metadata ... ok
[INFO] [stdout] test tests::stub_returns_not_provided_when_no_signature ... ok
[INFO] [stdout] test tests::stub_returns_unsupported_algorithm_for_unknown_algorithm ... ok
[INFO] [stdout] test tests::validate_and_order_sources_allowed_schemes_ok ... ok
[INFO] [stdout] test tests::validate_and_order_sources_deterministic_sort ... ok
[INFO] [stdout] test tests::validate_and_order_sources_missing_sources_ok ... ok
[INFO] [stdout] test tests::validate_and_order_sources_rejects_duplicate_source ... ok
[INFO] [stdout] test tests::validate_and_order_sources_rejects_sha_mismatch ... ok
[INFO] [stdout] test tests::validate_and_order_sources_rejects_size_mismatch ... ok
[INFO] [stdout] test tests::validate_and_order_sources_rejects_unsupported_scheme ... ok
[INFO] [stderr]      Running tests/ping_pong_serialization.rs (/opt/rustwide/target/debug/deps/ping_pong_serialization-e548da4fb1f24d82)
[INFO] [stdout] test tests::validate_signature_metadata_empty_algorithm ... ok
[INFO] [stdout] test tests::validate_signature_metadata_unknown_algorithm ... ok
[INFO] [stdout] test tests::validate_signature_metadata_valid_ed25519 ... ok
[INFO] [stdout] test tests::validate_signature_metadata_empty_key_id ... ok
[INFO] [stdout] test tests::validate_signature_metadata_empty_signature ... ok
[INFO] [stdout] test tests::validate_and_order_sources_rejects_file_path_traversal ... ok
[INFO] [stdout] test tests::warning_only_policy_maps_to_would_warn ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 183 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/signature_e2e.rs (/opt/rustwide/target/debug/deps/signature_e2e-20f58357366b265c)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test ping_serde_roundtrip ... ok
[INFO] [stdout] test pong_serde_roundtrip ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test e2e_unsigned_announcement_strict_rejects ... ok
[INFO] [stdout] test e2e_canonical_payload_stable_across_round_trip ... ok
[INFO] [stdout] test e2e_signed_announcement_round_trip_verify ... ok
[INFO] [stdout] test e2e_tampered_announcement_rejected_under_strict ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/resource_manifest-5925de66aeab3216)
[INFO] [stdout] 
[INFO] [stdout] running 65 tests
[INFO] [stdout] test tests::accept_normal_relative_resource_file_path ... ok
[INFO] [stdout] test tests::exact_protocol_match_is_compatible ... ok
[INFO] [stdout] test tests::fail_resource_moves_resource_to_failed_with_message ... ok
[INFO] [stdout] test tests::dependency_must_be_ready_or_started_before_dependent_resource_starts ... ok
[INFO] [stdout] test tests::deterministic_status_ordering ... ok
[INFO] [stdout] test tests::hash_known_file_content ... ok
[INFO] [stdout] test tests::dependency_ordering_works_with_existing_examples ... ok
[INFO] [stdout] test tests::deterministic_report_ordering ... ok
[INFO] [stdout] test tests::discover_multiple_valid_resources ... ok
[INFO] [stdout] test tests::enhanced_resource_with_legacy_context_is_incompatible ... ok
[INFO] [stdout] test tests::build_load_plan_from_valid_registry ... ok
[INFO] [stdout] test tests::any_edition_matches_legacy_enhanced_unknown ... ok
[INFO] [stdout] test tests::deterministic_output_order ... ok
[INFO] [stdout] test tests::deterministic_sorting_orders_by_relative_path ... ok
[INFO] [stdout] test tests::includes_client_entrypoints ... ok
[INFO] [stdout] test tests::deterministic_load_order ... ok
[INFO] [stdout] test tests::fully_valid_cache ... ok
[INFO] [stdout] test tests::duplicate_resource_name_returns_error_if_possible ... ok
[INFO] [stdout] test tests::dependency_cycle_returns_error ... ok
[INFO] [stdout] test tests::missing_resource_toml_returns_error ... ok
[INFO] [stdout] test tests::legacy_resource_with_enhanced_context_is_incompatible ... ok
[INFO] [stdout] test tests::multiple_issues_collected_deterministically ... ok
[INFO] [stdout] test tests::includes_server_entrypoints ... ok
[INFO] [stdout] test tests::initial_state_is_planned ... ok
[INFO] [stdout] test tests::index_valid_resource_directory ... ok
[INFO] [stdout] test tests::counts_are_correct ... ok
[INFO] [stdout] test tests::missing_dependency_returns_error ... ok
[INFO] [stdout] test tests::independent_resources_sorted_lexically ... ok
[INFO] [stdout] test tests::missing_resource_in_load_order_returns_error ... ok
[INFO] [stdout] test tests::protocol_mismatch_is_incompatible ... ok
[INFO] [stdout] test tests::no_file_contents_are_read_or_executed_by_design_for_state_machine ... ok
[INFO] [stdout] test tests::missing_file_is_reported ... ok
[INFO] [stdout] test tests::no_file_contents_are_read_or_executed_by_design ... ok
[INFO] [stdout] test tests::parse_valid_manifest ... ok
[INFO] [stdout] test tests::reject_absolute_resource_file_path ... ok
[INFO] [stdout] test tests::reject_empty_name ... ok
[INFO] [stdout] test tests::invalid_manifest_returns_error ... ok
[INFO] [stdout] test tests::reject_invalid_dependency_name ... ok
[INFO] [stdout] test tests::invalid_transition_is_rejected ... ok
[INFO] [stdout] test tests::reject_parent_traversal_resource_file_path ... ok
[INFO] [stdout] test tests::load_plan_order_matches_dependency_order ... ok
[INFO] [stdout] test tests::reject_parent_directory_traversal_path ... ok
[INFO] [stdout] test tests::reject_invalid_name ... ok
[INFO] [stdout] test tests::reject_symlink_if_platform_supports_symlinks ... ok
[INFO] [stdout] test tests::reject_symlink_cache_entry_if_platform_supports_symlinks ... ok
[INFO] [stdout] test tests::repair_plan_all_valid_is_noop ... ok
[INFO] [stdout] test tests::reject_absolute_entrypoint_path ... ok
[INFO] [stdout] test tests::repair_plan_missing_is_fetch_missing ... ok
[INFO] [stdout] test tests::repair_plan_deterministic_ordering ... ok
[INFO] [stdout] test tests::resource_directory_without_manifest_is_ignored ... ok
[INFO] [stdout] test tests::resource_phase_defaults_to_planned ... ok
[INFO] [stdout] test tests::repair_plan_no_filesystem_access ... ok
[INFO] [stdout] test tests::repair_plan_to_text_contains_counts_and_entries ... ok
[INFO] [stdout] test tests::unknown_edition_context_is_unknown_unless_resource_is_any ... ok
[INFO] [stdout] test tests::repair_plan_to_text_is_noop_when_fully_valid ... ok
[INFO] [stdout] test tests::unknown_resource_returns_error ... ok
[INFO] [stdout] test tests::total_size_calculation_is_correct ... ok
[INFO] [stdout] test tests::resource_folder_name_and_manifest_name_mismatch_returns_error ... ok
[INFO] [stdout] test tests::valid_transition_planned_validated_ready_started_stopped ... ok
[INFO] [stdout] test tests::validate_edition_compatibility_values ... ok
[INFO] [stdout] test tests::hash_mismatch_is_reported ... ok
[INFO] [stdout] test tests::repair_plan_hash_mismatch_is_replace_invalid ... ok
[INFO] [stdout] test tests::repair_plan_mixed_counts_are_correct ... ok
[INFO] [stdout] test tests::size_mismatch_is_reported ... ok
[INFO] [stdout] test tests::repair_plan_size_mismatch_is_replace_invalid ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 65 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/server-c37c3dc89d5dd61c)
[INFO] [stdout] 
[INFO] [stdout] running 243 tests
[INFO] [stdout] test admin::tests::case_insensitive_parsing ... ok
[INFO] [stdout] test admin::tests::empty_input_returns_empty_error ... ok
[INFO] [stdout] test admin::tests::diagnostics_falls_back_to_placeholder_without_registry ... ok
[INFO] [stdout] test admin::tests::handle_produces_nonempty_message_for_all_commands ... ok
[INFO] [stdout] test admin::tests::non_quit_commands_do_not_quit ... ok
[INFO] [stdout] test admin::tests::parse_diagnostics ... ok
[INFO] [stdout] test admin::tests::parse_help ... ok
[INFO] [stdout] test admin::tests::parse_quit ... ok
[INFO] [stdout] test admin::tests::parse_resources ... ok
[INFO] [stdout] test admin::tests::parse_sessions ... ok
[INFO] [stdout] test admin::tests::parse_status ... ok
[INFO] [stdout] test admin::tests::quit_result_sets_should_quit ... ok
[INFO] [stdout] test admin::tests::sessions_falls_back_to_counts_without_registry ... ok
[INFO] [stdout] test admin::tests::handle_with_status_sessions_shows_counts ... ok
[INFO] [stdout] test admin::tests::handle_with_status_resources_shows_dir ... ok
[INFO] [stdout] test admin::tests::handle_with_status_returns_status_text_for_status_command ... ok
[INFO] [stdout] test admin::tests::diagnostics_output_is_deterministic ... ok
[INFO] [stdout] test admin::tests::diagnostics_with_connected_session ... ok
[INFO] [stdout] test admin::tests::diagnostics_with_ready_dry_run_session ... ok
[INFO] [stdout] test admin::tests::sessions_heartbeat_output_is_deterministic ... ok
[INFO] [stdout] test admin::tests::sessions_shows_healthy_heartbeat_label_after_ping_pong ... ok
[INFO] [stdout] test admin::tests::diagnostics_with_failed_session ... ok
[INFO] [stdout] test admin::tests::diagnostics_with_empty_registry_snapshot ... ok
[INFO] [stdout] test admin::tests::sessions_shows_healthy_srv_heartbeat_when_all_pongs_received ... ok
[INFO] [stdout] test admin::tests::diagnostics_output_omits_ip_personal_data ... ok
[INFO] [stdout] test admin::tests::sessions_shows_awaiting_pong_srv_heartbeat_when_no_reply ... ok
[INFO] [stdout] test admin::tests::diagnostics_does_not_mutate_snapshot ... ok
[INFO] [stdout] test admin::tests::sessions_shows_no_activity_heartbeat_label_for_new_session ... ok
[INFO] [stdout] test admin::tests::sessions_shows_no_activity_srv_heartbeat_for_new_session ... ok
[INFO] [stdout] test admin::tests::handle_with_status_none_falls_back_to_placeholder_for_status ... ok
[INFO] [stdout] test admin::tests::sessions_shows_nonzero_heartbeat_counts_after_ping_pong ... ok
[INFO] [stdout] test admin::tests::sessions_shows_unhealthy_under_strict_policy_for_pong_gap ... ok
[INFO] [stdout] test admin::tests::sessions_shows_no_activity_heartbeat_under_strict_policy_for_new_session ... ok
[INFO] [stdout] test admin::tests::sessions_srv_heartbeat_output_is_deterministic ... ok
[INFO] [stdout] test admin::tests::sessions_with_connected_session ... ok
[INFO] [stdout] test admin::tests::sessions_with_empty_registry ... ok
[INFO] [stdout] test admin::tests::sessions_with_ready_dry_run_and_protocol_version ... ok
[INFO] [stdout] test admin::tests::trims_whitespace ... ok
[INFO] [stdout] test admin::tests::unknown_command_error ... ok
[INFO] [stdout] test admin::tests::unknown_command_error_includes_input ... ok
[INFO] [stdout] test config::tests::default_admin_section_has_stdin_disabled ... ok
[INFO] [stdout] test config::tests::default_bind_addr_parses_as_socket_addr ... ok
[INFO] [stdout] test config::tests::default_heartbeat_policy_is_report_only ... ok
[INFO] [stdout] test admin::tests::sessions_shows_would_disconnect_srv_heartbeat_under_strict_at_threshold ... ok
[INFO] [stdout] test admin::tests::sessions_with_registry_preferred_over_status ... ok
[INFO] [stdout] test config::tests::default_config_validates ... ok
[INFO] [stdout] test config::tests::default_logging_config_validates ... ok
[INFO] [stdout] test config::tests::lifecycle_summary_deterministic ... ok
[INFO] [stdout] test admin::tests::sessions_shows_zero_heartbeat_counts_with_no_activity ... ok
[INFO] [stdout] test config::tests::lifecycle_summary_includes_admin_logging_diagnostics ... ok
[INFO] [stdout] test config::tests::lifecycle_summary_includes_dry_run_policies ... ok
[INFO] [stdout] test config::tests::lifecycle_summary_includes_heartbeat_policy_report_only ... ok
[INFO] [stdout] test config::tests::lifecycle_summary_includes_server_identity ... ok
[INFO] [stdout] test config::tests::lifecycle_summary_includes_enforcement_and_signature ... ok
[INFO] [stdout] test config::tests::lifecycle_summary_no_ip_personal_data ... ok
[INFO] [stdout] test config::tests::log_level_as_str_matches_serde_name ... ok
[INFO] [stdout] test config::tests::admin_section_omitted_defaults_to_disabled ... ok
[INFO] [stdout] test config::tests::heartbeat_section_omitted_defaults_to_report_only ... ok
[INFO] [stdout] test config::tests::invalid_heartbeat_policy_is_rejected ... ok
[INFO] [stdout] test config::tests::heartbeat_policy_report_only_parses_explicitly ... ok
[INFO] [stdout] test config::tests::lifecycle_summary_includes_heartbeat_policy_strict ... ok
[INFO] [stdout] test config::tests::partial_config_fills_missing_fields_with_defaults ... ok
[INFO] [stdout] test config::tests::json_stub_diagnostics_format_parses ... ok
[INFO] [stdout] test config::tests::admin_section_parses_enabled ... ok
[INFO] [stdout] test config::tests::heartbeat_policy_strict_parses ... ok
[INFO] [stdout] test config::tests::lifecycle_summary_reflects_admin_enabled ... ok
[INFO] [stdout] test config::tests::reject_exact_version_required_false ... ok
[INFO] [stdout] test config::tests::parse_valid_toml_config ... ok
[INFO] [stdout] test config::tests::reject_path_traversal_in_announcement_resource_dir ... ok
[INFO] [stdout] test diagnostics::tests::diagnostics_from_new_session ... ok
[INFO] [stdout] test config::tests::invalid_log_format_rejected_at_parse ... ok
[INFO] [stdout] test config::tests::reject_path_traversal_in_cache_dir ... ok
[INFO] [stdout] test diagnostics::tests::diagnostics_from_ready_dry_run_session ... ok
[INFO] [stdout] test config::tests::strict_signature_in_lifecycle_summary ... ok
[INFO] [stdout] test config::tests::strict_enforcement_in_lifecycle_summary ... ok
[INFO] [stdout] test diagnostics::tests::diagnostics_does_not_mutate_state_or_log ... ok
[INFO] [stdout] test config::tests::unknown_diagnostics_format_rejected_at_parse ... ok
[INFO] [stdout] test config::tests::parse_valid_logging_section ... ok
[INFO] [stdout] test config::tests::invalid_log_level_rejected_at_parse ... ok
[INFO] [stdout] test config::tests::all_log_levels_parse ... ok
[INFO] [stdout] test diagnostics::tests::diagnostics_failure_reason_included ... ok
[INFO] [stdout] test config::tests::reject_enforce_required_resources_true ... ok
[INFO] [stdout] test diagnostics::tests::diagnostics_includes_event_count ... ok
[INFO] [stdout] test diagnostics::tests::diagnostics_text_contains_state_and_count ... ok
[INFO] [stdout] test diagnostics::tests::heartbeat_decision_none_by_default ... ok
[INFO] [stdout] test config::tests::reject_negotiation_dry_run_false ... ok
[INFO] [stdout] test config::tests::reject_invalid_bind_addr ... ok
[INFO] [stdout] test diagnostics::tests::diagnostics_includes_heartbeat_counts ... ok
[INFO] [stdout] test diagnostics::tests::with_heartbeat_policy_no_activity_sets_no_heartbeat_observed ... ok
[INFO] [stdout] test enforcement::tests::decision_to_text_invalid_first_message ... ok
[INFO] [stdout] test diagnostics::tests::with_heartbeat_policy_decision_appears_in_text ... ok
[INFO] [stdout] test diagnostics::tests::with_heartbeat_policy_ping_pong_sets_healthy ... ok
[INFO] [stdout] test enforcement::tests::decision_to_text_allow ... ok
[INFO] [stdout] test enforcement::tests::decision_to_text_version_mismatch ... ok
[INFO] [stdout] test enforcement::tests::decision_to_text_mark_failed ... ok
[INFO] [stdout] test enforcement::tests::decision_to_text_invalid_state_transition ... ok
[INFO] [stdout] test enforcement::tests::policy_equality ... ok
[INFO] [stdout] test enforcement::tests::failed_without_reason_marks_failed ... ok
[INFO] [stdout] test enforcement::tests::decision_to_text_capability_gate_failure ... ok
[INFO] [stdout] test enforcement::tests::extract_versions_from_standard_reason ... ok
[INFO] [stdout] test diagnostics::tests::with_heartbeat_policy_decision_in_text_is_deterministic ... ok
[INFO] [stdout] test enforcement::tests::extract_versions_missing_values_defaults_zero ... ok
[INFO] [stdout] test diagnostics::tests::diagnostics_text_output_is_deterministic ... ok
[INFO] [stdout] test enforcement::tests::extract_versions_no_match_defaults_zero ... ok
[INFO] [stdout] test enforcement::tests::strict_disconnects_invalid_state_transition ... ok
[INFO] [stdout] test enforcement::tests::report_only_always_allows_failed ... ok
[INFO] [stdout] test enforcement::tests::to_text_is_deterministic ... ok
[INFO] [stdout] test enforcement::tests::report_only_always_allows_ready_dry_run ... ok
[INFO] [stdout] test enforcement::tests::strict_allows_ready_dry_run ... ok
[INFO] [stdout] test enforcement::tests::strict_marks_failed_for_intermediate_state ... ok
[INFO] [stdout] test enforcement::tests::strict_disconnects_connected_no_progress ... ok
[INFO] [stdout] test event_log::tests::count_kind_counts_matching_events ... ok
[INFO] [stdout] test enforcement::tests::strict_marks_failed_for_generic_failure ... ok
[INFO] [stdout] test enforcement::tests::session_stuck_at_hello_received_marks_failed ... ok
[INFO] [stdout] test enforcement::tests::strict_disconnects_version_mismatch ... ok
[INFO] [stdout] test event_log::tests::empty_event_log ... ok
[INFO] [stdout] test event_log::tests::failed_event_can_be_recorded ... ok
[INFO] [stdout] test event_log::tests::first_sequence_is_one ... ok
[INFO] [stdout] test event_log::tests::full_session_records_in_order ... ok
[INFO] [stdout] test event_log::tests::last_event_works ... ok
[INFO] [stdout] test event_log::tests::len_matches_record_count ... ok
[INFO] [stdout] test event_log::tests::sequence_increments ... ok
[INFO] [stdout] test heartbeat_planner::tests::above_threshold_timeouts_under_report_only_never_disconnects ... ok
[INFO] [stdout] test heartbeat_planner::tests::above_threshold_timeouts_under_strict_returns_would_disconnect ... ok
[INFO] [stdout] test event_log::tests::event_stores_state_and_message ... ok
[INFO] [stdout] test heartbeat_planner::tests::all_pings_answered_returns_healthy ... ok
[INFO] [stdout] test heartbeat_planner::tests::at_threshold_timeouts_under_strict_returns_would_disconnect ... ok
[INFO] [stdout] test heartbeat_planner::tests::default_input_has_no_heartbeat_observed ... ok
[INFO] [stdout] test heartbeat_planner::tests::no_heartbeat_activity_returns_no_heartbeat_observed ... ok
[INFO] [stdout] test heartbeat_planner::tests::one_timeout_under_report_only_returns_would_warn_timeout ... ok
[INFO] [stdout] test heartbeat_planner::tests::one_timeout_under_strict_below_threshold_returns_would_warn_timeout ... ok
[INFO] [stdout] test heartbeat_planner::tests::ping_sent_no_pong_no_error_returns_would_warn_no_pong_yet ... ok
[INFO] [stdout] test heartbeat_planner::tests::policy_equality ... ok
[INFO] [stdout] test heartbeat_planner::tests::pong_gap_no_timeout_returns_would_mark_unhealthy ... ok
[INFO] [stdout] test heartbeat_planner::tests::single_ping_single_pong_is_healthy ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_above_threshold_under_strict_returns_would_disconnect ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_above_threshold_with_some_pong_under_report_only_returns_missed_pong ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_all_pongs_received_returns_healthy ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_at_threshold_no_pong_under_report_only_returns_awaiting_pong ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_at_threshold_no_pong_under_strict_returns_would_disconnect ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_at_threshold_with_some_pong_under_strict_returns_would_disconnect ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_default_input_returns_no_activity ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_no_pings_returns_no_activity ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_one_ping_no_pong_below_threshold_returns_awaiting_pong ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_pong_gap_below_threshold_returns_missed_pong ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_single_ping_single_pong_is_healthy ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_to_short_label_awaiting_pong ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_to_short_label_healthy ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_to_short_label_missed_pong ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_to_short_label_no_activity ... ok
[INFO] [stdout] test heartbeat_planner::tests::srv_to_short_label_would_disconnect ... ok
[INFO] [stdout] test heartbeat_planner::tests::to_short_label_healthy ... ok
[INFO] [stdout] test heartbeat_planner::tests::to_short_label_no_heartbeat_observed ... ok
[INFO] [stdout] test heartbeat_planner::tests::to_short_label_no_pong_yet ... ok
[INFO] [stdout] test heartbeat_planner::tests::to_short_label_unhealthy ... ok
[INFO] [stdout] test heartbeat_planner::tests::to_short_label_warn_timeout ... ok
[INFO] [stdout] test heartbeat_planner::tests::to_short_label_would_disconnect ... ok
[INFO] [stdout] test heartbeat_planner::tests::to_text_healthy ... ok
[INFO] [stdout] test heartbeat_planner::tests::to_text_would_disconnect_missed_heartbeat ... ok
[INFO] [stdout] test heartbeat_planner::tests::to_text_is_deterministic ... ok
[INFO] [stdout] test heartbeat_planner::tests::to_text_would_warn_timeout ... ok
[INFO] [stdout] test heartbeat_planner::tests::to_text_no_heartbeat_observed ... ok
[INFO] [stdout] test heartbeat_planner::tests::two_timeouts_under_strict_below_threshold_returns_would_warn_timeout ... ok
[INFO] [stdout] test session::tests::backwards_transition_is_rejected ... ok
[INFO] [stdout] test session::tests::fail_records_reason ... ok
[INFO] [stdout] test session::tests::failed_is_terminal ... ok
[INFO] [stdout] test session::tests::history_tracks_transitions ... ok
[INFO] [stdout] test session::tests::initial_state_is_connected ... ok
[INFO] [stdout] test session::tests::invalid_transition_returns_invalid_transition_error ... ok
[INFO] [stdout] test heartbeat_planner::tests::to_text_would_mark_unhealthy ... ok
[INFO] [stdout] test session::tests::skipping_states_is_rejected ... ok
[INFO] [stdout] test session::tests::version_mismatch_marks_failed ... ok
[INFO] [stdout] test session::tests::valid_full_transition_path_reaches_ready_dry_run ... ok
[INFO] [stdout] test session_registry::tests::default_heartbeat_policy_is_report_only ... ok
[INFO] [stdout] test session_registry::tests::event_count_update_works ... ok
[INFO] [stdout] test session_registry::tests::failed_session_counts_connected_until_removed ... ok
[INFO] [stdout] test session_registry::tests::create_session_increments_connected_count ... ok
[INFO] [stdout] test session::tests::policy_blocked_dry_run_session_still_continues ... ok
[INFO] [stdout] test session_registry::tests::multiple_sessions_tracked_independently ... ok
[INFO] [stdout] test session_registry::tests::heartbeat_counts_independent_per_session ... ok
[INFO] [stdout] test session_registry::tests::new_session_has_zero_heartbeat_counts ... ok
[INFO] [stdout] test session_registry::tests::ready_dry_run_count_works ... ok
[INFO] [stdout] test session_registry::tests::registry_starts_empty ... ok
[INFO] [stdout] test session_registry::tests::remove_nonexistent_session_is_noop ... ok
[INFO] [stdout] test session_registry::tests::removing_session_decrements_connected_count ... ok
[INFO] [stdout] test session_registry::tests::session_ids_are_deterministic ... ok
[INFO] [stdout] test session_registry::tests::set_heartbeat_policy_updates_snapshot ... ok
[INFO] [stdout] test session_registry::tests::strict_policy_shows_healthy_after_ping_pong ... ok
[INFO] [stdout] test session_registry::tests::strict_policy_shows_no_activity_for_new_session ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_does_not_mutate_snapshot ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_empty_registry ... ok
[INFO] [stdout] test session_registry::tests::snapshot_ordering_is_deterministic ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_includes_session_ids ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_is_deterministic ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_omits_ip_and_personal_data ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_report_only_never_shows_would_disconnect_for_srv_heartbeat ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_shows_failed ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_shows_healthy_heartbeat_after_ping_pong ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_shows_healthy_srv_heartbeat_after_ping_pong ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_shows_missed_pong_when_gap ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_shows_no_activity_heartbeat_for_new_session ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_shows_no_activity_srv_heartbeat_for_new_session ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_shows_no_pong_yet_when_ping_sent_no_pong ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_shows_nonzero_heartbeat_counts ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_shows_unhealthy_when_pong_gap ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_heartbeat_label_is_deterministic ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_shows_ready_dry_run ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_shows_would_disconnect_under_strict_at_threshold ... ok
[INFO] [stdout] test session_registry::tests::update_state_reflects_in_snapshot ... ok
[INFO] [stdout] test session_registry::tests::update_session_sets_state_and_count_atomically ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_shows_zero_heartbeat_counts ... ok
[INFO] [stdout] test shutdown::tests::build_summary_deterministic ... ok
[INFO] [stdout] test shutdown::tests::build_summary_includes_reason ... ok
[INFO] [stdout] test shutdown::tests::build_summary_includes_status_text ... ok
[INFO] [stdout] test shutdown::tests::build_summary_reason_distinct_per_call ... ok
[INFO] [stdout] test session_registry::tests::update_heartbeat_counts_reflected_in_snapshot ... ok
[INFO] [stdout] test shutdown::tests::build_summary_no_ip_personal_data ... ok
[INFO] [stdout] test shutdown::tests::all_reasons_distinct ... ok
[INFO] [stdout] test shutdown::tests::build_summary_includes_registry_text ... ok
[INFO] [stdout] test shutdown::tests::display_reason_admin_quit ... ok
[INFO] [stdout] test shutdown::tests::display_reason_internal_error ... ok
[INFO] [stdout] test shutdown::tests::display_reason_test_requested ... ok
[INFO] [stdout] test shutdown::tests::is_requested_false_before_request ... ok
[INFO] [stdout] test shutdown::tests::new_state_not_requested ... ok
[INFO] [stdout] test shutdown::tests::reason_none_before_request ... ok
[INFO] [stdout] test shutdown::tests::repeated_request_keeps_first_reason ... ok
[INFO] [stdout] test shutdown::tests::request_sets_reason ... ok
[INFO] [stdout] test session_registry::tests::failed_count_works ... ok
[INFO] [stdout] test heartbeat_planner::tests::to_text_would_warn_no_pong_yet ... ok
[INFO] [stdout] test status::tests::default_config_heartbeat_policy_is_report_only ... ok
[INFO] [stdout] test status::tests::status_from_default_config ... ok
[INFO] [stdout] test status::tests::status_from_strict_heartbeat_config ... ok
[INFO] [stdout] test status::tests::to_text_does_not_contain_client_ip_fields ... ok
[INFO] [stdout] test status::tests::to_text_includes_admin_and_diagnostics_flags ... ok
[INFO] [stdout] test status::tests::to_text_includes_policy_flags ... ok
[INFO] [stdout] test status::tests::to_text_includes_resource_announcement_dir ... ok
[INFO] [stdout] test status::tests::with_session_counts_text_reflects_counts ... ok
[INFO] [stdout] test status::tests::with_session_counts_updates_fields ... ok
[INFO] [stdout] test status::tests::to_text_is_deterministic ... ok
[INFO] [stdout] test status::tests::to_text_includes_heartbeat_policy_report_only ... ok
[INFO] [stdout] test diagnostics::tests::diagnostics_includes_last_event_message ... ok
[INFO] [stdout] test session_registry::tests::strict_policy_shows_unhealthy_for_pong_gap ... ok
[INFO] [stdout] test session_registry::tests::to_diagnostics_text_shows_awaiting_pong_when_no_reply ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 243 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/server-7fa0200f3cca6f18)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/handshake_observability.rs (/opt/rustwide/target/debug/deps/handshake_observability-c87c78e750be9704)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test missing_login_capability_payload_rejected ... ok
[INFO] [stdout] test invalid_handshake_first_message_not_login ... ok
[INFO] [stdout] test version_mismatch_disconnects_and_cleans_up_session ... ok
[INFO] [stdout] test full_handshake_creates_session_and_reaches_ready_dry_run ... ok
[INFO] [stdout] test registry_session_id_is_deterministic ... ok
[INFO] [stdout] test session_cleaned_up_on_early_disconnect ... ok
[INFO] [stdout] test session_created_on_connect_before_login ... ok
[INFO] [stdout] test runtime_status_reflects_live_session_counts ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/heartbeat_enforcement.rs (/opt/rustwide/target/debug/deps/heartbeat_enforcement-c9c47bc35490da04)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test strict_heartbeat_policy_session_stays_connected_when_healthy ... ok
[INFO] [stdout] test report_only_heartbeat_policy_session_stays_connected ... ok
[INFO] [stdout] test registry_cleans_up_after_enforced_heartbeat_disconnect ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/heartbeat_scheduler.rs (/opt/rustwide/target/debug/deps/heartbeat_scheduler-6df7b8e665d4d349)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test server_sends_server_ping_after_handshake ... ok
[INFO] [stdout] test server_ping_sequences_increment ... ok
[INFO] [stdout] test server_pong_reply_updates_registry_counts ... ok
[INFO] [stdout] test mismatched_server_pong_sequence_is_not_fatal ... ok
[INFO] [stdout] test diagnostics_text_shows_server_heartbeat_counts ... ok
[INFO] [stdout] test session_cleanup_stops_scheduler_state ... ok
[INFO] [stdout] test report_only_never_disconnects_on_missing_pong ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.65s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/heartbeat_strict_enforcement.rs (/opt/rustwide/target/debug/deps/heartbeat_strict_enforcement-1da04475ed3b1ca7)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test strict_missed_server_pong_threshold_disconnects_session ... ok
[INFO] [stdout] test strict_enforcement_independent_of_client_ping_activity ... ok
[INFO] [stdout] test strict_partial_pong_history_still_disconnects_at_threshold ... ok
[INFO] [stdout] test report_only_never_disconnects_for_missed_server_pong ... ok
[INFO] [stdout] test strict_healthy_heartbeat_keeps_session_connected ... ok
[INFO] [stdout] test strict_registry_cleaned_up_after_heartbeat_disconnect ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.47s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/heartbeat_timeout_status.rs (/opt/rustwide/target/debug/deps/heartbeat_timeout_status-4e8cabcb3f50c971)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test registry_diagnostics_text_shows_srv_heartbeat_label_and_counts ... ok
[INFO] [stdout] test srv_heartbeat_awaiting_pong_when_no_reply_sent ... ok
[INFO] [stdout] test srv_heartbeat_healthy_when_pong_received ... ok
[INFO] [stdout] test srv_heartbeat_no_activity_when_no_pings_sent ... ok
[INFO] [stdout] test srv_heartbeat_report_only_never_shows_would_disconnect ... ok
[INFO] [stdout] test srv_heartbeat_strict_enforcement_removes_session_at_threshold ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ping_pong_integration.rs (/opt/rustwide/target/debug/deps/ping_pong_integration-1a148d71a02d7ecd)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test ping_before_login_is_invalid ... ok
[INFO] [stdout] test handshake_then_ping_pong ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/session_enforcement.rs (/opt/rustwide/target/debug/deps/session_enforcement-bebde66aa2999afc)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test report_only_missing_required_capability_does_not_disconnect ... ok
[INFO] [stdout] test report_only_successful_handshake_reaches_ready_dry_run ... ok
[INFO] [stdout] test strict_warning_only_capability_negotiation_still_allows_handshake ... ok
[INFO] [stdout] test strict_successful_handshake_reaches_ready_dry_run ... ok
[INFO] [stdout] test strict_invalid_first_message_disconnects ... ok
[INFO] [stdout] test strict_missing_required_capability_disconnects ... ok
[INFO] [stdout] test strict_version_mismatch_disconnects ... ok
[INFO] [stdout] test strict_handshake_cleans_up_registry_on_disconnect ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/session_flow.rs (/opt/rustwide/target/debug/deps/session_flow-6de4f7e999133f4a)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test rejects_protocol_mismatch ... ok
[INFO] [stdout] test login_chat_and_snapshot_flow ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/signature_verification.rs (/opt/rustwide/target/debug/deps/signature_verification-cac71c75183f0a86)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stderr]      Running tests/smoke.rs (/opt/rustwide/target/debug/deps/smoke-012aae9444e72134)
[INFO] [stdout] test live_unsigned_announcement_strict_would_reject ... ok
[INFO] [stdout] test live_unsigned_announcement_report_only_accepts ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test lifecycle_summary_no_ip_personal_data ... ok
[INFO] [stdout] test no_remote_admin_fields ... ok
[INFO] [stdout] test default_config_initializes_lifecycle ... ok
[INFO] [stdout] test dry_run_policies_reflected_in_summary ... ok
[INFO] [stdout] test admin_stdin_disabled_by_default ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/server_browser-9cb9937d7586829b)
[INFO] [stdout] test shutdown_summary_from_default_lifecycle ... ok
[INFO] [stdout] test runtime_status_from_config_and_empty_registry ... ok
[INFO] [stdout] test example_config_file_validates ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test tests::filter_by_protocol_version_returns_matching_entries ... ok
[INFO] [stdout] test tests::filter_by_edition_returns_compatible_entries ... ok
[INFO] [stdout] test tests::parse_valid_server_list ... ok
[INFO] [stdout] test tests::reject_invalid_server_list ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests client
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests game_edition
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests protocol
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests resource_manifest
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests server
[INFO] [stderr]    Doc-tests server_browser
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "07c4fd9ed5751b60f3cc9890f1330426c6785bda9413b0ff142132843581769b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "07c4fd9ed5751b60f3cc9890f1330426c6785bda9413b0ff142132843581769b", kill_on_drop: false }`
[INFO] [stdout] 07c4fd9ed5751b60f3cc9890f1330426c6785bda9413b0ff142132843581769b
