[INFO] cloning repository https://github.com/farhan-syah/ogt [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/farhan-syah/ogt" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffarhan-syah%2Fogt", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffarhan-syah%2Fogt'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 21e7c229f03d1f3438df411b5d1b1116fbf90e41 [INFO] testing farhan-syah/ogt against 1.100.0-beta.1 for beta-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffarhan-syah%2Fogt" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/farhan-syah/ogt [INFO] finished tweaking git repo https://github.com/farhan-syah/ogt [INFO] tweaked toml for git repo https://github.com/farhan-syah/ogt written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/farhan-syah/ogt on toolchain 1.100.0-beta.1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/farhan-syah/ogt 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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 70924645657b8bea85ad496c5b0ef8c93b074bf56c89c27ab13b551488e29258 [INFO] running `Command { std: "docker" "start" "70924645657b8bea85ad496c5b0ef8c93b074bf56c89c27ab13b551488e29258", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "70924645657b8bea85ad496c5b0ef8c93b074bf56c89c27ab13b551488e29258", 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" "70924645657b8bea85ad496c5b0ef8c93b074bf56c89c27ab13b551488e29258" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "70924645657b8bea85ad496c5b0ef8c93b074bf56c89c27ab13b551488e29258", 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" "70924645657b8bea85ad496c5b0ef8c93b074bf56c89c27ab13b551488e29258" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling typenum v1.20.1 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling ogt v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.74s [INFO] running `Command { std: "docker" "inspect" "70924645657b8bea85ad496c5b0ef8c93b074bf56c89c27ab13b551488e29258", 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" "70924645657b8bea85ad496c5b0ef8c93b074bf56c89c27ab13b551488e29258" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling bitflags v2.13.1 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling fastrand v2.5.0 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling ogt v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 7.36s [INFO] running `Command { std: "docker" "inspect" "70924645657b8bea85ad496c5b0ef8c93b074bf56c89c27ab13b551488e29258", 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" "70924645657b8bea85ad496c5b0ef8c93b074bf56c89c27ab13b551488e29258" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/build/ogt/c3980679285693d9/out/ogt-c3980679285693d9) [INFO] [stdout] [INFO] [stdout] running 346 tests [INFO] [stdout] test cli::dispatch::tests::init_literal_is_intercepted_before_the_target_dispatch ... ok [INFO] [stdout] test cli::dispatch::tests::is_fold_target_matches_every_target_and_rejects_non_targets ... ok [INFO] [stdout] test cli::dispatch::tests::bare_help_and_version_flags_print_ogts_own_text ... ok [INFO] [stdout] test cli::help::tests::help_text_covers_targets_gate_recovery_cost_env_usage_in_order ... ok [INFO] [stdout] test cli::dispatch::tests::nonexistent_nontarget_program_exits_127 ... ok [INFO] [stdout] test cli::dispatch::tests::no_program_exits_2_and_spawns_nothing ... ok [INFO] [stdout] test cli::dispatch::tests::grep_help_is_forwarded_to_grep_not_intercepted ... ok [INFO] [stdout] test cli::help::tests::version_contains_the_crate_version ... ok [INFO] [stdout] test cli::passthrough::tests::permission_denied_maps_to_126 ... ok [INFO] [stdout] test cli::passthrough::tests::not_found_maps_to_127 ... ok [INFO] [stdout] test cli::path_shim::tests::empty_path_entries_do_not_panic ... ok [INFO] [stdout] test cli::path_shim::tests::resolve_spawn_is_unchanged_when_path_unset ... ok [INFO] [stdout] test cli::path_shim::tests::resolve_spawn_is_unchanged_when_shim_dir_unset ... ok [INFO] [stdout] test cli::path_shim::tests::reduce_path_leaves_other_entries_untouched_when_shim_dir_absent_from_path ... ok [INFO] [stdout] test cli::path_shim::tests::reduce_path_is_a_no_op_when_shim_dir_unset ... ok [INFO] [stdout] test cli::path_shim::tests::reduce_path_removes_every_occurrence_and_preserves_order ... ok [INFO] [stdout] test cli::path_shim::tests::resolve_program_finds_a_binary_in_the_reduced_path_never_in_the_shim_dir ... ok [INFO] [stdout] test cli::path_shim::tests::non_utf8_path_entries_do_not_panic ... ok [INFO] [stdout] test cli::path_shim::tests::resolve_spawn_resolves_and_reduces_when_both_set ... ok [INFO] [stdout] test cli::path_shim::tests::resolve_program_bypasses_resolution_for_absolute_or_relative_paths ... ok [INFO] [stdout] test cli::path_shim::tests::resolve_spawn_falls_back_to_original_program_when_unresolvable_but_still_reduces_path ... ok [INFO] [stdout] test fold::config::tests::default_values ... ok [INFO] [stdout] test cli::passthrough::tests::exit_code_propagates_through_run_passthrough ... ok [INFO] [stdout] test fold::config::tests::from_env_enabled_false_disables ... ok [INFO] [stdout] test cli::help::tests::help_text_names_the_hook_scope_with_the_slash_list ... ok [INFO] [stdout] test cli::path_shim::tests::resolve_program_returns_none_when_not_found_anywhere ... ok [INFO] [stdout] test fold::config::tests::from_env_valid_threshold_override_applies ... ok [INFO] [stdout] test fold::paths::tests::display_shell_path_preserves_simple_paths ... ok [INFO] [stdout] test fold::paths::tests::display_shell_path_quotes_paths_with_spaces ... ok [INFO] [stdout] test fold::paths::tests::resolve_fold_dir_config_directory_used_when_env_unset ... ok [INFO] [stdout] test fold::paths::tests::display_shell_path_uses_home_var_for_home_paths_with_spaces ... ok [INFO] [stdout] test fold::paths::tests::format_full_output_hint_shape ... ok [INFO] [stdout] test fold::paths::tests::resolve_fold_dir_default_ends_in_ogt_folds ... ok [INFO] [stdout] test fold::roots::tests::absent_roots_file_folds_everywhere ... ok [INFO] [stdout] test fold::config::tests::from_env_neither_ogt_var_set_leaves_folding_on ... ok [INFO] [stdout] test fold::config::tests::from_env_ogt_enabled_wins_over_ogt_when_they_disagree ... ok [INFO] [stdout] test fold::config::tests::from_env_unset_uses_default ... ok [INFO] [stdout] test fold::config::tests::from_env_invalid_threshold_falls_back_and_warns ... ok [INFO] [stdout] test fold::paths::tests::format_full_output_hint_avoids_backslash_escaped_whitespace ... ok [INFO] [stdout] test fold::paths::tests::resolve_fold_dir_env_wins_over_config_directory ... ok [INFO] [stdout] test fold::roots::tests::all_invalid_roots_falls_back_to_fold_everywhere ... ok [INFO] [stdout] test fold::config::tests::from_env_ogt_zero_disables ... ok [INFO] [stdout] test fold::roots::tests::no_cwd_available_folds_everywhere_rather_than_breaking ... ok [INFO] [stdout] test fold::roots::tests::roots_file_scopes_to_listed_root ... ok [INFO] [stdout] test fold::scope::tests::is_in_scope_true_at_a_root_and_under_it ... ok [INFO] [stdout] test fold::scope::tests::is_in_scope_true_when_roots_empty ... ok [INFO] [stdout] hi [INFO] [stdout] line 1 [INFO] [stdout] line 2 [INFO] [stdout] test fold::rotate::tests::never_deletes_a_file_the_caller_still_holds ... ok [INFO] [stdout] test fold::scope::tests::is_in_scope_component_wise_not_string_prefix ... ok [INFO] [stdout] test fold::scope::tests::parse_roots_env_skips_invalid_entries_with_a_warning ... ok [INFO] [stdout] test fold::scope::tests::parse_roots_env_splits_on_the_platform_path_separator ... ok [INFO] [stdout] test fold::rotate::tests::max_files_zero_never_deletes_the_newest_file ... ok [INFO] [stdout] test fold::scope::tests::is_in_scope_false_outside_every_root ... ok [INFO] [stdout] test fold::paths::tests::display_shell_path_quotes_backslashes ... ok [INFO] [stdout] test fold::roots::tests::ogt_roots_env_var_bypasses_the_file_entirely ... ok [INFO] [stdout] test fold::scope::tests::parse_roots_file_all_invalid_yields_empty ... ok [INFO] [stdout] test fold::scope::tests::parse_roots_file_skips_blanks_and_comments ... ok [INFO] [stdout] test fold::scope::tests::parse_roots_file_trims_trailing_whitespace ... ok [INFO] [stdout] test cli::passthrough::tests::non_target_invocation_not_touching_the_fold_dir_produces_no_row ... ok [INFO] [stdout] test fold::rotate::tests::ignores_non_log_files ... ok [INFO] [stdout] test cli::passthrough::tests::non_target_invocation_touching_the_fold_dir_produces_an_uncaptured_row ... ok [INFO] [stdout] test fold::rotate::tests::keeps_newest_max_files ... ok [INFO] [stdout] test fold::slug::tests::shortens_long_slugs_with_readable_prefix ... ok [INFO] [stdout] test fold::slug::tests::replaces_unsafe_chars ... ok [INFO] [stdout] test fold::slug::tests::shortening_is_deterministic_and_collision_free ... ok [INFO] [stdout] test fold::summary::fold::tests::with_thousands_separator_shape ... ok [INFO] [stdout] test fold::scope::tests::parse_roots_file_warns_and_skips_a_relative_path ... ok [INFO] [stdout] test fold::summary::lines::tests::count_lines_matches_str_lines_count ... ok [INFO] [stdout] test fold::summary::fold::tests::passthrough_when_disabled_even_if_huge ... ok [INFO] [stdout] test fold::summary::fold::tests::passthrough_below_threshold ... ok [INFO] [stdout] test fold::summary::lines::tests::first_and_last_lines_select_without_terminators ... ok [INFO] [stdout] test fold::summary::preview::tests::lossy_prefix_drops_a_char_cut_by_the_cap ... ok [INFO] [stdout] test fold::summary::fold::tests::slug_is_used_in_persisted_filename ... ok [INFO] [stdout] test fold::slug::tests::passes_through_safe_chars ... ok [INFO] [stdout] test fold::tokens::tests::empty_is_zero ... ok [INFO] [stdout] test fold::summary::fold::tests::streaming_and_in_memory_regions_produce_the_same_fold ... ok [INFO] [stdout] test fold::summary::fold::tests::folds_at_or_above_threshold ... ok [INFO] [stdout] test fold::summary::preview::tests::lossy_slices_never_exceed_the_cap_on_invalid_utf8 ... ok [INFO] [stdout] test fold::summary::preview::tests::take_prefix_and_suffix_bytes_respect_utf8_boundaries ... ok [INFO] [stdout] test fold::tokens::tests::rounds_up_to_next_token ... ok [INFO] [stdout] test fold::write::tests::filename_matches_epoch_underscore_slug_format ... ok [INFO] [stdout] test fold::write::tests::fold_file_and_dir_are_owner_only ... ok [INFO] [stdout] test fold::summary::fold::tests::render_contains_totals_and_recovery_pointer ... ok [INFO] [stdout] test fold::tokens::tests::matches_rtk_reference_values ... ok [INFO] [stdout] test fold::write::tests::two_folds_in_the_same_second_get_distinct_files ... ok [INFO] [stdout] test hook::decide::tests::cargo_build_piped_to_tee_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::cat_and_find_are_also_targets ... ok [INFO] [stdout] test hook::decide::tests::backtick_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::command_substitution_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::double_pipe_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::echo_grep_never_matches ... ok [INFO] [stdout] test fold::summary::fold::tests::render_adds_thousands_separators_to_omission_marker ... ok [INFO] [stdout] test hook::decide::tests::every_target_is_rewritten ... ok [INFO] [stdout] test hook::decide::tests::genuine_pipe_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::absolute_path_basename_is_rewritten_preserving_the_path ... ok [INFO] [stdout] test hook::decide::tests::hook_and_dispatch_agree_on_every_target ... ok [INFO] [stdout] test hook::decide::tests::already_ogt_wrapped_is_idempotent ... ok [INFO] [stdout] test hook::decide::tests::empty_command_is_left_alone ... ok [INFO] [stdout] test fold::tokens::tests::len_wrapper_agrees_with_text_form ... ok [INFO] [stdout] test fold::write::tests::suffixed_name_keeps_the_all_digit_epoch_prefix_rotation_sorts_on ... ok [INFO] [stdout] test hook::decide::tests::backslash_escaped_pipe_is_rewritten ... ok [INFO] [stdout] test fold::write::tests::rotates_after_write ... ok [INFO] [stdout] test hook::decide::tests::multiple_leading_assignments_are_skipped ... ok [INFO] [stdout] test hook::decide::tests::non_target_command_is_left_alone ... ok [INFO] [stdout] test fold::summary::fold::tests::kept_bytes_much_smaller_than_raw_for_large_output ... ok [INFO] [stdout] test fold::summary::fold::tests::head_and_tail_never_overlap_on_small_line_count ... ok [INFO] [stdout] test fold::summary::fold::tests::folded_file_on_disk_is_never_truncated ... ok [INFO] [stdout] test hook::decide::tests::double_ampersand_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::heredoc_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::leading_var_assignment_is_skipped_to_find_the_program ... ok [INFO] [stdout] test hook::decide::tests::man_grep_never_matches ... ok [INFO] [stdout] test hook::decide::tests::newline_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::pipe_inside_double_quotes_is_rewritten ... ok [INFO] [stdout] test hook::decide::tests::process_substitution_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::semicolon_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::sudo_cargo_build_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::simple_grep_is_rewritten ... ok [INFO] [stdout] test fold::write::tests::writes_full_content_untruncated ... ok [INFO] [stdout] test hook::decide::tests::only_assignments_no_program_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::pipe_inside_single_quotes_is_rewritten ... ok [INFO] [stdout] test hook::decide::tests::xargs_grep_never_matches ... ok [INFO] [stdout] test hook::hook_cmd::tests::malformed_json_on_stdin_leaves_command_alone ... ok [INFO] [stdout] test hook::hook_cmd::tests::pipeline_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::sudo_grep_is_left_alone ... ok [INFO] [stdout] test hook::decide::tests::the_measured_worst_case_regex_is_rewritten ... ok [INFO] [stdout] test hook::protocol::tests::missing_command_is_ignored ... ok [INFO] [stdout] test hook::protocol::tests::command_containing_json_like_text_does_not_confuse_the_scanner ... ok [INFO] [stdout] test hook::protocol::tests::missing_tool_input_is_ignored ... ok [INFO] [stdout] test hook::protocol::tests::extra_top_level_fields_do_not_break_parsing ... ok [INFO] [stdout] test hook::hook_cmd::tests::already_wrapped_command_is_idempotent ... ok [INFO] [stdout] test hook::protocol::tests::malformed_json_is_ignored ... ok [INFO] [stdout] test hook::hook_cmd::tests::preserves_extra_tool_input_fields_verbatim ... ok [INFO] [stdout] test hook::protocol::tests::splice_preserves_field_order_and_unknown_fields ... ok [INFO] [stdout] test hook::protocol::tests::splice_replaces_only_the_command_value ... ok [INFO] [stdout] test hook::hook_cmd::tests::non_target_bash_command_leaves_alone ... ok [INFO] [stdout] test hook::decide::tests::unterminated_single_quote_is_left_alone ... ok [INFO] [stdout] test hook::protocol::tests::non_bash_tool_name_is_ignored ... ok [INFO] [stdout] test hook::protocol::tests::parses_a_well_formed_bash_payload ... ok [INFO] [stdout] test init::cli::tests::non_terminal_stdin_takes_the_immediate_install_path ... ok [INFO] [stdout] test init::cli::tests::shims_flag_missing_value_is_a_usage_error ... ok [INFO] [stdout] test init::cli::tests::no_home_dir_injected_is_an_error_not_a_panic ... ok [INFO] [stdout] test hook::decide::tests::trailing_backslash_continuation_is_left_alone ... ok [INFO] [stdout] test hook::hook_cmd::tests::non_bash_tool_leaves_command_alone ... ok [INFO] [stdout] test init::cli::tests::shims_flag_with_uninstall_removes_shims_without_needing_ogt_exe ... ok [INFO] [stdout] test hook::decide::tests::unterminated_double_quote_is_left_alone ... ok [INFO] [stdout] test init::cli::tests::help_flag_prints_help_and_exits_0 ... ok [INFO] [stdout] test init::cli::tests::unknown_flag_is_a_usage_error ... ok [INFO] [stdout] test init::cli::tests::shims_flag_without_injected_ogt_exe_refuses_rather_than_guessing ... ok [INFO] [stdout] test hook::protocol::tests::build_output_shape ... ok [INFO] [stdout] test init::cli::tests::short_help_flag_also_works ... ok [INFO] [stdout] test init::cli::tests::dry_run_and_uninstall_flags_parse_and_reach_fs_ops ... ok [INFO] [stdout] test hook::hook_cmd::tests::rewrite_target_prints_the_hookspecificoutput_envelope ... ok [INFO] [stdout] test init::cli::tests::help_flag_documents_shims ... ok [INFO] [stdout] test init::cli::tests::shims_flag_installs_when_ogt_exe_is_injected ... ok [INFO] [stdout] test init::cli::tests::yes_flag_takes_the_immediate_install_path_even_conceptually_on_a_terminal ... ok [INFO] [stdout] test init::cli::tests::help_flag_documents_yes_and_interactive ... ok [INFO] [stdout] test init::fs_ops::tests::dry_run_touches_nothing ... ok [INFO] [stdout] test init::interactive::tests::confirming_installs_the_hook_and_prints_the_undo_command ... ok [INFO] [stdout] test init::interactive::tests::declining_at_confirm_writes_nothing ... ok [INFO] [stdout] test init::fs_ops::tests::uninstall_when_absent_is_a_no_op_exit_0 ... ok [INFO] [stdout] test init::fs_ops::tests::uninstall_removes_the_entry ... ok [INFO] [stdout] test init::interactive::tests::a_nonexistent_root_is_rejected_and_reprompted ... ok [INFO] [stdout] test init::fs_ops::tests::install_creates_settings_json_when_missing ... ok [INFO] [stdout] test init::fs_ops::tests::install_backs_up_an_existing_file_before_writing ... ok [INFO] [stdout] test init::interactive::tests::eof_mid_flow_writes_nothing ... ok [INFO] [stdout] test init::fs_ops::tests::install_is_idempotent_on_second_run ... ok [INFO] [stdout] test init::fs_ops::tests::no_home_dir_is_an_error ... ok [INFO] [stdout] test init::interactive::tests::bad_mechanism_answer_reprompts_rather_than_aborting ... ok [INFO] [stdout] test init::interactive::tests::scoped_roots_are_previewed_and_written ... ok [INFO] [stdout] test init::fs_ops::tests::unrecognized_shape_refuses_to_write_and_prints_the_block ... ok [INFO] [stdout] test init::cli::tests::terminal_stdin_with_no_flags_goes_interactive_and_writes_nothing_on_decline ... ok [INFO] [stdout] test init::interactive::tests::eof_at_the_very_first_prompt_writes_nothing ... ok [INFO] [stdout] test init::settings_edit::tests::hooks_key_without_pre_tool_use_adds_it ... ok [INFO] [stdout] test init::settings_edit::tests::not_a_json_object_at_all_is_unrecognized ... ok [INFO] [stdout] test init::settings_edit::tests::no_hooks_key_installs_fresh_structure ... ok [INFO] [stdout] test init::settings_edit::tests::no_hooks_key_preserves_other_top_level_fields ... ok [INFO] [stdout] test init::settings_edit::tests::hooks_not_an_object_is_unrecognized ... ok [INFO] [stdout] test init::interactive::tests::shims_without_an_ogt_exe_refuses_before_writing_anything ... ok [INFO] [stdout] test init::settings_edit::tests::already_present_is_reported_and_nothing_changes ... ok [INFO] [stdout] test init::settings_edit::tests::empty_pre_tool_use_array_gets_first_element ... ok [INFO] [stdout] test init::settings_edit::tests::pre_tool_use_not_an_array_is_unrecognized ... ok [INFO] [stdout] test init::settings_edit::tests::remove_deletes_only_the_ogt_entry ... ok [INFO] [stdout] test init::settings_edit::tests::present_among_other_matcher_groups_is_still_detected ... ok [INFO] [stdout] test init::settings_edit::tests::remove_leaves_other_hooks_in_the_same_matcher_group_untouched ... ok [INFO] [stdout] test init::settings_edit::tests::comma_inside_a_string_value_never_splits_a_field ... ok [INFO] [stdout] test init::settings_edit::tests::remove_prunes_the_matcher_group_it_empties ... ok [INFO] [stdout] test init::settings_edit::tests::remove_when_absent_is_a_no_op ... ok [INFO] [stdout] test init::settings_edit::tests::remove_with_no_hooks_key_is_a_no_op ... ok [INFO] [stdout] test init::settings_edit::tests::existing_pre_tool_use_array_gets_new_matcher_group_appended ... ok [INFO] [stdout] test init::settings_edit::tests::removing_ours_keeps_a_foreign_hook_in_the_same_group ... ok [INFO] [stdout] test init::settings_edit::tests::removing_the_only_entry_drops_the_empty_matcher_group ... ok [INFO] [stdout] test init::shims::tests::is_ogt_shim_rejects_unmarked_content ... ok [INFO] [stdout] test private_fs::tests::open_private_is_owner_only ... ok [INFO] [stdout] test private_fs::tests::open_private_owner_only_under_permissive_umask ... ok [INFO] [stdout] test init::shim_fs::tests::install_generates_one_marked_executable_shim_per_target ... ok [INFO] [stdout] test init::shims::tests::render_shim_carries_marker_and_absolute_ogt_path ... ok [INFO] [stdout] test init::shim_fs::tests::uninstall_on_missing_dir_is_a_no_op ... ok [INFO] [stdout] test init::shims::tests::render_shim_is_specific_to_its_program ... ok [INFO] [stdout] test init::shim_fs::tests::uninstall_removes_only_marked_files ... ok [INFO] [stdout] test init::shims::tests::is_ogt_shim_rejects_a_loose_substring_match ... ok [INFO] [stdout] test init::shim_fs::tests::uninstall_refuses_when_dir_exists_and_is_not_a_directory ... ok [INFO] [stdout] test init::shims::tests::render_shim_normalizes_the_shim_dir_to_the_platform_form ... ok [INFO] [stdout] test init::shim_fs::tests::install_refuses_when_dir_exists_and_is_not_a_directory ... ok [INFO] [stdout] test private_fs::tests::create_private_dir_is_owner_only ... ok [INFO] [stdout] test init::shim_fs::tests::install_is_idempotent_and_regenerates_on_rerun ... ok [INFO] [stdout] test report::aggregate::concentration_band_tests::top_band_always_covers_at_least_one_row ... ok [INFO] [stdout] test report::aggregate::tests::programs_sorted_by_raw_bytes_descending ... ok [INFO] [stdout] test report::aggregate::tests::empty_rows_never_divides_by_zero ... ok [INFO] [stdout] test report::aggregate::tests::nonzero_exit_is_counted_but_never_excluded_from_totals ... ok [INFO] [stdout] test report::cli::tests::help_flag_prints_help_and_exits_0 ... ok [INFO] [stdout] test report::aggregate::tests::reread_rate_never_sums_bytes_only_counts_rows ... ok [INFO] [stdout] test report::caveats::tests::scope_short_names_every_tracked_program ... ok [INFO] [stdout] test report::aggregate::tests::reread_rate_is_none_when_there_are_no_folds ... ok [INFO] [stdout] test report::aggregate::tests::per_program_folded_count_and_reduction_pct ... ok [INFO] [stdout] test report::caveats::tests::short_forms_stay_short_enough_to_sit_inline ... ok [INFO] [stdout] test report::cli::tests::short_help_flag_also_works ... ok [INFO] [stdout] test report::cli::tests::missing_flag_value_is_a_usage_error ... ok [INFO] [stdout] test report::cli::tests::since_days_computes_cutoff_from_now ... ok [INFO] [stdout] test report::cli::tests::since_all_means_no_cutoff ... ok [INFO] [stdout] test report::caveats::tests::both_lower_bound_forms_name_the_signal_they_are_limited_to ... ok [INFO] [stdout] test report::cli::tests::invalid_format_value_is_a_usage_error ... ok [INFO] [stdout] test report::aggregate::tests::uncaptured_row_excluded_from_handled_totals_but_counted_as_a_reread ... ok [INFO] [stdout] test report::caveats::tests::scope_full_names_every_tracked_program ... ok [INFO] [stdout] test report::cli::tests::json_format_produces_json_not_text ... ok [INFO] [stdout] test report::cli::tests::since_garbage_is_unparseable ... ok [INFO] [stdout] test report::cli::tests::since_hours_computes_cutoff_from_now ... ok [INFO] [stdout] test report::load::tests::invalid_utf8_line_is_malformed_not_fatal ... ok [INFO] [stdout] test report::cli::tests::unparseable_since_is_a_usage_error ... ok [INFO] [stdout] test report::load::tests::empty_file_yields_zero_everything ... ok [INFO] [stdout] test report::aggregate::concentration_band_tests::empty_sample_yields_an_empty_band_rather_than_panicking ... ok [INFO] [stdout] test report::load::tests::project_filters_to_matching_cwd_only ... ok [INFO] [stdout] test report::parse::tests::adversarial_args_with_backslashes_and_quotes_still_parses_correctly ... ok [INFO] [stdout] test report::aggregate::tests::concentration_present_at_the_minimum_sample_size ... ok [INFO] [stdout] test report::parse::tests::adversarial_args_with_fake_embedded_fields_still_parses_correctly ... ok [INFO] [stdout] test report::parse::tests::captured_row_missing_a_byte_field_is_still_malformed ... ok [INFO] [stdout] test report::load::tests::malformed_lines_are_counted_not_dropped_silently ... ok [INFO] [stdout] test report::load::tests::since_filters_out_older_rows_without_counting_them_malformed ... ok [INFO] [stdout] test report::cli::tests::default_since_is_30_days ... ok [INFO] [stdout] test report::cli::tests::since_raw_epoch_ms_used_directly ... ok [INFO] [stdout] test report::aggregate::tests::uncaptured_rows_excluded_from_concentration_sample ... ok [INFO] [stdout] test report::cli::tests::unknown_flag_is_a_usage_error ... ok [INFO] [stdout] test report::parse::tests::trailing_newline_is_tolerated ... ok [INFO] [stdout] test report::aggregate::tests::concentration_is_none_below_the_minimum_sample_size ... ok [INFO] [stdout] test report::aggregate::tests::set_aside_pct_matches_raw_minus_kept_over_raw ... ok [INFO] [stdout] test report::cli::tests::missing_tracking_file_reports_no_data_not_an_error ... ok [INFO] [stdout] test report::render_json::tests::program_names_are_escaped_via_shared_json_string ... ok [INFO] [stdout] test report::render_json::tests::reread_rate_null_when_no_folds ... ok [INFO] [stdout] test report::parse::tests::not_a_json_object_is_malformed ... ok [INFO] [stdout] test report::parse::tests::row_without_captured_field_parses_and_defaults_to_captured ... ok [INFO] [stdout] test report::parse::tests::control_character_escapes_in_program_round_trip ... ok [INFO] [stdout] test report::render_text::tests::header_names_recovery_reads_so_the_row_and_call_counts_reconcile ... ok [INFO] [stdout] test report::parse::tests::missing_cwd_parses_as_none_not_malformed ... ok [INFO] [stdout] test report::load::tests::none_since_means_all_time ... ok [INFO] [stdout] test report::parse::tests::parses_a_well_formed_line ... ok [INFO] [stdout] test report::render_text::tests::header_shows_in_window_count_against_file_total_when_filtered ... ok [INFO] [stdout] test report::render_text::tests::no_data_message_distinct_from_empty_after_filter_message ... ok [INFO] [stdout] test report::render_text::tests::plural_is_singular_for_one_and_plural_otherwise ... ok [INFO] [stdout] test report::render_text::tests::reread_rate_none_prints_no_rate_line_not_zero_percent ... ok [INFO] [stdout] test report::render_text::tests::small_sample_prints_sample_too_small_not_percentiles ... ok [INFO] [stdout] test runner::spawn::tests::basename_strips_leading_path_components ... ok [INFO] [stdout] test report::parse::tests::uncaptured_row_with_no_byte_fields_still_parses ... ok [INFO] [stdout] test report::render_json::tests::concentration_null_below_minimum_sample ... ok [INFO] [stdout] test report::render_json::tests::data_status_includes_handled_totals_and_programs ... ok [INFO] [stdout] test report::render_text::tests::caveats_attached_to_the_numbers_they_qualify ... ok [INFO] [stdout] test report::render_text::tests::handled_totals_uses_singular_call_for_one_row ... ok [INFO] [stdout] test report::render_json::tests::no_data_status ... ok [INFO] [stdout] test report::render_text::tests::header_always_prints_malformed_count_even_when_zero ... ok [INFO] [stdout] test runner::exit::tests::normal_exit_code_passes_through ... ok [INFO] [stdout] test runner::exit::tests::signal_death_becomes_128_plus_signal ... ok [INFO] [stdout] test report::parse::tests::missing_required_field_is_malformed ... ok [INFO] [stdout] test runner::spawn::tests::empty_output_prints_nothing ... ok [INFO] [stdout] test runner::spawn::tests::program_slug_uses_the_basename ... ok [INFO] [stdout] test runner::spawn::tests::exit_code_propagates ... ok [INFO] [stdout] test runner::spawn::tests::binary_passthrough_is_byte_for_byte ... ok [INFO] [stdout] test runner::spawn::tests::interleaved_streams_are_never_merged ... ok [INFO] [stdout] test runner::spawn::tests::reads_fold_true_when_an_arg_resolves_inside_the_fold_dir ... ok [INFO] [stdout] test runner::spawn::tests::binary_run_persists_invalid_utf8_exactly_on_disk ... ok [INFO] [stdout] test runner::spawn::tests::exit_code_propagates_after_a_fold ... ok [INFO] [stdout] test runner::spawn::tests::tracking_disabled_writes_no_file ... ok [INFO] [stdout] test runner::spawn::tests::tracking_row_for_passthrough_carries_real_nonzero_bytes ... ok [INFO] [stdout] test runner::spill::tests::a_code_point_split_at_the_gate_stays_text ... ok [INFO] [stdout] test runner::spawn::tests::reads_fold_false_for_an_unrelated_argument ... ok [INFO] [stdout] test runner::spawn::tests::stderr_folds_while_stdout_passes_through ... ok [INFO] [stdout] test runner::spill::tests::accessors_report_passthrough_bytes_before_emit_consumes_the_capture ... ok [INFO] [stdout] test runner::spill::tests::binary_after_the_gate_is_still_caught ... ok [INFO] [stdout] test runner::spawn::tests::text_above_the_gate_still_folds ... ok [INFO] [stdout] test runner::spill::tests::empty_stream_is_empty_passthrough ... ok [INFO] [stdout] test runner::spill::tests::a_code_point_split_while_spilling_stays_text ... ok [INFO] [stdout] test runner::spill::tests::folding_matches_the_in_memory_path_byte_for_byte ... ok [INFO] [stdout] test runner::spawn::tests::binary_after_the_gate_reaches_the_caller_byte_for_byte ... ok [INFO] [stdout] test runner::spill::tests::single_huge_line_keeps_head_only ... ok [INFO] [stdout] test runner::spill::tests::invalid_utf8_is_not_folded_at_all ... ok [INFO] [stdout] test runner::spawn::tests::stdout_folds_while_stderr_passes_through ... ok [INFO] [stdout] test runner::spill::tests::stays_buffered_below_the_gate ... ok [INFO] [stdout] test runner::spawn::tests::a_nul_byte_alone_marks_the_stream_binary ... ok [INFO] [stdout] test targets::tests::oxford_list_names_every_target_and_ends_with_a_final_and ... ok [INFO] [stdout] test targets::tests::slash_list_joins_every_target_with_slashes ... ok [INFO] [stdout] test text_offset::tests::a_buffer_outside_the_parent_range_is_rejected ... ok [INFO] [stdout] test text_offset::tests::finds_the_offset_of_a_real_subslice ... ok [INFO] [stdout] test thousands::tests::groups_every_three_digits_from_the_right ... ok [INFO] [stdout] test track::append::tests::appends_one_line_creating_parent_dir ... ok [INFO] [stdout] test runner::spawn::tests::large_output_survives_a_slow_reader_without_deadlock ... ok [INFO] [stdout] test track::append::tests::crossing_the_trigger_compacts_to_at_or_below_the_target ... ok [INFO] [stdout] test track::append::tests::disabled_is_a_no_op ... ok [INFO] [stdout] test text_offset::tests::empty_subslice_at_the_end_is_a_valid_offset ... ok [INFO] [stdout] test track::append::tests::below_trigger_is_a_pure_append_original_line_survives_untouched ... ok [INFO] [stdout] test runner::spill::tests::tail_ring_stays_bounded_across_many_chunks ... ok [INFO] [stdout] test runner::spill::tests::disabled_never_spills_however_large ... ok [INFO] [stdout] test track::config::tests::default_values ... ok [INFO] [stdout] test track::config::tests::from_env_invalid_value_falls_back_and_warns ... ok [INFO] [stdout] test track::append::tests::second_append_adds_a_second_line ... ok [INFO] [stdout] test track::config::tests::from_env_unset_uses_default ... ok [INFO] [stdout] test track::append::tests::tracking_file_and_dir_are_owner_only ... ok [INFO] [stdout] test track::config::tests::from_env_disabled_false_disables ... ok [INFO] [stdout] test runner::spawn::tests::binary_above_the_gate_reaches_the_caller_byte_for_byte ... ok [INFO] [stdout] test track::paths::tests::config_path_used_when_env_unset ... ok [INFO] [stdout] test track::record::tests::escapes_other_control_chars_as_unicode_escape ... ok [INFO] [stdout] test track::paths::tests::env_wins_over_config_path ... ok [INFO] [stdout] test track::paths::tests::default_ends_in_ogt_tracking_jsonl ... ok [INFO] [stdout] test track::record::tests::line_ends_in_newline_and_is_flat_json ... ok [INFO] [stdout] test track::record::tests::escapes_quotes_backslashes_and_control_chars ... ok [INFO] [stdout] test track::record::tests::now_ms_is_nonzero_at_present_day ... ok [INFO] [stdout] test track::record::tests::omits_stream_paths_when_passthrough ... ok [INFO] [stdout] test runner::spawn::tests::tracking_row_records_raw_and_kept_bytes_for_a_fold ... ok [INFO] [stdout] test track::record::tests::small_args_are_never_truncated ... ok [INFO] [stdout] test track::record::tests::captured_row_always_states_captured_true ... ok [INFO] [stdout] test track::record::tests::uncaptured_row_omits_unknown_byte_counts_rather_than_inventing_zero ... ok [INFO] [stdout] test track::retention::tests::compacted_file_stays_owner_only ... ok [INFO] [stdout] test track::retention::tests::drops_rows_older_than_retention_and_keeps_the_rest ... ok [INFO] [stdout] test track::retention::tests::invalid_utf8_line_is_dropped_and_does_not_fail_compaction ... ok [INFO] [stdout] test track::record::tests::omits_cwd_when_none ... ok [INFO] [stdout] test runner::spawn::tests::folded_run_persists_the_childs_full_output_exactly ... ok [INFO] [stdout] test track::retention::tests::old_row_dropped_even_when_under_the_byte_budget ... ok [INFO] [stdout] test track::retention::tests::rewrite_is_atomic_via_rename_and_leaves_no_tmp_file ... ok [INFO] [stdout] test track::retention::tests::keeps_newest_rows_in_order_when_over_the_byte_budget ... ok [INFO] [stdout] test track::retention::tests::malformed_line_in_the_middle_is_dropped_not_fatal ... ok [INFO] [stdout] test runner::spawn::tests::both_streams_folding_get_separate_files ... ok [INFO] [stdout] test runner::spawn::tests::disabled_config_passes_large_output_through_untouched ... ok [INFO] [stdout] test runner::spill::tests::accessors_report_folded_raw_and_kept_bytes ... ok [INFO] [stdout] test track::append::tests::repeated_appends_across_the_trigger_stay_bounded ... ok [INFO] [stdout] test runner::spill::tests::spilled_file_is_byte_identical_to_the_input ... ok [INFO] [stdout] test runner::spill::tests::head_and_tail_survive_a_stream_far_larger_than_memory_window ... ok [INFO] [stdout] test track::record::tests::pathological_args_never_exceed_the_line_cap ... ok [INFO] [stdout] test report::parse::tests::truncated_args_marker_still_parses_correctly ... ok [INFO] [stdout] test track::record::tests::pathological_multibyte_args_stay_under_cap_and_valid_utf8 ... ok [INFO] [stdout] test runner::spawn::tests::binary_only_runs_rotate_their_spill_files ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/build/ogt/636e1444a747d41f/out/ogt-636e1444a747d41f) [INFO] [stdout] test cli::dispatch::tests::target_command_folds_above_threshold_and_passes_through_below_it ... ok [INFO] [stderr] Running tests/cli.rs (/opt/rustwide/target/debug/build/ogt/1e3fd92fddd8f484/out/cli-1e3fd92fddd8f484) [INFO] [stdout] [INFO] [stdout] test result: ok. 346 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.90s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test nonexistent_program_exits_127 ... ok [INFO] [stdout] test non_executable_file_exits_126 ... ok [INFO] [stdout] test non_target_command_passes_through_byte_for_byte_with_its_own_exit_code ... ok [INFO] [stdout] test non_target_command_is_never_folded_even_above_the_threshold ... ok [INFO] [stdout] test shim_does_not_recurse_into_itself ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stderr] Doc-tests ogt [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "70924645657b8bea85ad496c5b0ef8c93b074bf56c89c27ab13b551488e29258", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "70924645657b8bea85ad496c5b0ef8c93b074bf56c89c27ab13b551488e29258", kill_on_drop: false }` [INFO] [stdout] 70924645657b8bea85ad496c5b0ef8c93b074bf56c89c27ab13b551488e29258