[INFO] fetching crate fortress-rollback 0.9.0...
[INFO] testing fortress-rollback-0.9.0 against 1.97.0-beta.6 for beta-1.98-1
[INFO] extracting crate fortress-rollback 0.9.0 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate fortress-rollback 0.9.0
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate fortress-rollback 0.9.0
[INFO] tweaked toml for crates.io crate fortress-rollback 0.9.0 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate fortress-rollback 0.9.0 on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate fortress-rollback 0.9.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cmake v0.1.56
[INFO] [stderr]   Downloaded quad-rand v0.2.3
[INFO] [stderr]   Downloaded z3 v0.20.0
[INFO] [stderr]   Downloaded zmij v1.0.2
[INFO] [stderr]   Downloaded macroquad_macro v0.1.8
[INFO] [stderr]   Downloaded objc-rs v0.2.8
[INFO] [stderr]   Downloaded z3-sys v0.11.0
[INFO] [stderr]   Downloaded miniquad v0.4.10
[INFO] [stderr]   Downloaded macroquad v0.4.15
[INFO] [stderr]   Downloaded generator v0.8.7
[INFO] [stderr]   Downloaded fontdue v0.9.3
[INFO] [stderr]   Downloaded z3-src v416.0.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9f68e87507523af8fb35b37dae3096e2c508180fdff024a0017fb8881b75680d
[INFO] running `Command { std: "docker" "start" "9f68e87507523af8fb35b37dae3096e2c508180fdff024a0017fb8881b75680d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9f68e87507523af8fb35b37dae3096e2c508180fdff024a0017fb8881b75680d", 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" "9f68e87507523af8fb35b37dae3096e2c508180fdff024a0017fb8881b75680d" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9f68e87507523af8fb35b37dae3096e2c508180fdff024a0017fb8881b75680d", 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" "9f68e87507523af8fb35b37dae3096e2c508180fdff024a0017fb8881b75680d" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling virtue v0.0.18
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling unty v0.0.4
[INFO] [stderr]    Compiling web-time v1.1.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling bincode_derive v2.0.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling bincode v2.0.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling fortress-rollback v0.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 33.75s
[INFO] running `Command { std: "docker" "inspect" "9f68e87507523af8fb35b37dae3096e2c508180fdff024a0017fb8881b75680d", 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" "9f68e87507523af8fb35b37dae3096e2c508180fdff024a0017fb8881b75680d" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling zmij v1.0.2
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling cc v1.2.49
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling pastey v0.2.3
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerocopy-derive v0.8.31
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling serial_test_derive v3.5.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling bincode v2.0.1
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]    Compiling serial_test v3.5.0
[INFO] [stderr]    Compiling fortress-rollback v0.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 17s
[INFO] running `Command { std: "docker" "inspect" "9f68e87507523af8fb35b37dae3096e2c508180fdff024a0017fb8881b75680d", 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" "9f68e87507523af8fb35b37dae3096e2c508180fdff024a0017fb8881b75680d" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.23s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/fortress_rollback-3e7259662f120a70)
[INFO] [stdout] 
[INFO] [stdout] running 1580 tests
[INFO] [stdout] test checksum::property_tests::prop_checksum_tuples_deterministic ... ok
[INFO] [stdout] test checksum::property_tests::prop_checksum_different_primitives ... ok
[INFO] [stdout] test checksum::property_tests::prop_checksum_deterministic ... ok
[INFO] [stdout] test checksum::property_tests::prop_checksum_different_containers ... ok
[INFO] [stdout] test checksum::property_tests::prop_fletcher16_checksum_deterministic ... ok
[INFO] [stdout] test checksum::property_tests::prop_different_frames_different_checksums ... ok
[INFO] [stdout] test checksum::property_tests::prop_fletcher16_deterministic ... ok
[INFO] [stdout] test checksum::tests::checksum_error_display ... ok
[INFO] [stdout] test checksum::property_tests::prop_checksum_nested_deterministic ... ok
[INFO] [stdout] test checksum::property_tests::prop_checksum_vecs_deterministic ... ok
[INFO] [stdout] test checksum::tests::checksum_algorithm_display ... ok
[INFO] [stdout] test checksum::tests::checksum_error_equality ... ok
[INFO] [stdout] test checksum::tests::checksum_algorithm_is_copy ... ok
[INFO] [stdout] test checksum::tests::checksum_error_fletcher16_display ... ok
[INFO] [stdout] test checksum::property_tests::prop_hash_bytes_in_u64_range ... ok
[INFO] [stdout] test checksum::tests::fletcher16_empty ... ok
[INFO] [stdout] test checksum::tests::hash_bytes_fnv1a_empty ... ok
[INFO] [stdout] test checksum::tests::compute_checksum_struct_field_order_matters ... ok
[INFO] [stdout] test checksum::tests::fletcher16_single_byte ... ok
[INFO] [stdout] test checksum::tests::hash_bytes_fnv1a_single_byte ... ok
[INFO] [stdout] test checksum::property_tests::prop_hash_bytes_deterministic ... ok
[INFO] [stdout] test error::tests::invalid_frame_reason_replay_exhausted_display ... ok
[INFO] [stdout] test error::tests::invalid_frame_reason_missing_state_display ... ok
[INFO] [stdout] test checksum::property_tests::prop_fletcher16_modular_bounds ... ok
[INFO] [stdout] test error::tests::test_error_clone ... ok
[INFO] [stdout] test error::tests::test_error_debug ... ok
[INFO] [stdout] test error::tests::test_error_implements_std_error ... ok
[INFO] [stdout] test error::tests::test_error_partial_eq ... ok
[INFO] [stdout] test error::tests::test_frame_arithmetic_overflow_debug ... ok
[INFO] [stdout] test error::tests::test_delta_decode_reason_decoded_frame_count_exceeds_maximum ... ok
[INFO] [stdout] test error::tests::test_frame_arithmetic_overflow_display ... ok
[INFO] [stdout] test error::tests::test_frame_arithmetic_overflow_sub_display ... ok
[INFO] [stdout] test error::tests::test_frame_value_too_large_debug ... ok
[INFO] [stdout] test error::tests::test_frame_errors_are_clone_and_eq ... ok
[INFO] [stdout] test error::tests::test_frame_value_too_large_display ... ok
[INFO] [stdout] test error::tests::test_internal_error_display ... ok
[INFO] [stdout] test error::tests::test_internal_error_kind_endpoint_not_found_for_remote ... ok
[INFO] [stdout] test error::tests::test_internal_error_kind_delta_encode_empty_reference ... ok
[INFO] [stdout] test error::tests::test_internal_error_kind_input_encode_length_mismatch ... ok
[INFO] [stdout] test error::tests::test_internal_error_kind_index_out_of_bounds ... ok
[INFO] [stdout] test error::tests::test_internal_error_kind_empty_player_inputs ... ok
[INFO] [stdout] test error::tests::test_from_invalid_request_kind ... ok
[INFO] [stdout] test error::tests::test_from_serialization_error_kind ... ok
[INFO] [stdout] test error::tests::test_internal_error_kind_synchronized_inputs_failed ... ok
[INFO] [stdout] test error::tests::test_from_socket_error_kind ... ok
[INFO] [stdout] test error::tests::test_index_out_of_bounds_display ... ok
[INFO] [stdout] test error::tests::test_internal_error_kind_endpoint_not_found_for_spectator ... ok
[INFO] [stdout] test error::tests::test_invalid_frame_display ... ok
[INFO] [stdout] test error::tests::test_internal_error_structured_display ... ok
[INFO] [stdout] test error::tests::test_invalid_frame_reason_not_confirmed ... ok
[INFO] [stdout] test error::tests::test_internal_error_kind_rle_decode_error ... ok
[INFO] [stdout] test error::tests::test_internal_error_kind_delta_encode_input_length_mismatch ... ok
[INFO] [stdout] test error::tests::test_invalid_frame_reason_not_in_past ... ok
[INFO] [stdout] test error::tests::test_invalid_frame_reason_null_frame ... ok
[INFO] [stdout] test error::tests::test_internal_error_kind_disconnect_status_not_found ... ok
[INFO] [stdout] test error::tests::test_invalid_frame_reason_outside_prediction_window ... ok
[INFO] [stdout] test error::tests::test_invalid_frame_reason_wrong_saved_frame ... ok
[INFO] [stdout] test error::tests::test_invalid_frame_structured_display ... ok
[INFO] [stdout] test error::tests::test_invalid_request_display ... ok
[INFO] [stdout] test error::tests::test_invalid_player_handle_display ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_check_distance_too_large ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_already_disconnected ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_config_value_out_of_range ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_disconnect_local_player ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_custom ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_disconnect_invalid_handle ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_frame_delay_too_large ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_input_delay_too_large_with_zero_fps ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_invalid_spectator_handle ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_invalid_local_player_handle ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_max_frames_behind_invalid ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_invalid_remote_player_handle ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_input_delay_too_large ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_duration_config_out_of_range ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_event_queue_size_too_small ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_not_local_player ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_missing_local_input ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_catchup_speed_invalid ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_not_enough_players ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_not_supported ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_player_handle_in_use ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_not_supported_converts_to_error ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_no_confirmed_input ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_not_remote_player_or_spectator ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_zero_fps ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_zero_players ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_queue_length_too_small ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_is_copy ... ok
[INFO] [stdout] test error::tests::test_missing_input_display ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_zero_buffer_size ... ok
[INFO] [stdout] test error::tests::test_new_variants_are_copy ... ok
[INFO] [stdout] test error::tests::test_not_synchronized_display ... ok
[INFO] [stdout] test error::tests::test_prediction_threshold_display ... ok
[INFO] [stdout] test error::tests::test_rle_decode_reason_allocation_failed ... ok
[INFO] [stdout] test error::tests::test_rle_decode_reason_destination_slice_out_of_bounds ... ok
[INFO] [stdout] test error::tests::test_rle_decode_reason_decoded_length_exceeds_maximum ... ok
[INFO] [stdout] test error::tests::test_rle_decode_reason_is_copy ... ok
[INFO] [stdout] test error::tests::test_serialization_error_kind_is_copy ... ok
[INFO] [stdout] test error::tests::test_serialization_error_kind_spectator_endpoint_creation_failed ... ok
[INFO] [stdout] test error::tests::test_invalid_request_structured_display ... ok
[INFO] [stdout] test error::tests::test_invalid_request_kind_wrong_protocol_state ... ok
[INFO] [stdout] test error::tests::test_rle_decode_reason_malformed_varint ... ok
[INFO] [stdout] test error::tests::test_mismatched_checksum_display ... ok
[INFO] [stdout] test error::tests::test_serialization_error_structured_display ... ok
[INFO] [stdout] test error::tests::test_socket_error_display ... ok
[INFO] [stdout] test error::tests::test_rle_decode_reason_source_slice_out_of_bounds ... ok
[INFO] [stdout] test error::tests::test_rle_decode_reason_truncated_data ... ok
[INFO] [stdout] test error::tests::test_rle_decode_reason_unknown ... ok
[INFO] [stdout] test error::tests::test_serialization_error_display ... ok
[INFO] [stdout] test error::tests::test_rle_decode_reason_bitfield_index_out_of_bounds ... ok
[INFO] [stdout] test error::tests::test_serialization_error_kind_custom ... ok
[INFO] [stdout] test error::tests::test_serialization_error_kind_endpoint_creation_failed ... ok
[INFO] [stdout] test error::tests::test_serialization_error_kind_input_serialized_frame_too_large ... ok
[INFO] [stdout] test error::tests::test_socket_error_kind_bind_failed ... ok
[INFO] [stdout] test error::tests::test_socket_error_kind_bind_failed_after_retries ... ok
[INFO] [stdout] test error::tests::test_socket_error_kind_custom ... ok
[INFO] [stdout] test error::tests::test_spectator_divergence_display ... ok
[INFO] [stdout] test error::tests::try_reserve_hint_per_item_zero_reserves_nothing ... ok
[INFO] [stdout] test error::tests::try_reserve_hint_saturating_overflow_is_silent_noop_not_panic ... ok
[INFO] [stdout] test frame_info::game_state_tests::default_state_has_null_frame ... ok
[INFO] [stdout] test error::tests::try_reserve_hint_some_upper_reserves_at_least_upper_times_per_item ... ok
[INFO] [stdout] test frame_info::game_state_tests::game_state_clone_preserves_all_fields ... ok
[INFO] [stdout] test frame_info::game_state_tests::game_state_complex_data_type ... ok
[INFO] [stdout] test frame_info::game_state_tests::game_state_max_checksum_value ... ok
[INFO] [stdout] test frame_info::game_state_tests::game_state_debug_format ... ok
[INFO] [stdout] test error::tests::test_spectator_too_far_behind_display ... ok
[INFO] [stdout] test error::tests::test_socket_error_kind_is_copy ... ok
[INFO] [stdout] test error::tests::test_socket_error_structured_display ... ok
[INFO] [stdout] test error::tests::test_serialization_error_kind_input_serialized_size_zero ... ok
[INFO] [stdout] test error::tests::test_structured_errors_are_copy ... ok
[INFO] [stdout] test error::tests::try_reserve_hint_none_upper_is_noop ... ok
[INFO] [stdout] test frame_info::game_state_tests::game_state_stores_checksum ... ok
[INFO] [stdout] test frame_info::game_state_tests::game_state_stores_data ... ok
[INFO] [stdout] test frame_info::game_state_tests::game_state_max_frame_value ... ok
[INFO] [stdout] test frame_info::game_state_tests::game_state_stores_frame ... ok
[INFO] [stdout] test frame_info::game_state_tests::game_state_with_none_data ... ok
[INFO] [stdout] test frame_info::player_input_tests::clone_preserves_data ... ok
[INFO] [stdout] test frame_info::player_input_tests::blank_input_uses_default ... ok
[INFO] [stdout] test frame_info::player_input_tests::complex_input_new ... ok
[INFO] [stdout] test frame_info::player_input_tests::copy_semantics ... ok
[INFO] [stdout] test frame_info::player_input_tests::equal_different_frames_input_only_false ... ok
[INFO] [stdout] test frame_info::player_input_tests::complex_input_blank ... ok
[INFO] [stdout] test frame_info::player_input_tests::equal_different_frames_input_only_true ... ok
[INFO] [stdout] test frame_info::player_input_tests::equal_null_frames ... ok
[INFO] [stdout] test frame_info::player_input_tests::max_input_value ... ok
[INFO] [stdout] test frame_info::player_input_tests::frame_zero ... ok
[INFO] [stdout] test frame_info::player_input_tests::new_creates_player_input ... ok
[INFO] [stdout] test frame_info::player_input_tests::complex_input_equal ... ok
[INFO] [stdout] test frame_info::player_input_tests::debug_format_contains_fields ... ok
[INFO] [stdout] test frame_info::player_input_tests::blank_input_with_null_frame ... ok
[INFO] [stdout] test frame_info::player_input_tests::max_frame_value ... ok
[INFO] [stdout] test frame_info::player_input_tests::partial_eq_different_inputs ... ok
[INFO] [stdout] test frame_info::player_input_tests::partial_eq_different_frames ... ok
[INFO] [stdout] test frame_info::player_input_tests::partial_eq_same_inputs ... ok
[INFO] [stdout] test frame_info::player_input_tests::test_input_equality ... ok
[INFO] [stdout] test frame_info::player_input_tests::test_input_equality_fail ... ok
[INFO] [stdout] test frame_info::player_input_tests::test_input_equality_input_only ... ok
[INFO] [stdout] test hash::property_tests::prop_convenience_function_matches_manual ... ok
[INFO] [stdout] test hash::tests::test_deterministic_hasher_consistency ... ok
[INFO] [stdout] test hash::property_tests::prop_empty_input_offset_basis ... ok
[INFO] [stdout] test hash::property_tests::test_extended_fnv1a_vectors ... ok
[INFO] [stdout] test hash::property_tests::prop_single_byte_fnv1a_formula ... ok
[INFO] [stdout] test hash::property_tests::prop_hash_deterministic_u64 ... ok
[INFO] [stdout] test hash::property_tests::prop_order_sensitive ... ok
[INFO] [stdout] test hash::tests::test_deterministic_hasher_different_values ... ok
[INFO] [stdout] test hash::property_tests::prop_build_hasher_consistent ... ok
[INFO] [stdout] test hash::tests::test_deterministic_hasher_empty ... ok
[INFO] [stdout] test hash::property_tests::prop_incremental_hashing_consistent ... ok
[INFO] [stdout] test hash::property_tests::prop_hash_deterministic ... ok
[INFO] [stdout] test hash::tests::test_build_hasher ... ok
[INFO] [stdout] test hash::tests::test_deterministic_hasher_incremental ... ok
[INFO] [stdout] test hash::tests::test_deterministic_hasher_structs ... ok
[INFO] [stdout] test hash::tests::test_known_fnv1a_values ... ok
[INFO] [stdout] test hash::property_tests::prop_different_inputs_different_hashes ... ok
[INFO] [stdout] test input_queue::input_queue_tests::arrival_below_reentered_episode_request_match_does_not_set_first_incorrect ... ok
[INFO] [stdout] test input_queue::input_queue_tests::circular_index_add_rejects_invalid_modulus_or_index ... ok
[INFO] [stdout] test input_queue::input_queue_tests::arrival_below_reentered_episode_request_mismatch_sets_first_incorrect ... ok
[INFO] [stdout] test input_queue::input_queue_tests::circular_index_add_advances_without_wrap ... ok
[INFO] [stdout] test input_queue::input_queue_tests::circular_index_add_wraps_without_overflow ... ok
[INFO] [stdout] test input_queue::input_queue_tests::frame_distance_usize_rejects_overflow_or_negative_distance ... ok
[INFO] [stdout] test input_queue::input_queue_tests::freeze_at_rolls_last_confirmed_input_back_to_earlier_frame ... ok
[INFO] [stdout] test input_queue::input_queue_tests::freeze_at_with_missing_nonnull_frame_still_warns ... ok
[INFO] [stdout] test input_queue::input_queue_tests::freeze_at_with_null_frame_emits_no_violation ... ok
[INFO] [stdout] test input_queue::input_queue_tests::freeze_at_with_null_frame_leaves_value_unchanged ... ok
[INFO] [stdout] test input_queue::input_queue_tests::input_rejects_overflowing_request_distance_without_panic ... ok
[INFO] [stdout] test input_queue::input_queue_tests::freeze_at_with_present_frame_emits_no_violation ... ok
[INFO] [stdout] test input_queue::input_queue_tests::prediction_entry_on_virgin_queue_starts_at_frame_zero ... ok
[INFO] [stdout] test hash::tests::test_deterministic_hasher_strings ... ok
[INFO] [stdout] test input_queue::input_queue_tests::set_frozen_value_at_lowers_already_frozen_value_to_earlier_frame ... ok
[INFO] [stdout] test input_queue::input_queue_tests::set_frozen_value_at_on_unfrozen_queue_is_noop ... ok
[INFO] [stdout] test input_queue::input_queue_tests::set_frozen_value_at_with_missing_frame_leaves_value_unchanged ... ok
[INFO] [stdout] test input_queue::input_queue_tests::set_frozen_value_at_with_null_frame_leaves_value_unchanged ... ok
[INFO] [stdout] test input_queue::input_queue_tests::circular_index_add_handles_huge_offset ... ok
[INFO] [stdout] test input_queue::input_queue_tests::swallowed_window_mismatch_with_coinciding_boundary_value_sets_first_incorrect ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_add_input_sequentially ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_add_input_twice ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_add_input_wrong_frame ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_blank_prediction_on_frame_zero ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_confirmed_input_at_head ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_confirmed_input_at_tail ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_confirmed_input_not_found ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_confirmed_input_success ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_discard_all_but_one_with_head_at_zero ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_discard_all_preserves_correct_frame_value ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_consecutive_predictions_advance_frame ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_delayed_inputs ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_discard_confirmed_frames_respects_last_requested ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_discard_confirmed_frames_partial ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_frame_delay_decrease_mid_session_returns_error ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_frame_delay_change_increase ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_first_incorrect_frame_correct_prediction ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_discard_confirmed_frames_all_but_one ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_first_incorrect_frame_detection ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_frame_delay_increase_mid_session_replicates_last_input ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_freeze_no_op_on_add_input ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_frame_delay_initial_setup_no_inputs_yet ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_frame_delay_no_op_when_unchanged ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_freeze_prediction_returns_last_confirmed_with_disconnected_status ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_full_lifecycle_maintains_invariants ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_frame_delay_with_inputs_after_set ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_frame_delay_getter_round_trip ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_freeze_no_op_on_set_frame_delay_with_oversized_delay ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_freeze_no_op_on_set_frame_delay ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_frame_delay_increase_gap_fill_failure_preserves_state ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_input_queue_debug ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_input_queue_length_constant ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_input_queue_length_is_power_of_two ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_invariant_checker_after_discard ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_discard_all_but_one_preserves_most_recent ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_input_returns_confirmed_status ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_input_returns_none_when_frame_before_tail ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_input_returns_none_when_prediction_error_exists ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_invariant_checker_after_reset_prediction ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_input_returns_predicted_status ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_input_queue_clone ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_invariant_checker_after_add_input ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_invariant_checker_new_queue ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_invariant_checker_with_frame_delay ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_max_frame_delay_depends_on_queue_length ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_max_frame_delay_constant_is_correct ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_prediction_returns_last_confirmed_input ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_set_frame_delay_accepts_typical_values ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_set_frame_delay_accepts_zero ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_set_frame_delay_accepts_max_valid_delay ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_queue_wraparound ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_multiple_discards_maintain_invariants ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_with_queue_length_minimum ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_with_queue_length_custom ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_rejected_frame_delay_preserves_state ... ok
[INFO] [stdout] test input_queue::input_queue_tests::prediction_reentry_after_reset_enters_at_first_missing_frame_not_requested ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_input_sequentially ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_set_frame_delay_increase_after_many_frames ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_reset_prediction ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_set_frame_delay_rejects_excessive_delay ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_with_queue_length_below_minimum_fails ... ok
[INFO] [stdout] test input_queue::input_queue_tests::try_with_queue_length_below_minimum_returns_structured_error ... ok
[INFO] [stdout] test input_queue::input_queue_tests::try_with_queue_length_reports_allocation_failure_for_impossible_length ... ok
[INFO] [stdout] test input_queue::prediction::tests::test_blank_prediction_copy ... ok
[INFO] [stdout] test input_queue::prediction::tests::test_blank_prediction_strategy ... ok
[INFO] [stdout] test input_queue::prediction::tests::test_blank_prediction_debug ... ok
[INFO] [stdout] test input_queue::prediction::tests::test_blank_prediction_display ... ok
[INFO] [stdout] test input_queue::prediction::tests::test_repeat_last_confirmed_copy ... ok
[INFO] [stdout] test input_queue::prediction::tests::test_repeat_last_confirmed_debug ... ok
[INFO] [stdout] test input_queue::prediction::tests::test_repeat_last_confirmed_display ... ok
[INFO] [stdout] test input_queue::prediction::tests::test_repeat_last_confirmed_strategy ... ok
[INFO] [stdout] test network::buffer::tests::zeroed_buffer_nonzero_size_allocates_zeroed ... ok
[INFO] [stdout] test network::buffer::tests::zeroed_buffer_one_byte_is_allowed ... ok
[INFO] [stdout] test input_queue::prediction::tests::test_prediction_strategy_player_index_ignored_by_default ... ok
[INFO] [stdout] test input_queue::property_tests::prop_reset_clears_state ... ok
[INFO] [stdout] test input_queue::property_tests::prop_incorrect_frame_detection ... ok
[INFO] [stdout] test input_queue::property_tests::prop_frame_delay_shifts_inputs ... ok
[INFO] [stdout] test input_queue::input_queue_tests::test_discard_nothing_when_frame_before_tail ... ok
[INFO] [stdout] test network::buffer::tests::zeroed_buffer_zero_size_is_rejected_as_invalid_input ... ok
[INFO] [stdout] test network::chaos_socket::tests::display_tests::test_chaos_stats_display_default ... ok
[INFO] [stdout] test network::chaos_socket::tests::display_tests::test_chaos_stats_display_format ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_all_presets_have_sensible_values ... ok
[INFO] [stdout] test network::chaos_socket::tests::display_tests::test_chaos_stats_display_populated ... ok
[INFO] [stdout] test network::chaos_socket::tests::receive_all_messages_caps_in_flight_queue ... ok
[INFO] [stdout] test input_queue::property_tests::prop_discard_preserves_later_frames ... ok
[INFO] [stdout] test network::chaos_socket::tests::receive_all_messages_caps_passthrough_batch ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_asymmetric_loss ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_burst_loss_builder ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_burst_loss_partial_probability ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_burst_loss_stats_tracking ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_chaos_config_display ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_chaos_config_display_poor_network ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_config_builder ... ok
[INFO] [stdout] test input_queue::property_tests::prop_input_retrieval ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_deterministic_with_seed ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_duplication ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_intercontinental_preset ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_in_flight_count ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_high_latency_preset ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_latency_delays_delivery ... ok
[INFO] [stdout] test input_queue::property_tests::prop_duplicate_inputs_rejected ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_latency_fifo_ordering_without_jitter ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_latency_minimum_delivery_time_data_driven ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_latency_maximum_delivery_time_data_driven ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_latency_high_values_accepted ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_loss_rate_clamping ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_lossy_preset ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_mobile_network_preset ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_packet_loss_partial ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_packet_loss_100_percent ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_passthrough_preset_has_no_effects ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_poor_network_preset ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_passthrough_mode ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_preset_configs ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_preset_ordering_by_severity ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_receive_loss ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_reorder_buffer_burst_exceeds_size ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_reorder_buffer_disabled_when_rate_zero ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_reorder_buffer_no_indefinite_holding ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_reorder_buffer_disabled_when_size_zero ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_terrible_network_preset ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_reorder_stats_accuracy ... ok
[INFO] [stdout] test input_queue::property_tests::prop_prediction_uses_last_confirmed_input ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_reorder_buffer_releases_at_threshold ... ok
[INFO] [stdout] test input_queue::property_tests::prop_queue_length_bounded_with_discard ... ok
[INFO] [stdout] test input_queue::property_tests::prop_non_sequential_inputs_rejected ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_reorder_buffer_releases_on_empty_batch ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_reorder_buffer_single_packet ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_stats_tracking ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_wifi_interference_preset ... ok
[INFO] [stdout] test network::codec::tests::decode_message_rejects_trailing_bytes ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_zero_latency_immediate_delivery ... ok
[INFO] [stdout] test network::codec::tests::decode_message_rejects_vec_length_that_exceeds_packet_bytes ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_latency_zero_immediate_delivery ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_burst_loss_drops_consecutive_packets ... ok
[INFO] [stdout] test network::chaos_socket::tests::test_in_flight_accuracy_multiple_cycles ... ok
[INFO] [stdout] test network::codec::tests::codec_wire_format_uses_fixed_little_endian_bytes ... ok
[INFO] [stdout] test network::codec::tests::decode_message_roundtrips_input_without_generic_vec_decode ... ok
[INFO] [stdout] test network::codec::tests::decode_message_rejects_input_bytes_length_that_exceeds_packet_bytes ... ok
[INFO] [stdout] test network::codec::tests::decode_message_roundtrips_every_body_variant ... ok
[INFO] [stdout] test network::codec::tests::take_bytes_rejects_offset_overflow_and_preserves_cursor ... ok
[INFO] [stdout] test input_queue::property_tests::prop_sequential_inputs_stored ... ok
[INFO] [stdout] test network::codec::tests::test_codec_error_display ... ok
[INFO] [stdout] test network::codec::tests::test_codec_error_equality ... ok
[INFO] [stdout] test network::compression::compression_tests::decode_rle_bomb_through_compression_returns_rle_error ... ok
[INFO] [stdout] test network::codec::tests::test_codec_error_helper_methods ... ok
[INFO] [stdout] test network::codec::tests::test_codec_operation_display ... ok
[INFO] [stdout] test network::codec::tests::test_codec_operation_is_copy ... ok
[INFO] [stdout] test network::codec::tests::test_decode_invalid_data ... ok
[INFO] [stdout] test network::codec::tests::test_decode_value_convenience ... ok
[INFO] [stdout] test network::codec::tests::test_encode_append ... ok
[INFO] [stdout] test network::codec::tests::test_encode_decode_roundtrip_message ... ok
[INFO] [stdout] test network::codec::tests::test_encode_decode_roundtrip_primitive ... ok
[INFO] [stdout] test network::codec::tests::test_encode_into_buffer ... ok
[INFO] [stdout] test network::codec::tests::test_encode_into_buffer_too_small ... ok
[INFO] [stdout] test network::codec::tests::test_encode_into_message ... ok
[INFO] [stdout] test network::compression::compression_tests::delta_decode_rejects_frame_count_above_cap ... ok
[INFO] [stdout] test network::compression::compression_tests::test_compression_error_delta_decode_display ... ok
[INFO] [stdout] test network::compression::compression_tests::decode_with_max_len_uses_caller_configured_limit ... ok
[INFO] [stdout] test network::compression::compression_tests::delta_encode_absurd_hint_still_encodes_correctly ... ok
[INFO] [stdout] test network::codec::tests::test_encoding_is_deterministic ... ok
[INFO] [stdout] test network::compression::compression_tests::test_compression_error_equality ... ok
[INFO] [stdout] test network::compression::compression_tests::test_compression_error_rle_decode_display ... ok
[INFO] [stdout] test network::compression::compression_tests::test_compression_error_to_fortress_error ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_decode_empty_reference_returns_error ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_decode_reason_allocation_failed ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_decode_reason_data_index_out_of_bounds ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_decode_misaligned_data_returns_error ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_decode_reason_empty_reference ... ok
[INFO] [stdout] test network::compression::compression_tests::test_decode_with_malformed_rle_data_returns_rle_error ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_decode_reason_reference_index_out_of_bounds ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_decode_reason_unknown ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_decode_returns_structured_error_for_length_mismatch ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_encode_mismatched_input_returns_empty_batch ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_encode_inverse_property ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_encode_xor_property ... ok
[INFO] [stdout] test network::compression::compression_tests::test_encode_decode ... ok
[INFO] [stdout] test network::compression::compression_tests::test_encode_decode_empty ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_decode_reason_decoded_frame_count_exceeds_maximum ... ok
[INFO] [stdout] test network::compression::compression_tests::test_encode_decode_identical_inputs ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_decode_returns_structured_error_for_empty_ref ... ok
[INFO] [stdout] test network::compression::compression_tests::try_delta_encode_absent_hint_still_correct ... ok
[INFO] [stdout] test network::compression::compression_tests::test_map_rle_error_extracts_known_reason ... ok
[INFO] [stdout] test network::compression::compression_tests::try_delta_encode_empty_iterator_yields_empty_output ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_decode_reason_data_length_mismatch ... ok
[INFO] [stdout] test network::compression::compression_tests::test_compression_error_is_copy ... ok
[INFO] [stdout] test network::compression::compression_tests::test_map_rle_error_fallback_for_non_rle_error ... ok
[INFO] [stdout] test network::compression::compression_tests::test_map_rle_error_preserves_all_rle_reasons ... ok
[INFO] [stdout] test network::compression::compression_tests::try_delta_encode_empty_reference_is_rejected ... ok
[INFO] [stdout] test network::compression::compression_tests::try_delta_encode_length_mismatched_inputs_are_rejected ... ok
[INFO] [stdout] test network::compression::compression_tests::try_delta_encode_multi_input_output_is_byte_identical_and_preallocated ... ok
[INFO] [stdout] test network::compression::compression_tests::try_delta_encode_underreporting_hint_still_correct ... ok
[INFO] [stdout] test network::messages::tests::test_connection_status_debug_clone ... ok
[INFO] [stdout] test network::compression::compression_tests::test_delta_decode_reason_is_copy ... ok
[INFO] [stdout] test network::messages::tests::test_checksum_report_default ... ok
[INFO] [stdout] test network::compression::compression_tests::try_delta_encode_absurd_hint_still_encodes_correctly ... ok
[INFO] [stdout] test network::messages::tests::test_floor_request_default ... ok
[INFO] [stdout] test network::messages::tests::test_connection_status_display_connected ... ok
[INFO] [stdout] test network::messages::tests::test_input_default ... ok
[INFO] [stdout] test network::messages::tests::test_connection_status_display_disconnected ... ok
[INFO] [stdout] test network::messages::tests::test_connection_status_display_null_frame ... ok
[INFO] [stdout] test network::messages::tests::test_floor_reply_default ... ok
[INFO] [stdout] test network::messages::tests::test_floor_round_serialization ... ok
[INFO] [stdout] test network::messages::tests::test_input_ack_default ... ok
[INFO] [stdout] test network::messages::tests::test_input_debug ... ok
[INFO] [stdout] test network::messages::tests::test_bytes_debug_empty ... ok
[INFO] [stdout] test network::messages::tests::test_input_serialization ... ok
[INFO] [stdout] test network::messages::tests::test_message_body_variants ... ok
[INFO] [stdout] test network::messages::tests::test_message_header_default ... ok
[INFO] [stdout] test network::messages::tests::test_quality_report_default ... ok
[INFO] [stdout] test network::messages::tests::test_connection_status_default ... ok
[INFO] [stdout] test network::messages::tests::test_message_serialization ... ok
[INFO] [stdout] test network::messages::tests::test_sync_reply_default ... ok
[INFO] [stdout] test network::messages::tests::test_message_clone_eq ... ok
[INFO] [stdout] test network::messages::tests::test_sync_request_default ... ok
[INFO] [stdout] test network::network_stats::tests::test_network_stats_checksum_fields ... ok
[INFO] [stdout] test network::network_stats::tests::test_network_stats_clone ... ok
[INFO] [stdout] test network::network_stats::tests::test_network_stats_debug ... ok
[INFO] [stdout] test network::network_stats::tests::test_network_stats_display_checksum_mismatch ... ok
[INFO] [stdout] test network::network_stats::tests::test_network_stats_display_with_checksum ... ok
[INFO] [stdout] test network::network_stats::tests::test_network_stats_display_without_checksum ... ok
[INFO] [stdout] test network::network_stats::tests::test_network_stats_default ... ok
[INFO] [stdout] test network::messages::tests::test_quality_reply_default ... ok
[INFO] [stdout] test network::network_stats::tests::test_network_stats_display_partial_checksum ... ok
[INFO] [stdout] test network::network_stats::tests::test_network_stats_new ... ok
[INFO] [stdout] test network::network_stats::tests::test_network_stats_negative_frames_behind ... ok
[INFO] [stdout] test network::protocol::event::tests::event_debug_format_disconnected ... ok
[INFO] [stdout] test network::protocol::event::tests::event_clone_input ... ok
[INFO] [stdout] test network::protocol::event::tests::event_clone_synchronizing ... ok
[INFO] [stdout] test network::protocol::event::tests::event_debug_format_network_resumed ... ok
[INFO] [stdout] test network::protocol::event::tests::event_debug_format_sync_timeout ... ok
[INFO] [stdout] test network::protocol::event::tests::event_debug_format_network_interrupted ... ok
[INFO] [stdout] test network::protocol::event::tests::event_debug_format_synchronized ... ok
[INFO] [stdout] test network::protocol::event::tests::event_debug_format_synchronizing ... ok
[INFO] [stdout] test network::protocol::event::tests::event_display_disconnected ... ok
[INFO] [stdout] test network::protocol::event::tests::event_disconnected_construction ... ok
[INFO] [stdout] test network::protocol::event::tests::event_display_input ... ok
[INFO] [stdout] test network::protocol::event::tests::event_display_network_interrupted ... ok
[INFO] [stdout] test network::protocol::event::tests::event_display_network_resumed ... ok
[INFO] [stdout] test network::protocol::event::tests::event_display_sync_timeout ... ok
[INFO] [stdout] test network::protocol::event::tests::event_display_synchronized ... ok
[INFO] [stdout] test network::protocol::event::tests::event_display_synchronizing ... ok
[INFO] [stdout] test network::protocol::event::tests::event_equality_different_variants ... ok
[INFO] [stdout] test network::protocol::event::tests::event_equality_same_variant_different_values ... ok
[INFO] [stdout] test network::protocol::event::tests::event_equality_network_interrupted ... ok
[INFO] [stdout] test network::protocol::event::tests::event_equality_same_variant_same_values ... ok
[INFO] [stdout] test network::protocol::event::tests::event_input_construction ... ok
[INFO] [stdout] test network::protocol::event::tests::event_network_interrupted_construction ... ok
[INFO] [stdout] test network::protocol::event::tests::event_network_interrupted_zero_timeout ... ok
[INFO] [stdout] test network::protocol::event::tests::event_input_with_null_frame ... ok
[INFO] [stdout] test network::protocol::event::tests::event_sync_timeout_construction ... ok
[INFO] [stdout] test network::protocol::event::tests::event_network_resumed_construction ... ok
[INFO] [stdout] test network::protocol::event::tests::event_sync_timeout_zero ... ok
[INFO] [stdout] test network::protocol::event::tests::event_synchronized_construction ... ok
[INFO] [stdout] test network::protocol::event::tests::event_synchronizing_construction ... ok
[INFO] [stdout] test network::protocol::event::tests::event_synchronizing_max_values ... ok
[INFO] [stdout] test network::protocol::event::tests::event_synchronizing_zero_count ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::clone_is_independent ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::clone_preserves_data ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::from_inputs_creates_correct_bytes ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::complex_input_roundtrip ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::from_inputs_multiple_players ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::from_inputs_empty_map_creates_empty_bytes ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::from_inputs_partial_players ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::frame_null_handling ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::large_player_count ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::max_frame_value ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::preserves_player_order ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::player_byte_range_rejects_arithmetic_overflow ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::to_player_inputs_mismatched_size_returns_partial ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::max_input_value ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::from_inputs_uses_first_non_null_frame ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::to_player_inputs_rejects_padded_per_player_slices ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::to_player_inputs_roundtrip_multiple_players ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::to_player_inputs_with_zero_players_returns_empty ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::to_player_inputs_roundtrip_single_player ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::try_from_inputs_rejects_variable_width_per_player_input ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::try_to_player_inputs_exact_rejects_padded_per_player_slices ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::zeroed_creates_correct_size_for_single_player ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::try_to_player_inputs_exact_rejects_allocating_input_length_bomb ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::zeroed_with_zero_players_creates_empty_bytes ... ok
[INFO] [stdout] test network::protocol::input_bytes::tests::zeroed_creates_correct_size_for_multiple_players ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_input_bytes_zeroed_size ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_input_bytes_roundtrip ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_complete_sync_transitions_to_running ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_is_running_implies_is_synchronized ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_invalid_sync_reply_no_decrement ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_magic_deterministic ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_disconnect_transitions_to_disconnected ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_input_ack_pops_in_order ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_first_input_always_accepted ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_magic_never_zero ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_messages_dropped_in_shutdown ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_input_gap_rejection ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_null_frame_in_frame_advantage ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_protocol_starts_in_initializing ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_state_predicates_match_enum ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_sync_remaining_decrements_correctly ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_pending_output_frames_monotonic ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_sync_remaining_starts_at_num_packets ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_null_frame_sequence_violation ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_input_gap_one_accepted ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_input_compression_roundtrip ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_old_checksums_evicted ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_sync_reply_idempotent_same_random ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_null_frame_as_decode_reference ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_multi_player_input_events ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_multi_player_protocol_invariants ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_synchronize_fails_when_not_initializing ... ok
[INFO] [stdout] test network::protocol::state::tests::protocol_state_copy ... ok
[INFO] [stdout] test network::protocol::state::tests::protocol_state_all_variants_distinct ... ok
[INFO] [stdout] test network::protocol::state::tests::protocol_state_disconnected ... ok
[INFO] [stdout] test network::protocol::state::tests::protocol_state_debug_format ... ok
[INFO] [stdout] test network::protocol::state::tests::protocol_state_display_matches_as_str ... ok
[INFO] [stdout] test network::protocol::state::tests::protocol_state_equality_same_variant ... ok
[INFO] [stdout] test network::protocol::state::tests::protocol_state_initializing ... ok
[INFO] [stdout] test network::protocol::state::tests::protocol_state_running ... ok
[INFO] [stdout] test network::protocol::state::tests::protocol_state_shutdown ... ok
[INFO] [stdout] test network::protocol::state::tests::protocol_state_synchronizing ... ok
[INFO] [stdout] test network::protocol::tests::average_frame_advantage_delegates_to_time_sync ... ok
[INFO] [stdout] test network::protocol::tests::checksum_report_limits_history_size ... ok
[INFO] [stdout] test network::protocol::tests::checksum_report_stored_with_desync_detection_off ... ok
[INFO] [stdout] test network::protocol::state::tests::protocol_state_display_all_variants ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_synchronize_transitions_to_synchronizing ... ok
[INFO] [stdout] test network::protocol::state::tests::protocol_state_transition_documentation ... ok
[INFO] [stdout] test network::protocol::tests::complete_sync_transitions_to_running ... ok
[INFO] [stdout] test network::protocol::tests::detect_prune_transition_fires_once_on_running_to_pruned_edge ... ok
[INFO] [stdout] test network::protocol::state::tests::protocol_state_inequality_different_variants ... ok
[INFO] [stdout] test network::protocol::tests::disconnect_transitions_to_disconnected ... ok
[INFO] [stdout] test network::protocol::tests::disconnect_when_already_shutdown_does_nothing ... ok
[INFO] [stdout] test network::protocol::tests::from_inputs_handles_inconsistent_frames_gracefully ... ok
[INFO] [stdout] test network::protocol::tests::enqueue_replicated_input_drops_entry_when_pending_output_full ... ok
[INFO] [stdout] test network::protocol::tests::from_inputs_null_frame_is_wildcard ... ok
[INFO] [stdout] test network::protocol::tests::handle_message_accepts_correct_magic ... ok
[INFO] [stdout] test network::protocol::tests::floor_round_seq_invariant_holds_across_send_reply_prune_sequence ... ok
[INFO] [stdout] test network::protocol::tests::handle_message_drops_gameplay_messages_while_synchronizing_without_side_effects ... ok
[INFO] [stdout] test network::protocol::tests::input_ack_pops_pending_output ... ok
[INFO] [stdout] test network::protocol::tests::from_inputs_accepts_consistent_frames ... ok
[INFO] [stdout] test network::protocol::tests::handles_returns_sorted_handles ... ok
[INFO] [stdout] test network::protocol::tests::handle_message_filters_wrong_magic_after_sync ... ok
[INFO] [stdout] test network::protocol::tests::handle_message_ignores_shutdown_state ... ok
[INFO] [stdout] test network::protocol::tests::input_bytes_from_inputs_serializes_correctly ... ok
[INFO] [stdout] test network::protocol::tests::input_batch_len_for_limits_clamps_to_decoded_byte_cap ... ok
[INFO] [stdout] test network::protocol::tests::input_bytes_roundtrip ... ok
[INFO] [stdout] test network::protocol::tests::input_bytes_zeroed_creates_correct_size ... ok
[INFO] [stdout] test network::protocol::tests::floor_request_is_recorded_and_answered_with_echoed_seq ... ok
[INFO] [stdout] test network::protocol::tests::input_ack_rejects_future_ack_without_popping_pending_output ... ok
[INFO] [stdout] test network::protocol::tests::millis_since_epoch_documents_backwards_time_handling ... ok
[INFO] [stdout] test network::protocol::tests::is_handling_message_checks_address ... ok
[INFO] [stdout] test network::protocol::tests::millis_since_epoch_returns_some_under_normal_conditions ... ok
[INFO] [stdout] test network::protocol::tests::on_floor_reply_excess_floors_are_accepted_and_trailing_ignored ... ok
[INFO] [stdout] test network::protocol::tests::new_protocol_starts_in_initializing_state ... ok
[INFO] [stdout] test network::protocol::tests::millis_since_epoch_returns_reasonable_value ... ok
[INFO] [stdout] test network::protocol::tests::millis_since_epoch_advances_over_time ... ok
[INFO] [stdout] test network::protocol::tests::on_floor_reply_stale_or_duplicate_seq_is_dropped ... ok
[INFO] [stdout] test network::protocol::tests::on_floor_reply_newer_seq_is_accepted_and_postdates_prune_to_be_fresh ... ok
[INFO] [stdout] test network::protocol::tests::millis_since_epoch_is_monotonically_non_decreasing_in_short_term ... ok
[INFO] [stdout] test network::protocol::tests::network_resumed_event_after_interrupt ... ok
[INFO] [stdout] test network::protocol::tests::network_stats_returns_error_when_no_time_elapsed ... ok
[INFO] [stdout] test network::protocol::tests::on_floor_reply_incomplete_floors_is_dropped ... ok
[INFO] [stdout] test network::protocol::tests::on_input_boundary_gap_of_two_is_rejected ... ok
[INFO] [stdout] test network::protocol::tests::network_stats_returns_error_when_not_synchronized ... ok
[INFO] [stdout] test network::protocol::tests::on_floor_reply_unsolicited_seq_is_dropped ... ok
[INFO] [stdout] test network::protocol::tests::on_floor_request_older_round_seq_does_not_clobber_newer_pending ... ok
[INFO] [stdout] test network::protocol::tests::on_input_accepts_first_input_with_null_frame ... ok
[INFO] [stdout] test network::protocol::tests::on_input_boundary_gap_of_one_is_acceptable ... ok
[INFO] [stdout] test network::protocol::tests::on_input_accepts_consecutive_frame ... ok
[INFO] [stdout] test network::protocol::tests::on_input_clamps_configured_decode_limit_to_rle_default_cap ... ok
[INFO] [stdout] test network::protocol::tests::on_input_connected_slot_keeps_monotone_forward_progress ... ok
[INFO] [stdout] test network::protocol::tests::on_input_disconnect_request_emits_inputs_before_disconnect ... ok
[INFO] [stdout] test network::protocol::tests::on_input_disconnected_slot_not_resurrected_by_stale_connected_gossip ... ok
[INFO] [stdout] test network::protocol::tests::on_input_drops_packet_when_configured_decode_limit_overflows ... ok
[INFO] [stdout] test network::protocol::tests::on_input_fresh_gossip_too_far_ahead_merges_before_gap_return ... ok
[INFO] [stdout] test network::protocol::tests::on_input_low_start_frame_with_present_reference_applies_fresh_gossip ... ok
[INFO] [stdout] test network::protocol::tests::on_input_decode_guard_false_only_for_stale_pruned_reference ... ok
[INFO] [stdout] test network::protocol::tests::on_input_ignores_future_ack_but_accepts_valid_input ... ok
[INFO] [stdout] test network::protocol::tests::on_input_first_disconnect_adopts_remote_freeze_frame_when_higher ... ok
[INFO] [stdout] test network::protocol::tests::on_input_first_disconnect_adopts_remote_freeze_frame_when_lower ... ok
[INFO] [stdout] test network::protocol::tests::on_input_hoisted_merge_does_not_un_converge_freeze_from_stale_packet ... ok
[INFO] [stdout] test network::protocol::tests::on_input_lowers_disconnected_slot_last_frame_on_later_lower_gossip ... ok
[INFO] [stdout] test network::protocol::tests::on_input_disconnected_slot_ignores_stale_higher_freeze_gossip ... ok
[INFO] [stdout] test network::protocol::tests::on_input_rejects_wrong_status_length_atomically ... ok
[INFO] [stdout] test network::protocol::tests::peer_connect_status_returns_correct_status ... ok
[INFO] [stdout] test network::protocol::tests::on_input_rejects_input_with_too_large_gap ... ok
[INFO] [stdout] test network::protocol::tests::on_input_resets_retry_pacer_only_when_new_frames_staged ... ok
[INFO] [stdout] test network::protocol::tests::poll_nudge_respects_running_state_gating ... ok
[INFO] [stdout] test network::protocol::tests::poll_in_disconnected_state_transitions_to_shutdown ... ok
[INFO] [stdout] test network::protocol::tests::on_input_rejects_malformed_per_player_decode_atomically ... ok
[INFO] [stdout] test network::protocol::tests::poll_nudge_skipped_while_pending_output_nonempty ... ok
[INFO] [stdout] test network::protocol::tests::poll_nudge_waits_for_input_idle_interval ... ok
[INFO] [stdout] test network::protocol::tests::poll_nudge_with_null_last_acked_falls_back_to_keepalive ... ok
[INFO] [stdout] test network::protocol::tests::peer_addr_returns_correct_address ... ok
[INFO] [stdout] test network::protocol::tests::poll_returns_events_and_clears_queue ... ok
[INFO] [stdout] test network::protocol::tests::poll_without_nudge_flag_sends_plain_keepalive_when_idle ... ok
[INFO] [stdout] test network::protocol::tests::protocol_config_clone ... ok
[INFO] [stdout] test network::protocol::tests::protocol_config_competitive_preset ... ok
[INFO] [stdout] test network::protocol::tests::protocol_config_default_values ... ok
[INFO] [stdout] test network::protocol::tests::protocol_config_debug_preset ... ok
[INFO] [stdout] test network::protocol::tests::protocol_config_equality ... ok
[INFO] [stdout] test network::protocol::tests::protocol_config_high_latency_preset ... ok
[INFO] [stdout] test network::protocol::tests::protocol_config_new_same_as_default ... ok
[INFO] [stdout] test network::protocol::tests::protocol_input_frame_wire_size_rejects_frame_larger_than_decode_cap ... ok
[INFO] [stdout] test network::protocol::tests::protocol_equality_is_by_peer_address ... ok
[INFO] [stdout] test network::protocol::tests::protocol_new_rejects_zero_byte_input_type ... ok
[INFO] [stdout] test network::protocol::tests::protocol_uses_custom_clock ... ok
[INFO] [stdout] test network::protocol::tests::protocol_uses_custom_num_sync_packets ... ok
[INFO] [stdout] test network::protocol::tests::protocol_with_different_seeds_produces_different_magic_numbers ... ok
[INFO] [stdout] test network::protocol::tests::protocol_new_rejects_local_input_frame_larger_than_decode_cap ... ok
[INFO] [stdout] test network::protocol::tests::protocol_magic_is_never_zero ... ok
[INFO] [stdout] test network::protocol::tests::protocol_with_same_seed_produces_same_magic_number ... ok
[INFO] [stdout] test network::protocol::tests::protocol_without_seed_still_works ... ok
[INFO] [stdout] test network::protocol::tests::quality_report_triggers_reply ... ok
[INFO] [stdout] test network::protocol::tests::running_peer_still_answers_sync_request ... ok
[INFO] [stdout] test network::protocol::tests::send_input_disconnects_without_mutating_when_pending_output_full ... ok
[INFO] [stdout] test network::protocol::tests::receiver_merges_gossip_from_nudge_shaped_packet_without_staging_inputs ... ok
[INFO] [stdout] test network::protocol::tests::send_checksum_report_queues_message ... ok
[INFO] [stdout] test network::protocol::tests::send_input_rejects_per_player_width_mismatch_even_when_aggregate_matches ... ok
[INFO] [stdout] test network::protocol::tests::send_input_rejects_variable_width_serialized_input_without_queueing ... ok
[INFO] [stdout] test network::protocol::tests::send_input_when_not_running_does_nothing ... ok
[INFO] [stdout] test network::protocol::tests::send_pending_output_encodes_only_decoded_byte_cap_prefix ... ok
[INFO] [stdout] test network::protocol::tests::set_round_floor_for_tests_leaves_request_seq_consistent_for_later_reply ... ok
[INFO] [stdout] test network::protocol::tests::sync_config_clone ... ok
[INFO] [stdout] test network::protocol::tests::send_pending_output_encodes_only_configured_frame_prefix ... ok
[INFO] [stdout] test network::protocol::tests::sync_config_equality ... ok
[INFO] [stdout] test network::protocol::tests::sync_config_default_values ... ok
[INFO] [stdout] test network::protocol::tests::sync_config_high_latency_preset ... ok
[INFO] [stdout] test network::protocol::tests::sync_config_lan_preset ... ok
[INFO] [stdout] test network::protocol::tests::sync_config_lossy_preset ... ok
[INFO] [stdout] test network::protocol::tests::sync_reply_with_wrong_random_is_ignored ... ok
[INFO] [stdout] test network::protocol::tests::update_local_frame_advantage_with_null_frames ... ok
[INFO] [stdout] test network::protocol::tests::update_local_frame_advantage_saturates_peer_influenced_rtt ... ok
[INFO] [stdout] test network::protocol::tests::sync_request_queues_sync_reply ... ok
[INFO] [stdout] test network::protocol::tests::sync_timeout_event_emitted_only_once ... ok
[INFO] [stdout] test network::udp_socket::tests::from_socket_with_zero_buffer_size_returns_invalid_input ... ok
[INFO] [stdout] test network::udp_socket::tests::bind_with_zero_send_buffer_size_returns_invalid_input ... ok
[INFO] [stdout] test network::protocol::tests::synchronize_transitions_to_synchronizing_state ... ok
[INFO] [stdout] test network::udp_socket::tests::test_buffer_sizes_relationship ... ok
[INFO] [stdout] test network::udp_socket::tests::test_ideal_max_udp_packet_size_constant ... ok
[INFO] [stdout] test network::udp_socket::tests::test_local_addr_returns_ephemeral_port ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_bind_to_port ... ok
[INFO] [stdout] test network::udp_socket::tests::test_recv_buffer_size_constant ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_bind_to_specific_port ... ok
[INFO] [stdout] test network::udp_socket::tests::test_send_buffer_size_constant ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_bind_with_custom_buffer_sizes ... ok
[INFO] [stdout] test network::protocol::tests::sync_reply_when_not_synchronizing_is_ignored ... ok
[INFO] [stdout] test network::udp_socket::tests::bind_with_zero_recv_buffer_size_returns_invalid_input ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_multiple_sends_reuse_buffer ... ok
[INFO] [stdout] test network::socket_receive::tests::receive_all_messages_from_caps_raw_malformed_datagrams ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_handles_self_send ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_debug ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_keepalive_message_roundtrip ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_is_non_blocking ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_local_addr_is_unspecified ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_receive_multiple_messages ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_receive_no_messages ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_recv_buffer_initialized ... ok
[INFO] [stdout] test replay::tests::replay_clone ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_send_to_invalid_address ... ok
[INFO] [stdout] test replay::tests::replay_construction_basic ... ok
[INFO] [stdout] test replay::tests::replay_display ... ok
[INFO] [stdout] test replay::tests::replay_from_bytes_rejects_huge_frame_count_via_byte_bound ... ok
[INFO] [stdout] test replay::tests::replay_from_bytes_accepts_zero_sized_inputs ... ok
[INFO] [stdout] test replay::tests::replay_from_bytes_rejects_configured_byte_limit ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_send_and_receive ... ok
[INFO] [stdout] test replay::tests::replay_from_bytes_rejects_truncated_checksums_via_byte_bound ... ok
[INFO] [stdout] test replay::tests::replay_from_bytes_rejects_pathological_frame_count_without_allocating ... ok
[INFO] [stdout] test replay::tests::replay_from_bytes_supports_pre_skipped_frames_metadata ... ok
[INFO] [stdout] test replay::tests::replay_from_bytes_rejects_huge_frame_inputs_len_via_byte_bound ... ok
[INFO] [stdout] test network::udp_socket::tests::test_udp_socket_send_buffer_initialized ... ok
[INFO] [stdout] test replay::tests::replay_metadata_fields ... ok
[INFO] [stdout] test replay::tests::replay_metadata_partial_eq ... ok
[INFO] [stdout] test replay::tests::replay_from_invalid_bytes_fails ... ok
[INFO] [stdout] test replay::tests::replay_partial_eq ... ok
[INFO] [stdout] test replay::tests::replay_metadata_display ... ok
[INFO] [stdout] test replay::tests::replay_recorder_basic ... ok
[INFO] [stdout] test replay::tests::replay_recorder_empty_into_replay ... ok
[INFO] [stdout] test replay::tests::replay_roundtrips_zero_sized_inputs_with_many_players ... ok
[INFO] [stdout] test replay::tests::replay_serialization_roundtrip ... ok
[INFO] [stdout] test replay::tests::replay_serialization_deterministic ... ok
[INFO] [stdout] test replay::tests::replay_serialization_empty ... ok
[INFO] [stdout] test replay::tests::validate_empty_replay_succeeds ... ok
[INFO] [stdout] test replay::tests::replay_from_bytes_validates_decoded_replay_by_default ... ok
[INFO] [stdout] test replay::tests::validate_metadata_total_frames_mismatch_fails ... ok
[INFO] [stdout] test replay::tests::replay_serialization_uses_fixed_little_endian_wire_bytes ... ok
[INFO] [stdout] test replay::tests::validate_valid_replay_succeeds ... ok
[INFO] [stdout] test replay::tests::validate_metadata_num_players_mismatch_fails ... ok
[INFO] [stdout] test replay::tests::validate_wrong_num_inputs_per_frame_fails ... ok
[INFO] [stdout] test replay::tests::validate_frames_checksums_mismatch_fails ... ok
[INFO] [stdout] test rle::property_tests::prop_decode_small_inputs ... ok
[INFO] [stdout] test rle::property_tests::prop_varint_length_optimal ... ok
[INFO] [stdout] test rle::property_tests::prop_varint_roundtrip ... ok
[INFO] [stdout] test network::protocol::tests::poll_nudge_sends_one_status_bearing_duplicate_input_per_keepalive_interval ... ok
[INFO] [stdout] test rle::tests::checked_buffer_end_rejects_offset_overflow ... ok
[INFO] [stdout] test rle::tests::checked_decoded_end_rejects_pointer_overflow ... ok
[INFO] [stdout] test rle::property_tests::prop_compressible_data_compresses ... ok
[INFO] [stdout] test rle::tests::decode_len_accumulation_overflow_returns_error ... ok
[INFO] [stdout] test rle::tests::decode_raw_run_length_with_high_bits_set_is_rejected_not_truncated ... ok
[INFO] [stdout] test rle::tests::decode_rejects_truncated_varint_header ... ok
[INFO] [stdout] test rle::tests::decode_run_length_with_high_bits_set_is_rejected_not_truncated ... ok
[INFO] [stdout] test rle::tests::decode_tiny_input_claiming_huge_contiguous_run_returns_error ... ok
[INFO] [stdout] test rle::tests::test_alternating_single_bytes ... ok
[INFO] [stdout] test rle::tests::test_compression_ratio ... ok
[INFO] [stdout] test rle::tests::test_contiguous_bit_flag_in_encoding ... ok
[INFO] [stdout] test rle::tests::test_contiguous_zeros_vs_ones_distinguished ... ok
[INFO] [stdout] test rle::tests::test_decode_boundary_conditions ... ok
[INFO] [stdout] test rle::tests::test_decode_contiguous_boundary_exact ... ok
[INFO] [stdout] test rle::tests::test_decode_invalid_truncated ... ok
[INFO] [stdout] test network::protocol::property_tests::prop_checksum_history_bounded ... ok
[INFO] [stdout] test rle::tests::test_decode_noncontiguous_boundary_exact ... ok
[INFO] [stdout] test rle::tests::test_decode_noncontiguous_exact_length ... ok
[INFO] [stdout] test rle::tests::test_decode_with_trailing_data ... ok
[INFO] [stdout] test rle::tests::test_encode_decode_all_ones ... ok
[INFO] [stdout] test rle::tests::test_encode_decode_all_zeros ... ok
[INFO] [stdout] test rle::tests::test_decode_len_overflow_check ... ok
[INFO] [stdout] test rle::tests::test_encode_decode_empty ... ok
[INFO] [stdout] test rle::tests::test_encode_decode_mixed ... ok
[INFO] [stdout] test rle::tests::test_encode_decode_no_compression ... ok
[INFO] [stdout] test rle::tests::test_encode_decode_alternating ... ok
[INFO] [stdout] test rle::tests::test_encode_decode_single_byte ... ok
[INFO] [stdout] test rle::tests::test_encode_decode_with_offset_consistency ... ok
[INFO] [stdout] test rle::tests::test_encode_len_contiguous_partial_calculation ... ok
[INFO] [stdout] test rle::tests::test_encode_len_matches_actual ... ok
[INFO] [stdout] test rle::tests::test_encode_len_noncontiguous_calculation ... ok
[INFO] [stdout] test rle::tests::test_encode_len_with_various_patterns ... ok
[INFO] [stdout] test rle::tests::test_encode_decode_xor_pattern ... ok
[INFO] [stdout] test rle::tests::test_first_byte_nonzero_starts_noncontiguous ... ok
[INFO] [stdout] test rle::tests::test_first_byte_zero_starts_contiguous ... ok
[INFO] [stdout] test rle::tests::test_encode_preserves_trailing_zeros ... ok
[INFO] [stdout] test rle::tests::test_long_noncontiguous_sequence ... ok
[INFO] [stdout] test rle::tests::test_mixed_contiguous_noncontiguous_boundary ... ok
[INFO] [stdout] test rle::tests::test_noncontiguous_start_after_first_byte ... ok
[INFO] [stdout] test rle::tests::test_mixed_sequence_length_prediction ... ok
[INFO] [stdout] test rle::tests::test_noncontiguous_to_contiguous_at_index_1 ... ok
[INFO] [stdout] test rle::tests::test_rle_decode_error_display ... ok
[INFO] [stdout] test rle::tests::test_roundtrip_random_patterns ... ok
[INFO] [stdout] test rle::tests::test_varint_encode_decode_large ... ok
[INFO] [stdout] test rle::tests::test_varint_encode_decode_medium ... ok
[INFO] [stdout] test rle::tests::test_varint_encode_decode_small ... ok
[INFO] [stdout] test rle::tests::test_varint_encode_decode_zero ... ok
[INFO] [stdout] test rle::tests::test_varint_encoded_len ... ok
[INFO] [stdout] test rle::tests::test_varint_multi_byte_accumulation ... ok
[INFO] [stdout] test rle::tests::test_varint_decode_accumulates_correctly ... ok
[INFO] [stdout] test rle::tests::test_write_contiguous_flag_is_1_not_xor ... ok
[INFO] [stdout] test rle::tests::test_write_contiguous_ones_flag_is_2_not_xor ... ok
[INFO] [stdout] test rle::tests::test_zeros_and_ones_have_different_flags ... ok
[INFO] [stdout] test rle::tests::varint_decode_rejects_overflowing_header ... ok
[INFO] [stdout] test rle::tests::varint_decode_rejects_truncated_continuation ... ok
[INFO] [stdout] test rng::property_tests::prop_clone_produces_identical_sequence ... ok
[INFO] [stdout] test rng::property_tests::prop_different_seeds_different_sequences ... ok
[INFO] [stdout] test rng::property_tests::prop_determinism_same_seed_same_sequence ... ok
[INFO] [stdout] test rng::property_tests::prop_f32_bounds ... ok
[INFO] [stdout] test rng::property_tests::prop_f64_bounds ... ok
[INFO] [stdout] test rng::property_tests::prop_fill_bytes_deterministic ... ok
[INFO] [stdout] test rng::property_tests::prop_gen_range_i64_within_bounds ... ok
[INFO] [stdout] test rng::property_tests::prop_gen_range_usize_within_bounds ... ok
[INFO] [stdout] test rng::property_tests::prop_gen_range_within_bounds ... ok
[INFO] [stdout] test rng::property_tests::prop_random_value_deterministic ... ok
[INFO] [stdout] test rng::property_tests::prop_gen_bool_probability ... ok
[INFO] [stdout] test rng::tests::test_fill_bytes ... ok
[INFO] [stdout] test rng::tests::test_gen_bool ... ok
[INFO] [stdout] test rng::tests::test_gen_range ... ok
[INFO] [stdout] test rng::tests::test_gen_range_empty_returns_start ... ok
[INFO] [stdout] test rng::tests::test_gen_range_i64_inclusive ... ok
[INFO] [stdout] test rng::tests::test_gen_range_i64_inclusive_invalid_returns_start ... ok
[INFO] [stdout] test rng::tests::test_gen_range_i64_inclusive_single_value_is_valid ... ok
[INFO] [stdout] test rng::tests::test_gen_range_single_value ... ok
[INFO] [stdout] test rng::tests::test_gen_range_usize_empty_returns_start ... ok
[INFO] [stdout] test rng::tests::test_gen_range_usize_large ... ok
[INFO] [stdout] test rng::tests::test_gen_range_usize_small ... ok
[INFO] [stdout] test rng::tests::test_next_u64_combines_correctly ... ok
[INFO] [stdout] test rle::property_tests::prop_roundtrip_game_state_patterns ... ok
[INFO] [stdout] test rng::tests::test_pcg32_deterministic ... ok
[INFO] [stdout] test rng::tests::test_pcg32_different_seeds ... ok
[INFO] [stdout] test rng::tests::test_pcg32_distribution ... ok
[INFO] [stdout] test rng::tests::test_pcg32_golden ... ok
[INFO] [stdout] test rng::tests::test_random_types ... ok
[INFO] [stdout] test rng::tests::test_thread_rng ... ok
[INFO] [stdout] test sessions::builder::tests::builder_start_replay_session_with_validation ... ok
[INFO] [stdout] test rng::tests::test_seedable_from_entropy ... ok
[INFO] [stdout] test sessions::builder::tests::legacy_spectator_setters_accept_zero_catchup_speed ... ok
[INFO] [stdout] test sessions::builder::tests::presets_are_chainable_with_other_methods ... ok
[INFO] [stdout] test sessions::builder::tests::legacy_spectator_setters_accept_large_user_configured_values ... ok
[INFO] [stdout] test sessions::builder::tests::start_p2p_session_reports_input_queue_allocation_failure ... ok
[INFO] [stdout] test sessions::builder::tests::start_p2p_session_reports_max_prediction_allocation_failure ... ok
[INFO] [stdout] test sessions::builder::tests::start_p2p_session_reports_not_enough_players_for_huge_player_count_quickly ... ok
[INFO] [stdout] test sessions::builder::tests::start_p2p_session_reports_time_sync_allocation_failure ... ok
[INFO] [stdout] test sessions::builder::tests::start_spectator_session_returns_none_when_buffer_reservation_fails ... ok
[INFO] [stdout] test sessions::builder::tests::test_add_local_player_and_add_remote_player_can_be_combined ... ok
[INFO] [stdout] test sessions::builder::tests::test_add_local_player_propagates_handle_in_use_error ... ok
[INFO] [stdout] test sessions::builder::tests::test_add_local_player_propagates_invalid_handle_error ... ok
[INFO] [stdout] test sessions::builder::tests::test_add_remote_player_behaves_like_add_player_remote ... ok
[INFO] [stdout] test sessions::builder::tests::test_add_remote_player_propagates_handle_in_use_error ... ok
[INFO] [stdout] test sessions::builder::tests::test_add_local_player_behaves_like_add_player_local ... ok
[INFO] [stdout] test sessions::builder::tests::test_add_remote_player_propagates_invalid_handle_error ... ok
[INFO] [stdout] test sessions::builder::tests::test_builder_default_save_mode ... ok
[INFO] [stdout] test sessions::builder::tests::test_builder_default_event_queue_size ... ok
[INFO] [stdout] test sessions::builder::tests::test_deprecated_with_sparse_saving_mode_false ... ok
[INFO] [stdout] test sessions::builder::tests::test_deprecated_with_sparse_saving_mode_true ... ok
[INFO] [stdout] test sessions::builder::tests::test_input_queue_config_custom_queue_rejects_excessive_delay ... ok
[INFO] [stdout] test sessions::builder::tests::test_with_event_queue_size_accepts_minimum ... ok
[INFO] [stdout] test sessions::builder::tests::test_with_event_queue_size_accepts_valid_values ... ok
[INFO] [stdout] test sessions::builder::tests::test_input_queue_config_affects_max_delay ... ok
[INFO] [stdout] test sessions::builder::tests::test_with_event_queue_size_rejects_too_small ... ok
[INFO] [stdout] test sessions::builder::tests::test_with_input_delay_accepts_max_valid ... ok
[INFO] [stdout] test sessions::builder::tests::test_with_input_delay_accepts_typical_values ... ok
[INFO] [stdout] test sessions::builder::tests::test_with_event_queue_size_rejects_zero ... ok
[INFO] [stdout] test sessions::builder::tests::test_with_input_delay_rejects_excessive_delay ... ok
[INFO] [stdout] test sessions::builder::tests::test_with_input_delay_rejects_very_large_delay ... ok
[INFO] [stdout] test sessions::builder::tests::test_with_input_queue_config ... ok
[INFO] [stdout] test sessions::builder::tests::test_with_save_mode_every_frame ... ok
[INFO] [stdout] test sessions::builder::tests::test_with_save_mode_sparse ... ok
[INFO] [stdout] test sessions::builder::tests::with_high_latency_defaults_applies_expected_configs ... ok
[INFO] [stdout] test sessions::builder::tests::with_high_latency_defaults_returns_valid_builder ... ok
[INFO] [stdout] test sessions::builder::tests::with_internet_defaults_applies_expected_configs ... ok
[INFO] [stdout] test sessions::builder::tests::with_internet_defaults_returns_valid_builder ... ok
[INFO] [stdout] test sessions::builder::tests::with_lan_defaults_applies_expected_configs ... ok
[INFO] [stdout] test sessions::builder::tests::with_lan_defaults_returns_valid_builder ... ok
[INFO] [stdout] test sessions::builder::tests::with_num_players_accepts_large_user_configured_values ... ok
[INFO] [stdout] test sessions::builder::tests::with_protocol_config_applies_to_builder ... ok
[INFO] [stdout] test sessions::builder::tests::with_sync_config_applies_to_builder ... ok
[INFO] [stdout] test sessions::config::tests::protocol_config_clone ... ok
[INFO] [stdout] test sessions::config::tests::protocol_config_competitive_preset ... ok
[INFO] [stdout] test sessions::config::tests::protocol_config_debug_format ... ok
[INFO] [stdout] test sessions::config::tests::protocol_config_debug_preset ... ok
[INFO] [stdout] test sessions::config::tests::protocol_config_default_has_no_clock ... ok
[INFO] [stdout] test sessions::config::tests::protocol_config_default_values ... ok
[INFO] [stdout] test sessions::config::tests::protocol_config_display ... ok
[INFO] [stdout] test sessions::config::tests::protocol_config_equality ... ok
[INFO] [stdout] test sessions::config::tests::protocol_config_high_latency_preset ... ok
[INFO] [stdout] test sessions::config::tests::protocol_config_mobile_preset ... ok
[INFO] [stdout] test sessions::config::tests::protocol_config_new_equals_default ... ok
[INFO] [stdout] test sessions::config::tests::protocol_config_presets_differ ... ok
[INFO] [stdout] test sessions::config::tests::protocol_config_with_clock ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_broadcast_preset ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_clone ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_copy ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_debug_format ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_default_values ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_display ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_equality ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_fast_paced_preset ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_local_preset ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_mobile_preset ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_new_equals_default ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_new_fields_settable ... ok
[INFO] [stdout] test rle::tests::decode_large_but_valid_buffer_roundtrips_under_cap ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_presets_have_default_stream_and_rewind ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_slow_connection_preset ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_validate_accepts_all_presets ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_validate_accepts_large_user_configured_values ... ok
[INFO] [stdout] test sessions::config::tests::spectator_config_validate_accepts_zero_catchup_speed ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_clone ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_copy ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_debug_format ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_default_values ... ok
[INFO] [stdout] test rle::property_tests::prop_roundtrip_invariant ... ok
[INFO] [stdout] test rle::property_tests::prop_decode_deterministic ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_extreme_preset ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_display ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_equality ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_high_latency_preset ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_lan_preset ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_mobile_preset ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_lossy_preset ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_new_equals_default ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_presets_differ ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_stress_test_preset ... ok
[INFO] [stdout] test sessions::config::tests::test_hardcoded_preset_values ... ok
[INFO] [stdout] test sessions::config::tests::test_all_presets_are_valid_configurations ... ok
[INFO] [stdout] test sessions::config::tests::test_all_presets_max_frame_delay_is_valid ... ok
[INFO] [stdout] test sessions::config::tests::test_input_queue_config_max_frame_delay ... ok
[INFO] [stdout] test sessions::config::tests::test_input_queue_config_validate ... ok
[INFO] [stdout] test sessions::config::tests::test_input_queue_config_validate_frame_delay ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_all_presets_have_no_seed ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_default_has_no_seed ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_deterministic_different_seeds ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_deterministic_preset ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_seed_validates_ok ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_all_fields_at_boundaries ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_all_presets_are_valid ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_default_is_valid ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_input_history_multiplier_accepts_large_values ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_input_history_multiplier_too_low ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_input_history_multiplier_valid ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_max_checksum_history_accepts_large_values ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_max_checksum_history_too_low ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_max_checksum_history_valid ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_multiple_invalid_fields ... ok
[INFO] [stdout] test sessions::config::tests::test_input_queue_config_display ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_pending_output_limit_too_low ... ok
[INFO] [stdout] test rle::property_tests::prop_encode_len_prediction_accurate ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_pending_output_limit_valid ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_quality_report_interval_accepts_large_values ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_quality_report_interval_too_low ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_shutdown_delay_accepts_large_values ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_shutdown_delay_too_low ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_shutdown_delay_valid ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_sync_duration_warning_ms_accepts_large_values ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_sync_duration_warning_ms_too_low ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_sync_duration_warning_ms_valid ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_sync_retry_warning_threshold_accepts_large_values ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_sync_retry_warning_threshold_too_low ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_sync_retry_warning_threshold_valid ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_quality_report_interval_valid ... ok
[INFO] [stdout] test rle::property_tests::prop_encode_deterministic ... ok
[INFO] [stdout] test sessions::config::tests::test_save_mode_copy ... ok
[INFO] [stdout] test sessions::config::tests::test_save_mode_default_is_every_frame ... ok
[INFO] [stdout] test sessions::config::tests::test_save_mode_display ... ok
[INFO] [stdout] test sessions::config::tests::test_save_mode_equality ... ok
[INFO] [stdout] test sessions::config::tests::test_save_mode_debug_format ... ok
[INFO] [stdout] test sessions::event_drain::tests::debug_format_empty_drain ... ok
[INFO] [stdout] test sessions::event_drain::tests::debug_format_shows_remaining_count ... ok
[INFO] [stdout] test sessions::config::tests::test_standard_preset_uses_input_queue_length_constant ... ok
[INFO] [stdout] test sessions::event_drain::tests::double_ended_iteration ... ok
[INFO] [stdout] test sessions::event_drain::tests::drain_from_queue_yields_all_events ... ok
[INFO] [stdout] test sessions::event_drain::tests::drain_is_fused ... ok
[INFO] [stdout] test sessions::event_drain::tests::empty_drain_has_zero_len ... ok
[INFO] [stdout] test sessions::event_drain::tests::empty_drain_returns_none ... ok
[INFO] [stdout] test sessions::event_drain::tests::exact_size_is_accurate ... ok
[INFO] [stdout] test sessions::event_drain::tests::size_hint_for_empty_drain ... ok
[INFO] [stdout] test sessions::event_drain::tests::size_hint_for_queue_drain ... ok
[INFO] [stdout] test sessions::p2p_session::tests::add_local_input_for_invalid_handle_fails ... ok
[INFO] [stdout] test sessions::config::tests::test_save_mode_clone ... ok
[INFO] [stdout] test sessions::p2p_session::tests::add_local_input_multiple_times_overwrites ... ok
[INFO] [stdout] test sessions::p2p_session::tests::add_local_input_for_remote_handle_fails ... ok
[INFO] [stdout] test sessions::p2p_session::tests::add_local_input_for_valid_handle_succeeds ... ok
[INFO] [stdout] test sessions::p2p_session::tests::advance_frame_clears_local_inputs ... ok
[INFO] [stdout] test sessions::p2p_session::tests::advance_frame_increments_current_frame ... ok
[INFO] [stdout] test sessions::p2p_session::tests::advance_frame_multiple_local_players_succeeds_with_all_inputs ... ok
[INFO] [stdout] test sessions::p2p_session::tests::advance_frame_when_not_synchronized_fails ... ok
[INFO] [stdout] test sessions::p2p_session::tests::advance_frame_without_input_fails ... ok
[INFO] [stdout] test sessions::p2p_session::tests::all_sync_health_no_remotes_returns_empty ... ok
[INFO] [stdout] test sessions::p2p_session::tests::advance_frame_with_input_succeeds ... ok
[INFO] [stdout] test sessions::p2p_session::tests::all_sync_health_with_remote_returns_entry ... ok
[INFO] [stdout] test sessions::p2p_session::tests::arm_status_epoch_bumps_only_on_transition_and_wraps ... ok
[INFO] [stdout] test sessions::p2p_session::tests::check_invariants_with_remote_no_desync_passes ... ok
[INFO] [stdout] test sessions::p2p_session::tests::check_invariants_no_desync_passes ... ok
[INFO] [stdout] test sessions::p2p_session::tests::checksum_harvest_skips_speculative_cell_above_last_confirmed_frame ... ok
[INFO] [stdout] test sessions::p2p_session::tests::advance_frame_multiple_local_players_requires_all_inputs ... ok
[INFO] [stdout] test sessions::p2p_session::tests::checksum_mismatch_warning_fires_once_on_batch_overshooting_threshold ... ok
[INFO] [stdout] test sessions::p2p_session::tests::checksum_send_deferred_while_disconnect_rollback_is_armed ... ok
[INFO] [stdout] test sessions::p2p_session::tests::confirmed_frame_disconnected_relay_ignores_stale_high_floor ... ok
[INFO] [stdout] test sessions::p2p_session::tests::confirmed_frame_post_prune_unreplied_relay_holds_at_last_confirmed ... ok
[INFO] [stdout] test sessions::p2p_session::tests::confirmed_frame_round_hold_preserves_lowering_dip ... ok
[INFO] [stdout] test sessions::p2p_session::tests::confirmed_inputs_for_frame_discarded_frame_fails ... ok
[INFO] [stdout] test sessions::p2p_session::tests::confirmed_inputs_for_frame_edge_cases ... ok
[INFO] [stdout] test sessions::p2p_session::tests::confirmed_inputs_for_frame_frame_at_confirmed_boundary ... ok
[INFO] [stdout] test sessions::p2p_session::tests::confirmed_inputs_for_frame_future_frame_fails ... ok
[INFO] [stdout] test sessions::p2p_session::tests::checksum_harvest_sparse_exact_match_miss_skips_no_stale_read ... ok
[INFO] [stdout] test sessions::p2p_session::tests::checksum_harvest_uses_exact_frame_to_send_cell_not_a_later_cell ... ok
[INFO] [stdout] test sessions::p2p_session::tests::confirmed_inputs_for_frame_returns_correct_inputs ... ok
[INFO] [stdout] test sessions::p2p_session::tests::default_max_event_queue_size_is_reasonable ... ok
[INFO] [stdout] test sessions::p2p_session::tests::disconnect_event_empty_payload_mixed_address_does_not_guess_target ... ok
[INFO] [stdout] test sessions::p2p_session::tests::disconnect_player_already_disconnected_fails ... ok
[INFO] [stdout] test sessions::p2p_session::tests::disconnect_event_empty_payload_remote_only_falls_back_to_address ... ok
[INFO] [stdout] test sessions::p2p_session::tests::disconnect_player_invalid_handle_fails ... ok
[INFO] [stdout] test sessions::p2p_session::tests::disconnect_player_multi_handle_uses_earliest_last_frame_for_rollback ... ok
[INFO] [stdout] test sessions::p2p_session::tests::disconnect_player_remote_succeeds ... ok
[INFO] [stdout] test sessions::p2p_session::tests::dropped_unverified_remote_does_not_block_is_synchronized ... ok
[INFO] [stdout] test sessions::p2p_session::tests::enter_fail_closed_is_idempotent_when_already_synchronizing ... ok
[INFO] [stdout] test sessions::p2p_session::tests::enter_fail_closed_transitions_running_to_synchronizing ... ok
[INFO] [stdout] test sessions::p2p_session::tests::events_drains_queue ... ok
[INFO] [stdout] test sessions::p2p_session::tests::events_initially_empty ... ok
[INFO] [stdout] test sessions::p2p_session::tests::fail_closed_blocks_advance_frame ... ok
[INFO] [stdout] test sessions::p2p_session::tests::full_session_lifecycle_local_only ... ok
[INFO] [stdout] test sessions::p2p_session::tests::graceful_drop_invalidates_stale_local_checksums_above_freeze_frame ... ok
[INFO] [stdout] test sessions::p2p_session::tests::handles_by_address_returns_correct_handles ... ok
[INFO] [stdout] test sessions::p2p_session::tests::handles_by_address_unknown_returns_empty ... ok
[INFO] [stdout] test sessions::p2p_session::tests::in_lockstep_mode_false_with_default_prediction ... ok
[INFO] [stdout] test sessions::p2p_session::tests::in_lockstep_mode_true_with_zero_prediction ... ok
[INFO] [stdout] test sessions::p2p_session::tests::into_replay_without_recording_returns_error ... ok
[INFO] [stdout] test sessions::p2p_session::tests::is_recording_false_by_default ... ok
[INFO] [stdout] test sessions::p2p_session::tests::is_recording_true_when_enabled ... ok
[INFO] [stdout] test sessions::p2p_session::tests::is_synchronized_no_remotes_returns_true ... ok
[INFO] [stdout] test sessions::p2p_session::tests::is_synchronized_with_pending_returns_false ... ok
[INFO] [stdout] test sessions::p2p_session::tests::last_verified_frame_initially_none ... ok
[INFO] [stdout] test sessions::p2p_session::tests::last_verified_frame_with_remote_initially_none ... ok
[INFO] [stdout] test sessions::p2p_session::tests::max_frame_advantage_excludes_disconnected_multi_handle_counts_connected_running ... ok
[INFO] [stdout] test sessions::p2p_session::tests::max_frame_advantage_multi_handle_endpoint_is_idempotent_not_additive ... ok
[INFO] [stdout] test sessions::p2p_session::tests::min_recommendation_is_reasonable ... ok
[INFO] [stdout] test sessions::p2p_session::tests::disconnect_player_local_fails ... ok
[INFO] [stdout] test sessions::p2p_session::tests::confirmed_inputs_for_frame_null_frame_handling ... ok
[INFO] [stdout] test sessions::p2p_session::tests::network_stats_local_player_fails ... ok
[INFO] [stdout] test sessions::p2p_session::tests::network_stats_remote_not_synchronized_fails ... ok
[INFO] [stdout] test sessions::p2p_session::tests::network_stats_spectator_uses_spectator_endpoint ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_desync_detection_returns_configured_value ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_frames_ahead_initially_zero ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_advance_frame_routes_report_violation_to_session_observer ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_initial_confirmed_frame_is_null ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_initial_frame_is_zero ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_local_player_handle_returns_first_with_multiple_locals ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_local_player_handle_returns_none_with_no_locals ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_local_player_handle_returns_some_with_one_local ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_local_player_handles_returns_correct_handles ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_max_prediction_returns_configured_value ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_num_players_returns_correct_count ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_num_spectators_initially_zero ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_remote_player_handles_with_remotes ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_spectator_handles_initially_empty ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_violation_observer_none_by_default ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_with_remote_starts_synchronizing ... ok
[INFO] [stdout] test sessions::p2p_session::tests::persistent_checksum_mismatch_counts_warns_once_and_never_ejects ... ok
[INFO] [stdout] test sessions::builder::tests::test_with_input_delay_accepts_zero ... ok
[INFO] [stdout] test sessions::config::tests::test_input_queue_config_presets ... ok
[INFO] [stdout] test sessions::p2p_session::tests::network_stats_invalid_handle_fails ... ok
[INFO] [stdout] test sessions::p2p_session::tests::pessimistic_floors_folds_disconnected_freeze_not_connected_receipt ... ok
[INFO] [stdout] test sessions::p2p_session::tests::pessimistic_floors_skips_non_running_endpoints ... ok
[INFO] [stdout] test sessions::p2p_session::tests::pessimistic_floors_skips_null_no_info_remote_caches ... ok
[INFO] [stdout] test sessions::p2p_session::tests::poll_remote_clients_does_not_panic ... ok
[INFO] [stdout] test sessions::p2p_session::tests::poll_remote_clients_multiple_times ... ok
[INFO] [stdout] test sessions::p2p_session::tests::recommendation_interval_is_reasonable ... ok
[INFO] [stdout] test sessions::p2p_session::tests::record_confirmed_inputs_advances_past_failed_frame ... ok
[INFO] [stdout] test sessions::p2p_session::tests::remote_slot_confirmed_bound_consumes_relay_floor_round_after_prune ... ok
[INFO] [stdout] test sessions::p2p_session::tests::poll_remote_clients_sets_connect_status_nudge_until_mesh_agreement ... ok
[INFO] [stdout] test sessions::p2p_session::tests::remote_slot_confirmed_bound_disconnected_relay_ignores_stale_high_floor ... ok
[INFO] [stdout] test sessions::p2p_session::tests::remote_slot_confirmed_bound_ignores_non_running_endpoints ... ok
[INFO] [stdout] test sessions::p2p_session::tests::remote_slot_confirmed_bound_ignores_relay_floor_round_with_single_running_remote ... ok
[INFO] [stdout] test sessions::p2p_session::tests::remote_slot_confirmed_bound_ignores_relay_floor_round_without_prune ... ok
[INFO] [stdout] test sessions::p2p_session::tests::remote_slot_confirmed_bound_lagging_third_party_gossip_bounds_connected_slot ... ok
[INFO] [stdout] test sessions::p2p_session::tests::remote_slot_confirmed_bound_locally_disconnected_folds_gossip_only ... ok
[INFO] [stdout] test sessions::p2p_session::tests::remote_slot_confirmed_bound_mesh_agreed_disconnect_excludes_slot ... ok
[INFO] [stdout] test sessions::p2p_session::tests::remote_slot_confirmed_bound_n2_identity ... ok
[INFO] [stdout] test sessions::p2p_session::tests::remote_slot_confirmed_bound_default_null_cache_holds_conservatively ... ok
[INFO] [stdout] test sessions::p2p_session::tests::pessimistic_floors_null_only_when_own_receipt_is_null ... ok
[INFO] [stdout] test sessions::p2p_session::tests::remote_slot_confirmed_bound_pre_agreement_never_exceeds_convergence ... ok
[INFO] [stdout] test sessions::p2p_session::tests::remote_slot_confirmed_bound_round_null_falls_back_to_last_frame ... ok
[INFO] [stdout] test sessions::p2p_session::tests::session_with_spectator ... ok
[INFO] [stdout] test sessions::p2p_session::tests::slot_round_incomplete_connected_unreplied_under_gate_is_true ... ok
[INFO] [stdout] test sessions::p2p_session::tests::slot_round_incomplete_without_prune_is_false ... ok
[INFO] [stdout] test sessions::p2p_session::tests::sparse_disconnect_rollback_loading_earlier_checkpoint_reestablishes_last_saved_frame ... ok
[INFO] [stdout] test sessions::p2p_session::tests::stale_echo_barrier_pins_bound_to_stale_low_term_no_confirmation_overrun ... ok
[INFO] [stdout] test sessions::p2p_session::tests::stale_echo_stale_low_term_drives_freeze_but_never_below_confirmed ... ok
[INFO] [stdout] test sessions::p2p_session::tests::spectator_disconnect_event_disconnects_spectator_endpoint_data_driven ... ok
[INFO] [stdout] test sessions::p2p_session::tests::stale_echo_disconnected_stale_low_term_still_pins_bound ... ok
[INFO] [stdout] test sessions::p2p_session::tests::sync_health_invalid_handle_returns_none ... ok
[INFO] [stdout] test sessions::p2p_session::tests::sync_health_local_player_returns_none ... ok
[INFO] [stdout] test sessions::p2p_session::tests::sync_health_remote_initially_pending ... ok
[INFO] [stdout] test sessions::p2p_session::tests::update_player_disconnects_is_running_filter_drives_min_inclusion ... ok
[INFO] [stdout] test sessions::p2p_session::tests::update_player_disconnects_mined_local_view_is_permanent_after_survivor_goes_nonrunning ... ok
[INFO] [stdout] test sessions::p2p_session::tests::update_player_disconnects_nonrunning_survivor_holds_default_view_converges_to_real_min ... ok
[INFO] [stdout] test sessions::p2p_session::tests::sync_health_verified_peer_does_not_leak_into_unverified_peer ... ok
[INFO] [stdout] test sessions::p2p_session::tests::take_replay_without_recording_returns_error ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::advance_capacity_clamps_pathological_frames_to_advance ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::advance_capacity_does_not_overflow_with_huge_buffer_size ... ok
[INFO] [stdout] test sessions::p2p_session::tests::sync_health_remote_with_desync_off_returns_pending ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::advance_capacity_normal_cases_return_expected_small_values ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::multi_host_later_canonical_snapshot_does_not_raise_disconnect_freeze_frame ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::normal_speed_is_one ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::null_freeze_witness_follows_null_latch_but_not_real_latch ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::second_drop_after_reactivation_not_resurrected_by_cycle_one_witness ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::second_drop_after_reactivation_not_resurrected_by_high_view_cycle_one_witness ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::second_reactivation_followed_after_witness_consumption ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_all_hosts_disconnect_with_conflict_latches_divergence ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_all_hosts_dropped_drains_buffered_frames_then_prediction_threshold ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::cross_cycle_stale_drop_epoch_blocks_resurrect_after_consume ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::genuine_reactivation_with_only_preconsume_witnesses_fails_closed_at_frozen_label ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_asymmetric_freeze_frame_converges_at_commit_time_when_lower_host_staged_first ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_all_presets_are_distinct ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_clone ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_debug_format ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_default_values ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_equality ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_builders_do_not_impose_arbitrary_buffer_caps ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_fast_paced_preset ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_inequality ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_local_preset ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_new_equals_default ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_slow_connection_preset ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_stream_delay_boundary_is_validated ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_with_zero_catchup_speed ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_connection_status_merge_converges_freeze_and_follows_reactivation ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::late_arriving_connected_snapshot_does_not_resurrect_dropped_slot ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_disconnect_packet_preserves_final_inputs ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_asymmetric_freeze_frame_nonoverlapping_region_converges_to_global_min ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_config_extreme_values ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_follows_host_reactivation_after_disconnect ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_frames_behind_host_routes_report_violation_to_session_observer ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_disconnected_primary_promotes_next_host_for_unresolved_frame ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_host_frame_snapshot_keeps_packet_status_per_frame ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_inputs_at_frame_newer_wrapped_player_slot_returns_too_far_behind ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_inputs_at_frame_stale_then_newer_slot_returns_too_far_behind ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_nonoverlapping_divergent_late_stream_latches_divergence ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_partial_host_input_conflict_latches_after_canonical_commit ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_partial_host_input_conflict_latches_before_canonical_commit ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_inputs_at_frame_stale_player_slot_returns_prediction_threshold ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_pending_primary_disconnect_allows_unresolved_failover_without_divergence ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_frozen_slot_divergent_value_at_freeze_frame_latches_before_playback ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_lower_priority_snapshot_is_provisional_until_primary_arrives ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_redundant_host_divergence_latches_error_and_event ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_remove_disconnected_hosts_uses_original_indices ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_same_frame_redundant_host_cannot_refresh_or_disconnect_shared_status ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_same_poll_later_disconnect_is_excluded_before_earlier_input ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_advance_frame_returns_not_synchronized_when_not_running ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_creates_successfully ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_events_drains_queue ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_remove_disconnected_hosts_ignores_invalid_indices ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_same_host_input_before_disconnect_is_preserved ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_events_initially_empty ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_frames_behind_host_initially_zero ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_current_frame_is_null_initially ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_frames_behind_host_uses_wide_distance_math ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_frames_behind_with_both_null ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_initial_frame_is_null ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_host_connect_status_initialized ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_initial_state_is_synchronizing ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_many_players ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_multi_host_empty_returns_none ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_last_recv_frame_initially_null ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_network_stats_before_sync ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_network_stats_returns_not_synchronized_initially ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_num_players_returns_correct_count ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_poll_preserves_state ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_poll_remote_clients_does_not_panic ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_poll_remote_clients_multiple_times ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_rewind_and_stream_delay_accessors ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_rewind_disabled_by_default ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_seek_max_frame_returns_arithmetic_overflow ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_multi_host_reports_host_count ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_seek_negative_frame_returns_must_be_non_negative ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_seek_unsaved_frame_returns_missing_state ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_seek_when_rewind_disabled_returns_not_supported ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_single_host_count_can_drop_to_zero ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_single_player ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_state_transitions ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_single_host_reports_one_host ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_viewable_frame_clamps_to_null_until_delay_is_available ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_violation_observer_is_arc ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_violation_observer_none_by_default ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_with_high_catchup_speed ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_with_minimum_buffer_size ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_with_custom_config ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_with_violation_observer ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_with_large_buffer_size ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_without_violation_observer ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_stream_delay_boundary_returns_prediction_threshold ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_stream_delay_releases_after_clean_all_hosts_disconnect ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::stale_lagging_canonical_host_cannot_resurrect_permanently_dropped_slot ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::stale_staged_adopt_after_witness_consumption_recovers_when_host_catches_up ... ok
[INFO] [stdout] test sessions::config::tests::sync_config_competitive_preset ... ok
[INFO] [stdout] test sessions::config::tests::test_protocol_config_validate_pending_output_limit_too_high ... ok
[INFO] [stdout] test sessions::p2p_session::tests::p2p_session_local_only_starts_running ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::witnessed_failover_host_reactivation_is_followed ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_events_empty_after_drain ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_with_zero_buffer_size_is_rejected ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::spectator_session_with_zero_max_frames_behind ... ok
[INFO] [stdout] test sessions::player_registry::tests::is_local_player_returns_false_for_remote ... ok
[INFO] [stdout] test sessions::player_registry::tests::all_player_handles_returns_all ... ok
[INFO] [stdout] test sessions::player_registry::tests::is_local_player_returns_false_for_unknown ... ok
[INFO] [stdout] test sessions::player_registry::tests::is_local_player_returns_true_for_local ... ok
[INFO] [stdout] test sessions::player_registry::tests::is_remote_player_returns_false_for_local ... ok
[INFO] [stdout] test sessions::player_registry::tests::is_remote_player_returns_false_for_spectator ... ok
[INFO] [stdout] test sessions::player_registry::tests::is_remote_player_returns_true_for_remote ... ok
[INFO] [stdout] test sessions::player_registry::tests::is_spectator_handle_returns_false_for_remote ... ok
[INFO] [stdout] test sessions::player_registry::tests::is_spectator_handle_returns_true_for_spectator ... ok
[INFO] [stdout] test sessions::player_registry::tests::num_local_players_counts_correctly ... ok
[INFO] [stdout] test sessions::player_registry::tests::num_remote_players_counts_correctly ... ok
[INFO] [stdout] test sessions::player_registry::tests::player_registry_debug_format ... ok
[INFO] [stdout] test sessions::player_registry::tests::player_registry_default_is_empty ... ok
[INFO] [stdout] test sessions::player_registry::tests::player_registry_handles_by_address_excludes_local ... ok
[INFO] [stdout] test sessions::player_registry::tests::player_registry_handles_by_address_not_found ... ok
[INFO] [stdout] test sessions::player_registry::tests::player_registry_handles_by_address_remote ... ok
[INFO] [stdout] test sessions::player_registry::tests::player_registry_handles_by_address_spectator ... ok
[INFO] [stdout] test sessions::player_registry::tests::player_registry_mixed_players ... ok
[INFO] [stdout] test sessions::player_registry::tests::player_registry_multiple_handles_same_address ... ok
[INFO] [stdout] test sessions::player_registry::tests::player_registry_new_is_empty ... ok
[INFO] [stdout] test sessions::player_registry::tests::player_registry_with_local_player ... ok
[INFO] [stdout] test sessions::p2p_spectator_session::tests::within_cycle_pre_drop_epoch_blocks_follow_post_drop_epoch_follows ... ok
[INFO] [stdout] test sessions::player_registry::tests::player_registry_with_remote_player ... ok
[INFO] [stdout] test sessions::player_registry::tests::player_registry_with_spectator ... ok
[INFO] [stdout] test sessions::player_registry::tests::player_type_returns_correct_type ... ok
[INFO] [stdout] test sessions::player_registry::tests::remote_player_handle_required_ignores_local_and_spectators ... ok
[INFO] [stdout] test sessions::player_registry::tests::remote_player_handle_required_returns_error_for_multiple_remotes ... ok
[INFO] [stdout] test sessions::player_registry::tests::remote_player_handle_required_returns_error_for_no_remotes ... ok
[INFO] [stdout] test sessions::player_registry::tests::remote_player_handle_required_returns_handle_for_single_remote ... ok
[INFO] [stdout] test sessions::replay_session::tests::add_local_input_not_supported ... ok
[INFO] [stdout] test sessions::replay_session::tests::advance_frame_returns_correct_inputs ... ok
[INFO] [stdout] test sessions::replay_session::tests::advance_past_end_returns_replay_exhausted ... ok
[INFO] [stdout] test sessions::replay_session::tests::current_state_always_running ... ok
[INFO] [stdout] test sessions::replay_session::tests::debug_format ... ok
[INFO] [stdout] test sessions::replay_session::tests::empty_replay_with_validation ... ok
[INFO] [stdout] test sessions::replay_session::tests::empty_replay_with_validation_advance_returns_error ... ok
[INFO] [stdout] test sessions::replay_session::tests::events_returns_empty_drain ... ok
[INFO] [stdout] test sessions::replay_session::tests::full_playback_single_player ... ok
[INFO] [stdout] test sessions::replay_session::tests::is_complete_after_all_frames ... ok
[INFO] [stdout] test sessions::replay_session::tests::is_complete_empty_replay ... ok
[INFO] [stdout] test sessions::replay_session::tests::is_validating_returns_correct_value ... ok
[INFO] [stdout] test sessions::replay_session::tests::local_player_handle_required_not_supported ... ok
[INFO] [stdout] test sessions::replay_session::tests::new_session_starts_at_null_frame ... ok
[INFO] [stdout] test sessions::replay_session::tests::non_validation_mode_no_save_requests ... ok
[INFO] [stdout] test sessions::replay_session::tests::session_trait_advance_frame ... ok
[INFO] [stdout] test sessions::replay_session::tests::single_frame_replay_validation_detects_last_frame_desync ... ok
[INFO] [stdout] test sessions::replay_session::tests::replay_accessor ... ok
[INFO] [stdout] test sessions::replay_session::tests::single_frame_replay_validation_matching_checksum ... ok
[INFO] [stdout] test sessions::replay_session::tests::total_frames_matches_replay ... ok
[INFO] [stdout] test sessions::replay_session::tests::validation_mode_detects_checksum_mismatch ... ok
[INFO] [stdout] test sessions::replay_session::tests::validation_mode_emits_save_game_state ... ok
[INFO] [stdout] test sessions::replay_session::tests::validation_mode_events_before_checksum_write_does_not_drop_pending_validation ... ok
[INFO] [stdout] test sessions::replay_session::tests::validation_mode_naive_completion_loop_flushes_last_frame_across_lengths ... ok
[INFO] [stdout] test sessions::replay_session::tests::validation_mode_naive_completion_loop_surfaces_final_frame_desync_on_events_drain ... ok
[INFO] [stdout] test sessions::replay_session::tests::validation_mode_no_event_on_matching_checksums ... ok
[INFO] [stdout] test sessions::replay_session::tests::validation_mode_skips_frames_without_checksums ... ok
[INFO] [stdout] test sessions::replay_session::tests::validation_mode_skips_when_actual_checksum_is_none ... ok
[INFO] [stdout] test sessions::sync_health::tests::sync_health_copy ... ok
[INFO] [stdout] test sessions::sync_health::tests::sync_health_debug_format ... ok
[INFO] [stdout] test sessions::sync_health::tests::sync_health_desync_equality ... ok
[INFO] [stdout] test sessions::sync_health::tests::sync_health_desync_inequality ... ok
[INFO] [stdout] test sessions::sync_health::tests::sync_health_different_variants_not_equal ... ok
[INFO] [stdout] test sessions::sync_health::tests::sync_health_display_desync_detected ... ok
[INFO] [stdout] test sessions::sync_health::tests::sync_health_display_in_sync ... ok
[INFO] [stdout] test sessions::sync_health::tests::sync_health_display_pending ... ok
[INFO] [stdout] test sessions::sync_health::tests::sync_health_pending_equality ... ok
[INFO] [stdout] test sessions::sync_health::tests::sync_health_in_sync_equality ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::add_local_input_invalid_handle_fails ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::add_local_input_overwrites_previous_input ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::add_local_input_valid_handle_succeeds ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::advance_frame_multiple_times ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::advance_frame_no_input_for_any_player ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::advance_frame_requires_all_inputs ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::advance_frame_returns_confirmed_input_status ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::advance_frame_with_all_inputs_succeeds ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::check_distance_returns_correct_value ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::checksum_history_is_pruned_over_time ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::current_frame_starts_at_zero ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::events_drain_is_zero_len ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::events_can_be_called_multiple_times ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::advance_frame_increments_current_frame ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::events_returns_empty_after_advance_frame ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::events_returns_empty_drain_on_new_session ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::local_player_handle_required_with_multiple_players_returns_error ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::local_player_handle_required_with_one_player_succeeds ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::large_check_distance ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::local_player_handle_required_with_zero_players_returns_error ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::local_player_handles_returns_all_players ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::local_player_handles_single_player ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::many_players_construction ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::advance_frame_with_check_distance_produces_save_request ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::num_players_returns_correct_value ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::requests_contain_advance_frame_with_inputs ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::requests_order_save_before_advance ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::small_queue_length ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_builder_with_input_delay ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_builder_with_observer ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_construction_violation_routes_to_session_observer ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::max_prediction_returns_correct_value ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_many_players_with_checksums ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_session_single_player ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_session_with_queue_length_creates_valid_session ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_session_with_violation_observer ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_session_zero_check_distance ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_detects_mismatched_checksum ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_rollback_happens_after_check_distance_frames ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_session_new_creates_valid_session ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_large_check_distance ... ok
[INFO] [stdout] test rle::property_tests::prop_compression_bounded_expansion ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_with_no_checksums_succeeds ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::violation_observer_none_when_not_set ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_zero_check_distance_skips_rollback ... ok
[INFO] [stdout] test sync::tests::test_model_runs_closure ... ok
[INFO] [stdout] test sync::tests::test_mutex_basic ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_accessor_as_mut_dangerous ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_via_session_builder ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_accessor_deref ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_with_consistent_checksums_succeeds ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_clone_modifications_visible ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::violation_observer_some_when_set ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_clone_shares_underlying_data ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_data_returns_accessor ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_complex_type ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_data_returns_none_when_empty ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_data_returns_none_when_none_saved ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_debug_format ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_default_has_no_checksum ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_debug_with_null_frame ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_large_checksum ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_multiple_clones_all_share_state ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_frame_zero ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_save_and_load ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_save_none_data ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_save_updates_checksum ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_save_updates_frame ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_save_with_null_frame_does_not_modify_state ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_save_with_null_frame_returns_false ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_zero_checksum ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::load_or_err_returns_error_when_empty ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::load_or_err_succeeds_after_save ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::cells_are_cloned_references ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::cells_independent_per_index ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::sync_test_session_zero_input_delay ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_default_has_null_frame ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::get_cell_circular_indexing_wraps_correctly ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::get_cell_each_index_accessible ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::get_cell_large_frame_number ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::get_cell_negative_frame_returns_error ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::get_cell_null_frame_returns_error ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::get_cell_returns_same_cell_for_wrapped_frames ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::get_cell_single_cell_buffer ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::get_cell_valid_frame_returns_ok ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::get_cell_with_checksum ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::new_cells_are_default_initialized ... ok
[INFO] [stdout] test sessions::sync_test_session::tests::advance_frame_clears_inputs ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::overwrite_cell_data ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::try_new_reports_allocation_failure_for_prediction_overflow ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::input_queue_length_constant_is_valid_for_with_queue_length ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_default_has_no_data ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_large_frame ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_overwrite ... ok
[INFO] [stdout] test sync_layer::game_state_cell::tests::game_state_cell_repeated_saves_same_frame ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::new_creates_correct_number_of_cells ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::new_with_large_max_prediction ... ok
[INFO] [stdout] test sync_layer::saved_states::tests::new_with_zero_max_prediction ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_check_simulation_consistency_no_errors ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_advance_frame ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_different_delays ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_full_rollback_cycle_maintains_invariants ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_game_state_cell_data_accessor_deref ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_game_state_cell_clone ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_check_invariants_after_rollback ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_game_state_cell_data_returns_none_when_empty ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_game_state_cell_debug_format ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_game_state_cell_empty_debug ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_game_state_cell_save_load ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_game_state_cell_overwrite ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_game_state_cell_save_none_data ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_game_state_cell_save_none_checksum ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_game_state_cell_data_accessor_mut_dangerous ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_invariant_checker_after_advance_frame ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_invariant_checker_after_add_inputs ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_invariant_checker_after_save_state ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_invariant_checker_after_set_last_confirmed_frame ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_invariant_checker_new_sync_layer ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_invariant_checker_validates_player_count ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_load_frame_current_frame_error ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_invariant_checker_with_frame_delay ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_load_frame_future_frame_error ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_load_frame_null_frame_error ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_last_confirmed_frame_invariant ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_load_frame_outside_prediction_window ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_load_frame_success ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_load_frame_updates_last_saved_frame_invariant ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_game_state_cell_null_frame_rejected ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_load_frame_zero_outside_prediction_window ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_players_with_incorrect_predictions_includes_boundary_frame ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_load_frame_zero_within_prediction_window ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_reset_prediction ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_load_frame_zero_updates_last_saved_frame ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_rollback_at_prediction_window_edge ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_save_current_state ... ok
[INFO] [stdout] test network::compression::property_tests::prop_empty_inputs ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_save_current_state_after_rollback ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_multiple_rollbacks_maintain_invariants ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_save_current_state_cell_cycling ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_save_current_state_at_frame_zero ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_saved_state_by_frame_negative ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_save_current_state_updates_last_saved_frame ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_set_frame_delay_invalid_handle ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_saved_state_by_frame_found ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_set_last_confirmed_frame ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_set_last_confirmed_frame_clamps_to_current ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_set_last_confirmed_frame_with_sparse_saving ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_save_current_state_invariant_documentation ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_synchronized_inputs_with_disconnected_player ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_with_queue_length_invalid_returns_empty_internal_fallback ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_saved_state_by_frame_not_found ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_sync_layer_new_initializes_correctly ... ok
[INFO] [stdout] test telemetry::tests::collecting_telemetry_clear_removes_all ... ok
[INFO] [stdout] test telemetry::tests::collecting_telemetry_records_events ... ok
[INFO] [stdout] test telemetry::tests::nested_scoped_observers_route_to_innermost_then_restore ... ok
[INFO] [stdout] test telemetry::tests::out_of_order_scoped_observer_drop_removes_matching_scope ... ok
[INFO] [stdout] test telemetry::tests::collecting_telemetry_network_stats_and_frame_advance_filters ... ok
[INFO] [stdout] test telemetry::tests::observer_dropped_by_scope_can_report_without_refcell_panic ... ok
[INFO] [stdout] test telemetry::tests::collecting_telemetry_new_is_empty ... ok
[INFO] [stdout] test telemetry::tests::collecting_telemetry_prediction_misses_filter ... ok
[INFO] [stdout] test telemetry::tests::reentrant_report_from_observer_does_not_deadlock ... ok
[INFO] [stdout] test telemetry::tests::session_telemetry_default_methods_are_noop ... ok
[INFO] [stdout] test telemetry::tests::report_violation_falls_back_to_tracing_when_no_observer_installed ... ok
[INFO] [stdout] test telemetry::tests::pushed_observer_is_thread_local_to_installing_thread ... ok
[INFO] [stdout] test telemetry::tests::report_violation_routes_to_pushed_thread_local_observer ... ok
[INFO] [stdout] test telemetry::tests::telemetry_event_display_all_variants ... ok
[INFO] [stdout] test telemetry::tests::test_assert_invariants_macro_ok ... ok
[INFO] [stdout] test telemetry::tests::test_collecting_observer ... ok
[INFO] [stdout] test telemetry::tests::test_assert_no_violations_macro ... ok
[INFO] [stdout] test telemetry::tests::test_assert_violation_macro ... ok
[INFO] [stdout] test telemetry::tests::collecting_telemetry_rollbacks_filter ... ok
[INFO] [stdout] test telemetry::tests::test_collecting_observer_clear ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_save_current_state_maintains_frame_invariant ... ok
[INFO] [stdout] test telemetry::tests::test_collecting_observer_filter_by_kind ... ok
[INFO] [stdout] test telemetry::tests::test_collecting_observer_filter_by_severity ... ok
[INFO] [stdout] test telemetry::tests::test_composite_observer ... ok
[INFO] [stdout] test telemetry::tests::test_debug_check_invariants_macro_fail ... ok
[INFO] [stdout] test telemetry::tests::test_debug_check_invariants_macro_ok ... ok
[INFO] [stdout] test telemetry::tests::test_invariant_checker_trait_fail ... ok
[INFO] [stdout] test telemetry::tests::test_invariant_checker_trait_ok ... ok
[INFO] [stdout] test telemetry::tests::test_collecting_observer_concurrent_reads ... ok
[INFO] [stdout] test telemetry::tests::test_invariant_violation_display_with_details ... ok
[INFO] [stdout] test telemetry::tests::test_invariant_violation_display_without_details ... ok
[INFO] [stdout] test telemetry::tests::test_invariant_violation_with_checksum_mismatch ... ok
[INFO] [stdout] test telemetry::tests::test_invariant_violation_with_checksum_mismatch_display ... ok
[INFO] [stdout] test telemetry::tests::test_invariant_violation_new ... ok
[INFO] [stdout] test telemetry::tests::test_invariant_violation_with_details ... ok
[INFO] [stdout] test telemetry::tests::test_report_to_observer_with_some ... ok
[INFO] [stdout] test telemetry::tests::test_collecting_observer_concurrent_writes ... ok
[INFO] [stdout] test telemetry::tests::test_report_to_observer_with_none ... ok
[INFO] [stdout] test telemetry::tests::test_report_violation_macro_accepts_macro_format_args ... ok
[INFO] [stdout] test telemetry::tests::test_report_violation_macro_accepts_named_format_args ... ok
[INFO] [stdout] test telemetry::tests::test_report_violation_macro_basic ... ok
[INFO] [stdout] test telemetry::tests::test_report_violation_macro_with_format ... ok
[INFO] [stdout] test telemetry::tests::test_report_violation_macro_with_observer ... ok
[INFO] [stdout] test telemetry::tests::test_report_violation_to_macro_accepts_macro_format_args ... ok
[INFO] [stdout] test telemetry::tests::test_report_violation_to_macro_accepts_named_format_args ... ok
[INFO] [stdout] test telemetry::tests::test_report_violation_to_macro_basic ... ok
[INFO] [stdout] test telemetry::tests::test_report_violation_to_macro_with_none ... ok
[INFO] [stdout] test telemetry::tests::test_spec_violation_builder ... ok
[INFO] [stdout] test telemetry::tests::test_spec_violation_display ... ok
[INFO] [stdout] test telemetry::tests::test_report_violation_to_macro_with_format ... ok
[INFO] [stdout] test telemetry::tests::test_synchronization_duration_warning ... ok
[INFO] [stdout] test telemetry::tests::test_synchronization_violation_can_be_created ... ok
[INFO] [stdout] test telemetry::tests::test_synchronization_violation_ordering ... ok
[INFO] [stdout] test telemetry::tests::test_tracing_observer_creation ... ok
[INFO] [stdout] test telemetry::tests::test_tracing_observer_format_frame ... ok
[INFO] [stdout] test telemetry::tests::test_try_check_invariants_macro_fail_with_context ... ok
[INFO] [stdout] test telemetry::tests::test_try_check_invariants_macro_fail ... ok
[INFO] [stdout] test telemetry::tests::test_try_check_invariants_can_use_question_mark ... ok
[INFO] [stdout] test telemetry::tests::test_try_check_invariants_macro_ok_with_context ... ok
[INFO] [stdout] test telemetry::tests::test_violation_kind_invariant_as_str ... ok
[INFO] [stdout] test telemetry::tests::test_violation_kind_synchronization_as_str ... ok
[INFO] [stdout] test telemetry::tests::test_violation_severity_as_str ... ok
[INFO] [stdout] test telemetry::tests::test_violation_severity_ordering ... ok
[INFO] [stdout] test test_config::tests::test_miri_case_count_returns_expected_value ... ok
[INFO] [stdout] test tests::desync_detection_display_off ... ok
[INFO] [stdout] test tests::desync_detection_display_on ... ok
[INFO] [stdout] test tests::desync_detection_display_on_custom_interval ... ok
[INFO] [stdout] test tests::fortress_event_clone ... ok
[INFO] [stdout] test tests::fortress_event_debug_format ... ok
[INFO] [stdout] test tests::fortress_event_desync_detected ... ok
[INFO] [stdout] test tests::fortress_event_disconnected ... ok
[INFO] [stdout] test tests::fortress_event_display_renders_every_variant ... ok
[INFO] [stdout] test tests::fortress_event_equality ... ok
[INFO] [stdout] test tests::fortress_event_network_interrupted ... ok
[INFO] [stdout] test telemetry::tests::test_violation_kind_as_str ... ok
[INFO] [stdout] test tests::fortress_event_network_resumed ... ok
[INFO] [stdout] test tests::fortress_event_spectator_divergence_fields ... ok
[INFO] [stdout] test tests::fortress_event_replay_desync_fields ... ok
[INFO] [stdout] test tests::fortress_event_synchronized ... ok
[INFO] [stdout] test tests::fortress_event_sync_timeout ... ok
[INFO] [stdout] test tests::fortress_event_synchronizing ... ok
[INFO] [stdout] test tests::fortress_event_wait_recommendation ... ok
[INFO] [stdout] test tests::fortress_request_display_advance_frame ... ok
[INFO] [stdout] test tests::fortress_request_display_advance_frame_empty ... ok
[INFO] [stdout] test tests::fortress_request_display_load_game_state ... ok
[INFO] [stdout] test tests::fortress_request_display_save_game_state ... ok
[INFO] [stdout] test tests::frame_abs_diff_basic ... ok
[INFO] [stdout] test tests::frame_abs_diff_extremes ... ok
[INFO] [stdout] test tests::frame_add_assign ... ok
[INFO] [stdout] test tests::frame_arithmetic ... ok
[INFO] [stdout] test tests::frame_as_usize_negative ... ok
[INFO] [stdout] test tests::frame_as_usize_positive ... ok
[INFO] [stdout] test tests::frame_buffer_index_basic ... ok
[INFO] [stdout] test tests::frame_buffer_index_negative_frame ... ok
[INFO] [stdout] test tests::frame_buffer_index_zero_size ... ok
[INFO] [stdout] test tests::frame_checked_add_normal ... ok
[INFO] [stdout] test tests::frame_checked_add_overflow ... ok
[INFO] [stdout] test tests::frame_checked_sub_normal ... ok
[INFO] [stdout] test tests::frame_checked_sub_overflow ... ok
[INFO] [stdout] test tests::frame_comparison ... ok
[INFO] [stdout] test tests::frame_debug_format ... ok
[INFO] [stdout] test tests::frame_display_null ... ok
[INFO] [stdout] test tests::frame_display_negative ... ok
[INFO] [stdout] test tests::frame_display_valid ... ok
[INFO] [stdout] test tests::frame_distance_to_basic ... ok
[INFO] [stdout] test tests::frame_distance_to_overflow ... ok
[INFO] [stdout] test tests::frame_distance_to_with_negative_frames ... ok
[INFO] [stdout] test tests::frame_from_option ... ok
[INFO] [stdout] test tests::frame_from_usize_valid ... ok
[INFO] [stdout] test tests::frame_from_usize_too_large ... ok
[INFO] [stdout] test tests::frame_is_within_inside ... ok
[INFO] [stdout] test tests::frame_is_within_max_window ... ok
[INFO] [stdout] test tests::frame_is_within_outside ... ok
[INFO] [stdout] test tests::frame_is_within_zero_window ... ok
[INFO] [stdout] test tests::frame_modulo ... ok
[INFO] [stdout] test tests::frame_next_overflow ... ok
[INFO] [stdout] test tests::frame_new ... ok
[INFO] [stdout] test tests::frame_null_constant ... ok
[INFO] [stdout] test tests::frame_next_success ... ok
[INFO] [stdout] test tests::frame_prev_success ... ok
[INFO] [stdout] test tests::frame_prev_overflow ... ok
[INFO] [stdout] test tests::frame_saturating_add_clamps_at_max ... ok
[INFO] [stdout] test tests::frame_saturating_add_clamps_at_min ... ok
[INFO] [stdout] test tests::frame_saturating_add_normal ... ok
[INFO] [stdout] test tests::frame_saturating_next ... ok
[INFO] [stdout] test tests::frame_saturating_prev ... ok
[INFO] [stdout] test tests::frame_saturating_sub_clamps_at_max ... ok
[INFO] [stdout] test tests::frame_saturating_sub_clamps_at_min ... ok
[INFO] [stdout] test tests::frame_saturating_sub_normal ... ok
[INFO] [stdout] test tests::frame_sub_assign ... ok
[INFO] [stdout] test tests::frame_to_option ... ok
[INFO] [stdout] test tests::frame_try_add_overflow ... ok
[INFO] [stdout] test tests::frame_try_add_success ... ok
[INFO] [stdout] test tests::frame_try_as_usize_negative_returns_error ... ok
[INFO] [stdout] test tests::frame_try_as_usize_positive ... ok
[INFO] [stdout] test tests::frame_try_buffer_index_negative_frame ... ok
[INFO] [stdout] test telemetry::tests::test_collecting_observer_concurrent_read_write ... ok
[INFO] [stdout] test tests::frame_try_buffer_index_success ... ok
[INFO] [stdout] test tests::frame_try_buffer_index_zero_size ... ok
[INFO] [stdout] test tests::frame_try_from_usize_too_large ... ok
[INFO] [stdout] test tests::frame_try_from_usize_valid ... ok
[INFO] [stdout] test tests::input_status_clone ... ok
[INFO] [stdout] test tests::frame_try_sub_overflow ... ok
[INFO] [stdout] test tests::input_status_copy ... ok
[INFO] [stdout] test tests::input_status_debug_format ... ok
[INFO] [stdout] test tests::input_status_display_confirmed ... ok
[INFO] [stdout] test tests::input_status_display_disconnected ... ok
[INFO] [stdout] test tests::input_status_display_predicted ... ok
[INFO] [stdout] test tests::input_status_equality ... ok
[INFO] [stdout] test tests::input_status_variants_exist ... ok
[INFO] [stdout] test tests::player_handle_display_format ... ok
[INFO] [stdout] test tests::player_handle_debug_format ... ok
[INFO] [stdout] test tests::player_handle_hash ... ok
[INFO] [stdout] test tests::player_handle_is_spectator_for ... ok
[INFO] [stdout] test tests::frame_try_sub_success ... ok
[INFO] [stdout] test telemetry::tests::test_try_check_invariants_macro_ok ... ok
[INFO] [stdout] test tests::player_handle_is_valid_player_for ... ok
[INFO] [stdout] test tests::player_handle_new ... ok
[INFO] [stdout] test tests::player_handle_ordering ... ok
[INFO] [stdout] test tests::player_type_debug_format ... ok
[INFO] [stdout] test tests::player_type_display_local ... ok
[INFO] [stdout] test tests::player_type_display_remote ... ok
[INFO] [stdout] test tests::player_type_equality ... ok
[INFO] [stdout] test tests::player_type_local ... ok
[INFO] [stdout] test tests::player_type_remote ... ok
[INFO] [stdout] test tests::player_type_spectator ... ok
[INFO] [stdout] test tests::safe_frame_add_normal_operation ... ok
[INFO] [stdout] test tests::safe_frame_add_returns_saturated_on_overflow ... ok
[INFO] [stdout] test tests::safe_frame_macros_accept_negative_deltas ... ok
[INFO] [stdout] test tests::safe_frame_sub_normal_operation ... ok
[INFO] [stdout] test tests::safe_frame_sub_returns_saturated_on_underflow ... ok
[INFO] [stdout] test tests::session_state_clone ... ok
[INFO] [stdout] test tests::session_state_copy ... ok
[INFO] [stdout] test tests::session_state_debug_format ... ok
[INFO] [stdout] test tests::session_state_default_values_exist ... ok
[INFO] [stdout] test tests::session_state_display_running ... ok
[INFO] [stdout] test tests::session_state_display_synchronizing ... ok
[INFO] [stdout] test tests::session_state_equality ... ok
[INFO] [stdout] test time_sync::property_tests::prop_average_bounded_by_inputs ... ok
[INFO] [stdout] test time_sync::property_tests::prop_average_deterministic ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_confirmed_inputs_with_disconnected_player ... ok
[INFO] [stdout] test sync_layer::sync_layer_tests::test_game_state_cell_data_accessor ... ok
[INFO] [stdout] test tests::player_handle_equality ... ok
[INFO] [stdout] test tests::player_type_clone ... ok
[INFO] [stdout] test time_sync::property_tests::prop_average_formula_correct ... ok
[INFO] [stdout] test time_sync::property_tests::prop_custom_window_size_respected ... ok
[INFO] [stdout] test time_sync::property_tests::prop_null_frame_no_effect ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_advance_frame_big_remote_advantage ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_advance_frame_local_advantage ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_advance_frame_negative_frame_skipped ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_advance_frame_no_advantage ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_advance_frame_null_frame_skipped ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_advance_frame_remote_advantage ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_advance_frame_small_remote_advantage ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_asymmetric_advantages ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_config_presets_data_driven ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_extreme_advantage_values ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_frame_wraparound_modulo ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_frame_zero ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_large_frame_number ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_mixed_advantage_values ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_new_creates_default ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_partial_window_fill ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_time_sync_config_display ... ok
[INFO] [stdout] test time_sync::property_tests::prop_window_slides ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_window_size_minimum_one ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_window_size_zero_corrected_to_one ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::test_window_sliding_behavior ... ok
[INFO] [stdout] test time_sync::sync_layer_tests::try_with_config_reports_allocation_failure_for_impossible_window ... ok
[INFO] [stdout] test tests::player_type_display_spectator ... ok
[INFO] [stdout] test time_sync::property_tests::prop_window_index_in_bounds ... ok
[INFO] [stdout] test telemetry::tests::test_assert_invariants_macro_fail - should panic ... ok
[INFO] [stdout] test telemetry::tests::test_assert_invariants_macro_fail_with_context - should panic ... ok
[INFO] [stdout] test time_sync::property_tests::prop_negative_frame_no_effect ... ok
[INFO] [stdout] test network::compression::property_tests::prop_identical_inputs_zero_delta ... ok
[INFO] [stdout] test telemetry::tests::test_collecting_observer_no_poison_on_panic ... ok
[INFO] [stdout] test rng::property_tests::prop_uniform_bit_distribution ... ok
[INFO] [stdout] test rle::tests::decode_at_exactly_default_max_decoded_len_is_accepted ... ok
[INFO] [stdout] test network::compression::property_tests::prop_encoding_deterministic ... ok
[INFO] [stdout] test network::compression::property_tests::prop_delta_roundtrip_independent_of_size_hint ... ok
[INFO] [stdout] test network::compression::property_tests::prop_delta_encode_inverse ... ok
[INFO] [stdout] test network::compression::property_tests::prop_encode_decode_roundtrip ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1580 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.92s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests fortress_rollback
[INFO] [stdout] 
[INFO] [stdout] running 205 tests
[INFO] [stdout] test src/checksum.rs - checksum::compute_checksum (line 141) ... ignored
[INFO] [stdout] test src/error.rs - error::FortressError (line 1195) ... ignored
[INFO] [stdout] test src/input_queue/prediction.rs - input_queue::prediction (line 21) ... ignored
[INFO] [stdout] test src/input_queue/prediction.rs - input_queue::prediction::PredictionStrategy (line 56) ... ignored
[INFO] [stdout] test src/lib.rs - FortressEvent (line 1555) ... ignored
[INFO] [stdout] test src/lib.rs - FortressRequest (line 1850) ... ignored
[INFO] [stdout] test src/hash.rs - hash::fnv1a_hash (line 116) ... ok
[INFO] [stdout] test src/lib.rs - Frame::abs_diff (line 640) ... ok
[INFO] [stdout] test src/lib.rs - FortressResult (line 76) ... ok
[INFO] [stdout] test src/checksum.rs - checksum::hash_bytes_fnv1a (line 193) ... ok
[INFO] [stdout] test src/checksum.rs - checksum::fletcher16 (line 226) ... ok
[INFO] [stdout] test src/lib.rs - FortressResult (line 87) ... ok
[INFO] [stdout] test src/checksum.rs - checksum::compute_checksum_fletcher16 (line 168) ... ok
[INFO] [stdout] test src/error.rs - error (line 63) ... ok
[INFO] [stdout] test src/hash.rs - hash::DeterministicBuildHasher (line 142) ... ok
[INFO] [stdout] test src/lib.rs - FortressResult (line 98) ... ok
[INFO] [stdout] test src/checksum.rs - checksum::compute_checksum (line 121) ... ok
[INFO] [stdout] test src/lib.rs - Frame::as_usize (line 663) ... ok
[INFO] [stdout] test src/error.rs - error (line 48) ... ok
[INFO] [stdout] test src/hash.rs - hash (line 16) ... ok
[INFO] [stdout] test src/hash.rs - hash::DeterministicHasher (line 58) ... ok
[INFO] [stdout] test src/lib.rs - Frame (line 420) ... ok
[INFO] [stdout] test src/lib.rs - Frame::is_null (line 480) ... ok
[INFO] [stdout] test src/lib.rs - Frame::checked_sub (line 577) ... ok
[INFO] [stdout] test src/lib.rs - Frame::saturating_add (line 600) ... ok
[INFO] [stdout] test src/lib.rs - Frame::buffer_index (line 734) ... ok
[INFO] [stdout] test src/lib.rs - HandleVec (line 1496) ... ignored
[INFO] [stdout] test src/lib.rs - InputVec (line 1465) ... ignored
[INFO] [stdout] test src/lib.rs - Frame::saturating_next (line 934) ... ok
[INFO] [stdout] test src/lib.rs - Frame::distance_to (line 1029) ... ok
[INFO] [stdout] test src/lib.rs - Frame::from_usize (line 972) ... ok
[INFO] [stdout] test src/lib.rs - RequestVec (line 1531) ... ignored
[INFO] [stdout] test src/lib.rs - __internal (line 343) ... ignored
[INFO] [stdout] test src/lib.rs - Frame::saturating_prev (line 952) ... ok
[INFO] [stdout] test src/lib.rs - Frame::next (line 886) ... ok
[INFO] [stdout] test src/lib.rs - checksum (line 249) ... ignored
[INFO] [stdout] test src/lib.rs - PlayerHandle::is_spectator_for (line 1289) ... ok
[INFO] [stdout] test src/lib.rs - Frame::checked_add (line 555) ... ok
[INFO] [stdout] test src/lib.rs - PlayerHandle::is_valid_player_for (line 1271) ... ok
[INFO] [stdout] test src/lib.rs - Frame::is_within (line 1055) ... ok
[INFO] [stdout] test src/lib.rs - PlayerHandle (line 1218) ... ok
[INFO] [stdout] test src/lib.rs - Frame::prev (line 912) ... ok
[INFO] [stdout] test src/lib.rs - Frame::is_valid (line 496) ... ok
[INFO] [stdout] test src/lib.rs - Frame::saturating_sub (line 620) ... ok
[INFO] [stdout] test src/lib.rs - Frame::try_sub (line 851) ... ok
[INFO] [stdout] test src/lib.rs - Frame::try_buffer_index (line 771) ... ok
[INFO] [stdout] test src/lib.rs - handle_requests (line 1984) ... ok
[INFO] [stdout] test src/lib.rs - checksum (line 225) ... ok
[INFO] [stdout] test src/lib.rs - checksum (line 189) ... ok
[INFO] [stdout] test src/lib.rs - Frame::try_from_usize (line 1003) ... ok
[INFO] [stdout] test src/network/chaos_socket.rs - network::chaos_socket (line 10) - compile ... ok
[INFO] [stdout] test src/lib.rs - checksum (line 279) ... ok
[INFO] [stdout] test src/lib.rs - Frame::try_as_usize (line 693) ... ok
[INFO] [stdout] test src/lib.rs - rle (line 253) ... ok
[INFO] [stdout] test src/network/udp_socket.rs - network::udp_socket::UdpNonBlockingSocket::local_addr (line 91) ... ignored
[INFO] [stdout] test src/lib.rs - prelude (line 218) ... ok
[INFO] [stdout] test src/lib.rs - Frame::try_add (line 817) ... ok
[INFO] [stdout] test src/network/codec.rs - network::codec::decode (line 655) ... ok
[INFO] [stdout] test src/lib.rs - rng (line 253) ... ok
[INFO] [stdout] test src/network/codec.rs - network::codec::decode_value (line 779) ... ok
[INFO] [stdout] test src/lib.rs - handle_requests (line 1924) ... ok
[INFO] [stdout] test src/lib.rs - prelude (line 240) ... ok
[INFO] [stdout] test src/lib.rs - sessions::config (line 272) ... ok
[INFO] [stdout] test src/network/chaos_socket.rs - network::chaos_socket::ChaosSocket<A,S>::with_clock (line 570) ... ok
[INFO] [stdout] test src/lib.rs - replay (line 249) ... ok
[INFO] [stdout] test src/replay.rs - replay::Replay (line 80) ... ok
[INFO] [stdout] test src/network/codec.rs - network::codec::encode_append (line 619) ... ok
[INFO] [stdout] test src/lib.rs - network::codec (line 308) ... ok
[INFO] [stdout] test src/network/codec.rs - network::codec::encode (line 558) ... ok
[INFO] [stdout] test src/network/codec.rs - network::codec::encode_into (line 587) ... ok
[INFO] [stdout] test src/rng.rs - rng::random (line 382) ... ok
[INFO] [stdout] test src/replay.rs - replay::ReplayMetadata (line 665) ... ok
[INFO] [stdout] test src/rle.rs - rle::encode (line 160) ... ok
[INFO] [stdout] test src/rle.rs - rle::decode (line 335) ... ok
[INFO] [stdout] test src/replay.rs - replay::Replay<I>::to_bytes (line 194) ... ok
[INFO] [stdout] test src/replay.rs - replay::Replay<I>::validate (line 580) ... ok
[INFO] [stdout] test src/lib.rs - sessions::replay_session (line 276) ... ok
[INFO] [stdout] test src/replay.rs - replay::Replay<I>::total_frames (line 545) ... ok
[INFO] [stdout] test src/replay.rs - replay::Replay<I>::from_bytes (line 231) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_event_queue_size (line 985) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_internet_defaults (line 1206) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_disconnect_behavior (line 772) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::start_replay_session_with_validation (line 2101) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::add_remote_player (line 370) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_recording (line 1017) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::start_replay_session (line 2047) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_save_mode (line 702) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_protocol_config (line 829) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_input_queue_config (line 941) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_high_latency_defaults (line 1253) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_lan_defaults (line 1164) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_input_delay (line 648) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_time_sync_config (line 901) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::add_local_player (line 336) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::start_spectator_session_multi (line 1907) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_spectator_config (line 863) ... ok
[INFO] [stdout] test src/sessions/event_drain.rs - sessions::event_drain::EventDrain (line 18) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::all_player_handles (line 6246) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::all_player_handles_iter (line 6227) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::check_invariants (line 9663) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::confirmed_frame (line 5617) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::confirmed_inputs_for_frame (line 5803) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::handles_by_address_iter (line 6304) ... ignored
[INFO] [stdout] test src/sessions/config.rs - sessions::config::ProtocolConfig (line 384) ... ok
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::into_replay (line 5869) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::is_local_player (line 6134) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::is_recording (line 5844) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::is_remote_player (line 6150) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::is_spectator_handle (line 6166) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::is_synchronized (line 6832) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::last_verified_frame (line 6877) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::local_player_handle (line 6022) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::local_player_handle_required (line 6050) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::local_player_handles_iter (line 5989) ... ignored
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_telemetry (line 1123) ... ok
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::num_local_players (line 6197) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::num_remote_players (line 6211) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::peer_checksum_mismatch_count (line 6796) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::player_type (line 6180) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::remote_player_handle (line 6091) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::remote_player_handle_required (line 6115) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::remote_player_handles_iter (line 6070) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::spectator_handles_iter (line 6275) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::sync_health (line 6703) ... ignored
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::take_replay (line 5899) ... ignored
[INFO] [stdout] test src/sessions/config.rs - sessions::config::InputQueueConfig (line 1172) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_sync_config (line 796) ... ok
[INFO] [stdout] test src/sessions/config.rs - sessions::config::DisconnectBehavior (line 1409) ... ok
[INFO] [stdout] test src/sessions/config.rs - sessions::config::ClockFn (line 53) ... ok
[INFO] [stdout] test src/sessions/builder.rs - sessions::builder::SessionBuilder<T>::with_violation_observer (line 1094) ... ok
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::input_delay (line 6591) - compile ... ok
[INFO] [stdout] test src/sessions/p2p_session.rs - sessions::p2p_session::P2PSession<T>::set_input_delay (line 6449) - compile ... ok
[INFO] [stdout] test src/sessions/config.rs - sessions::config::ProtocolConfig::deterministic (line 789) ... ok
[INFO] [stdout] test src/sessions/config.rs - sessions::config::ProtocolConfig::clock (line 517) ... ok
[INFO] [stdout] test src/sessions/config.rs - sessions::config::ProtocolConfig::protocol_rng_seed (line 488) ... ok
[INFO] [stdout] test src/sessions/config.rs - sessions::config::SpectatorConfig (line 904) ... ok
[INFO] [stdout] test src/sessions/config.rs - sessions::config::SyncConfig (line 83) ... ok
[INFO] [stdout] test src/sessions/config.rs - sessions::config::SaveMode (line 1320) ... ok
[INFO] [stdout] test src/sessions/config.rs - sessions::config::SyncConfig::extreme (line 295) ... ok
[INFO] [stdout] test src/sessions/config.rs - sessions::config::SyncConfig::stress_test (line 345) ... ok
[INFO] [stdout] test src/sessions/player_registry.rs - sessions::player_registry::PlayerRegistry<T>::all_player_handles_iter (line 480) ... ok
[INFO] [stdout] test src/sessions/player_registry.rs - sessions::player_registry::PlayerRegistry<T>::local_player_handles_iter (line 67) ... ok
[INFO] [stdout] test src/sessions/player_registry.rs - sessions::player_registry::PlayerRegistry<T>::is_local_player (line 321) ... ok
[INFO] [stdout] test src/sessions/player_registry.rs - sessions::player_registry::PlayerRegistry<T>::num_remote_players (line 452) ... ok
[INFO] [stdout] test src/sessions/p2p_spectator_session.rs - sessions::p2p_spectator_session::SpectatorSession<T>::seek_to_frame (line 795) ... ok
[INFO] [stdout] test src/sessions/player_registry.rs - sessions::player_registry::PlayerRegistry<T>::all_player_handles (line 512) ... ok
[INFO] [stdout] test src/sessions/p2p_spectator_session.rs - sessions::p2p_spectator_session::SpectatorSession<T>::is_rewind_enabled (line 379) ... ok
[INFO] [stdout] test src/sessions/player_registry.rs - sessions::player_registry::PlayerRegistry<T>::is_remote_player (line 347) ... ok
[INFO] [stdout] test src/sessions/player_registry.rs - sessions::player_registry::PlayerRegistry<T>::player_type (line 401) ... ok
[INFO] [stdout] test src/sessions/p2p_spectator_session.rs - sessions::p2p_spectator_session::SpectatorSession<T>::stream_delay (line 421) ... ok
[INFO] [stdout] test src/sessions/player_registry.rs - sessions::player_registry::PlayerRegistry<T>::handles_by_address_iter (line 274) ... ok
[INFO] [stdout] test src/sessions/sync_health.rs - sessions::sync_health::SyncHealth (line 21) ... ignored
[INFO] [stdout] test src/sessions/player_registry.rs - sessions::player_registry::PlayerRegistry<T>::is_spectator_handle (line 374) ... ok
[INFO] [stdout] test src/sessions/session_trait.rs - sessions::session_trait::Session (line 29) - compile ... ok
[INFO] [stdout] test src/sessions/player_registry.rs - sessions::player_registry::PlayerRegistry<T>::remote_player_handles_iter (line 141) ... ok
[INFO] [stdout] test src/sessions/player_registry.rs - sessions::player_registry::PlayerRegistry<T>::num_local_players (line 427) ... ok
[INFO] [stdout] test src/sessions/p2p_spectator_session.rs - sessions::p2p_spectator_session::SpectatorSession<T>::num_hosts (line 339) ... ok
[INFO] [stdout] test src/sync.rs - sync (line 11) ... ignored
[INFO] [stdout] test src/sessions/player_registry.rs - sessions::player_registry::PlayerRegistry<T>::spectator_handles_iter (line 215) ... ok
[INFO] [stdout] test src/sync_layer/game_state_cell.rs - sync_layer::game_state_cell::GameStateAccessor<'_,T>::as_mut_dangerous (line 665) ... ignored
[INFO] [stdout] test src/sync_layer/game_state_cell.rs - sync_layer::game_state_cell::GameStateCell (line 42) ... ignored
[INFO] [stdout] test src/sessions/replay_session.rs - sessions::replay_session::ReplaySession (line 87) ... ok
[INFO] [stdout] test src/sessions/replay_session.rs - sessions::replay_session::ReplaySession<T>::current_frame (line 368) ... ok
[INFO] [stdout] test src/sessions/replay_session.rs - sessions::replay_session::ReplaySession<T>::is_complete (line 448) ... ok
[INFO] [stdout] test src/sessions/replay_session.rs - sessions::replay_session::ReplaySession<T>::advance_frame (line 608) ... ok
[INFO] [stdout] test src/sessions/replay_session.rs - sessions::replay_session::ReplaySession<T>::new (line 154) ... ok
[INFO] [stdout] test src/sessions/replay_session.rs - sessions::replay_session::ReplaySession<T>::is_validating (line 323) ... ok
[INFO] [stdout] test src/sync_layer/game_state_cell.rs - sync_layer::game_state_cell::GameStateCell<T>::load_or_err (line 468) ... ignored
[INFO] [stdout] test src/sessions/replay_session.rs - sessions::replay_session::ReplaySession<T>::replay (line 501) ... ok
[INFO] [stdout] test src/sessions/replay_session.rs - sessions::replay_session::ReplaySession<T>::new_with_validation (line 216) ... ok
[INFO] [stdout] test src/sessions/replay_session.rs - sessions::replay_session::ReplaySession<T>::total_frames (line 409) ... ok
[INFO] [stdout] test src/sync_layer/game_state_cell.rs - sync_layer::game_state_cell::GameStateAccessor<'_,T>::as_mut_dangerous (line 629) ... ok
[INFO] [stdout] test src/sessions/sync_test_session.rs - sessions::sync_test_session::SyncTestSession<T>::local_player_handle_required (line 413) ... ok
[INFO] [stdout] test src/sessions/sync_test_session.rs - sessions::sync_test_session::SyncTestSession<T>::events (line 495) ... ok
[INFO] [stdout] test src/sessions/sync_test_session.rs - sessions::sync_test_session::SyncTestSession<T>::local_player_handle (line 458) ... ok
[INFO] [stdout] test src/sync_layer/game_state_cell.rs - sync_layer::game_state_cell::GameStateCell<T>::data (line 195) ... ok
[INFO] [stdout] test src/sync_layer/game_state_cell.rs - sync_layer::game_state_cell::GameStateCell<T>::frame (line 279) ... ok
[INFO] [stdout] test src/sync_layer/game_state_cell.rs - sync_layer::game_state_cell::GameStateCell<T>::load (line 390) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::assert_invariants (line 1569) ... ignored
[INFO] [stdout] test src/sync_layer/game_state_cell.rs - sync_layer::game_state_cell::GameStateCell<T>::checksum (line 318) ... ok
[INFO] [stdout] test src/sync_layer/game_state_cell.rs - sync_layer::game_state_cell::GameStateCell<T>::load (line 367) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::debug_check_invariants (line 1496) ... ignored
[INFO] [stdout] test src/sessions/sync_test_session.rs - sessions::sync_test_session::SyncTestSession<T>::local_player_handles (line 339) ... ok
[INFO] [stdout] test src/sync_layer/game_state_cell.rs - sync_layer::game_state_cell::GameStateCell<T>::save (line 92) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry (line 13) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::CollectingObserver (line 498) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::safe_frame_add (line 841) ... ignored
[INFO] [stdout] test src/telemetry.rs - telemetry::safe_frame_sub (line 877) ... ignored
[INFO] [stdout] test src/telemetry.rs - telemetry::try_check_invariants (line 1633) ... ignored
[INFO] [stdout] test src/sessions/sync_test_session.rs - sessions::sync_test_session::SyncTestSession<T>::local_player_handles_iter (line 373) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::CollectingTelemetry (line 1832) ... ok
[INFO] [stdout] test src/sync_layer/game_state_cell.rs - sync_layer::game_state_cell::GameStateCell<T>::load_or_err (line 440) ... ok
[INFO] [stdout] test src/sync_layer/game_state_cell.rs - sync_layer::game_state_cell::GameStateCell<T>::save (line 116) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::InvariantChecker (line 1454) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::TelemetryEvent (line 1768) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::report_violation (line 764) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::report_violation_to (line 1236) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::push_violation_observer (line 1182) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::assert_no_violations (line 914) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::assert_violation (line 953) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::SpecViolation (line 200) ... ok
[INFO] [stdout] test src/time_sync.rs - time_sync::TimeSyncConfig (line 17) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::report_to_observer (line 1000) ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::ScopedObserverGuard (line 1111) - compile fail ... ok
[INFO] [stdout] test src/telemetry.rs - telemetry::ScopedObserverGuard (line 1124) - compile fail ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 156 passed; 0 failed; 49 ignored; 0 measured; 0 filtered out; finished in 6.85s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9f68e87507523af8fb35b37dae3096e2c508180fdff024a0017fb8881b75680d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9f68e87507523af8fb35b37dae3096e2c508180fdff024a0017fb8881b75680d", kill_on_drop: false }`
[INFO] [stdout] 9f68e87507523af8fb35b37dae3096e2c508180fdff024a0017fb8881b75680d
