[INFO] fetching crate portool 0.10.1...
[INFO] testing portool-0.10.1 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate portool 0.10.1 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate portool 0.10.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate portool 0.10.1
[INFO] tweaked toml for crates.io crate portool 0.10.1 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate portool 0.10.1 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate portool 0.10.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1f9985ef67937ca151f72e715640e54603cad9ae66fc7fc2eae04743e950e106
[INFO] running `Command { std: "docker" "start" "1f9985ef67937ca151f72e715640e54603cad9ae66fc7fc2eae04743e950e106", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1f9985ef67937ca151f72e715640e54603cad9ae66fc7fc2eae04743e950e106", 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" "1f9985ef67937ca151f72e715640e54603cad9ae66fc7fc2eae04743e950e106" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1f9985ef67937ca151f72e715640e54603cad9ae66fc7fc2eae04743e950e106", 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" "1f9985ef67937ca151f72e715640e54603cad9ae66fc7fc2eae04743e950e106" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling portool v0.10.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 26.63s
[INFO] running `Command { std: "docker" "inspect" "1f9985ef67937ca151f72e715640e54603cad9ae66fc7fc2eae04743e950e106", 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" "1f9985ef67937ca151f72e715640e54603cad9ae66fc7fc2eae04743e950e106" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling portool v0.10.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 13.99s
[INFO] running `Command { std: "docker" "inspect" "1f9985ef67937ca151f72e715640e54603cad9ae66fc7fc2eae04743e950e106", 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" "1f9985ef67937ca151f72e715640e54603cad9ae66fc7fc2eae04743e950e106" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/portool-2d9848b2dba64712)
[INFO] [stdout] 
[INFO] [stdout] running 247 tests
[INFO] [stdout] test alloc::tests::allocate_block_packs_heterogeneous_sizes_without_overlap ... ok
[INFO] [stdout] test alloc::tests::fnv1a_32_known_vectors ... ok
[INFO] [stdout] test alloc::tests::preferred_slot_hashes_project_and_branch ... ok
[INFO] [stdout] test alloc::tests::allocate_block_returns_none_when_block_larger_than_pool ... ok
[INFO] [stdout] test alloc::tests::preferred_slot_detached_uses_project_and_path ... ok
[INFO] [stdout] test alloc::tests::allocate_block_returns_none_when_pool_is_full ... ok
[INFO] [stdout] test cmd::exec::tests::compose_with_overrides_keeps_portool_on_top ... ok
[INFO] [stdout] test alloc::tests::allocate_block_skips_occupied_preferred_slot ... ok
[INFO] [stdout] test cmd::doctor::tests::detects_top_level_exit_before_block ... ok
[INFO] [stdout] test alloc::tests::allocate_block_skips_a_slot_that_fails_bind ... ok
[INFO] [stdout] test alloc::tests::allocate_block_uses_the_full_pool_not_a_500_wide_subrange ... ok
[INFO] [stdout] test cmd::init::tests::classify_shebang_tokenizes_strictly ... ok
[INFO] [stdout] test cmd::init::tests::deinit_exclude_leaves_a_bare_user_added_line ... ok
[INFO] [stdout] test cmd::exec::tests::compose_with_overrides_lets_files_beat_the_parent ... ok
[INFO] [stdout] test cmd::init::tests::duplicate_markers_are_malformed ... ok
[INFO] [stdout] test cmd::init::tests::hook_script_embeds_an_absolute_path_with_fallback ... ok
[INFO] [stdout] test cmd::init::tests::contains_unsafe_portool_form_recognizes_old_but_not_new ... ok
[INFO] [stdout] test alloc::tests::preferred_slot_main_is_hashed_like_any_branch ... ok
[INFO] [stdout] test cmd::doctor::tests::utf8_worktree_key_accepts_utf8_paths ... ok
[INFO] [stdout] test alloc::tests::allocate_block_is_deterministic_and_lands_in_pool ... ok
[INFO] [stdout] test cmd::init::tests::deinit_hook_propagates_read_errors ... ok
[INFO] [stdout] test cmd::doctor::tests::utf8_worktree_key_rejects_non_utf8_paths ... ok
[INFO] [stdout] test cmd::init::tests::block_is_inserted_at_top_when_no_shebang ... ok
[INFO] [stdout] test cmd::init::tests::block_is_inserted_after_shebang_not_appended ... ok
[INFO] [stdout] test cmd::exec::tests::compose_result_resolves_with_portool_value ... ok
[INFO] [stdout] test cmd::doctor::tests::validate_block_rejects_zero_and_reversed ... ok
[INFO] [stdout] test cmd::exec::tests::compose_applies_precedence_order ... ok
[INFO] [stdout] test cmd::init::tests::install_into_leaves_a_non_utf8_hook_untouched ... ok
[INFO] [stdout] test cmd::init::tests::install_into_inserts_into_an_existing_sh_hook ... ok
[INFO] [stdout] test cmd::init::tests::install_into_migrates_a_legacy_appended_line_to_the_block ... ok
[INFO] [stdout] test cmd::init::tests::install_into_leaves_user_written_portool_mention_untouched ... ok
[INFO] [stdout] test cmd::init::tests::install_into_skips_a_python_hook ... ok
[INFO] [stdout] test cmd::init::tests::install_into_is_idempotent ... ok
[INFO] [stdout] test cmd::init::tests::deinit_exclude_removes_only_the_managed_pair ... ok
[INFO] [stdout] test cmd::init::tests::sh_safe_in_double_quotes_rejects_every_active_character ... ok
[INFO] [stdout] test cmd::init::tests::install_into_rejects_a_symlink ... ok
[INFO] [stdout] test cmd::init::tests::migrate_legacy_lines_replaces_first_and_drops_further_occurrences ... ok
[INFO] [stdout] test cmd::init::tests::install_into_reports_symlink_and_nonshell_as_not_installed ... ok
[INFO] [stdout] test cmd::init::tests::replace_managed_block_returns_none_when_already_current ... ok
[INFO] [stdout] test cmd::init::tests::install_into_migrates_unsafe_line_in_foreign_hook ... ok
[INFO] [stdout] test cmd::ls::tests::shorten_home_leaves_path_untouched_without_home ... ok
[INFO] [stdout] test cmd::ls::tests::shorten_home_replaces_prefix ... ok
[INFO] [stdout] test cmd::reserve::tests::parse_block_accepts_single_port_and_range ... ok
[INFO] [stdout] test cmd::init::tests::truncated_managed_block_never_modifies_foreign_hook ... ok
[INFO] [stdout] test cmd::sync::tests::allocate_or_reuse_block_errors_when_pool_is_full ... ok
[INFO] [stdout] test cmd::sync::tests::allocate_or_reuse_block_avoids_a_reservation ... ok
[INFO] [stdout] test cmd::init::tests::update_exclude_skips_a_bare_user_added_line ... ok
[INFO] [stdout] test cmd::sync::tests::try_grow_in_place_bind_checks_only_the_added_tail ... ok
[INFO] [stdout] test cmd::sync::tests::try_grow_in_place_fails_when_a_neighbor_occupies_the_extension ... ok
[INFO] [stdout] test cmd::sync::tests::try_grow_in_place_extends_keeping_the_start ... ok
[INFO] [stdout] test cmd::sync::tests::try_grow_in_place_fails_when_the_pool_ends ... ok
[INFO] [stdout] test cmd::init::tests::install_into_migrates_legacy_standalone_hook ... ok
[INFO] [stdout] test cmd::sync::tests::try_grow_in_place_fails_when_the_tail_is_bound ... ok
[INFO] [stdout] test config::tests::default_matches_global_constraints ... ok
[INFO] [stdout] test config::tests::deprecated_gc_days_is_accepted_and_ignored ... ok
[INFO] [stdout] test config::tests::equal_range_bounds_are_allowed ... ok
[INFO] [stdout] test config::tests::config_allows_block_align_equal_to_range_span ... ok
[INFO] [stdout] test config::tests::full_source_is_honored ... ok
[INFO] [stdout] test config::tests::config_rejects_block_align_larger_than_range ... ok
[INFO] [stdout] test config::tests::deprecated_subrange_size_is_accepted_and_ignored ... ok
[INFO] [stdout] test config::tests::empty_source_yields_default ... ok
[INFO] [stdout] test config::tests::malformed_toml_is_error ... ok
[INFO] [stdout] test cmd::init::tests::install_into_inserts_a_managed_block_after_the_shebang_of_a_foreign_hook ... ok
[INFO] [stdout] test config::tests::partial_source_fills_defaults ... ok
[INFO] [stdout] test config::tests::range_including_port_zero_is_error ... ok
[INFO] [stdout] test config::tests::reversed_range_is_error ... ok
[INFO] [stdout] test config::tests::unknown_field_is_rejected ... ok
[INFO] [stdout] test display::tests::path_helper_sanitizes_control_chars ... ok
[INFO] [stdout] test display::tests::sanitize_keeps_plain_and_wide_text ... ok
[INFO] [stdout] test cmd::init::tests::install_into_preserves_restrictive_perms ... ok
[INFO] [stdout] test config::tests::zero_block_align_is_error ... ok
[INFO] [stdout] test display::tests::pad_uses_display_width ... ok
[INFO] [stdout] test cmd::init::tests::install_into_treats_a_mid_line_marker_mention_as_a_foreign_hook ... ok
[INFO] [stdout] test cmd::init::tests::install_into_refreshes_an_owned_script_with_a_stale_path ... ok
[INFO] [stdout] test cmd::init::tests::deinit_hook_removes_each_new_form ... ok
[INFO] [stdout] test cmd::init::tests::update_exclude_creates_and_is_idempotent ... ok
[INFO] [stdout] test cmd::init::tests::install_into_writes_the_safe_script_and_sets_exec_bit ... ok
[INFO] [stdout] test cmd::init::tests::install_into_new_hook_exits_zero_and_reports_failure ... ok
[INFO] [stdout] test display::tests::sanitize_makes_newlines_visible ... ok
[INFO] [stdout] test cmd::init::tests::update_exclude_preserves_existing_content ... ok
[INFO] [stdout] test display::tests::sanitize_replaces_c1_controls ... ok
[INFO] [stdout] test display::tests::sanitize_strips_ansi_escapes ... ok
[INFO] [stdout] test display::tests::text_helper_is_a_sanitize_alias ... ok
[INFO] [stdout] test envfile::tests::ends_with_trailing_newline ... ok
[INFO] [stdout] test cmd::sync::tests::allocate_or_reuse_block_allocates_a_large_block_from_the_pool ... ok
[INFO] [stdout] test envfile::tests::id_lines_precede_port_variables ... ok
[INFO] [stdout] test envfile::tests::read_block_from_env_missing_file_is_none ... ok
[INFO] [stdout] test envfile::tests::read_block_from_env_round_trips_with_render ... ok
[INFO] [stdout] test display::tests::width_counts_cjk_as_two_columns ... ok
[INFO] [stdout] test envfile::tests::a_newline_in_the_worktree_path_cannot_escape_the_comment ... ok
[INFO] [stdout] test envfile::tests::read_identity_from_env_missing_file_is_absent ... ok
[INFO] [stdout] test cmd::init::tests::install_managed_hooks_installs_post_checkout_and_post_merge ... ok
[INFO] [stdout] test envfile::tests::strip_sequence_does_not_mangle_a_worktree_path_containing_sequence ... ok
[INFO] [stdout] test envfile::tests::strip_sequence_leaves_variable_lines_untouched ... ok
[INFO] [stdout] test envread::tests::allows_whitespace_around_key_and_value ... ok
[INFO] [stdout] test envfile::tests::renders_default_port_line_when_no_manifest ... ok
[INFO] [stdout] test envfile::tests::read_sequence_from_env_absent_when_no_sequence_field ... ok
[INFO] [stdout] test envread::tests::double_quoted_value_unescapes_backslash_and_quote ... ok
[INFO] [stdout] test envfile::tests::read_sequence_from_env_round_trips ... ok
[INFO] [stdout] test envfile::tests::renders_manifest_exact_bytes ... ok
[INFO] [stdout] test envfile::tests::strip_sequence_makes_headers_with_differing_sequence_compare_equal ... ok
[INFO] [stdout] test envfile::tests::variables_match_render_body_with_manifest ... ok
[INFO] [stdout] test envfile::tests::variables_rejects_an_offset_outside_the_block ... ok
[INFO] [stdout] test envread::tests::circular_reference_is_error ... ok
[INFO] [stdout] test envread::tests::default_not_used_when_defined_and_non_empty ... ok
[INFO] [stdout] test envread::tests::default_used_when_empty ... ok
[INFO] [stdout] test envread::tests::default_used_when_undefined ... ok
[INFO] [stdout] test envread::tests::dollar_without_brace_is_literal ... ok
[INFO] [stdout] test envfile::tests::read_identity_from_env_parses_both_ids ... ok
[INFO] [stdout] test envfile::tests::read_identity_from_env_three_valued ... ok
[INFO] [stdout] test envread::tests::expands_simple_reference ... ok
[INFO] [stdout] test envread::tests::file_value_can_reference_file_value ... ok
[INFO] [stdout] test envread::tests::handles_crlf_line_endings ... ok
[INFO] [stdout] test envread::tests::invalid_variable_name_is_error ... ok
[INFO] [stdout] test envread::tests::file_value_can_reference_literal ... ok
[INFO] [stdout] test envread::tests::invalid_line_is_error_without_line_content ... ok
[INFO] [stdout] test envread::tests::parse_env_file_not_found ... ok
[INFO] [stdout] test envread::tests::self_reference_is_error ... ok
[INFO] [stdout] test envread::tests::single_quoted_value_is_raw ... ok
[INFO] [stdout] test envread::tests::skips_comments_and_blank_lines ... ok
[INFO] [stdout] test envread::tests::parses_basic_key_value ... ok
[INFO] [stdout] test envread::tests::nested_default_is_expanded ... ok
[INFO] [stdout] test envread::tests::unquoted_value_keeps_inline_comment_text ... ok
[INFO] [stdout] test envread::tests::unquoted_value_may_be_empty ... ok
[INFO] [stdout] test error::tests::exit_code_mapping ... ok
[INFO] [stdout] test envread::tests::unclosed_quote_is_error_without_value_content ... ok
[INFO] [stdout] test envread::tests::single_quoted_is_not_expanded ... ok
[INFO] [stdout] test envread::tests::undefined_reference_is_error ... ok
[INFO] [stdout] test error::tests::display_messages ... ok
[INFO] [stdout] test envfile::tests::variables_use_single_port_line_when_no_manifest ... ok
[INFO] [stdout] test error::tests::from_toml_error ... ok
[INFO] [stdout] test fault::tests::point_returns_when_variable_is_unset_or_different ... ok
[INFO] [stdout] test envread::tests::unterminated_reference_is_error ... ok
[INFO] [stdout] test envread::tests::keeps_duplicate_keys_in_order ... ok
[INFO] [stdout] test envread::tests::literal_is_not_expanded ... ok
[INFO] [stdout] test error::tests::from_io_error ... ok
[INFO] [stdout] test gc::tests::entry_present_in_live_worktree_list_is_kept ... ok
[INFO] [stdout] test error::tests::from_serde_json_error ... ok
[INFO] [stdout] test envread::tests::text_after_closing_quote_is_error_without_value_content ... ok
[INFO] [stdout] test gc::tests::collects_when_all_three_conditions_hold ... ok
[INFO] [stdout] test gc::tests::entry_whose_directory_still_exists_is_kept ... ok
[INFO] [stdout] test gitctx::tests::project_name_falls_back_to_common_dir_component_when_not_dot_git ... ok
[INFO] [stdout] test gc::tests::entry_with_ports_still_in_use_is_kept ... ok
[INFO] [stdout] test gc::tests::only_matching_entries_are_reclaimed_among_several ... ok
[INFO] [stdout] test gc::tests::pinned_entry_is_never_collected ... ok
[INFO] [stdout] test hooks::tests::contains_portool_invocation_recognizes_every_form ... ok
[INFO] [stdout] test gitctx::tests::require_utf8_rejects_non_utf8_bytes_only ... ok
[INFO] [stdout] test hooks::tests::husky_hook_file_derives_siblings ... ok
[INFO] [stdout] test hooks::tests::canonicalize_existing_ancestor_resolves_a_symlinked_intermediate ... ok
[INFO] [stdout] test hooks::tests::existing_custom_dir_resolves_relative_to_worktree_root ... ok
[INFO] [stdout] test hooks::tests::absolute_existing_dir_is_custom ... ok
[INFO] [stdout] test hooks::tests::hooks_dir_inside_repo_is_inside ... ok
[INFO] [stdout] test hooks::tests::husky_runtime_dir_maps_to_user_managed_hook ... ok
[INFO] [stdout] test gitctx::tests::parse_worktree_list_z_preserves_newline_in_path ... ok
[INFO] [stdout] test hooks::tests::shared_scope_is_uninstallable ... ok
[INFO] [stdout] test hooks::tests::symlinked_hooks_dir_outside_repo_is_outside ... ok
[INFO] [stdout] test hooks::tests::main_worktree_hook_file_delegates_to_the_inner_location ... ok
[INFO] [stdout] test hooks::tests::husky_is_recognized_even_when_runtime_dir_is_not_generated_yet ... ok
[INFO] [stdout] test hooks::tests::nonexistent_dir_is_missing_and_uninstallable ... ok
[INFO] [stdout] test hooks::tests::relative_hooks_path_escaping_repo_is_outside ... ok
[INFO] [stdout] test hooks::tests::main_worktree_wrapping_a_missing_dir_has_no_hook_file ... ok
[INFO] [stdout] test hooks::tests::unset_and_empty_mean_git_default ... ok
[INFO] [stdout] test identity::tests::different_common_dirs_yield_different_project_ids ... ok
[INFO] [stdout] test identity::tests::different_worktree_paths_yield_different_worktree_ids ... ok
[INFO] [stdout] test identity::tests::ids_are_always_32_lowercase_hex_chars ... ok
[INFO] [stdout] test identity::tests::project_id_matches_known_vector ... ok
[INFO] [stdout] test identity::tests::worktree_id_matches_known_vectors ... ok
[INFO] [stdout] test manifest::tests::allows_sparse_offsets ... ok
[INFO] [stdout] test manifest::tests::block_size_at_the_u16_ceiling_is_accepted ... ok
[INFO] [stdout] test lock::tests::acquire_creates_missing_parent_directory ... ok
[INFO] [stdout] test manifest::tests::block_size_rejects_an_unrepresentable_manifest ... ok
[INFO] [stdout] test manifest::tests::block_size_rounds_4_to_5 ... ok
[INFO] [stdout] test manifest::tests::block_size_rounds_5_to_5 ... ok
[INFO] [stdout] test manifest::tests::block_size_rounds_6_to_10 ... ok
[INFO] [stdout] test manifest::tests::default_block_size_equals_align ... ok
[INFO] [stdout] test manifest::tests::empty_ports_table_is_rejected ... ok
[INFO] [stdout] test manifest::tests::env_var_name_upper_cases_and_suffixes ... ok
[INFO] [stdout] test manifest::tests::manifest_hash_is_twelve_hex_chars ... ok
[INFO] [stdout] test manifest::tests::manifest_hash_known_vector ... ok
[INFO] [stdout] test manifest::tests::missing_ports_table_is_error ... ok
[INFO] [stdout] test manifest::tests::portool_prefixed_keys_are_rejected ... ok
[INFO] [stdout] test manifest::tests::parses_and_normalizes_offset_order ... ok
[INFO] [stdout] test manifest::tests::rejects_duplicate_offsets ... ok
[INFO] [stdout] test manifest::tests::rejects_invalid_key_leading_digit ... ok
[INFO] [stdout] test manifest::tests::rejects_invalid_key_uppercase ... ok
[INFO] [stdout] test manifest::tests::rejects_negative_offset ... ok
[INFO] [stdout] test manifest::tests::rejects_non_integer_offset ... ok
[INFO] [stdout] test manifest::tests::unknown_top_level_field_is_rejected ... ok
[INFO] [stdout] test ports::tests::block_free_false_when_any_port_in_block_is_occupied ... ok
[INFO] [stdout] test registry::tests::deny_unknown_fields_rejects_extra_keys ... ok
[INFO] [stdout] test registry::tests::empty_has_no_projects_or_reservations ... ok
[INFO] [stdout] test ports::tests::block_free_true_for_a_released_port ... ok
[INFO] [stdout] test registry::tests::find_project_missing_key_returns_none ... ok
[INFO] [stdout] test ports::tests::port_free_is_false_while_bound_and_true_after_release ... ok
[INFO] [stdout] test registry::tests::all_blocks_includes_worktrees_and_reservations ... ok
[INFO] [stdout] test registry::tests::from_json_migrates_v1_dropping_subranges_and_keeping_blocks ... ok
[INFO] [stdout] test registry::tests::from_json_migrates_v2_adding_generation_and_no_pending ... ok
[INFO] [stdout] test registry::tests::from_json_migrates_v3_adding_sequence_zero ... ok
[INFO] [stdout] test registry::tests::pending_block_is_occupied_and_may_overlap_only_its_own_block ... ok
[INFO] [stdout] test registry::tests::from_json_rejects_unknown_version ... ok
[INFO] [stdout] test registry::tests::overlap_validation_detects_cross_owner_overlap_after_sort ... ok
[INFO] [stdout] test registry::tests::spec_example_round_trips ... ok
[INFO] [stdout] test registry::tests::overlaps_detects_shared_and_disjoint_ranges ... ok
[INFO] [stdout] test registry::tests::validate_accepts_a_well_formed_ledger ... ok
[INFO] [stdout] test registry::tests::validate_allows_a_block_outside_the_recorded_range ... ok
[INFO] [stdout] test registry::tests::validate_rejects_overlapping_blocks ... ok
[INFO] [stdout] test registry::tests::validate_rejects_reversed_range ... ok
[INFO] [stdout] test registry::tests::tuple_fields_serialize_as_json_arrays ... ok
[INFO] [stdout] test registry::tests::validate_rejects_invalid_pending_block ... ok
[INFO] [stdout] test registry::tests::validate_rejects_port_zero ... ok
[INFO] [stdout] test registry::tests::validate_rejects_unknown_version ... ok
[INFO] [stdout] test store::tests::atomic_write_within_refuses_a_symlinked_intermediate ... ok
[INFO] [stdout] test store::tests::atomic_write_within_refuses_a_target_outside_boundary ... ok
[INFO] [stdout] test store::tests::backup_status_fresh_when_main_ledger_is_missing ... ok
[INFO] [stdout] test gitctx::tests::discover_outside_repo_is_general_error ... ok
[INFO] [stdout] test gitctx::tests::discover_error_message_includes_git_stderr ... ok
[INFO] [stdout] test store::tests::copy_aside_keeps_the_original_and_creates_a_corrupt_sibling ... ok
[INFO] [stdout] test store::tests::corrupt_sibling_paths_are_unique_within_a_second ... ok
[INFO] [stdout] test store::tests::create_dirs_repo_relative_refuses_symlinked_component ... ok
[INFO] [stdout] test store::tests::load_corrupt_json_is_reported_and_left_in_place ... ok
[INFO] [stdout] test store::tests::load_missing_file_is_missing ... ok
[INFO] [stdout] test store::tests::load_future_schema_is_unsupported_version_not_corrupt ... ok
[INFO] [stdout] test store::tests::load_semantically_invalid_ledger_is_corrupt ... ok
[INFO] [stdout] test store::tests::move_aside_renames_to_a_corrupt_sibling ... ok
[INFO] [stdout] test store::tests::load_non_not_found_read_error_is_reported_without_touching_the_file ... ok
[INFO] [stdout] test store::tests::atomic_write_within_writes_and_sets_mode ... ok
[INFO] [stdout] test store::tests::backup_status_corrupt_when_bak_unparseable ... ok
[INFO] [stdout] test store::tests::backup_status_missing_when_bak_absent ... ok
[INFO] [stdout] test store::tests::save_creates_missing_parent_directories ... ok
[INFO] [stdout] test store::tests::save_leaves_no_temp_file_residue ... ok
[INFO] [stdout] test store::tests::unlink_within_removes_only_inside_boundary ... ok
[INFO] [stdout] test store::tests::save_backup_is_atomic_not_a_plain_copy ... ok
[INFO] [stdout] test store::tests::write_atomic_writes_contents_and_leaves_no_temp_residue ... ok
[INFO] [stdout] test store::tests::backup_lags_one_save_behind_on_the_next_write ... ok
[INFO] [stdout] test store::tests::save_then_load_round_trips ... ok
[INFO] [stdout] test store::tests::save_writes_a_backup_sibling ... ok
[INFO] [stdout] test store::tests::save_increments_sequence_each_time ... ok
[INFO] [stdout] test store::tests::backup_status_fresh_after_save_and_behind_when_bak_sequence_is_older ... ok
[INFO] [stdout] test store::tests::save_overwrites_existing_file ... ok
[INFO] [stdout] test gitctx::tests::discover_resolves_main_worktree ... ok
[INFO] [stdout] test gitctx::tests::worktree_list_at_accepts_the_common_dir_itself ... ok
[INFO] [stdout] test gitctx::tests::detached_head_has_no_branch ... ok
[INFO] [stdout] test lock::tests::short_timeout_returns_lock_timeout ... ok
[INFO] [stdout] test gitctx::tests::worktree_list_includes_main_and_linked_worktrees ... ok
[INFO] [stdout] test gitctx::tests::worktree_list_from_linked_worktree_sees_all_worktrees ... ok
[INFO] [stdout] test gitctx::tests::linked_worktree_resolves_to_same_common_dir ... ok
[INFO] [stdout] test lock::tests::second_acquire_blocks_until_release_then_succeeds ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 247 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/agent_worktree_hooks.rs (/opt/rustwide/target/release/deps/agent_worktree_hooks-d5fd8fd5b6c50ab9)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test a_hook_that_only_mentions_portool_does_not_count_as_installed ... ok
[INFO] [stdout] test relative_hooks_path_escaping_into_the_main_worktree_is_still_refused ... ok
[INFO] [stdout] test hooks_path_outside_the_repository_is_still_refused_from_a_linked_worktree ... ok
[INFO] [stdout] test a_global_hooks_path_into_the_main_worktree_keeps_the_shared_scope_refusal ... ok
[INFO] [stdout] test init_in_a_linked_worktree_never_writes_into_the_main_worktree ... ok
[INFO] [stdout] test unhook_in_a_linked_worktree_reports_the_main_worktree_hook_as_residue ... ok
[INFO] [stdout] test hooks_in_the_main_worktree_are_recognized_from_a_linked_worktree ... ok
[INFO] [stderr]      Running tests/cli.rs (/opt/rustwide/target/release/deps/cli-e41efd62f2fda36f)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 91 tests
[INFO] [stdout] test discover_error_reports_git_stderr ... ok
[INFO] [stdout] test corrupt_ledger_makes_sync_fail_and_is_left_in_place ... ok
[INFO] [stdout] test command_scoped_hooks_path_is_refused ... ok
[INFO] [stdout] test detached_head_records_a_null_branch ... ok
[INFO] [stdout] test config_rejects_config_where_block_align_exceeds_pool_capacity ... ok
[INFO] [stdout] test doctor_repair_on_future_schema_requires_abandon_flag ... ok
[INFO] [stdout] test check_fails_when_backup_is_behind_or_corrupt ... ok
[INFO] [stdout] test check_reports_health_and_corruption ... ok
[INFO] [stdout] test doctor_repair_moves_corrupt_ledger_aside_and_rebuilds ... ok
[INFO] [stdout] test doctor_rebuilds_a_lost_entry_from_the_env_file ... ok
[INFO] [stdout] test doctor_reports_a_malformed_managed_block ... ok
[INFO] [stdout] test doctor_repair_without_backup_requires_abandon_flag ... ok
[INFO] [stdout] test doctor_skips_invalid_block_headers ... ok
[INFO] [stdout] test deinit_keep_allocations_leaves_the_ledger_alone ... ok
[INFO] [stdout] test doctor_skips_env_file_with_foreign_identity ... ok
[INFO] [stdout] test deinit_releases_allocations_removes_env_hooks_and_exclude ... ok
[INFO] [stdout] test future_schema_ledger_is_not_auto_reset ... ok
[INFO] [stdout] test doctor_reports_hook_problems ... ok
[INFO] [stdout] test existing_hook_exit_before_managed_block_is_not_reported_healthy ... ok
[INFO] [stdout] test deinit_without_registry_removes_live_env_files ... ok
[INFO] [stdout] test deinit_never_edits_a_user_gitignore ... ok
[INFO] [stdout] test fast_path_rejects_newly_malformed_config ... ok
[INFO] [stdout] test doctor_repair_restores_other_projects_from_backup ... ok
[INFO] [stdout] test init_refuses_global_husky_shaped_hookspath ... ok
[INFO] [stdout] test init_refuses_global_scope_shared_hookspath ... ok
[INFO] [stdout] test ids_survive_registry_deletion_and_resync ... ok
[INFO] [stdout] test git_dir_environment_does_not_override_dash_c_target ... ok
[INFO] [stdout] test existing_hook_exit_before_managed_block_regression ... ok
[INFO] [stdout] test husky_hook_is_harmless_when_portool_is_not_installed ... ok
[INFO] [stdout] test init_exits_nonzero_when_hook_cannot_be_installed ... ok
[INFO] [stdout] test ls_json_reports_corrupt_ledger_and_exits_nonzero ... ok
[INFO] [stdout] test human_ls_displays_pin_label ... ok
[INFO] [stdout] test ids_survive_manifest_expansion_reallocation ... ok
[INFO] [stdout] test init_with_missing_hookspath_warns_and_installs_nothing ... ok
[INFO] [stdout] test ls_json_corrupt_ledger_is_an_error_envelope ... ok
[INFO] [stdout] test deinit_removes_env_files_missing_from_registry ... ok
[INFO] [stdout] test ls_json_missing_ledger_reports_real_config ... ok
[INFO] [stdout] test init_installs_hook_and_exclude_and_is_idempotent ... ok
[INFO] [stdout] test interrupted_move_rolls_forward_when_env_carries_pending ... ok
[INFO] [stdout] test init_with_custom_hookspath_appends_to_existing_hook ... ok
[INFO] [stdout] test ls_json_emits_format_v1_envelope ... ok
[INFO] [stdout] test ls_sanitizes_control_characters_in_labels ... ok
[INFO] [stdout] test malformed_config_is_fatal ... ok
[INFO] [stdout] test prune_all_keeps_entries_when_worktree_enumeration_fails ... ok
[INFO] [stdout] test init_with_custom_hookspath_installs_there_not_git_hooks ... ok
[INFO] [stdout] test pin_without_allocation_is_an_error ... ok
[INFO] [stdout] test linked_worktree_gets_a_different_block ... ok
[INFO] [stdout] test ls_json_wraps_config_and_git_errors ... ok
[INFO] [stdout] test linked_worktree_shares_project_id_but_not_worktree_id ... ok
[INFO] [stdout] test interrupted_move_rolls_back_when_env_still_has_old_block ... ok
[INFO] [stdout] test reallocate_without_allocation_errors ... ok
[INFO] [stdout] test manifest_expansion_reallocates_a_larger_block ... ok
[INFO] [stdout] test pending_block_is_excluded_from_allocation ... ok
[INFO] [stdout] test init_with_husky_hookspath_installs_user_managed_hook_and_chains ... ok
[INFO] [stdout] test prune_all_reclaims_unpinned_when_common_dir_is_gone ... ok
[INFO] [stdout] test prune_all_preserves_pinned_entries_when_common_dir_is_gone ... ok
[INFO] [stdout] test relative_global_hooks_path_escaping_repo_is_refused ... ok
[INFO] [stdout] test manifest_shrink_keeps_the_block_and_updates_only_env ... ok
[INFO] [stdout] test ls_table_and_json_shapes ... ok
[INFO] [stdout] test reallocate_moves_off_a_block_whose_port_is_in_use ... ok
[INFO] [stdout] test pin_protects_a_stale_entry_from_prune ... ok
[INFO] [stdout] test reallocate_bumps_the_generation ... ok
[INFO] [stdout] test sync_outside_git_repo_exits_1 ... ok
[INFO] [stdout] test reallocate_moves_even_when_current_block_is_free ... ok
[INFO] [stdout] test sync_exits_3_when_pool_cannot_fit_a_block ... ok
[INFO] [stdout] test recreated_worktree_on_same_branch_reclaims_its_block ... ok
[INFO] [stdout] test sync_rejects_manifest_wider_than_u16 ... ok
[INFO] [stdout] test release_env_delete_failure_keeps_the_ledger_entry ... FAILED
[INFO] [stdout] test many_projects_share_the_pool_without_subrange_exhaustion ... ok
[INFO] [stdout] test sync_rejects_manifest_with_unknown_table ... ok
[INFO] [stdout] test sync_hints_when_hook_uses_unsafe_legacy_form ... ok
[INFO] [stdout] test prune_all_reclaims_a_fully_deleted_project_and_leaves_others_untouched ... ok
[INFO] [stdout] test usage_error_exits_64 ... ok
[INFO] [stdout] test sync_grows_the_block_in_place_when_the_manifest_expands ... ok
[INFO] [stdout] test prune_reclaims_a_deleted_worktree_and_dry_run_does_not ... ok
[INFO] [stdout] test sync_without_manifest_allocates_default_block ... ok
[INFO] [stdout] test release_frees_the_block_and_removes_env_file ... ok
[INFO] [stdout] test sync_refuses_to_move_while_the_current_block_is_in_use ... ok
[INFO] [stdout] test sync_with_manifest_renders_all_declared_ports ... ok
[INFO] [stdout] test v2_ledger_is_migrated_with_blocks_preserved ... ok
[INFO] [stdout] test sync_moves_when_growth_is_blocked_and_the_block_is_idle ... ok
[INFO] [stdout] test sync_without_installed_hook_prints_the_exact_hint_line ... ok
[INFO] [stdout] test unpin_clears_label ... ok
[INFO] [stdout] test reserve_blocks_allocation_and_unreserve_frees_it ... ok
[INFO] [stdout] test unhook_unreadable_hook_exits_nonzero ... ok
[INFO] [stdout] test unhook_removes_hooks_but_keeps_everything_else ... ok
[INFO] [stdout] test worktree_id_survives_detached_head ... ok
[INFO] [stdout] test worktree_id_survives_branch_checkout ... ok
[INFO] [stdout] test worktree_add_first_checkout_generates_env_via_hook ... ok
[INFO] [stdout] test second_sync_is_a_pure_noop ... ok
[INFO] [stderr] error: test failed, to rerun pass `--test cli`
[INFO] [stdout] test sync_upgrades_an_old_format_env_file_then_second_sync_is_a_noop ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- release_env_delete_failure_keeps_the_ledger_entry stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'release_env_delete_failure_keeps_the_ledger_entry' (2434) panicked at tests/cli.rs:3115:5:
[INFO] [stdout] assertion `left == right` failed: release must fail when the env file can't be removed; stderr: 
[INFO] [stdout]   left: Some(0)
[INFO] [stdout]  right: Some(1)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5dc220c14ec1 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5dc220c2a97a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5dc220c1993c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5dc220bee1f6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5dc220c0b9f9 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5dc220ba1820 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5dc220c0bbb2 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5dc220bee2a2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5dc220be6bc9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5dc220bef23d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5dc220c2b0ac - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5dc220c2b023 - core[df12db4294e9bfd3]::panicking::assert_failed_inner
[INFO] [stdout]   12:     0x5dc220b87671 - core[df12db4294e9bfd3]::panicking::assert_failed::<core[df12db4294e9bfd3]::option::Option<i32>, core[df12db4294e9bfd3]::option::Option<i32>>
[INFO] [stdout]   13:     0x5dc220b6b1da - <cli[2b6950537f65b97]::release_env_delete_failure_keeps_the_ledger_entry::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x5dc220b94b0b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   15:     0x5dc220ba2175 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   16:     0x5dc220b9ba34 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x5dc220ba52d2 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x5dc220c13959 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x77d2ea233dfa - <unknown>
[INFO] [stdout]   20:     0x77d2ea2c73d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     release_env_delete_failure_keeps_the_ledger_entry
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 90 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.59s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "1f9985ef67937ca151f72e715640e54603cad9ae66fc7fc2eae04743e950e106", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1f9985ef67937ca151f72e715640e54603cad9ae66fc7fc2eae04743e950e106", kill_on_drop: false }`
[INFO] [stdout] 1f9985ef67937ca151f72e715640e54603cad9ae66fc7fc2eae04743e950e106
