[INFO] cloning repository https://github.com/armaniacs/sasurahime
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/armaniacs/sasurahime" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farmaniacs%2Fsasurahime", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farmaniacs%2Fsasurahime'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 365ea69f73e4ff31109bf94acd35aba308ee8b83
[INFO] testing armaniacs/sasurahime against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farmaniacs%2Fsasurahime" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/armaniacs/sasurahime
[INFO] finished tweaking git repo https://github.com/armaniacs/sasurahime
[INFO] tweaked toml for git repo https://github.com/armaniacs/sasurahime written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/armaniacs/sasurahime on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/armaniacs/sasurahime already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f31ae22450c8a0a488216615c6957b82151177e1237475e792d53b72dafffd98
[INFO] running `Command { std: "docker" "start" "f31ae22450c8a0a488216615c6957b82151177e1237475e792d53b72dafffd98", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f31ae22450c8a0a488216615c6957b82151177e1237475e792d53b72dafffd98", 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" "f31ae22450c8a0a488216615c6957b82151177e1237475e792d53b72dafffd98" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f31ae22450c8a0a488216615c6957b82151177e1237475e792d53b72dafffd98", 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" "f31ae22450c8a0a488216615c6957b82151177e1237475e792d53b72dafffd98" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling jiff v0.2.27
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling unit-prefix v0.5.2
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling indicatif v0.18.4
[INFO] [stderr]    Compiling dialoguer v0.12.0
[INFO] [stderr]    Compiling comfy-table v7.2.2
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling env_filter v1.0.1
[INFO] [stderr]    Compiling env_logger v0.11.10
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling trash v5.2.6
[INFO] [stderr]    Compiling sasurahime v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.59s
[INFO] running `Command { std: "docker" "inspect" "f31ae22450c8a0a488216615c6957b82151177e1237475e792d53b72dafffd98", 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" "f31ae22450c8a0a488216615c6957b82151177e1237475e792d53b72dafffd98" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling relative-path v1.9.3
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling futures-timer v3.0.4
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling filetime v0.2.29
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling rstest_macros v0.22.0
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling toml_edit v0.25.12+spec-1.1.0
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling env_filter v1.0.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling env_logger v0.11.10
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling rstest v0.22.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling trash v5.2.6
[INFO] [stderr]    Compiling sasurahime v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 40.58s
[INFO] running `Command { std: "docker" "inspect" "f31ae22450c8a0a488216615c6957b82151177e1237475e792d53b72dafffd98", 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" "f31ae22450c8a0a488216615c6957b82151177e1237475e792d53b72dafffd98" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/sasurahime-6c12c59b91c1306b)
[INFO] [stdout] 
[INFO] [stdout] running 346 tests
[INFO] [stdout] test cleaner::tests::is_skippable_error_connection_refused_is_not_skippable ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_clean_cancelled_is_not_skippable ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_false_positive_permission_denied_in_filename ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_permission_denied ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_permission_denied_sentence_not_io_error ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_filesystem_corruption ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_permission_denied_string ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_not_found_is_not_skippable ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_resource_busy_string ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_trash_failed_in_error_message ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_trash_failed_string ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_would_block ... ok
[INFO] [stdout] test cleaner::tests::scan_result_with_target_sets_primary ... ok
[INFO] [stdout] test cleaners::apfs_snapshot::tests::clean_when_tmutil_missing_returns_zero ... ok
[INFO] [stdout] test cleaners::apfs_snapshot::tests::clean_dry_run_returns_zero_bytes_freed ... ok
[INFO] [stdout] test cleaner::tests::scan_result_new_has_no_primary_target ... ok
[INFO] [stdout] test cleaners::apfs_snapshot::tests::detect_primary_target_is_none_when_verbose ... ok
[INFO] [stdout] test cleaners::apfs_snapshot::tests::clean_dry_run_when_no_snapshots_returns_zero ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_already_exists ... ok
[INFO] [stdout] test cleaners::brew::tests::parse_brew_freed_bytes_no_match_returns_zero ... ok
[INFO] [stdout] test cleaners::brew::tests::parse_size_str_gb ... ok
[INFO] [stdout] test cleaners::brew::tests::parse_size_str_invalid ... ok
[INFO] [stdout] test cleaners::apfs_snapshot::tests::parse_whitespace_only_returns_empty_vec ... ok
[INFO] [stdout] test cleaners::brew::tests::parse_brew_freed_bytes_extracts_gb ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_unrelated_error_without_skip_keywords ... ok
[INFO] [stdout] test cleaners::apfs_snapshot::tests::detect_returns_pruneable_when_snapshots_present ... ok
[INFO] [stdout] test cleaners::brew::tests::parse_size_str_lowercase_gb ... ok
[INFO] [stdout] test cleaners::brew::tests::parse_size_str_mb ... ok
[INFO] [stdout] test cleaners::brew::tests::parse_size_str_zero_gb ... ok
[INFO] [stdout] test cleaners::browser::tests::find_old_versions_missing_dir_returns_empty ... ok
[INFO] [stdout] test cleaners::brew::tests::parse_size_str_is_case_insensitive ... ok
[INFO] [stdout] test cleaners::brew::tests::parse_size_str_kb_lowercase ... ok
[INFO] [stdout] test cleaners::browser::tests::find_old_versions_single_dir_returns_empty ... ok
[INFO] [stdout] test cleaners::brew::tests::parse_size_str_space_separated_mb ... ok
[INFO] [stdout] test cleaners::browser::tests::find_old_versions_returns_all_but_highest ... ok
[INFO] [stdout] test cleaners::browser::tests::detect_includes_primary_target_when_verbose ... ok
[INFO] [stdout] test cleaners::browser::tests::find_old_versions_skips_unparseable_dir_name ... ok
[INFO] [stdout] test cleaners::browser::tests::version_key_semver ... ok
[INFO] [stdout] test cleaners::browser::tests::version_key_chrome_platform_prefix ... ok
[INFO] [stdout] test cleaners::browser::tests::version_key_empty_string_returns_empty ... ok
[INFO] [stdout] test cleaners::browser::tests::version_key_playwright_build_number ... ok
[INFO] [stdout] test cleaners::cargo::tests::find_target_dirs_empty_home_returns_empty ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_operation_not_permitted_string ... ok
[INFO] [stdout] test cleaners::apfs_snapshot::tests::parse_empty_string_returns_empty_vec ... ok
[INFO] [stdout] test cleaners::apfs_snapshot::tests::parse_trims_surrounding_whitespace ... ok
[INFO] [stdout] test cleaners::cargo::tests::find_target_dirs_excludes_cargo_registry ... ok
[INFO] [stdout] test cleaners::cargo::tests::find_target_dirs_respects_max_depth ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_arbitrary_error_is_not_skippable ... ok
[INFO] [stdout] test cleaners::custom::tests::clean_rejects_unsafe_path ... ok
[INFO] [stdout] test cleaners::custom::tests::detect_clean_when_empty ... ok
[INFO] [stdout] test cleaners::custom::tests::clean_skips_missing_path ... ok
[INFO] [stdout] test cleaners::custom::tests::detect_not_found_when_missing ... ok
[INFO] [stdout] test cleaners::apfs_snapshot::tests::detect_returns_clean_when_no_snapshots ... ok
[INFO] [stdout] test cleaners::custom::tests::clean_dry_run_does_not_delete ... ok
[INFO] [stdout] test cleaners::custom::tests::detect_pruneable_when_content_exists ... ok
[INFO] [stdout] test cleaners::generic::tests::act_path_validates_env_var_and_falls_back ... ok
[INFO] [stdout] test cleaners::generic::tests::command_with_detect_dir_fallback_reports_pruneable_when_tool_missing ... ok
[INFO] [stdout] test cleaners::generic::tests::command_without_fallback_returns_not_found_when_tool_missing ... ok
[INFO] [stdout] test cleaners::generic::tests::detect_with_filters_removes_all_entries_when_none_match ... ok
[INFO] [stdout] test cleaners::device_support::tests::keeps_highest_n_versions ... ok
[INFO] [stdout] test cleaners::device_support::tests::detect_omits_primary_target_when_not_verbose ... ok
[INFO] [stdout] test cleaners::generic::tests::detect_with_older_than_days_filters_new_entries ... ok
[INFO] [stdout] test cleaners::generic::tests::is_older_than_nonexistent_returns_false ... ok
[INFO] [stdout] test cleaners::generic::tests::is_older_than_returns_false_when_newer ... ok
[INFO] [stdout] test cleaners::device_support::tests::detect_includes_primary_target_when_verbose ... ok
[INFO] [stdout] test cleaners::generic::tests::detect_omits_primary_target_when_not_verbose ... ok
[INFO] [stdout] test cleaners::generic::tests::is_older_than_returns_true_when_older ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_canonicalize_fallback_nonexistent ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_allows_home_cache ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_canonicalize_follows_symlink ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_rejects_dotdot_redirection ... ok
[INFO] [stdout] test cleaners::generic::tests::detect_with_larger_than_mb_filters_small_entries ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_rejects_private_var_root ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_rejects_private_var_tmp ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_rejects_root ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_rejects_system_dirs ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_rejects_tmp ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_rejects_usr ... ok
[INFO] [stdout] test cleaners::cargo::tests::find_target_dirs_finds_single_target_dir ... ok
[INFO] [stdout] test cleaners::generic::tests::meets_age_filter_some_old_enough_returns_true ... ok
[INFO] [stdout] test cleaners::browser::tests::detect_omits_primary_target_when_not_verbose ... ok
[INFO] [stdout] test cleaners::apfs_snapshot::tests::detect_returns_not_found_when_tmutil_missing ... ok
[INFO] [stdout] test cleaners::apfs_snapshot::tests::detect_name_is_apfs_snapshot ... ok
[INFO] [stdout] test cleaners::generic::tests::meets_size_filter_none_returns_true ... ok
[INFO] [stdout] test cleaners::generic::tests::meets_age_filter_some_too_new_returns_false ... ok
[INFO] [stdout] test cleaners::generic::tests::meets_size_filter_exact_match_returns_true ... ok
[INFO] [stdout] test cleaners::generic::tests::meets_size_filter_some_below_threshold_returns_false ... ok
[INFO] [stdout] test cleaners::generic::tests::primary_target_display_for_command_returns_none ... ok
[INFO] [stdout] test cleaners::generic::tests::primary_target_display_for_command_with_detect_dir_returns_path ... ok
[INFO] [stdout] test cleaners::generic::tests::primary_target_display_for_delete_dirs_returns_first_path ... ok
[INFO] [stdout] test cleaners::generic::tests::with_config_no_match_for_name_leaves_cleaner_unchanged ... ok
[INFO] [stdout] test cleaners::generic::tests::with_config_older_than_days_filters_detect_results ... ok
[INFO] [stdout] test cleaners::gradle::tests::gradle_detect_does_not_delete ... ok
[INFO] [stdout] test cleaners::gradle::tests::gradle_clean_dry_run_does_not_delete ... ok
[INFO] [stdout] test cleaners::gradle::tests::gradle_find_old_caches_single_version_returns_empty ... ok
[INFO] [stdout] test cleaners::generic::tests::detect_includes_primary_target_when_verbose ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_rejects_dotdot_traversal ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_rejects_empty ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_rejects_private_tmp ... ok
[INFO] [stdout] test cleaners::gradle::tests::gradle_find_old_caches_varying_digit_counts ... ok
[INFO] [stdout] test cleaners::gradle::tests::gradle_find_old_caches_skip_non_version_names ... ok
[INFO] [stdout] test cleaners::gradle::tests::jetbrains_detect_does_not_delete ... ok
[INFO] [stdout] test cleaners::gradle::tests::jetbrains_clean_dry_run_does_not_delete ... ok
[INFO] [stdout] test cleaners::gradle::tests::jetbrains_find_old_caches_old_versions_are_returned ... ok
[INFO] [stdout] test cleaners::gradle::tests::jetbrains_find_old_caches_single_version_per_ide_returns_empty ... ok
[INFO] [stdout] test cleaners::gradle::tests::jetbrains_clean_uses_trash_true ... ok
[INFO] [stdout] test cleaners::gradle::tests::gradle_clean_uses_trash_true ... ok
[INFO] [stdout] test cleaners::gradle::tests::jetbrains_find_old_caches_non_parseable_names_skipped ... ok
[INFO] [stdout] test cleaners::huggingface::tests::clean_dry_run_uses_cli_when_tool_available ... ok
[INFO] [stdout] test cleaners::huggingface::tests::cache_dir_uses_safe_default_when_hf_home_is_unsafe ... ok
[INFO] [stdout] test cleaners::huggingface::tests::cache_dir_uses_safe_default_when_hf_home_is_tmp ... ok
[INFO] [stdout] test cleaners::huggingface::tests::clean_uses_cli_when_tool_available ... ok
[INFO] [stdout] test cleaners::huggingface::tests::clean_dry_run_does_not_delete ... ok
[INFO] [stdout] test cleaners::huggingface::tests::detect_returns_not_found_when_dir_missing ... ok
[INFO] [stdout] test cleaners::huggingface::tests::detect_returns_pruneable_when_cache_exists ... ok
[INFO] [stdout] test cleaners::ios_backup::tests::clean_dry_run_does_not_delete_backup_directories ... ok
[INFO] [stdout] test cleaners::ios_backup::tests::clean_dry_run_returns_zero_bytes_freed ... ok
[INFO] [stdout] test cleaners::ios_backup::tests::clean_when_backup_dir_absent_returns_zero ... ok
[INFO] [stdout] test cleaners::apfs_snapshot::tests::parse_two_snapshot_lines_returns_two_names ... ok
[INFO] [stdout] test cleaners::browser::tests::find_old_versions_skips_symlinks ... ok
[INFO] [stdout] test cleaners::generic::tests::is_safe_delete_target_canonicalize_fallback_rejects_dotdot ... ok
[INFO] [stdout] test cleaners::library_logs::tests::classify_entry_no_reasons ... ok
[INFO] [stdout] test cleaners::generic::tests::meets_size_filter_some_above_threshold_returns_true ... ok
[INFO] [stdout] test cleaners::ios_backup::tests::detect_returns_pruneable_when_backups_present ... ok
[INFO] [stdout] test cleaners::generic::tests::meets_age_filter_none_returns_true ... ok
[INFO] [stdout] test cleaners::ios_backup::tests::detect_name_is_ios_backup ... ok
[INFO] [stdout] test cleaners::gradle::tests::jetbrains_find_old_caches_multiple_ides_independent_retention ... ok
[INFO] [stdout] test cleaners::ios_backup::tests::detect_returns_not_found_when_dir_absent ... ok
[INFO] [stdout] test cleaners::library_logs::tests::clean_via_trait_processes_entries_with_interactive ... ok
[INFO] [stdout] test cleaners::library_logs::tests::dot_entries_excluded ... ok
[INFO] [stdout] test cleaners::library_logs::tests::clean_all_via_opts_processes_all_entries ... ok
[INFO] [stdout] test cleaners::library_logs::tests::oversized_entry_triggers_large_reason ... ok
[INFO] [stdout] test cleaners::ios_backup::tests::detect_returns_clean_when_backup_dir_is_empty ... ok
[INFO] [stdout] test cleaners::library_logs::tests::entry_under_threshold_has_no_reason ... ok
[INFO] [stdout] test cleaners::library_logs::tests::scan_missing_dir_returns_empty ... ok
[INFO] [stdout] test cleaners::library_logs::tests::stale_entry_triggers_stale_reason ... ok
[INFO] [stdout] test cleaners::library_logs::tests::skip_dirs_excluded ... ok
[INFO] [stdout] test cleaners::library_logs::tests::classify_entry_oversized_only ... ok
[INFO] [stdout] test cleaners::library_logs::tests::classify_entry_stale_only ... ok
[INFO] [stdout] test cleaners::library_logs::tests::zero_size_entry_skipped ... ok
[INFO] [stdout] test cleaners::library_logs::tests::future_mtime_does_not_trigger_stale ... ok
[INFO] [stdout] test cleaners::log::tests::detect_returns_clean_when_no_old_logs ... ok
[INFO] [stdout] test cleaners::log::tests::find_old_logs_missing_dir_returns_empty ... ok
[INFO] [stdout] test cleaners::log::tests::detect_primary_target_is_none_when_verbose ... ok
[INFO] [stdout] test cleaners::log::tests::is_older_than_boundary_under ... ok
[INFO] [stdout] test cleaners::log::tests::detect_uses_physical_blocks ... ok
[INFO] [stdout] test cleaners::log::tests::is_older_than_just_under_threshold_is_not_older ... ok
[INFO] [stdout] test cleaners::log::tests::is_older_than_boundary_over ... ok
[INFO] [stdout] test cleaners::log::tests::is_older_than_now_is_not_older ... ok
[INFO] [stdout] test cleaners::log::tests::is_older_than_missing_metadata_returns_false ... ok
[INFO] [stdout] test cleaners::log::tests::is_older_than_zero_days_never_older ... ok
[INFO] [stdout] test cleaners::log::tests::is_older_than_symlink_does_not_panic ... ok
[INFO] [stdout] test cleaners::cargo::tests::detect_includes_primary_target_when_verbose ... ok
[INFO] [stdout] test cleaners::mise::tests::parse_active_versions_empty ... ok
[INFO] [stdout] test cleaners::mise::tests::parse_active_versions_tab_separated ... ok
[INFO] [stdout] test cleaners::mise::tests::clean_handles_mise_ls_current_failure_gracefully ... ok
[INFO] [stdout] test cleaners::mise::tests::parse_active_versions_space_separated ... ok
[INFO] [stdout] test cleaners::mise::tests::parse_active_versions_multiple_tools ... ok
[INFO] [stdout] test cleaners::mise::tests::detect_and_clean_consistent_on_mise_not_found ... ok
[INFO] [stdout] test cleaners::mise::tests::parse_tools_section_empty_content_returns_empty ... ok
[INFO] [stdout] test cleaners::mise::tests::parse_tools_section_second_section_ends_tools ... ok
[INFO] [stdout] test cleaners::mise::tests::parse_tools_section_toolchain_not_confused_with_tools ... ok
[INFO] [stdout] test cleaners::mise::tests::scan_pinned_versions_malformed_toml_does_not_panic ... ok
[INFO] [stdout] test cleaners::mise::tests::parse_toml_kv_empty_line_returns_none ... ok
[INFO] [stdout] test cleaners::mise::tests::scan_pinned_versions_no_config_files_returns_empty ... ok
[INFO] [stdout] test cleaners::mise::tests::scan_pinned_versions_project_mise_toml_is_read ... ok
[INFO] [stdout] test cleaners::mise::tests::unused_versions_all_active_returns_empty ... ok
[INFO] [stdout] test cleaners::mise::tests::unused_versions_excludes_active ... ok
[INFO] [stdout] test cleaners::mise::tests::parse_toml_kv_comment_line_returns_none ... ok
[INFO] [stdout] test cleaners::ollama::tests::list_models_parses_ollama_output ... ok
[INFO] [stdout] test cleaners::mise::tests::unused_versions_pinned_is_protected ... ok
[INFO] [stdout] test cleaners::ollama::tests::parse_model_size_gb ... ok
[INFO] [stdout] test cleaners::mise::tests::unused_versions_skips_non_directories ... ok
[INFO] [stdout] test cleaners::ollama::tests::parse_model_size_mb ... ok
[INFO] [stdout] test cleaners::pre_commit::tests::cache_dir_uses_safe_default_when_pre_commit_home_is_unsafe ... ok
[INFO] [stdout] test cleaners::pre_commit::tests::clean_dry_run_does_not_delete ... ok
[INFO] [stdout] test cleaners::pre_commit::tests::cache_dir_uses_safe_default_when_xdg_cache_is_unsafe ... ok
[INFO] [stdout] test cleaners::pre_commit::tests::clean_dry_run_uses_cli_when_tool_available ... ok
[INFO] [stdout] test cleaners::pre_commit::tests::clean_uses_cli_when_tool_available ... ok
[INFO] [stdout] test cleaners::pre_commit::tests::detect_returns_not_found_when_dir_missing ... ok
[INFO] [stdout] test cleaners::pre_commit::tests::detect_returns_pruneable_when_cache_exists ... ok
[INFO] [stdout] test cleaners::pre_commit::tests::detect_uses_xdg_cache_home_unconditionally ... ok
[INFO] [stdout] test cleaners::rustup::tests::detect_measures_actual_toolchain_dirs ... ok
[INFO] [stdout] test cleaners::rustup::tests::detect_returns_clean_when_all_active ... ok
[INFO] [stdout] test cleaners::rustup::tests::parse_toolchains_active_only ... ok
[INFO] [stdout] test cleaners::uv::tests::detect_measures_full_cache_dir ... ok
[INFO] [stdout] test cleaners::uv::tests::detect_old_indexes_missing_dir_returns_empty ... ok
[INFO] [stdout] test cleaners::uv::tests::detect_old_indexes_returns_all_but_highest ... ok
[INFO] [stdout] test cleaners::uv::tests::detect_old_indexes_single_version_returns_empty ... ok
[INFO] [stdout] test cleaners::uv::tests::detect_old_indexes_skips_regular_files ... ok
[INFO] [stdout] test cleaners::uv::tests::detect_old_indexes_skips_symlinks ... ok
[INFO] [stdout] test cleaners::uv::tests::detect_returns_not_found_when_cache_missing ... ok
[INFO] [stdout] test cleaners::uv::tests::parse_simple_version_invalid ... ok
[INFO] [stdout] test cleaners::uv::tests::parse_simple_version_valid ... ok
[INFO] [stdout] test cleaners::mise::tests::parse_tools_section_with_tools_returns_parsed_entries ... ok
[INFO] [stdout] test cleaners::mise::tests::scan_pinned_versions_global_config_is_read ... ok
[INFO] [stdout] test cleaner::tests::is_skippable_error_resource_busy_in_unrelated_error ... ok
[INFO] [stdout] test cleaners::huggingface::tests::clean_returns_error_when_cli_fails ... ok
[INFO] [stdout] test cleaners::custom::tests::clean_deletes_contents_not_root ... FAILED
[INFO] [stdout] test cleaners::huggingface::tests::clean_fallback_deletes_dir ... ok
[INFO] [stdout] test cleaners::xcode::tests::detect_not_found_when_missing ... ok
[INFO] [stdout] test cleaners::pre_commit::tests::clean_returns_error_when_cli_fails ... ok
[INFO] [stdout] test cleaners::xcode::tests::from_str_derived_data_variants ... ok
[INFO] [stdout] test cleaners::xcode::tests::is_xcode_running_reflects_pgrep_result ... ok
[INFO] [stdout] test cleaners::xcode::tests::from_str_archives ... ok
[INFO] [stdout] test cleaners::xcode::tests::detect_pruneable_when_content_exists ... ok
[INFO] [stdout] test cleaners::xcode::tests::from_str_invalid_returns_none ... ok
[INFO] [stdout] test cleaners::xcode::tests::clean_selected_subcategory_only_deletes_that_one ... ok
[INFO] [stdout] test cleaners::pre_commit::tests::clean_fallback_deletes_dir ... ok
[INFO] [stdout] test cleaners::xcode::tests::subcategory_all_returns_two ... ok
[INFO] [stdout] test cleaners::xcode::tests::subcategory_path_derived_data ... ok
[INFO] [stdout] test cleaners::xcode::tests::subcategory_path_archives ... ok
[INFO] [stdout] test cleaners::xcode::tests::detect_subcategories_returns_correct_sizes ... ok
[INFO] [stdout] test config::tests::config_default_suppress_is_false ... ok
[INFO] [stdout] test cleaners::xcode::tests::sub_targets_returns_only_existing_subcategories ... ok
[INFO] [stdout] test config::tests::config_default_trash_mode_is_true ... ok
[INFO] [stdout] test command::tests::run_tool_not_found_returns_error ... ok
[INFO] [stdout] test config::tests::config_loads_deep_suppress_true ... ok
[INFO] [stdout] test config::tests::config_loads_suppress_true ... ok
[INFO] [stdout] test cleaners::xcode::tests::display_name_is_readable ... ok
[INFO] [stdout] test config::tests::exclude_parsed_from_config ... ok
[INFO] [stdout] test config::tests::expand_tilde_absolute_unchanged ... ok
[INFO] [stdout] test config::tests::expand_tilde_home_relative ... ok
[INFO] [stdout] test config::tests::expand_tilde_tilde_alone ... ok
[INFO] [stdout] test config::tests::extra_log_target_loaded ... ok
[INFO] [stdout] test config::tests::invalid_toml_returns_error ... ok
[INFO] [stdout] test config::tests::keep_days_from_config ... ok
[INFO] [stdout] test config::tests::load_from_path_invalid_returns_error ... ok
[INFO] [stdout] test command::tests::timeout_error_includes_manual_command_hint ... ok
[INFO] [stdout] test config::tests::load_from_path_works ... ok
[INFO] [stdout] test config::tests::missing_file_returns_defaults ... ok
[INFO] [stdout] test config::tests::load_from_path_missing_returns_default ... ok
[INFO] [stdout] test config::tests::per_cleaner_default_is_empty ... ok
[INFO] [stdout] test config::tests::per_cleaner_larger_than_mb_parsed ... ok
[INFO] [stdout] test command::tests::run_captures_stderr ... ok
[INFO] [stdout] test config::tests::per_cleaner_missing_returns_none ... ok
[INFO] [stdout] test context::tests::dry_run_defaults_to_false ... ok
[INFO] [stdout] test config::tests::per_cleaner_multiple_filters ... ok
[INFO] [stdout] test config::tests::per_cleaner_older_than_days_parsed ... ok
[INFO] [stdout] test context::tests::set_dry_run_true_makes_is_dry_run_true ... ok
[INFO] [stdout] test context::tests::set_verbose_false_makes_is_verbose_false ... ok
[INFO] [stdout] test context::tests::set_verbose_true_makes_is_verbose_true ... ok
[INFO] [stdout] test context::tests::verbose_defaults_to_false ... ok
[INFO] [stdout] test explorer::tests::apply_top_larger_than_len_returns_all ... ok
[INFO] [stdout] test explorer::tests::apply_top_limits_to_n_largest ... ok
[INFO] [stdout] test explorer::tests::apply_top_none_returns_all_sorted ... ok
[INFO] [stdout] test explorer::tests::collect_entries_classifies_managed_correctly ... ok
[INFO] [stdout] test explorer::tests::collect_entries_sums_first_level_dirs ... ok
[INFO] [stdout] test explorer::tests::collect_entries_unmanaged_has_none ... ok
[INFO] [stdout] test explorer::tests::collect_entries_excludes_empty_dirs ... ok
[INFO] [stdout] test explorer::tests::default_roots_contains_all_four ... ok
[INFO] [stdout] test explorer::tests::collect_entries_missing_root_returns_empty ... ok
[INFO] [stdout] test explorer::tests::explore_results_excludes_zero_size ... ok
[INFO] [stdout] test explorer::tests::explore_results_splits_managed_and_unmanaged ... ok
[INFO] [stdout] test explorer::tests::is_managed_brew_exact ... ok
[INFO] [stdout] test explorer::tests::is_managed_playwright_exact_prefix_not_matched ... ok
[INFO] [stdout] test explorer::tests::is_managed_playwright_prefix_glob ... ok
[INFO] [stdout] test explorer::tests::explore_results_top_applied_per_section ... ok
[INFO] [stdout] test explorer::tests::is_managed_unknown_dir_returns_none ... ok
[INFO] [stdout] test explorer::tests::is_managed_uv_cache_returns_target ... ok
[INFO] [stdout] test format::tests::dir_size_empty_dir_returns_zero ... ok
[INFO] [stdout] test format::tests::dir_size_measures_physical_blocks_not_logical_len ... ok
[INFO] [stdout] test format::tests::dir_size_missing_path_returns_zero ... ok
[INFO] [stdout] test format::tests::dir_size_sums_multiple_files ... ok
[INFO] [stdout] test format::tests::format_bytes_b ... ok
[INFO] [stdout] test format::tests::dir_size_does_not_follow_symlinks ... ok
[INFO] [stdout] test format::tests::format_bytes_gb ... ok
[INFO] [stdout] test format::tests::format_bytes_kb ... ok
[INFO] [stdout] test format::tests::format_bytes_mb ... ok
[INFO] [stdout] test cleaners::cargo::tests::detect_omits_primary_target_when_not_verbose ... ok
[INFO] [stdout] test cleaners::gradle::tests::gradle_find_old_caches_old_versions_returned ... ok
[INFO] [stdout] test cleaners::gradle::tests::jetbrains_find_old_caches_empty_dir_returns_empty ... ok
[INFO] [stdout] test hint::tests::base_path_app_support ... ok
[INFO] [stdout] test hint::tests::base_path_caches ... ok
[INFO] [stdout] test hint::tests::base_path_logs ... ok
[INFO] [stdout] test cleaners::log::tests::find_old_logs_excludes_dev_log ... ok
[INFO] [stdout] test cleaners::mise::tests::parse_toml_kv_no_equals_returns_none ... ok
[INFO] [stdout] test cleaners::mise::tests::parse_toml_kv_valid_line_returns_key_value ... ok
[INFO] [stdout] test cleaners::mise::tests::parse_tools_section_devtools_not_confused_with_tools ... ok
[INFO] [stdout] test cleaners::xcode::tests::sub_targets_filters_zero_size_entries ... ok
[INFO] [stdout] test config::tests::config_loads_trash_mode_true ... ok
[INFO] [stdout] test config::tests::default_exclude_is_empty ... ok
[INFO] [stdout] test config::tests::default_keep_days_is_7 ... ok
[INFO] [stdout] test explorer::tests::default_roots_contains_library_caches ... ok
[INFO] [stdout] test hint::tests::collect_hints_aggregates_vscode_dirs ... ok
[INFO] [stdout] test hint::tests::collect_hints_excludes_skip_entries ... ok
[INFO] [stdout] test hint::tests::collect_hints_filters_below_threshold ... ok
[INFO] [stdout] test hint::tests::collect_hints_includes_logs ... ok
[INFO] [stdout] test hint::tests::print_hints_empty_produces_no_output ... ok
[INFO] [stdout] test history::tests::compute_stats_aggregation ... ok
[INFO] [stdout] test history::tests::compute_stats_empty ... ok
[INFO] [stdout] test history::tests::compute_stats_entries_sorted_by_timestamp_desc ... ok
[INFO] [stdout] test history::tests::format_stats_last_truncates ... ok
[INFO] [stdout] test history::tests::format_stats_output ... ok
[INFO] [stdout] test hint::tests::offer_auto_clean_prompts_for_non_running_hints ... ok
[INFO] [stdout] test hint::tests::collect_hints_sets_running_flag ... ok
[INFO] [stdout] test hint::tests::collect_hints_limits_to_top5 ... ok
[INFO] [stdout] test history::tests::append_multiple_entries ... ok
[INFO] [stdout] test hint::tests::offer_auto_clean_skips_auto_clean_when_user_answers_n ... ok
[INFO] [stdout] test history::tests::append_and_load_roundtrip ... ok
[INFO] [stdout] test history::tests::format_stats_uses_unicode_by_default ... ok
[INFO] [stdout] test history::tests::format_stats_no_unicode_uses_ascii ... ok
[INFO] [stdout] test history::tests::load_missing_file_returns_empty ... ok
[INFO] [stdout] test interactive::tests::build_selection_items_mixed_cleaners ... ok
[INFO] [stdout] test interactive::tests::build_selection_items_single_cleaner_no_sub ... ok
[INFO] [stdout] test interactive::tests::build_selection_items_with_sub_targets ... ok
[INFO] [stdout] test interactive::tests::compute_selected_total_cleaner_without_sub ... ok
[INFO] [stdout] test interactive::tests::compute_selected_total_mixed_selection ... ok
[INFO] [stdout] test progress::tests::build_reporter_deep_suppress_wins_over_suppress ... ok
[INFO] [stdout] test interactive::tests::compute_selected_total_with_sub_category ... ok
[INFO] [stdout] test progress::tests::build_reporter_default_verbose ... ok
[INFO] [stdout] test progress::tests::deep_suppress_reporter_hides_spinner ... ok
[INFO] [stdout] test progress::tests::format_speed_shows_mb_per_sec ... ok
[INFO] [stdout] test progress::tests::deep_suppress_reporter_progress_is_noop ... ok
[INFO] [stdout] test progress::tests::build_reporter_suppress_shows_spinner ... ok
[INFO] [stdout] test progress::tests::format_speed_zero_bytes_returns_empty ... ok
[INFO] [stdout] test progress::tests::format_speed_zero_elapsed_returns_empty ... ok
[INFO] [stdout] test progress::tests::merge_flags_cli_suppress_or_config ... ok
[INFO] [stdout] test progress::tests::merge_flags_deep_wins_over_suppress ... ok
[INFO] [stdout] test progress::tests::suppress_reporter_progress_is_noop ... ok
[INFO] [stdout] test progress::tests::suppress_reporter_shows_spinner ... ok
[INFO] [stdout] test history::tests::load_corrupted_file_returns_empty ... ok
[INFO] [stdout] test progress::tests::verbose_progress_lifecycle ... ok
[INFO] [stdout] test progress::tests::merge_flags_config_suppress_applied ... ok
[INFO] [stdout] test progress::tests::verbose_progress_shows_spinner ... ok
[INFO] [stdout] test tests::run_clean_target_cancelled_returns_ok_zero ... ok
[INFO] [stdout] test progress::tests::with_spinner_result_returns_error ... ok
[INFO] [stdout] test progress::tests::with_spinner_returns_value ... ok
[INFO] [stdout] test trash::tests::delete_path_in_normal_mode_removes_directory ... ok
[INFO] [stdout] test trash::tests::delete_path_in_normal_mode_removes_file ... ok
[INFO] [stdout] test trash::tests::is_trash_mode_reflects_set_trash_mode ... ok
[INFO] [stdout] test trash::tests::delete_path_defaults_to_trash_mode ... ok
[INFO] [stdout] test trash::tests::delete_path_in_trash_mode_removes_file_from_source ... ok
[INFO] [stdout] test progress::tests::with_spinner_result_returns_ok ... ok
[INFO] [stdout] test tests::run_clean_target_skipped_entries_do_not_panic ... ok
[INFO] [stdout] test trash::tests::is_trash_mode_defaults_to_true ... ok
[INFO] [stdout] test trash::tests::delete_path_in_trash_mode_returns_error_on_failure ... ok
[INFO] [stdout] test command::tests::run_long_command_respects_timeout ... ok
[INFO] [stdout] test command::tests::run_successful_command_returns_output ... ok
[INFO] [stdout] test progress::tests::format_speed_small_values ... ok
[INFO] [stdout] test hint::tests::auto_clean_skips_relaunch_for_slack ... ok
[INFO] [stdout] test hint::tests::auto_clean_deletes_paths_after_quit ... ok
[INFO] [stdout] test hint::tests::auto_clean_relaunches_when_configured ... ok
[INFO] [stdout] test hint::tests::offer_auto_clean_calls_auto_clean_when_user_answers_y ... ok
[INFO] [stdout] test history::tests::append_history_truncates_to_max_entries ... ok
[INFO] [stdout] test hint::tests::auto_clean_skips_if_quit_times_out ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- cleaners::custom::tests::clean_deletes_contents_not_root stdout ----
[INFO] [stdout] my-cache: path "/tmp/.tmpBNlzNW/my-cache" is not safe to delete, skipping
[INFO] [stdout] 
[INFO] [stdout] thread 'cleaners::custom::tests::clean_deletes_contents_not_root' (3141) panicked at src/cleaners/custom.rs:191:9:
[INFO] [stdout] contents must be deleted
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x555f91b220c1 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x555f91b220c1 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x555f91b220c1 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x555f91b220c1 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x555f91b3978a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x555f91b3978a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x555f91b2751c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x555f91b2751c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x555f91afb436 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x555f91afb436 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x555f91b178b9 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x555f91a1d4d0 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x555f91a1d4d0 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x555f91b17a72 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x555f91b17a72 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x555f91afb514 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:681:13
[INFO] [stdout]   16:     0x555f91af2289 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x555f91afc66d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x555f91b39f8c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x555f919229c9 - sasurahime[ead840e3455d942d]::cleaners::custom::tests::clean_deletes_contents_not_root
[INFO] [stdout]                                at /opt/rustwide/workdir/src/cleaners/custom.rs:191:9
[INFO] [stdout]   20:     0x555f91915607 - sasurahime[ead840e3455d942d]::cleaners::custom::tests::clean_deletes_contents_not_root::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/cleaners/custom.rs:178:41
[INFO] [stdout]   21:     0x555f9186fde6 - <sasurahime[ead840e3455d942d]::cleaners::custom::tests::clean_deletes_contents_not_root::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x555f91a1080b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x555f91a1080b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x555f91a1de55 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x555f91a1de55 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x555f91a1de55 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   27:     0x555f91a1de55 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x555f91a1de55 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x555f91a1de55 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x555f91a1de55 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x555f91a18904 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x555f91a18904 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x555f91a20fa2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x555f91a20fa2 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x555f91a20fa2 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   36:     0x555f91a20fa2 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x555f91a20fa2 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x555f91a20fa2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x555f91a20fa2 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x555f91b20fbf - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   41:     0x555f91b20fbf - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   42:     0x74d370389aa4 - <unknown>
[INFO] [stdout]   43:     0x74d370416a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     cleaners::custom::tests::clean_deletes_contents_not_root
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 345 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.26s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin sasurahime`
[INFO] running `Command { std: "docker" "inspect" "f31ae22450c8a0a488216615c6957b82151177e1237475e792d53b72dafffd98", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f31ae22450c8a0a488216615c6957b82151177e1237475e792d53b72dafffd98", kill_on_drop: false }`
[INFO] [stdout] f31ae22450c8a0a488216615c6957b82151177e1237475e792d53b72dafffd98
