[INFO] fetching crate tpu 6.0.0...
[INFO] testing tpu-6.0.0 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate tpu 6.0.0 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate tpu 6.0.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate tpu 6.0.0
[INFO] tweaked toml for crates.io crate tpu 6.0.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate tpu 6.0.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate tpu 6.0.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded globazog v0.2.0
[INFO] [stderr]   Downloaded gix-chunk v0.7.3
[INFO] [stderr]   Downloaded gix-ignore v0.21.1
[INFO] [stderr]   Downloaded gix-actor v0.41.2
[INFO] [stderr]   Downloaded gix-quote v0.7.2
[INFO] [stderr]   Downloaded gix-lock v23.0.1
[INFO] [stderr]   Downloaded gix-bitmap v0.3.3
[INFO] [stderr]   Downloaded gix-shallow v0.12.1
[INFO] [stderr]   Downloaded gix-validate v0.11.3
[INFO] [stderr]   Downloaded gix-hashtable v0.15.2
[INFO] [stderr]   Downloaded gix-config-value v0.18.1
[INFO] [stderr]   Downloaded mallard v0.1.0
[INFO] [stderr]   Downloaded gix-error v0.2.5
[INFO] [stderr]   Downloaded gix-commitgraph v0.37.1
[INFO] [stderr]   Downloaded gix-attributes v0.33.2
[INFO] [stderr]   Downloaded gix-traverse v0.59.0
[INFO] [stderr]   Downloaded gix-utils v0.3.5
[INFO] [stderr]   Downloaded kstring v2.0.4
[INFO] [stderr]   Downloaded gix-submodule v0.32.0
[INFO] [stderr]   Downloaded gix-date v0.15.6
[INFO] [stderr]   Downloaded gix-packetline v0.21.5
[INFO] [stderr]   Downloaded gix-command v0.9.2
[INFO] [stderr]   Downloaded gix-glob v0.26.1
[INFO] [stderr]   Downloaded gix-refspec v0.43.0
[INFO] [stderr]   Downloaded gix-revwalk v0.33.0
[INFO] [stderr]   Downloaded gix-hash v0.25.1
[INFO] [stderr]   Downloaded gix-discover v0.53.0
[INFO] [stderr]   Downloaded gix-worktree-stream v0.34.0
[INFO] [stderr]   Downloaded gix-path v0.12.4
[INFO] [stderr]   Downloaded gix-fs v0.21.2
[INFO] [stderr]   Downloaded gix-worktree v0.54.0
[INFO] [stderr]   Downloaded gix-tempfile v23.0.2
[INFO] [stderr]   Downloaded gix-url v0.36.2
[INFO] [stderr]   Downloaded gix-revision v0.47.0
[INFO] [stderr]   Downloaded gix-pathspec v0.18.1
[INFO] [stderr]   Downloaded maybe-async v0.2.11
[INFO] [stderr]   Downloaded chardetng v0.1.17
[INFO] [stderr]   Downloaded gix-object v0.62.0
[INFO] [stderr]   Downloaded gix-features v0.48.1
[INFO] [stderr]   Downloaded gix-filter v0.32.0
[INFO] [stderr]   Downloaded gix-protocol v0.63.0
[INFO] [stderr]   Downloaded redwing v0.4.0
[INFO] [stderr]   Downloaded gix-index v0.53.0
[INFO] [stderr]   Downloaded gix-config v0.58.0
[INFO] [stderr]   Downloaded gix-ref v0.65.0
[INFO] [stderr]   Downloaded gix-transport v0.57.2
[INFO] [stderr]   Downloaded gix-odb v0.82.0
[INFO] [stderr]   Downloaded gix-diff v0.65.0
[INFO] [stderr]   Downloaded gix-pack v0.72.0
[INFO] [stderr]   Downloaded harrier v0.3.1
[INFO] [stderr]   Downloaded gix v0.85.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ad0618b9a3494fa4e45cf7d5a870abace90b9ee634706bbc25fe073e4874aa66
[INFO] running `Command { std: "docker" "start" "ad0618b9a3494fa4e45cf7d5a870abace90b9ee634706bbc25fe073e4874aa66", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ad0618b9a3494fa4e45cf7d5a870abace90b9ee634706bbc25fe073e4874aa66", 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" "ad0618b9a3494fa4e45cf7d5a870abace90b9ee634706bbc25fe073e4874aa66" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ad0618b9a3494fa4e45cf7d5a870abace90b9ee634706bbc25fe073e4874aa66", 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" "ad0618b9a3494fa4e45cf7d5a870abace90b9ee634706bbc25fe073e4874aa66" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling gix-trace v0.1.21
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling tinyvec v1.12.0
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling zlib-rs v0.6.7
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]    Compiling sha1 v0.10.7
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling hash32 v0.3.1
[INFO] [stderr]    Compiling sha1-checked v0.10.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling gix-utils v0.3.5
[INFO] [stderr]    Compiling prodash v31.0.0
[INFO] [stderr]    Compiling faster-hex v0.10.0
[INFO] [stderr]    Compiling jiff-core v0.1.0
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling memmap2 v0.9.11
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling nonempty v0.12.0
[INFO] [stderr]    Compiling unicode-bom v2.0.3
[INFO] [stderr]    Compiling kstring v2.0.4
[INFO] [stderr]    Compiling gix-sec v0.14.2
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling jiff v0.2.35
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling filetime v0.2.29
[INFO] [stderr]    Compiling clru v0.6.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling arc-swap v1.9.2
[INFO] [stderr]    Compiling bstr v1.13.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling gix-validate v0.11.3
[INFO] [stderr]    Compiling gix-error v0.2.5
[INFO] [stderr]    Compiling gix-path v0.12.4
[INFO] [stderr]    Compiling gix-chunk v0.7.3
[INFO] [stderr]    Compiling gix-features v0.48.1
[INFO] [stderr]    Compiling gix-quote v0.7.2
[INFO] [stderr]    Compiling gix-hash v0.25.1
[INFO] [stderr]    Compiling gix-fs v0.21.2
[INFO] [stderr]    Compiling gix-date v0.15.6
[INFO] [stderr]    Compiling gix-actor v0.41.2
[INFO] [stderr]    Compiling gix-hashtable v0.15.2
[INFO] [stderr]    Compiling gix-object v0.62.0
[INFO] [stderr]    Compiling gix-tempfile v23.0.2
[INFO] [stderr]    Compiling gix-lock v23.0.1
[INFO] [stderr]    Compiling gix-glob v0.26.1
[INFO] [stderr]    Compiling gix-commitgraph v0.37.1
[INFO] [stderr]    Compiling gix-command v0.9.2
[INFO] [stderr]    Compiling gix-revwalk v0.33.0
[INFO] [stderr]    Compiling gix-ref v0.65.0
[INFO] [stderr]    Compiling gix-attributes v0.33.2
[INFO] [stderr]    Compiling gix-url v0.36.2
[INFO] [stderr]    Compiling gix-config-value v0.18.1
[INFO] [stderr]    Compiling gix-packetline v0.21.5
[INFO] [stderr]    Compiling gix-traverse v0.59.0
[INFO] [stderr]    Compiling gix-revision v0.47.0
[INFO] [stderr]    Compiling gix-bitmap v0.3.3
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling gix-refspec v0.43.0
[INFO] [stderr]    Compiling gix-index v0.53.0
[INFO] [stderr]    Compiling gix-transport v0.57.2
[INFO] [stderr]    Compiling gix-config v0.58.0
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling gix-pathspec v0.18.1
[INFO] [stderr]    Compiling gix-pack v0.72.0
[INFO] [stderr]    Compiling gix-ignore v0.21.1
[INFO] [stderr]    Compiling maybe-async v0.2.11
[INFO] [stderr]    Compiling gix-shallow v0.12.1
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling xxhash-rust v0.8.18
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling mallard v0.1.0
[INFO] [stderr]    Compiling redwing v0.4.0
[INFO] [stderr]    Compiling gix-protocol v0.63.0
[INFO] [stderr]    Compiling gix-worktree v0.54.0
[INFO] [stderr]    Compiling gix-odb v0.82.0
[INFO] [stderr]    Compiling gix-submodule v0.32.0
[INFO] [stderr]    Compiling gix-filter v0.32.0
[INFO] [stderr]    Compiling gix-discover v0.53.0
[INFO] [stderr]    Compiling gix-diff v0.65.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.13
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling chardetng v0.1.17
[INFO] [stderr]    Compiling tpu v6.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling gix v0.85.0
[INFO] [stderr]    Compiling harrier v0.3.1
[INFO] [stderr]    Compiling globazog v0.2.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stdout] warning: function `decode_text_strict` is never used
[INFO] [stdout]    --> src/encoding.rs:195:15
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub(crate) fn decode_text_strict<'a>(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_line`, `end_line`, `new_line_count`, and `new_text` are never read
[INFO] [stdout]    --> src/cmd/replace.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub struct ChangedRegion {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 198 |     /// 1-based inclusive starting line of the matched span in the original file.
[INFO] [stdout] 199 |     pub start_line: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub end_line: usize,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub new_line_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub new_text: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChangedRegion` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_text_strict` is never used
[INFO] [stdout]    --> src/encoding.rs:195:15
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub(crate) fn decode_text_strict<'a>(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 3m 46s
[INFO] running `Command { std: "docker" "inspect" "ad0618b9a3494fa4e45cf7d5a870abace90b9ee634706bbc25fe073e4874aa66", 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" "ad0618b9a3494fa4e45cf7d5a870abace90b9ee634706bbc25fe073e4874aa66" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stdout] warning: function `decode_text_strict` is never used
[INFO] [stdout]    --> src/encoding.rs:195:15
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub(crate) fn decode_text_strict<'a>(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_line`, `end_line`, `new_line_count`, and `new_text` are never read
[INFO] [stdout]    --> src/cmd/replace.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub struct ChangedRegion {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 198 |     /// 1-based inclusive starting line of the matched span in the original file.
[INFO] [stdout] 199 |     pub start_line: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub end_line: usize,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub new_line_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub new_text: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChangedRegion` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_text_strict` is never used
[INFO] [stdout]    --> src/encoding.rs:195:15
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub(crate) fn decode_text_strict<'a>(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling tpu v6.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `decode_text_strict` is never used
[INFO] [stdout]    --> src/encoding.rs:195:15
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub(crate) fn decode_text_strict<'a>(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_text_strict` is never used
[INFO] [stdout]    --> src/encoding.rs:195:15
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub(crate) fn decode_text_strict<'a>(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 46s
[INFO] running `Command { std: "docker" "inspect" "ad0618b9a3494fa4e45cf7d5a870abace90b9ee634706bbc25fe073e4874aa66", 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" "ad0618b9a3494fa4e45cf7d5a870abace90b9ee634706bbc25fe073e4874aa66" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: function `decode_text_strict` is never used
[INFO] [stderr]    --> src/encoding.rs:195:15
[INFO] [stderr]     |
[INFO] [stderr] 195 | pub(crate) fn decode_text_strict<'a>(
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `tpu` (lib) generated 1 warning
[INFO] [stderr] warning: `tpu` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr] warning: fields `start_line`, `end_line`, `new_line_count`, and `new_text` are never read
[INFO] [stderr]    --> src/cmd/replace.rs:199:9
[INFO] [stderr]     |
[INFO] [stderr] 197 | pub struct ChangedRegion {
[INFO] [stderr]     |            ------------- fields in this struct
[INFO] [stderr] 198 |     /// 1-based inclusive starting line of the matched span in the original file.
[INFO] [stderr] 199 |     pub start_line: usize,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 202 |     pub end_line: usize,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 206 |     pub new_line_count: usize,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 209 |     pub new_text: String,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ChangedRegion` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `decode_text_strict` is never used
[INFO] [stderr]    --> src/encoding.rs:195:15
[INFO] [stderr]     |
[INFO] [stderr] 195 | pub(crate) fn decode_text_strict<'a>(
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `tpu` (bin "tpu" test) generated 1 warning (1 duplicate)
[INFO] [stderr] warning: `tpu` (bin "tpu") generated 2 warnings
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.17s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/tpu-eda087174fb57453)
[INFO] [stdout] 
[INFO] [stdout] running 1133 tests
[INFO] [stdout] test atomic_create_new_tests::refuses_to_clobber_existing_file ... ok
[INFO] [stdout] test cmd::copy::tests::copy_one_same_file_is_skipped_not_copied ... ok
[INFO] [stdout] test cmd::copy::tests::canon_nearest_of_nonexistent_tail_canonicalises_existing_ancestor ... ok
[INFO] [stdout] test cmd::copy::tests::copy_one_overwrites_when_requested ... ok
[INFO] [stdout] test atomic_create_new_tests::refuses_to_clobber_file_created_after_call_starts_conceptually ... ok
[INFO] [stdout] test atomic_create_new_tests::creates_parent_directories ... ok
[INFO] [stdout] test cmd::copy::tests::canon_nearest_of_existing_path_is_its_canonical_form ... ok
[INFO] [stdout] test cmd::copy::tests::is_glob_recognizes_each_indicator_character_independently ... ok
[INFO] [stdout] test cmd::copy::tests::is_same_file_false_when_one_path_does_not_exist ... ok
[INFO] [stdout] test cmd::copy::tests::is_same_file_true_for_identical_path_false_for_different_files ... ok
[INFO] [stdout] test cmd::copy::tests::recursive_copy_rejects_destination_strictly_inside_source ... ok
[INFO] [stdout] test cmd::copy::tests::copy_one_skips_existing_destination_without_overwrite ... ok
[INFO] [stdout] test cmd::copy::tests::single_file_copy_creates_missing_parent_directories ... ok
[INFO] [stdout] test cmd::copy::tests::single_file_copy_propagates_errors_even_in_warn_mode ... ok
[INFO] [stdout] test cmd::copy::tests::glob_copy_rejects_existing_non_directory_destination ... ok
[INFO] [stdout] test cmd::copy::tests::single_file_copy_to_bare_filename_does_not_error_on_empty_parent ... ok
[INFO] [stdout] test atomic_create_new_tests::creates_new_file ... ok
[INFO] [stdout] test cmd::copy::tests::normalize_lexical_resolves_parent_and_current_dir_components ... ok
[INFO] [stdout] test cmd::copy::tests::is_same_file_true_via_different_relative_paths_to_same_file ... ok
[INFO] [stdout] test cmd::create::tests::creates_new_file_utf8_lf ... ok
[INFO] [stdout] test cmd::create::tests::creates_parent_directories ... ok
[INFO] [stdout] test cmd::create::tests::honours_crlf_line_ending_override ... ok
[INFO] [stdout] test cmd::create::tests::map_atomic_create_error_non_already_exists_uses_generic_message ... ok
[INFO] [stdout] test cmd::create::tests::map_atomic_create_error_already_exists_uses_friendly_message ... ok
[INFO] [stdout] test cmd::create::tests::recovered_stranded_backup_counts_as_existing ... ok
[INFO] [stdout] test cmd::doctor::tests::allow_marker_does_not_suppress_encoding_invalid ... ok
[INFO] [stdout] test cmd::doctor::tests::annotate_matches_handles_match_at_very_end_of_text ... ok
[INFO] [stdout] test cmd::doctor::tests::annotate_replacement_char_matches_reports_precise_multiline_positions_and_eof ... ok
[INFO] [stdout] test cmd::doctor::tests::binary_extensions_skipped ... ok
[INFO] [stdout] test cmd::doctor::tests::diagnose_clean_utf8_file_returns_none ... ok
[INFO] [stdout] test cmd::create::tests::refuses_to_overwrite_existing_file ... ok
[INFO] [stdout] test cmd::doctor::tests::a_peel_that_left_matches_behind_is_still_unresolved ... ok
[INFO] [stdout] test cmd::doctor::tests::diagnose_file_respects_declared_working_tree_encoding_over_sniffed_utf8 ... ok
[INFO] [stdout] test cmd::doctor::tests::allow_marker_on_genuinely_clean_file_reports_nothing ... ok
[INFO] [stdout] test cmd::doctor::tests::annotate_matches_reports_precise_positions_across_multiple_lines ... ok
[INFO] [stdout] test cmd::doctor::tests::allow_marker_suppresses_diagnosis_but_reports_the_suppression ... ok
[INFO] [stdout] test cmd::doctor::tests::diagnose_invalid_utf8_returns_invalid_issue_with_no_matches ... ok
[INFO] [stdout] test cmd::doctor::tests::empty_file_is_clean ... ok
[INFO] [stdout] test cmd::doctor::tests::expand_paths_direct_call_delegates_to_fail_policy ... ok
[INFO] [stdout] test cmd::doctor::tests::diagnose_mojibake_file_returns_issue_with_line_col ... ok
[INFO] [stdout] test cmd::doctor::tests::expand_paths_warn_mode_all_missing_returns_error ... ok
[INFO] [stdout] test cmd::doctor::tests::expand_paths_warn_mode_partial_missing_succeeds ... ok
[INFO] [stdout] test cmd::doctor::tests::expand_paths_warn_mode_single_missing_path_still_errors ... ok
[INFO] [stdout] test cmd::copy::tests::glob_copy_report_counts_are_exact ... ok
[INFO] [stdout] test cmd::copy::tests::glob_copy_matching_nothing_is_an_error ... ok
[INFO] [stdout] test cmd::doctor::tests::git_eol_mismatch_is_detected_without_fix ... ok
[INFO] [stdout] test cmd::doctor::tests::git_eol_no_mismatch_when_endings_match ... ok
[INFO] [stdout] test cmd::doctor::tests::git_eol_repairs_utf16_with_fix ... ok
[INFO] [stdout] test cmd::doctor::tests::human_output_reports_eol_mismatch_for_an_encoding_invalid_file ... ok
[INFO] [stdout] test cmd::doctor::tests::issue_is_problem_distinguishes_mojibake_and_invalid ... ok
[INFO] [stdout] test cmd::doctor::tests::git_eol_fix_normalises_and_writes_bak ... ok
[INFO] [stdout] test cmd::doctor::tests::peel_errors_when_recovered_text_is_not_representable_in_git_encoding ... ok
[INFO] [stdout] test cmd::doctor::tests::options_default_is_human_no_fix_not_quiet ... ok
[INFO] [stdout] test cmd::doctor::tests::report_total_issues_counts_only_problems ... ok
[INFO] [stdout] test cmd::doctor::tests::peel_preserves_declared_utf16_and_reports_automatic_eol_repair ... ok
[INFO] [stdout] test cmd::doctor::tests::expand_paths_empty_existing_directory_succeeds_with_zero_files ... ok
[INFO] [stdout] test cmd::doctor::tests::fix_peel_leaves_clean_files_alone ... ok
[INFO] [stdout] test cmd::doctor::tests::run_with_policy_counts_eol_repair_without_peel_fix_requested ... ok
[INFO] [stdout] test cmd::doctor::tests::glob_spec_matches_files_under_cwd ... ok
[INFO] [stdout] test cmd::doctor::tests::run_with_policy_counts_only_successfully_diagnosed_files ... ok
[INFO] [stdout] test cmd::doctor::tests::fix_peel_repairs_double_mojibake_and_writes_bak ... ok
[INFO] [stdout] test cmd::doctor::tests::gitignore_skips_matching_paths ... ok
[INFO] [stdout] test cmd::doctor::tests::run_default_path_walks_cwd_and_reports_summary ... ok
[INFO] [stdout] test cmd::doctor::tests::run_json_mode_emits_parseable_document ... ok
[INFO] [stdout] test cmd::doctor::tests::unresolved_issues_excludes_what_was_repaired ... ok
[INFO] [stdout] test cmd::edit::tests::binary_adjacent_ranges_ok ... ok
[INFO] [stdout] test cmd::edit::tests::binary_bak_created ... ok
[INFO] [stdout] test cmd::edit::tests::binary_delete_first ... ok
[INFO] [stdout] test cmd::edit::tests::binary_delete_last ... ok
[INFO] [stdout] test cmd::doctor::tests::run_quiet_suppresses_per_file_lines_in_human_mode ... ok
[INFO] [stdout] test cmd::edit::tests::binary_delete_all ... ok
[INFO] [stdout] test cmd::edit::tests::binary_delete_middle ... ok
[INFO] [stdout] test cmd::doctor::tests::run_with_policy_diagnoses_each_file_against_its_own_repository ... ok
[INFO] [stdout] test cmd::edit::tests::binary_empty_ops ... ok
[INFO] [stdout] test cmd::edit::tests::binary_insert_past_eof ... ok
[INFO] [stdout] test cmd::edit::tests::binary_invalid_range_start_gt_end ... ok
[INFO] [stdout] test cmd::edit::tests::binary_multi_op_composable ... ok
[INFO] [stdout] test cmd::edit::tests::binary_out_of_range_end ... ok
[INFO] [stdout] test cmd::edit::tests::binary_order_independence ... ok
[INFO] [stdout] test cmd::edit::tests::binary_overlapping_ranges ... ok
[INFO] [stdout] test cmd::edit::tests::binary_single_byte_file ... ok
[INFO] [stdout] test cmd::edit::tests::binary_insert_at_start ... ok
[INFO] [stdout] test cmd::edit::tests::binary_insert_middle ... ok
[INFO] [stdout] test cmd::edit::tests::binary_splice_grow ... ok
[INFO] [stdout] test cmd::doctor::tests::skipped_dir_recognises_target_and_git ... ok
[INFO] [stdout] test cmd::edit::tests::decimal_zero ... ok
[INFO] [stdout] test cmd::edit::tests::binary_splice_shrink ... ok
[INFO] [stdout] test cmd::edit::tests::decimal_invalid ... ok
[INFO] [stdout] test cmd::edit::tests::ed10_binary_delete_n_to_dollar ... ok
[INFO] [stdout] test cmd::edit::tests::decimal_plain ... ok
[INFO] [stdout] test cmd::edit::tests::ed10_line_delete_n_to_dollar ... ok
[INFO] [stdout] test cmd::edit::tests::ed10_line_delete_dollar ... ok
[INFO] [stdout] test cmd::edit::tests::binary_insert_at_end ... ok
[INFO] [stdout] test cmd::edit::tests::ed10_binary_insert_dollar ... ok
[INFO] [stdout] test cmd::doctor::tests::run_with_policy_empty_directory_succeeds_with_no_issues ... ok
[INFO] [stdout] test cmd::edit::tests::ed10_line_insert_dollar ... ok
[INFO] [stdout] test cmd::edit::tests::ed4_binary_validate_fails_file_unchanged ... ok
[INFO] [stdout] test cmd::edit::tests::ed4_binary_validate_passes ... ok
[INFO] [stdout] test cmd::edit::tests::ed4_text_validate_fails_file_unchanged ... ok
[INFO] [stdout] test cmd::edit::tests::ed5_diff_on_delete ... ok
[INFO] [stdout] test cmd::edit::tests::ed5_diff_on_insert ... ok
[INFO] [stdout] test cmd::edit::tests::ed5_diff_on_splice ... ok
[INFO] [stdout] test cmd::edit::tests::ed4_text_validate_passes ... ok
[INFO] [stdout] test cmd::edit::tests::ed5_binary_diff_skipped ... ok
[INFO] [stdout] test cmd::edit::tests::ed5_crlf_diff_normalised ... ok
[INFO] [stdout] test cmd::edit::tests::ed6_base64_splice ... ok
[INFO] [stdout] test cmd::edit::tests::ed6_hex_with_dashes_insert ... ok
[INFO] [stdout] test cmd::edit::tests::ed6_encoded_splice ... ok
[INFO] [stdout] test cmd::edit::tests::ed6_invalid_base64_error ... ok
[INFO] [stdout] test cmd::edit::tests::ed5_no_diff_when_none ... ok
[INFO] [stdout] test cmd::edit::tests::ed6_invalid_hex_error ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_adjacent_deletes_are_not_overlapping ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_delete_utf16le_removes_whole_line ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_had_bom_is_preserved_after_edit ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_insert_cr_terminated_cli_data_is_normalized ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_insert_eof_leading_newline_no_double_separator ... ok
[INFO] [stdout] test cmd::edit::tests::ed6_hex_splice ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_insert_unterminated_data_forms_line ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_splice_crlf_unterminated_data_forms_line ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_splice_final_line_then_eof_append_no_blank_line ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_delete_numeric_start_past_eof_end_on_empty_file ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_splice_last_unterminated_line_stays_unterminated ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_splice_heterogeneous_override_is_targeted ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_splice_last_terminated_line_keeps_newline ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_splice_interior_unterminated_data_keeps_structure ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_insert_into_empty_file_no_leading_separator ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_total_lines_counts_final_line_without_trailing_newline ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_two_inserts_same_line_coalesce_in_order ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_splice_utf16be_preserves_bom_and_other_lines ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_splice_utf16le_preserves_bom_and_other_lines ... ok
[INFO] [stdout] test cmd::edit::tests::hex_ff ... ok
[INFO] [stdout] test cmd::edit::tests::hex_invalid ... ok
[INFO] [stdout] test cmd::edit::tests::hex_zero ... ok
[INFO] [stdout] test cmd::edit::tests::line_mode_empty_ops ... ok
[INFO] [stdout] test cmd::edit::tests::lm_bak_created ... ok
[INFO] [stdout] test cmd::edit::tests::lm_cr_delete_line ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_insert_bom_like_content_still_prepends_policy_bom ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_splice_preserves_heterogeneous_terminators ... ok
[INFO] [stdout] test cmd::edit::tests::lm_crlf_delete_middle_line ... ok
[INFO] [stdout] test cmd::edit::tests::lm_crlf_insert_line ... ok
[INFO] [stdout] test cmd::edit::tests::lm_lf_delete_last_line_no_nl ... ok
[INFO] [stdout] test cmd::edit::tests::lm_lf_delete_last_line ... ok
[INFO] [stdout] test cmd::edit::tests::lm_crlf_splice_line ... ok
[INFO] [stdout] test cmd::edit::tests::lm_lf_delete_first_line ... ok
[INFO] [stdout] test cmd::edit::tests::lm_lf_insert_before_middle ... ok
[INFO] [stdout] test cmd::edit::tests::lm_lf_delete_middle_line ... ok
[INFO] [stdout] test cmd::edit::tests::lm_lf_splice_shrink ... ok
[INFO] [stdout] test cmd::edit::tests::lm_lf_splice_multi_to_one ... ok
[INFO] [stdout] test cmd::edit::tests::ed_line_insert_empty_file_required_bom_is_written ... ok
[INFO] [stdout] test cmd::edit::tests::lm_lf_delete_multi_line ... ok
[INFO] [stdout] test cmd::edit::tests::lm_lf_insert_before_first ... ok
[INFO] [stdout] test cmd::edit::tests::lm_overlapping_ranges ... ok
[INFO] [stdout] test cmd::edit::tests::pbp_hex ... ok
[INFO] [stdout] test cmd::edit::tests::lm_line_ending_override ... ok
[INFO] [stdout] test cmd::edit::tests::pbr_eof_single ... ok
[INFO] [stdout] test cmd::edit::tests::lm_multi_op_composable ... ok
[INFO] [stdout] test cmd::edit::tests::pbr_n_to_dollar ... ok
[INFO] [stdout] test cmd::edit::tests::lm_order_independence ... ok
[INFO] [stdout] test cmd::edit::tests::lm_out_of_range ... ok
[INFO] [stdout] test cmd::edit::tests::pbp_dollar ... ok
[INFO] [stdout] test cmd::edit::tests::pbp_eof ... ok
[INFO] [stdout] test cmd::edit::tests::pbr_dollar_single ... ok
[INFO] [stdout] test cmd::edit::tests::pln_valid ... ok
[INFO] [stdout] test cmd::edit::tests::pln_zero ... ok
[INFO] [stdout] test cmd::edit::tests::plr_dollar_single ... ok
[INFO] [stdout] test cmd::edit::tests::plr_eof_single ... ok
[INFO] [stdout] test cmd::edit::tests::plr_n_to_dollar ... ok
[INFO] [stdout] test cmd::edit::tests::pln_dollar_sentinel ... ok
[INFO] [stdout] test cmd::edit::tests::pln_eof_ci ... ok
[INFO] [stdout] test cmd::edit::tests::plr_n_to_eof ... ok
[INFO] [stdout] test cmd::edit::tests::plr_pair ... ok
[INFO] [stdout] test cmd::edit::tests::plr_pair_equal_is_ok ... ok
[INFO] [stdout] test cmd::edit::tests::plr_start_after_end ... ok
[INFO] [stdout] test cmd::edit::tests::range_invalid_bad_end ... ok
[INFO] [stdout] test cmd::edit::tests::plr_zero ... ok
[INFO] [stdout] test cmd::edit::tests::plr_single ... ok
[INFO] [stdout] test cmd::edit::tests::range_large_decimal ... ok
[INFO] [stdout] test cmd::edit::tests::range_mixed_hex_decimal ... ok
[INFO] [stdout] test cmd::edit::tests::range_invalid_empty ... ok
[INFO] [stdout] test cmd::edit::tests::range_pair_hex ... ok
[INFO] [stdout] test cmd::edit::tests::range_single_decimal ... ok
[INFO] [stdout] test cmd::edit::tests::range_pair_adjacent ... ok
[INFO] [stdout] test cmd::edit::tests::range_uppercase_hex ... ok
[INFO] [stdout] test cmd::find::tests::after_context_emits_lines_after_match ... ok
[INFO] [stdout] test cmd::edit::tests::range_invalid_not_a_number ... ok
[INFO] [stdout] test cmd::edit::tests::range_single_hex ... ok
[INFO] [stdout] test cmd::edit::tests::range_single_zero ... ok
[INFO] [stdout] test cmd::edit::tests::range_pair_decimal ... ok
[INFO] [stdout] test cmd::find::tests::before_context_emits_lines_before_match ... ok
[INFO] [stdout] test cmd::find::tests::count_invert_nomatch_counts_all_lines ... ok
[INFO] [stdout] test cmd::find::tests::empty_file_count_mode_emits_zero ... ok
[INFO] [stdout] test cmd::find::tests::empty_file_returns_zero_matches ... ok
[INFO] [stdout] test cmd::find::tests::before_context_skips_lines_at_or_before_last_emitted ... ok
[INFO] [stdout] test cmd::find::tests::expand_paths_absolute_dir_suggests_glob_param ... ok
[INFO] [stdout] test cmd::find::tests::context_deduplication_no_double_emit ... ok
[INFO] [stdout] test cmd::find::tests::and_mode_requires_all_patterns ... ok
[INFO] [stdout] test cmd::find::tests::expand_paths_dot_alone_suggests_star_star ... ok
[INFO] [stdout] test cmd::find::tests::count_mode_emits_number_only ... ok
[INFO] [stdout] test cmd::find::tests::after_context_emits_exactly_the_requested_count ... ok
[INFO] [stdout] test cmd::find::tests::expand_paths_glob_passes_through_file_specs ... ok
[INFO] [stdout] test cmd::find::tests::expand_paths_dot_slash_suggests_star_star ... ok
[INFO] [stdout] test cmd::find::tests::invert_excludes_matching_lines ... ok
[INFO] [stdout] test cmd::find::tests::expand_paths_glob_rejects_glob_in_path_spec ... ok
[INFO] [stdout] test cmd::find::tests::literal_pattern_treats_metacharacters_as_literals ... ok
[INFO] [stdout] test cmd::find::tests::line_match_uses_colon_context_uses_dash ... ok
[INFO] [stdout] test cmd::find::tests::expand_paths_relative_dir_suggests_subdir_glob ... FAILED
[INFO] [stdout] test cmd::find::tests::invert_and_all_match_emits_lines_failing_at_least_one_pattern ... ok
[INFO] [stdout] test cmd::find::tests::match_on_last_line_after_context_is_empty ... ok
[INFO] [stdout] test cmd::find::tests::match_on_line_1_before_context_is_empty ... ok
[INFO] [stdout] test cmd::find::tests::numbers_flag_prefixes_line_number ... ok
[INFO] [stdout] test cmd::find::tests::or_mode_matches_either_pattern ... ok
[INFO] [stdout] test cmd::find::tests::run_with_policy_warn_mode_all_missing_returns_error ... ok
[INFO] [stdout] test cmd::find::tests::no_separator_when_before_context_bridges_the_gap ... ok
[INFO] [stdout] test cmd::find::tests::separator_emitted_between_non_adjacent_groups_before_context_only ... ok
[INFO] [stdout] test cmd::find::tests::separator_emitted_between_non_adjacent_groups ... ok
[INFO] [stdout] test cmd::find::tests::simple_match_finds_all_matching_lines ... ok
[INFO] [stdout] test cmd::find::tests::spec_is_glob_detects_each_metacharacter_independently ... ok
[INFO] [stdout] test cmd::head::tests::run_bytes_nonzero_requested_on_empty_file_emits_nothing ... ok
[INFO] [stdout] test cmd::find::tests::specific_pattern_finds_single_line ... ok
[INFO] [stdout] test cmd::head::tests::run_bytes_zero_requested_on_nonempty_file_emits_nothing ... ok
[INFO] [stdout] test cmd::find::tests::multiline_caret_dollar_at_lf_boundaries ... ok
[INFO] [stdout] test cmd::find::tests::no_match_returns_zero ... ok
[INFO] [stdout] test cmd::head::tests::run_lines_no_trailing_newline_all_requested_omits_final_terminator ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_12_source_no_trailing_newline ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_10_near_end_section ... ok
[INFO] [stdout] test cmd::find::tests::single_line_file_no_terminator ... ok
[INFO] [stdout] test cmd::head::tests::run_lines_no_trailing_newline_partial_request_terminates_last_printed_line ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_11_dest_missing_trailing_newline ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_3_dest_created ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_2_no_end_pattern_eof ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_1_basic_move_with_header ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_4_appended_to_existing_dest ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_5_single_line_block ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_e1_start_pattern_not_found ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_6_crlf_preserved ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_e3_invalid_end_regex ... ok
[INFO] [stdout] test cmd::read::tests::binary_read_all_256_bytes_round_trip ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_7_no_dest_header ... ok
[INFO] [stdout] test cmd::read::tests::binary_read_backslash_doubled ... ok
[INFO] [stdout] test cmd::read::tests::binary_read_empty_file ... ok
[INFO] [stdout] test cmd::read::tests::binary_read_full_range_equivalent_to_none ... ok
[INFO] [stdout] test cmd::read::tests::binary_read_high_bytes_escaped ... ok
[INFO] [stdout] test cmd::read::tests::binary_read_lf_escaped ... ok
[INFO] [stdout] test cmd::read::tests::binary_read_no_trailing_newline ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_e2_invalid_start_regex ... ok
[INFO] [stdout] test cmd::read::tests::binary_read_partial_range ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_9_first_section_moved ... ok
[INFO] [stdout] test cmd::move_block::tests::mb_8_first_end_match_wins ... ok
[INFO] [stdout] test cmd::read::tests::binary_read_plain_ascii ... ok
[INFO] [stdout] test cmd::read::tests::compute_crc32_empty_slice ... ok
[INFO] [stdout] test cmd::read::tests::compute_crc32_empty_via_eof ... ok
[INFO] [stdout] test cmd::read::tests::binary_read_range_clamps_to_file_end ... ok
[INFO] [stdout] test cmd::read::tests::binary_read_range_start_beyond_file_is_empty ... ok
[INFO] [stdout] test cmd::read::tests::binary_read_single_byte ... ok
[INFO] [stdout] test cmd::read::tests::compute_crc32_known_hello ... ok
[INFO] [stdout] test cmd::read::tests::compute_crc32_output_is_lowercase ... ok
[INFO] [stdout] test cmd::read::tests::compute_crc32_single_null_byte ... ok
[INFO] [stdout] test cmd::read::tests::compute_crc32_output_is_exactly_8_hex_chars ... ok
[INFO] [stdout] test cmd::read::tests::compute_crc32_prefix_subset ... ok
[INFO] [stdout] test cmd::read::tests::compute_empty_specs_returns_empty_vec ... ok
[INFO] [stdout] test cmd::read::tests::compute_eof_and_absolute_produce_same_digest ... ok
[INFO] [stdout] test cmd::read::tests::compute_eof_sentinel_dollar_sign ... ok
[INFO] [stdout] test cmd::read::tests::compute_end_exactly_at_file_length_is_ok ... ok
[INFO] [stdout] test cmd::read::tests::compute_end_exceeds_file_length_is_error ... ok
[INFO] [stdout] test cmd::read::tests::compute_eof_sentinel_resolves_to_file_length ... ok
[INFO] [stdout] test cmd::read::tests::compute_first_bad_spec_aborts_before_second ... ok
[INFO] [stdout] test cmd::read::tests::compute_md5_empty_slice ... ok
[INFO] [stdout] test cmd::read::tests::compute_md5_empty_via_eof ... ok
[INFO] [stdout] test cmd::read::tests::compute_md5_known_hello ... ok
[INFO] [stdout] test cmd::read::tests::compute_md5_output_is_exactly_32_hex_chars ... ok
[INFO] [stdout] test cmd::read::tests::compute_md5_output_is_lowercase ... ok
[INFO] [stdout] test cmd::read::tests::compute_md5_single_null_byte ... ok
[INFO] [stdout] test cmd::read::tests::compute_md5_suffix_subset ... ok
[INFO] [stdout] test cmd::read::tests::compute_start_exceeds_file_length_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_bytes_minimum_valid ... ok
[INFO] [stdout] test cmd::read::tests::compute_multiple_specs_in_order ... ok
[INFO] [stdout] test cmd::read::tests::compute_start_after_end_is_error ... ok
[INFO] [stdout] test cmd::read::tests::compute_start_equals_end_is_ok_empty_slice ... ok
[INFO] [stdout] test cmd::read::tests::parse_bytes_non_numeric_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_bytes_pair_equal_is_ok ... ok
[INFO] [stdout] test cmd::read::tests::parse_bytes_range ... ok
[INFO] [stdout] test cmd::read::tests::parse_bytes_range_with_spaces ... ok
[INFO] [stdout] test cmd::read::tests::parse_bytes_single ... ok
[INFO] [stdout] test cmd::read::tests::parse_bytes_start_after_end_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_bytes_zero_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_bytes_zero_start_in_range_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_crc32_zero_to_eof_dollar ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_empty_algo_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_empty_string_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_crc32_hex_range ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_eof_keyword_case_insensitive ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_crc32_zero_to_eof_keyword ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_hex_uppercase_prefix ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_large_hex_offset ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_md5_decimal_range ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_missing_range_separator_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_non_numeric_end_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_missing_colon_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_nonzero_start_decimal ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_single_byte_range ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_start_can_be_zero ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_non_numeric_start_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_bare_separator_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_hash_unknown_algo_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_embedded_nul_is_error ... ok
[INFO] [stdout] test cmd::find::tests::expand_paths_glob_walks_absolute_directory ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_missing_end_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_empty_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_equal_bounds ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_float_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_hex_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_minimum_valid ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_negative_end_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_negative_range_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_missing_start_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_negative_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_non_ascii_digits_are_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_non_numeric_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_overflow_is_error_not_panic ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_range ... ok
[INFO] [stdout] test cmd::find::tests::expand_paths_glob_matches_no_files_errors ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_zero_bounds_in_range_are_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_zero_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_single ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_triple_range_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_usize_max_parses ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_whitespace_only_is_error ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_range_with_spaces ... ok
[INFO] [stdout] test cmd::read::tests::parse_lines_reversed_is_error ... ok
[INFO] [stdout] test cmd::read::tests::resolve_accepts_every_in_bounds_range ... ok
[INFO] [stdout] test cmd::read::tests::resolve_end_usize_max_is_clamped ... ok
[INFO] [stdout] test cmd::read::tests::resolve_any_range_on_empty_file_is_error ... ok
[INFO] [stdout] test cmd::read::tests::resolve_first_line ... ok
[INFO] [stdout] test cmd::read::tests::resolve_end_one_past_eof_is_clamped ... ok
[INFO] [stdout] test cmd::read::tests::resolve_end_past_eof_is_clamped ... ok
[INFO] [stdout] test cmd::read::tests::resolve_error_message_reports_actual_line_count ... ok
[INFO] [stdout] test cmd::read::tests::resolve_error_message_pluralizes_line_count ... ok
[INFO] [stdout] test cmd::doctor::tests::expand_paths_recognizes_each_glob_character_independently ... ok
[INFO] [stdout] test cmd::read::tests::resolve_full_range_matches_none ... ok
[INFO] [stdout] test cmd::read::tests::resolve_none_on_empty_file_is_empty_range ... ok
[INFO] [stdout] test cmd::read::tests::resolve_reversed_range_is_error_before_bounds_check ... ok
[INFO] [stdout] test cmd::read::tests::resolve_single_line_file ... ok
[INFO] [stdout] test cmd::read::tests::resolve_last_line ... ok
[INFO] [stdout] test cmd::read::tests::resolve_start_one_past_eof_is_error ... ok
[INFO] [stdout] test cmd::read::tests::resolve_reversed_range_is_error ... ok
[INFO] [stdout] test cmd::read::tests::resolve_start_far_past_eof_is_error ... ok
[INFO] [stdout] test cmd::read::tests::resolve_zero_end_is_error ... ok
[INFO] [stdout] test cmd::read::tests::resolve_zero_start_on_empty_file_is_error ... ok
[INFO] [stdout] test cmd::read::tests::resolve_zero_zero_is_error ... ok
[INFO] [stdout] test cmd::read::tests::resolve_none_selects_whole_file ... ok
[INFO] [stdout] test cmd::read::tests::text_read_blank_lines_are_counted ... ok
[INFO] [stdout] test cmd::read::tests::resolve_interior_range ... ok
[INFO] [stdout] test cmd::read::tests::text_read_bom_not_emitted_when_range_is_invalid ... ok
[INFO] [stdout] test cmd::read::tests::resolve_last_line_with_open_ended_request_is_clamped ... ok
[INFO] [stdout] test cmd::read::tests::text_read_crlf_last_line_ok ... ok
[INFO] [stdout] test cmd::read::tests::text_read_crlf_start_past_eof_is_error ... ok
[INFO] [stdout] test cmd::read::tests::text_read_empty_file_line_one_is_error ... ok
[INFO] [stdout] test cmd::read::tests::resolve_never_yields_an_out_of_bounds_slice_index ... ok
[INFO] [stdout] test cmd::read::tests::text_read_no_trailing_newline_past_eof_is_error ... ok
[INFO] [stdout] test cmd::read::tests::text_read_every_line_individually_addressable ... ok
[INFO] [stdout] test cmd::read::tests::resolve_start_usize_max_is_error_not_overflow ... ok
[INFO] [stdout] test cmd::read::tests::resolve_zero_start_is_error ... ok
[INFO] [stdout] test cmd::read::tests::text_read_empty_file_whole ... ok
[INFO] [stdout] test cmd::read::tests::text_read_last_line ... ok
[INFO] [stdout] test cmd::read::tests::text_read_reversed_range_is_error ... ok
[INFO] [stdout] test cmd::read::tests::text_read_end_past_eof_is_clamped ... ok
[INFO] [stdout] test cmd::read::tests::text_read_no_trailing_newline_last_line_ok ... ok
[INFO] [stdout] test cmd::read::tests::text_read_single_line ... ok
[INFO] [stdout] test cmd::read::tests::text_read_start_usize_max_is_error ... ok
[INFO] [stdout] test cmd::read::tests::text_read_start_one_past_eof_is_error ... ok
[INFO] [stdout] test cmd::readex::binary_tests::binary_readex_empty_file ... ok
[INFO] [stdout] test cmd::read::tests::text_read_start_past_eof_writes_nothing ... ok
[INFO] [stdout] test cmd::readex::binary_tests::binary_readex_has_trailing_newline ... ok
[INFO] [stdout] test cmd::readex::binary_tests::binary_readex_output_is_7bit_clean ... ok
[INFO] [stdout] test cmd::readex::binary_tests::binary_readex_high_bytes_escaped ... ok
[INFO] [stdout] test cmd::readex::binary_tests::binary_readex_partial_range ... ok
[INFO] [stdout] test cmd::readex::binary_tests::binary_readex_lf_escaped_not_literal ... ok
[INFO] [stdout] test cmd::readex::binary_tests::binary_readex_plain_ascii ... ok
[INFO] [stdout] test cmd::readex::binary_tests::binary_readex_range_clamps_to_file_end ... ok
[INFO] [stdout] test cmd::readex::binary_tests::binary_readex_range_start_beyond_file_is_empty_line ... ok
[INFO] [stdout] test cmd::readex::tests::readex_all_printable_ascii_passthrough ... ok
[INFO] [stdout] test cmd::readex::tests::readex_backslash_is_doubled ... ok
[INFO] [stdout] test cmd::read::tests::text_read_start_past_eof_is_error_not_panic ... ok
[INFO] [stdout] test cmd::read::tests::text_read_start_past_eof_with_numbers_is_error ... ok
[INFO] [stdout] test cmd::readex::tests::readex_all_named_escape_chars_in_line ... ok
[INFO] [stdout] test cmd::readex::tests::readex_bom_force_prepends_bom ... ok
[INFO] [stdout] test cmd::readex::binary_tests::binary_readex_round_trip_all_bytes ... ok
[INFO] [stdout] test cmd::readex::binary_tests::binary_readex_single_byte ... ok
[INFO] [stdout] test cmd::readex::tests::readex_bom_only_file ... ok
[INFO] [stdout] test cmd::read::tests::text_read_whole_file ... ok
[INFO] [stdout] test cmd::readex::tests::readex_bom_preserve_copies_source_bom ... ok
[INFO] [stdout] test cmd::read::tests::text_read_zero_start_is_error ... ok
[INFO] [stdout] test cmd::readex::tests::readex_empty_file ... ok
[INFO] [stdout] test cmd::readex::tests::readex_bmp_non_ascii_char ... ok
[INFO] [stdout] test cmd::readex::tests::readex_bom_strip_does_not_prepend_bom ... ok
[INFO] [stdout] test cmd::readex::tests::readex_empty_file_bom_strip_emits_no_bom ... ok
[INFO] [stdout] test cmd::readex::tests::readex_empty_file_bom_preserve_emits_no_bom ... ok
[INFO] [stdout] test cmd::readex::tests::readex_empty_file_bom_force_emits_bom ... ok
[INFO] [stdout] test cmd::readex::tests::readex_empty_file_with_range_is_error ... ok
[INFO] [stdout] test cmd::readex::tests::readex_last_line_of_file_without_trailing_newline_ok ... ok
[INFO] [stdout] test cmd::readex::tests::readex_empty_file_without_utf8_never_emits_bom ... ok
[INFO] [stdout] test cmd::readex::tests::readex_bom_preserve_no_bom_in_source ... ok
[INFO] [stdout] test cmd::readex::tests::readex_end_usize_max_is_clamped ... ok
[INFO] [stdout] test cmd::readex::tests::readex_cr_escaped_in_line_content ... ok
[INFO] [stdout] test cmd::readex::tests::readex_lines_single ... ok
[INFO] [stdout] test cmd::readex::tests::readex_lines_range_past_end_is_clamped ... ok
[INFO] [stdout] test cmd::readex::tests::readex_bom_not_emitted_when_range_is_invalid ... ok
[INFO] [stdout] test cmd::readex::tests::readex_mixed_bmp_and_supplementary ... ok
[INFO] [stdout] test cmd::readex::tests::readex_lines_range ... ok
[INFO] [stdout] test cmd::readex::tests::readex_nul_byte_in_content ... ok
[INFO] [stdout] test cmd::readex::tests::readex_empty_file_bom_matches_read_for_every_policy ... ok
[INFO] [stdout] test cmd::readex::tests::readex_single_line_no_trailing_newline ... ok
[INFO] [stdout] test cmd::readex::tests::readex_reversed_range_is_error ... ok
[INFO] [stdout] test cmd::readex::tests::readex_numbers_single_line ... ok
[INFO] [stdout] test cmd::readex::tests::readex_output_is_7bit_clean ... ok
[INFO] [stdout] test cmd::readex::tests::readex_numbers_two_lines ... ok
[INFO] [stdout] test cmd::readex::tests::readex_past_last_line_of_file_without_trailing_newline_is_error ... ok
[INFO] [stdout] test cmd::readex::tests::readex_numbers_with_lines_range ... ok
[INFO] [stdout] test cmd::readex::tests::readex_single_line_with_trailing_newline ... ok
[INFO] [stdout] test cmd::readex::tests::readex_three_lines_no_trailing_newline ... ok
[INFO] [stdout] test cmd::readex::tests::readex_utf8_bom_with_content ... ok
[INFO] [stdout] test cmd::readex::tests::readex_start_past_eof_is_error_not_panic ... ok
[INFO] [stdout] test cmd::readex::tests::readex_two_lines ... ok
[INFO] [stdout] test cmd::readex::tests::readex_start_usize_max_is_error ... ok
[INFO] [stdout] test cmd::readex::tests::readex_start_past_eof_writes_nothing ... ok
[INFO] [stdout] test cmd::render::tests::ensure_parent_dir_is_a_no_op_for_bare_relative_filename ... ok
[INFO] [stdout] test cmd::readex::tests::readex_start_one_past_eof_is_error ... ok
[INFO] [stdout] test cmd::render::tests::escape_keeps_literal_braces ... ok
[INFO] [stdout] test cmd::readex::tests::readex_supplementary_plane_emoji ... ok
[INFO] [stdout] test cmd::render::tests::ensure_parent_dir_is_a_no_op_when_output_already_exists ... ok
[INFO] [stdout] test cmd::render::tests::find_close_skips_several_non_matching_bytes_first ... ok
[INFO] [stdout] test cmd::render::tests::missing_token_errors_by_default ... ok
[INFO] [stdout] test cmd::render::tests::missing_token_empty_substitutes_empty ... ok
[INFO] [stdout] test cmd::render::tests::missing_token_leave_keeps_placeholder ... ok
[INFO] [stdout] test cmd::readex::tests::readex_tab_escaped ... ok
[INFO] [stdout] test cmd::render::tests::find_close_single_brace_not_doubled_is_skipped ... ok
[INFO] [stdout] test cmd::render::tests::parse_var_basic ... ok
[INFO] [stdout] test cmd::render::tests::find_close_finds_close_at_exact_end_of_buffer ... ok
[INFO] [stdout] test cmd::render::tests::render_str_escape_with_no_room_for_second_brace_does_not_panic ... ok
[INFO] [stdout] test cmd::render::tests::render_str_many_escapes_and_multibyte_chars_in_sequence ... ok
[INFO] [stdout] test cmd::render::tests::ensure_parent_dir_creates_missing_nested_parent ... ok
[INFO] [stdout] test cmd::readex::tests::readex_zero_start_is_error ... ok
[INFO] [stdout] test cmd::render::tests::render_str_repeated_missing_token_deduplicates_missing_list ... ok
[INFO] [stdout] test cmd::render::tests::find_close_single_trailing_brace_is_not_found ... ok
[INFO] [stdout] test cmd::render::tests::render_str_empty_policy_counts_each_missing_substitution ... ok
[INFO] [stdout] test cmd::render::tests::parse_var_key_accepts_underscore_and_hyphen ... ok
[INFO] [stdout] test cmd::render::tests::render_str_empty_placeholder_errors ... ok
[INFO] [stdout] test cmd::render::tests::render_str_multibyte_literal_text_is_preserved ... ok
[INFO] [stdout] test cmd::render::tests::render_str_escape_at_end_of_template ... ok
[INFO] [stdout] test cmd::render::tests::run_errors_when_no_template_source_is_given ... ok
[INFO] [stdout] test cmd::render::tests::render_str_single_open_brace_not_doubled_is_literal ... ok
[INFO] [stdout] test cmd::render::tests::render_str_token_name_accepts_underscore_and_hyphen ... ok
[INFO] [stdout] test cmd::render::tests::run_bare_relative_output_with_empty_parent_does_not_error ... ok
[INFO] [stdout] test cmd::render::tests::run_selects_stdin_template_when_only_stdin_is_given ... ok
[INFO] [stdout] test cmd::render::tests::run_creates_missing_nested_parent_directory ... ok
[INFO] [stdout] test cmd::render::tests::render_str_token_name_with_invalid_character_errors ... ok
[INFO] [stdout] test cmd::render::tests::simple_substitution ... ok
[INFO] [stdout] test cmd::render::tests::render_str_trailing_lone_open_brace_is_literal ... ok
[INFO] [stdout] test cmd::render::tests::run_succeeds_when_parent_already_exists ... ok
[INFO] [stdout] test cmd::render::tests::unterminated_brace_is_error ... ok
[INFO] [stdout] test cmd::replace::tests::a_line_ending_override_alone_reports_that_it_would_write ... ok
[INFO] [stdout] test cmd::replace::tests::a_line_ending_override_does_not_exempt_a_batch_from_the_zero_match_refusal ... ok
[INFO] [stdout] test cmd::replace::tests::an_override_with_allow_no_match_still_rewrites_the_terminators ... ok
[INFO] [stdout] test cmd::replace::tests::a_no_op_run_leaves_the_census_unchanged ... ok
[INFO] [stdout] test cmd::replace::tests::changed_lines_carry_both_images_and_both_positions ... ok
[INFO] [stdout] test cmd::replace::tests::an_identity_substitution_reports_that_nothing_was_written ... ok
[INFO] [stdout] test cmd::render::tests::whitespace_in_braces_is_tolerated ... ok
[INFO] [stdout] test cmd::replace::tests::changed_lines_reports_a_pure_insertion_with_no_old_side ... ok
[INFO] [stdout] test cmd::replace::tests::changed_lines_are_not_collected_unless_asked_for ... ok
[INFO] [stdout] test cmd::replace::tests::changed_lines_positions_survive_a_line_count_change_mid_batch ... ok
[INFO] [stdout] test cmd::replace::tests::changed_region_empty_replacement_is_deletion ... ok
[INFO] [stdout] test cmd::replace::tests::changed_lines_reports_a_pure_deletion_with_no_new_side ... ok
[INFO] [stdout] test cmd::replace::tests::changed_lines_respects_its_cap_and_says_when_it_truncated ... ok
[INFO] [stdout] test cmd::replace::tests::changed_lines_does_not_buffer_a_whole_rewrite_to_emit_a_few ... ok
[INFO] [stdout] test cmd::replace::tests::changed_region_multiline_match_and_replacement ... ok
[INFO] [stdout] test cmd::replace::tests::changed_region_single_huge_match_is_not_materialized_over_budget ... ok
[INFO] [stdout] test cmd::replace::tests::a_real_substitution_reports_that_it_wrote ... ok
[INFO] [stdout] test cmd::replace::tests::an_ordinary_substitution_leaves_the_terminator_census_unchanged ... ok
[INFO] [stdout] test cmd::replace::tests::changed_region_match_trailing_newline_does_not_undercount_next_match ... ok
[INFO] [stdout] test cmd::replace::tests::decode_replacement_default_decodes_backslash_t_to_tab ... ok
[INFO] [stdout] test cmd::replace::tests::decode_replacement_default_decodes_backslash_n_to_lf ... ok
[INFO] [stdout] test cmd::replace::tests::count_only_with_no_matches_does_not_promise_a_rewrite ... ok
[INFO] [stdout] test cmd::replace::tests::changed_region_multiple_matches_cumulative_line_numbers ... ok
[INFO] [stdout] test cmd::replace::tests::changed_region_replacement_with_trailing_newline ... ok
[INFO] [stdout] test cmd::replace::tests::count_only_reports_the_census_it_would_produce ... ok
[INFO] [stdout] test cmd::replace::tests::changed_region_single_line_match ... ok
[INFO] [stdout] test cmd::replace::tests::changed_region_text_budget_bounds_retained_text ... ok
[INFO] [stdout] test cmd::replace::tests::decode_replacement_default_decodes_unicode_escape ... ok
[INFO] [stdout] test cmd::replace::tests::decode_replacement_default_decodes_hex_escape ... ok
[INFO] [stdout] test cmd::replace::tests::decode_replacement_default_decodes_double_backslash ... ok
[INFO] [stdout] test cmd::replace::tests::decode_replacement_literal_accepts_unknown_escape ... ok
[INFO] [stdout] test cmd::replace::tests::decode_replacement_literal_keeps_backslash_n_verbatim ... ok
[INFO] [stdout] test cmd::replace::tests::decode_replacement_default_passes_through_plain_ascii ... ok
[INFO] [stdout] test cmd::replace::tests::decode_replacement_default_rejects_unknown_escape ... ok
[INFO] [stdout] test cmd::replace::tests::decode_replacement_default_decodes_long_unicode_escape ... ok
[INFO] [stdout] test cmd::replace::tests::decode_replacement_default_does_not_touch_dollar_capture_refs ... ok
[INFO] [stdout] test cmd::replace::tests::decode_replacement_literal_passes_through_real_newline ... ok
[INFO] [stdout] test cmd::replace::tests::decode_replacement_strips_cr_so_a_crlf_target_cannot_double_it ... ok
[INFO] [stdout] test cmd::replace::tests::diff_header_contains_filename ... ok
[INFO] [stdout] test cmd::replace::tests::diff_multiline_replace ... ok
[INFO] [stdout] test cmd::replace::tests::diff_no_changes_empty_diff_body ... ok
[INFO] [stdout] test cmd::replace::tests::diff_multiple_hunks ... ok
[INFO] [stdout] test cmd::replace::tests::diff_shows_changed_line ... ok
[INFO] [stdout] test cmd::replace::tests::ops_from_json_rejects_a_mistyped_label ... ok
[INFO] [stdout] test cmd::replace::tests::ops_from_json_accepts_the_mcp_ops_array_verbatim ... ok
[INFO] [stdout] test cmd::replace::tests::ops_from_json_rejects_a_stringly_typed_boolean ... ok
[INFO] [stdout] test cmd::replace::tests::ops_from_json_rejects_an_unknown_field ... ok
[INFO] [stdout] test cmd::replace::tests::ops_from_json_rejects_expand_escapes_with_a_format ... ok
[INFO] [stdout] test cmd::replace::tests::previews_run_the_mojibake_guard_the_write_would_run ... ok
[INFO] [stdout] test cmd::replace::tests::outcome_does_not_claim_normalisation_for_an_already_uniform_file ... ok
[INFO] [stdout] test cmd::replace::tests::replace_back_reference_zero ... ok
[INFO] [stdout] test cmd::replace::tests::outcome_reports_that_a_mixed_file_was_homogenised ... ok
[INFO] [stdout] test cmd::replace::tests::ops_from_json_decodes_a_base64_payload ... ok
[INFO] [stdout] test cmd::replace::tests::ops_from_json_rejects_an_empty_array ... ok
[INFO] [stdout] test cmd::replace::tests::ops_from_json_rejects_an_empty_literal_pattern ... ok
[INFO] [stdout] test cmd::replace::tests::ops_from_json_takes_the_replacement_verbatim_by_default ... ok
[INFO] [stdout] test cmd::replace::tests::preview_modes_do_not_refuse_a_zero_match_op ... ok
[INFO] [stdout] test cmd::replace::tests::replace_crlf_file_transparent ... ok
[INFO] [stdout] test cmd::replace::tests::replace_literal_pattern_keeps_dollar_literal ... ok
[INFO] [stdout] test cmd::replace::tests::replace_crlf_multiline_anchor ... ok
[INFO] [stdout] test cmd::replace::tests::replace_group_less_pattern_keeps_dollar_literal ... ok
[INFO] [stdout] test cmd::replace::tests::replace_multiline_end_anchor ... ok
[INFO] [stdout] test cmd::replace::tests::replace_literal_dollar ... ok
[INFO] [stdout] test cmd::replace::tests::replace_multiline ... ok
[INFO] [stdout] test cmd::replace::tests::replace_multiline_start_anchor ... ok
[INFO] [stdout] test cmd::replace::tests::replace_group_less_pattern_dollar_zero_is_literal ... ok
[INFO] [stdout] test cmd::replace::tests::replace_simple_word ... ok
[INFO] [stdout] test cmd::replace::tests::replace_utf16le_line_ending_lf_to_crlf ... ok
[INFO] [stdout] test cmd::replace::tests::replace_multiline_whole_line ... ok
[INFO] [stdout] test cmd::replace::tests::replace_multiple_occurrences ... ok
[INFO] [stdout] test cmd::replace::tests::run_batch_applies_ops_in_order_against_the_evolving_buffer ... ok
[INFO] [stdout] test cmd::replace::tests::replace_utf16le_line_ending_crlf_to_lf ... ok
[INFO] [stdout] test cmd::replace::tests::run_batch_count_only_leaves_the_file_alone ... ok
[INFO] [stdout] test cmd::replace::tests::run_batch_refuses_options_that_are_per_op ... ok
[INFO] [stdout] test cmd::replace::tests::run_batch_allow_no_match_exempts_only_its_own_op ... ok
[INFO] [stdout] test cmd::replace::tests::replace_no_matches ... ok
[INFO] [stdout] test cmd::replace::tests::replace_preserves_bak ... ok
[INFO] [stdout] test cmd::replace::tests::run_batch_rejects_an_empty_op_list ... ok
[INFO] [stdout] test cmd::replace::tests::replace_with_capture_group ... ok
[INFO] [stdout] test cmd::replace::tests::run_batch_previews_do_not_refuse_a_zero_match ... ok
[INFO] [stdout] test cmd::replace::tests::run_batch_refuses_everything_when_one_op_matches_nothing ... ok
[INFO] [stdout] test cmd::setup::tests::block_contains_markers_and_known_tools ... ok
[INFO] [stdout] test cmd::replace::tests::run_batch_validates_every_op_before_touching_the_file ... ok
[INFO] [stdout] test cmd::replace::tests::run_rejects_non_utf8_replacement_bytes ... ok
[INFO] [stdout] test cmd::replace::tests::replace_named_capture_group ... ok
[INFO] [stdout] test cmd::setup::tests::block_includes_mojibake_recovery_guidance ... ok
[INFO] [stdout] test cmd::tail::tests::run_lines_no_trailing_newline_omits_final_terminator_only ... ok
[INFO] [stdout] test cmd::validate::tests::binary_validator_bytes_match_pass ... ok
[INFO] [stdout] test cmd::tail::tests::run_bytes_nonzero_requested_on_empty_file_emits_nothing ... ok
[INFO] [stdout] test cmd::tail::tests::run_bytes_zero_requested_on_nonempty_file_emits_nothing ... ok
[INFO] [stdout] test cmd::replace::tests::text_auto_does_not_normalize_binary_content ... ok
[INFO] [stdout] test cmd::validate::tests::binary_validator_bytes_middle_range_pass ... ok
[INFO] [stdout] test cmd::validate::tests::binary_validator_bytes_out_of_range ... ok
[INFO] [stdout] test cmd::validate::tests::binary_validator_crc32_match_pass ... ok
[INFO] [stdout] test cmd::validate::tests::binary_validator_md5_match_pass ... ok
[INFO] [stdout] test cmd::validate::tests::binary_validator_crc32_mismatch_fail ... ok
[INFO] [stdout] test cmd::validate::tests::binary_validator_crc32_uppercase_accepted ... ok
[INFO] [stdout] test cmd::validate::tests::binary_validator_md5_mismatch_fail ... ok
[INFO] [stdout] test cmd::validate::tests::byte_slice_out_of_bounds ... ok
[INFO] [stdout] test cmd::validate::tests::byte_slice_valid ... ok
[INFO] [stdout] test cmd::validate::tests::byte_slice_lo_equals_hi_is_ok_empty_slice ... ok
[INFO] [stdout] test cmd::validate::tests::hex_bytes_empty ... ok
[INFO] [stdout] test cmd::validate::tests::hex_bytes_invalid_chars ... ok
[INFO] [stdout] test cmd::validate::tests::hex_bytes_multiple ... ok
[INFO] [stdout] test cmd::validate::tests::hex_bytes_odd_length ... ok
[INFO] [stdout] test cmd::validate::tests::hex_bytes_single ... ok
[INFO] [stdout] test cmd::validate::tests::hex_bytes_uppercase ... ok
[INFO] [stdout] test cmd::validate::tests::binary_validator_md5_uppercase_accepted ... ok
[INFO] [stdout] test cmd::validate::tests::line_number_large ... ok
[INFO] [stdout] test cmd::validate::tests::line_number_non_numeric ... ok
[INFO] [stdout] test cmd::validate::tests::hex_bytes_round_trip_known ... ok
[INFO] [stdout] test cmd::validate::tests::byte_slice_inverted ... ok
[INFO] [stdout] test cmd::validate::tests::line_number_one ... ok
[INFO] [stdout] test cmd::validate::tests::line_number_zero_rejected ... ok
[INFO] [stdout] test cmd::validate::tests::offset_end_bad_hi ... ok
[INFO] [stdout] test cmd::validate::tests::offset_end_hex ... ok
[INFO] [stdout] test cmd::validate::tests::offset_end_missing_dash ... ok
[INFO] [stdout] test cmd::validate::tests::offset_end_mixed ... ok
[INFO] [stdout] test cmd::validate::tests::offset_end_bad_lo ... ok
[INFO] [stdout] test cmd::validate::tests::offset_end_same ... ok
[INFO] [stdout] test cmd::validate::tests::offset_end_decimal ... ok
[INFO] [stdout] test cmd::validate::tests::run_all_file_not_found ... ok
[INFO] [stdout] test cmd::validate::tests::run_all_first_fails_returns_error ... ok
[INFO] [stdout] test cmd::validate::tests::selector_crc32_binary_mode ... ok
[INFO] [stdout] test cmd::validate::tests::selector_crc32_text_rejected ... ok
[INFO] [stdout] test cmd::validate::tests::run_all_two_passing_validators ... ok
[INFO] [stdout] test cmd::validate::tests::selector_bytes_binary_mode ... ok
[INFO] [stdout] test cmd::validate::tests::selector_line_binary_rejected ... ok
[INFO] [stdout] test cmd::validate::tests::selector_line_contains_binary_rejected ... ok
[INFO] [stdout] test cmd::validate::tests::selector_line_contains_hex_range ... ok
[INFO] [stdout] test cmd::validate::tests::selector_line_contains_text_mode ... ok
[INFO] [stdout] test cmd::validate::tests::selector_line_text_mode ... ok
[INFO] [stdout] test cmd::validate::tests::selector_line_zero_is_error ... ok
[INFO] [stdout] test cmd::validate::tests::selector_bytes_text_rejected ... ok
[INFO] [stdout] test cmd::validate::tests::selector_md5_binary_mode ... ok
[INFO] [stdout] test cmd::validate::tests::selector_md5_text_rejected ... ok
[INFO] [stdout] test cmd::validate::tests::size_decimal_zero ... ok
[INFO] [stdout] test cmd::validate::tests::size_empty ... ok
[INFO] [stdout] test cmd::validate::tests::size_hex_lower ... ok
[INFO] [stdout] test cmd::validate::tests::size_hex_mixed_case_digits ... ok
[INFO] [stdout] test cmd::validate::tests::selector_unknown ... ok
[INFO] [stdout] test cmd::validate::tests::size_decimal ... ok
[INFO] [stdout] test cmd::validate::tests::size_invalid_hex ... ok
[INFO] [stdout] test cmd::validate::tests::size_hex_upper_prefix ... ok
[INFO] [stdout] test cmd::validate::tests::size_invalid_decimal ... ok
[INFO] [stdout] test cmd::validate::tests::text_validator_line_contains_full_line_pass ... ok
[INFO] [stdout] test cmd::validate::tests::text_validator_line_contains_not_found ... ok
[INFO] [stdout] test cmd::validate::tests::text_validator_line_exact_mismatch_fail ... ok
[INFO] [stdout] test cmd::validate::tests::text_validator_line_out_of_range ... ok
[INFO] [stdout] test cmd::validate::tests::text_validator_line_exact_match_pass ... ok
[INFO] [stdout] test cmd::validate::tests::text_validator_line_contains_pass ... ok
[INFO] [stdout] test cmd::validate::tests::text_validator_line_second_line_pass ... ok
[INFO] [stdout] test cmd::write::tests::detect_target_reports_bom_false_for_plain_file ... ok
[INFO] [stdout] test cmd::write::tests::detect_target_reports_bom_true_for_existing_bom_file ... ok
[INFO] [stdout] test cmd::write::tests::write_binary_all_256_bytes_round_trip ... ok
[INFO] [stdout] test cmd::write::tests::write_binary_creates_bak_file ... ok
[INFO] [stdout] test cmd::validate::tests::text_validator_line_contains_out_of_range ... ok
[INFO] [stdout] test cmd::validate::tests::binary_validator_bytes_mismatch_fail ... ok
[INFO] [stdout] test cmd::write::tests::write_binary_diff_no_change_empty_diff_body ... ok
[INFO] [stdout] test cmd::write::tests::write_binary_creates_new_file_with_raw_bytes ... ok
[INFO] [stdout] test cmd::write::tests::write_binary_creates_missing_parent_dirs ... ok
[INFO] [stdout] test cmd::write::tests::write_binary_diff_header_contains_filename ... ok
[INFO] [stdout] test cmd::write::tests::write_binary_no_encoding_transform ... ok
[INFO] [stdout] test cmd::write::tests::write_creates_new_utf8_lf_file ... ok
[INFO] [stdout] test cmd::write::tests::write_binary_overwrites_existing_file ... ok
[INFO] [stdout] test cmd::write::tests::explicit_line_ending_overrides_discovered_git_policy ... ok
[INFO] [stdout] test cmd::write::tests::write_binary_diff_shows_change ... ok
[INFO] [stdout] test cmd::replace::tests::the_reported_target_is_the_gitattributes_one_in_both_preview_and_write ... ok
[INFO] [stdout] test cmd::write::tests::write_preserves_bak_on_overwrite ... ok
[INFO] [stdout] test cmd::write::tests::write_text_diff_crlf_file_normalizes ... ok
[INFO] [stdout] test cmd::write::tests::write_text_diff_multiple_lines ... ok
[INFO] [stdout] test cmd::write::tests::write_preserve_keeps_bom_without_working_tree_encoding_attribute ... ok
[INFO] [stdout] test cmd::write::tests::write_legacy_git_encoding_is_strict ... ok
[INFO] [stdout] test cmd::write::tests::write_new_file_honours_discovered_git_encoding_and_eol ... ok
[INFO] [stdout] test cmd::replace::tests::zero_match_does_not_apply_automatic_git_eol_policy ... ok
[INFO] [stdout] test cmd::write::tests::write_text_diff_no_change_is_empty ... ok
[INFO] [stdout] test cmd::write::tests::write_text_diff_shows_change ... ok
[INFO] [stdout] test data_format::tests::b64_4_chars_no_pad_decodes_3_bytes ... ok
[INFO] [stdout] test content_digest_tests::missing_file_errors ... ok
[INFO] [stdout] test content_digest_tests::one_byte_change_changes_digest ... ok
[INFO] [stdout] test content_digest_tests::mmap_and_buffered_agree ... ok
[INFO] [stdout] test data_format::tests::b64_empty ... ok
[INFO] [stdout] test cmd::write::tests::write_preserves_crlf_line_ending ... ok
[INFO] [stdout] test content_digest_tests::identical_content_same_digest ... ok
[INFO] [stdout] test content_digest_tests::empty_file_has_stable_token ... ok
[INFO] [stdout] test data_format::tests::b64_hello_world ... ok
[INFO] [stdout] test data_format::tests::b64_man ... ok
[INFO] [stdout] test data_format::tests::b64_mz_header_two_bytes ... ok
[INFO] [stdout] test data_format::tests::b64_one_zero_byte ... ok
[INFO] [stdout] test data_format::tests::b64_three_zero_bytes ... ok
[INFO] [stdout] test data_format::tests::b64_two_zero_bytes ... ok
[INFO] [stdout] test data_format::tests::b64_val_exact_values_for_every_character_class ... ok
[INFO] [stdout] test data_format::tests::b64_whitespace_stripped ... ok
[INFO] [stdout] test data_format::tests::decode_base64_accepts_64char_lines_crlf ... ok
[INFO] [stdout] test data_format::tests::decode_base64_accepts_crlf_line_wrapped_input ... ok
[INFO] [stdout] test data_format::tests::decode_base64_accepts_lf_only_line_wrapped_input ... ok
[INFO] [stdout] test data_format::tests::b64_err_bad_padding_order ... ok
[INFO] [stdout] test data_format::tests::b64_err_invalid_char ... ok
[INFO] [stdout] test data_format::tests::decode_base64_accepts_multiline_crlf_all_bytes ... ok
[INFO] [stdout] test data_format::tests::b64_err_wrong_length_not_mult4 ... ok
[INFO] [stdout] test data_format::tests::decode_base64_pem_empty_lines_ignored ... ok
[INFO] [stdout] test data_format::tests::encode_base64_empty ... ok
[INFO] [stdout] test data_format::tests::encode_base64_pem_96_bytes_exactly_two_full_lines ... ok
[INFO] [stdout] test data_format::tests::encode_base64_pem_all_lines_end_crlf ... ok
[INFO] [stdout] test data_format::tests::encode_base64_pem_empty ... ok
[INFO] [stdout] test data_format::tests::encode_base64_pem_exact_48_bytes_is_one_line ... ok
[INFO] [stdout] test data_format::tests::encode_base64_pem_hello ... ok
[INFO] [stdout] test data_format::tests::encode_base64_pem_large_roundtrip ... ok
[INFO] [stdout] test data_format::tests::encode_base64_pem_line_length_at_most_64 ... ok
[INFO] [stdout] test data_format::tests::encode_base64_pem_roundtrip_mz_header ... ok
[INFO] [stdout] test data_format::tests::encode_base64_pem_short_no_wrap ... ok
[INFO] [stdout] test data_format::tests::encode_base64_pem_single_byte ... ok
[INFO] [stdout] test data_format::tests::encode_base64_pem_two_bytes ... ok
[INFO] [stdout] test data_format::tests::encode_base64_rfc4648_vectors ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_all_printable_ascii_no_backslash ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_backslash ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_cr ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_del ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_empty ... ok
[INFO] [stdout] test data_format::tests::encode_base64_mz_header ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_high_byte ... ok
[INFO] [stdout] test data_format::tests::encode_base64_pem_49_bytes_wraps_to_two_lines ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_mz_header ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_newline ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_printable_range_boundaries ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_roundtrip_all_bytes ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_roundtrip_backslash_only ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_space_and_tilde ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_tab ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_uppercase_hex_digits ... ok
[INFO] [stdout] test data_format::tests::encode_hex_10_bytes_has_9_dashes ... ok
[INFO] [stdout] test data_format::tests::encode_hex_empty ... ok
[INFO] [stdout] test data_format::tests::encode_hex_mz_header ... ok
[INFO] [stdout] test data_format::tests::encode_hex_no_trailing_dash ... ok
[INFO] [stdout] test data_format::tests::encode_hex_roundtrip_all_bytes ... ok
[INFO] [stdout] test data_format::tests::encode_hex_roundtrip_mz ... ok
[INFO] [stdout] test data_format::tests::encode_hex_single_byte_high ... ok
[INFO] [stdout] test data_format::tests::encode_hex_single_byte_low ... ok
[INFO] [stdout] test data_format::tests::encode_hex_uppercase ... ok
[INFO] [stdout] test data_format::tests::encoded_backslash_escape ... ok
[INFO] [stdout] test data_format::tests::encoded_carriage_return_escape ... ok
[INFO] [stdout] test data_format::tests::encoded_empty ... ok
[INFO] [stdout] test data_format::tests::encoded_err_bad_escape ... ok
[INFO] [stdout] test data_format::tests::b64_err_position_pinned_for_each_chunk_index_in_second_group ... ok
[INFO] [stdout] test data_format::tests::b64_err_unexpected_padding_at_chunk_index_one_has_padding_message ... ok
[INFO] [stdout] test data_format::tests::encoded_err_incomplete_hex_escape ... ok
[INFO] [stdout] test data_format::tests::encoded_hex_escape ... ok
[INFO] [stdout] test data_format::tests::encoded_mixed ... ok
[INFO] [stdout] test data_format::tests::encoded_newline_escape ... ok
[INFO] [stdout] test data_format::tests::encoded_null_escape ... ok
[INFO] [stdout] test data_format::tests::encoded_plain_ascii ... ok
[INFO] [stdout] test data_format::tests::encoded_tab_escape ... ok
[INFO] [stdout] test data_format::tests::encoded_unicode_4digit ... ok
[INFO] [stdout] test data_format::tests::hex_all_ff ... ok
[INFO] [stdout] test data_format::tests::hex_all_nibbles ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_nul ... ok
[INFO] [stdout] test data_format::tests::hex_all_zeros ... ok
[INFO] [stdout] test data_format::tests::hex_alternating_zero_ff ... ok
[INFO] [stdout] test data_format::tests::hex_empty ... ok
[INFO] [stdout] test data_format::tests::hex_err_single_digit ... ok
[INFO] [stdout] test data_format::tests::hex_long_dashed ... ok
[INFO] [stdout] test data_format::tests::hex_mixed_case ... ok
[INFO] [stdout] test data_format::tests::hex_mz_header_dashes ... ok
[INFO] [stdout] test data_format::tests::hex_mz_header_no_dashes ... ok
[INFO] [stdout] test data_format::tests::hex_single_byte_lowercase ... ok
[INFO] [stdout] test data_format::tests::hex_single_byte_uppercase ... ok
[INFO] [stdout] test encoding::tests::apply_line_ending_to_all_utf16le_preserves_cross_unit_bytes ... ok
[INFO] [stdout] test encoding::tests::apply_line_ending_to_all_utf8_target_cr_maps_lf_to_cr_only ... ok
[INFO] [stdout] test data_format::tests::hex_err_invalid_char_g ... ok
[INFO] [stdout] test data_format::tests::hex_err_invalid_char_space ... ok
[INFO] [stdout] test encoding::tests::bom_policy_debug_roundtrip_force ... ok
[INFO] [stdout] test data_format::tests::hex_err_odd_digits ... ok
[INFO] [stdout] test encoding::tests::bom_policy_debug_roundtrip_strip ... ok
[INFO] [stdout] test encoding::tests::bom_policy_default_is_strip ... ok
[INFO] [stdout] test data_format::tests::encode_encoded_plain_ascii ... ok
[INFO] [stdout] test encoding::tests::bom_policy_from_str_empty_string_is_error ... ok
[INFO] [stdout] test encoding::tests::bom_policy_from_str_preserve ... ok
[INFO] [stdout] test encoding::tests::bom_policy_from_str_strip ... ok
[INFO] [stdout] test encoding::tests::normalize_bytes_to_lf_crlf_pair_becomes_single_lf ... ok
[INFO] [stdout] test data_format::tests::b64_hello ... ok
[INFO] [stdout] test encoding::tests::normalize_bytes_to_lf_empty ... ok
[INFO] [stdout] test encoding::tests::normalize_bytes_to_lf_lone_cr_not_followed_by_lf ... ok
[INFO] [stdout] test encoding::tests::normalize_bytes_to_lf_mixed_terminators ... ok
[INFO] [stdout] test encoding::tests::normalize_bytes_to_lf_trailing_lone_cr ... ok
[INFO] [stdout] test encoding::tests::normalize_u16_to_lf_crlf_pair_becomes_single_lf_unit ... ok
[INFO] [stdout] test encoding::tests::normalize_u16_to_lf_empty ... ok
[INFO] [stdout] test encoding::tests::normalize_u16_to_lf_forwards_odd_trailing_byte ... ok
[INFO] [stdout] test encoding::tests::normalize_u16_to_lf_lone_cr_unit_not_followed_by_lf_unit ... ok
[INFO] [stdout] test encoding::tests::bom_policy_from_str_force ... ok
[INFO] [stdout] test encoding::tests::bom_policy_from_str_case_sensitive ... ok
[INFO] [stdout] test encoding::tests::bom_policy_from_str_invalid ... ok
[INFO] [stdout] test encoding::tests::normalize_bytes_to_lf_lone_lf_is_unchanged ... ok
[INFO] [stdout] test encoding::tests::normalize_u16_to_lf_trailing_lone_cr_unit ... ok
[INFO] [stdout] test encoding::tests::output_encoding_default_is_preserve ... ok
[INFO] [stdout] test encoding::tests::replace_u16_pairs_forwards_odd_trailing_byte ... ok
[INFO] [stdout] test encoding::tests::replace_u16_pairs_ignores_cross_code_unit_false_match ... ok
[INFO] [stdout] test encoding::tests::replace_u16_pairs_replaces_aligned_needle ... ok
[INFO] [stdout] test encoding::tests::should_write_bom_force_is_always_true_under_utf8 ... ok
[INFO] [stdout] test encoding::tests::should_write_bom_never_when_preserving_source_encoding ... ok
[INFO] [stdout] test encoding::tests::should_write_bom_preserve_mirrors_the_source ... ok
[INFO] [stdout] test encoding::tests::should_write_bom_strip_is_always_false ... ok
[INFO] [stdout] test encoding::tests::utf8_bom_is_the_expected_byte_sequence ... ok
[INFO] [stdout] test escape::tests::decode_above_unicode_max_rejected ... ok
[INFO] [stdout] test escape::tests::decode_backslash_escape ... ok
[INFO] [stdout] test escape::tests::decode_bytes_backslash_escape ... ok
[INFO] [stdout] test escape::tests::decode_bytes_bad_hex_in_x_escape ... ok
[INFO] [stdout] test escape::tests::decode_bytes_capital_u_yields_utf8_bytes ... ok
[INFO] [stdout] test escape::tests::decode_bytes_cr_escape ... ok
[INFO] [stdout] test escape::tests::decode_bytes_empty ... ok
[INFO] [stdout] test escape::tests::decode_bytes_error_offset_nonzero ... ok
[INFO] [stdout] test escape::tests::decode_bytes_hex_escape_uppercase ... ok
[INFO] [stdout] test escape::tests::decode_bytes_lf_escape ... ok
[INFO] [stdout] test escape::tests::decode_bytes_lone_backslash ... ok
[INFO] [stdout] test escape::tests::decode_bytes_nul_escape ... ok
[INFO] [stdout] test encoding::tests::normalize_u16_to_lf_mixed_units ... ok
[INFO] [stdout] test escape::tests::decode_bytes_hex_escape_ff ... ok
[INFO] [stdout] test escape::tests::decode_bytes_plain_ascii ... ok
[INFO] [stdout] test escape::tests::decode_bytes_tab_escape ... ok
[INFO] [stdout] test escape::tests::decode_bytes_truncated_x_escape_no_digits ... ok
[INFO] [stdout] test escape::tests::decode_bytes_truncated_x_escape_one_digit ... ok
[INFO] [stdout] test escape::tests::decode_bytes_u4_yields_utf8_bytes ... ok
[INFO] [stdout] test escape::tests::decode_bytes_unknown_escape_z ... ok
[INFO] [stdout] test escape::tests::decode_cr_escape ... ok
[INFO] [stdout] test escape::tests::decode_empty_string ... ok
[INFO] [stdout] test escape::tests::decode_error_display_invalid_hex ... ok
[INFO] [stdout] test escape::tests::decode_error_display_invalid_scalar ... ok
[INFO] [stdout] test escape::tests::decode_error_display_unexpected_end ... ok
[INFO] [stdout] test escape::tests::decode_error_display_unknown_escape ... ok
[INFO] [stdout] test encoding::tests::normalize_u16_to_lf_lone_lf_unit_is_unchanged ... ok
[INFO] [stdout] test escape::tests::decode_error_offset_nonzero ... ok
[INFO] [stdout] test encoding::tests::output_encoding_variants_are_distinct ... ok
[INFO] [stdout] test escape::tests::decode_invalid_hex_in_u4 ... ok
[INFO] [stdout] test escape::tests::decode_lf_escape ... ok
[INFO] [stdout] test escape::tests::decode_lone_backslash_at_end ... ok
[INFO] [stdout] test escape::tests::decode_plain_ascii_passthrough ... ok
[INFO] [stdout] test escape::tests::decode_surrogate_low_rejected ... ok
[INFO] [stdout] test escape::tests::decode_tab_escape ... ok
[INFO] [stdout] test escape::tests::decode_mixed_content ... ok
[INFO] [stdout] test escape::tests::decode_nul_escape ... ok
[INFO] [stdout] test escape::tests::decode_surrogate_high_rejected ... ok
[INFO] [stdout] test escape::tests::decode_truncated_u8_four_digits ... ok
[INFO] [stdout] test escape::tests::decode_u4_bmp ... ok
[INFO] [stdout] test escape::tests::decode_u4_case_insensitive_lower ... ok
[INFO] [stdout] test escape::tests::decode_u4_case_insensitive_upper ... ok
[INFO] [stdout] test escape::tests::decode_u8_case_insensitive ... ok
[INFO] [stdout] test escape::tests::decode_u8_supplementary ... ok
[INFO] [stdout] test escape::tests::decode_unknown_escape_a ... ok
[INFO] [stdout] test escape::tests::decode_unknown_escape_x ... ok
[INFO] [stdout] test escape::tests::encode_all_printable_ascii_passthrough ... ok
[INFO] [stdout] test escape::tests::encode_backslash_doubled ... ok
[INFO] [stdout] test escape::tests::encode_bmp_high_nonchar ... ok
[INFO] [stdout] test escape::tests::encode_bmp_latin_extended ... ok
[INFO] [stdout] test escape::tests::encode_bytes_all_printable_ascii_passthrough ... ok
[INFO] [stdout] test escape::tests::encode_bytes_backslash_doubled ... ok
[INFO] [stdout] test escape::tests::encode_bytes_byte_1f ... ok
[INFO] [stdout] test escape::tests::encode_bytes_cr ... ok
[INFO] [stdout] test escape::tests::encode_bytes_crlf_sequence ... ok
[INFO] [stdout] test escape::tests::encode_bytes_del_byte ... ok
[INFO] [stdout] test escape::tests::encode_bytes_empty ... ok
[INFO] [stdout] test escape::tests::encode_bytes_high_byte_ff ... ok
[INFO] [stdout] test escape::tests::decode_truncated_u4_two_digits ... ok
[INFO] [stdout] test escape::tests::encode_bytes_arbitrary_byte_ab ... ok
[INFO] [stdout] test escape::tests::decode_truncated_u4_zero_digits ... ok
[INFO] [stdout] test escape::tests::encode_bytes_lf ... ok
[INFO] [stdout] test escape::tests::encode_bytes_tab ... ok
[INFO] [stdout] test escape::tests::encode_carriage_return ... ok
[INFO] [stdout] test escape::tests::encode_control_char_unit_separator ... ok
[INFO] [stdout] test escape::tests::encode_crlf_sequence ... ok
[INFO] [stdout] test escape::tests::encode_del_control_char ... ok
[INFO] [stdout] test escape::tests::encode_empty_string ... ok
[INFO] [stdout] test escape::tests::encode_line_feed ... ok
[INFO] [stdout] test encoding::tests::bom_policy_debug_roundtrip_preserve ... ok
[INFO] [stdout] test escape::tests::encode_bytes_plain_ascii_passthrough ... ok
[INFO] [stdout] test escape::tests::encode_bmp_cjk ... ok
[INFO] [stdout] test escape::tests::encode_mixed_content ... ok
[INFO] [stdout] test escape::tests::encode_space_is_passthrough ... ok
[INFO] [stdout] test escape::tests::encode_supplementary_emoji ... ok
[INFO] [stdout] test escape::tests::encode_nul_byte ... ok
[INFO] [stdout] test escape::tests::encode_plain_ascii_passthrough ... ok
[INFO] [stdout] test escape::tests::encode_supplementary_high_plane ... ok
[INFO] [stdout] test escape::tests::encode_tab ... ok
[INFO] [stdout] test escape::tests::encode_bytes_mixed_content ... ok
[INFO] [stdout] test escape::tests::encode_bytes_nul_byte ... ok
[INFO] [stdout] test escape::tests::roundtrip_bmp_non_ascii ... ok
[INFO] [stdout] test escape::tests::roundtrip_bytes_all_256_values ... ok
[INFO] [stdout] test cmd::replace::tests::zero_match_preserves_mtime_and_writes_no_bak ... ok
[INFO] [stdout] test escape::tests::roundtrip_full_unicode_sample ... ok
[INFO] [stdout] test escape::tests::roundtrip_nul ... ok
[INFO] [stdout] test escape::tests::roundtrip_all_ascii_printable ... ok
[INFO] [stdout] test escape::tests::roundtrip_bytes_all_named_escapes ... ok
[INFO] [stdout] test escape::tests::roundtrip_all_named_escapes ... ok
[INFO] [stdout] test escape::tests::roundtrip_bytes_printable_ascii ... ok
[INFO] [stdout] test escape::tests::roundtrip_supplementary_chars ... ok
[INFO] [stdout] test data_format::tests::encode_base64_pem_roundtrip_all_bytes ... ok
[INFO] [stdout] test git::tests::autocrlf_true_expects_crlf_for_text ... ok
[INFO] [stdout] test git::tests::advisory_note_reports_exact_expected_and_actual ... ok
[INFO] [stdout] test git::tests::advisory_note_is_none_when_endings_already_match ... ok
[INFO] [stdout] test git::tests::autocrlf_true_leaves_binary_alone ... ok
[INFO] [stdout] test git::tests::emit_eol_advisory_auto_writes_exact_note_line ... ok
[INFO] [stdout] test git::tests::automatic_discovery_handles_multiple_repositories_below_one_root ... ok
[INFO] [stdout] test git::tests::detect_with_policy_is_pure_and_never_touches_gitoxide ... ok
[INFO] [stdout] test git::tests::automatic_policy_discovery_resolves_eol_and_encoding ... ok
[INFO] [stdout] test git::tests::detect_with_policy_matches_git_eol_detect_for_crlf_expectation ... ok
[INFO] [stdout] test git::tests::eol_analysis_bytes_decodes_utf16le_bom_with_even_body ... ok
[INFO] [stdout] test git::tests::emit_eol_advisory_writes_nothing_on_match ... ok
[INFO] [stdout] test git::tests::eol_analysis_bytes_passes_through_non_utf16_unchanged ... ok
[INFO] [stdout] test git::tests::dominant_line_ending_prefers_majority ... ok
[INFO] [stdout] test git::tests::eol_analysis_bytes_trims_trailing_odd_byte_in_utf16_body ... ok
[INFO] [stdout] test git::tests::eol_analysis_bytes_uses_worktree_encoding_when_no_bom_present ... ok
[INFO] [stdout] test git::tests::emit_eol_advisory_writes_exact_note_line ... ok
[INFO] [stdout] test git::tests::begin_operation_clears_stale_no_repository_cache_entry ... ok
[INFO] [stdout] test git::tests::emit_eol_advisory_auto_writes_nothing_on_match ... ok
[INFO] [stdout] test git::tests::automatic_discovery_prefers_nested_repository ... ok
[INFO] [stdout] test git::tests::eol_lf_attribute_flags_crlf_file ... ok
[INFO] [stdout] test git::tests::line_ending_counts_separates_conventions_instead_of_picking_a_winner ... ok
[INFO] [stdout] test git::tests::line_ending_for_worktree_bytes_skips_binary_under_text_auto ... ok
[INFO] [stdout] test git::tests::eol_detection_decodes_utf16_worktree_bytes ... ok
[INFO] [stdout] test git::tests::eol_lf_attribute_accepts_lf_file ... ok
[INFO] [stdout] test git::tests::line_ending_name_covers_all_variants ... ok
[INFO] [stdout] test git::tests::eol_crlf_attribute_flags_lf_file ... ok
[INFO] [stdout] test git::tests::explicit_minus_text_disables_normalisation ... ok
[INFO] [stdout] test git::tests::latin_1_git_alias_is_rejected_instead_of_misdecoded ... ok
[INFO] [stdout] test git::tests::free_detect_helper_matches ... ok
[INFO] [stdout] test git::tests::lone_cr_conflicts_when_crlf_expected ... ok
[INFO] [stdout] test git::tests::resolve_policies_reports_per_path_failure_without_aborting_batch ... ok
[INFO] [stdout] test git::tests::mostly_crlf_with_stray_lf_reports_lf_not_crlf ... ok
[INFO] [stdout] test git::tests::no_attrs_no_autocrlf_means_no_expectation ... ok
[INFO] [stdout] test git::tests::resolve_policies_resolves_each_path_across_multiple_repositories ... ok
[INFO] [stdout] test git::tests::source_config_non_utf8_unspecified_bom_ignores ... ok
[INFO] [stdout] test git::tests::source_config_required_and_forbidden_bom_policies ... ok
[INFO] [stdout] test git::tests::source_config_with_no_worktree_encoding_only_sets_line_ending ... ok
[INFO] [stdout] test git::tests::validate_branch_defers_bom_enforcement_for_empty_file ... ok
[INFO] [stdout] test git::tests::source_config_utf8_unspecified_bom_honours ... ok
[INFO] [stdout] test git::tests::validate_branch_no_worktree_encoding_always_ok ... ok
[INFO] [stdout] test git::tests::new_nested_repository_is_discovered_in_next_operation ... ok
[INFO] [stdout] test git::tests::validate_worktree_bom_forbidden_rejects_any_bom ... ok
[INFO] [stdout] test git::tests::text_auto_with_eol_lf_still_applies_eol_policy_to_text_content ... ok
[INFO] [stdout] test git::tests::validate_worktree_bom_required_exact_rejects_other_boms ... ok
[INFO] [stdout] test git::tests::validate_worktree_bom_non_utf8_unspecified_never_rejects ... ok
[INFO] [stdout] test git::tests::text_auto_applies_eol_policy_only_to_text_content ... ok
[INFO] [stdout] test git::tests::validate_branch_accepts_matching_bom_and_rejects_missing_bom ... ok
[INFO] [stdout] test git::tests::path_outside_worktree_is_none ... ok
[INFO] [stdout] test git::tests::validate_worktree_bom_required_utf16_defers_for_empty_file ... ok
[INFO] [stdout] test git::tests::validate_worktree_bom_utf8_unspecified_rejects_wrong_bom_only_when_present ... ok
[INFO] [stdout] test git::tests::worktree_encoding_bare_utf16_requires_either_bom ... ok
[INFO] [stdout] test git::tests::validate_worktree_bom_required_utf16_accepts_either_byte_order ... ok
[INFO] [stdout] test git::tests::worktree_encoding_utf16be_bom_requires_be_bom ... ok
[INFO] [stdout] test git::tests::utf8_worktree_encoding_rejects_utf16_bom ... ok
[INFO] [stdout] test git::tests::worktree_encoding_utf16be_bomless_forbids_bom ... ok
[INFO] [stdout] test git::tests::worktree_encoding_utf16le_bomless_forbids_bom ... ok
[INFO] [stdout] test git::tests::worktree_encoding_utf8_bom_requires_utf8_bom ... ok
[INFO] [stdout] test git::tests::write_warning_still_reports_mixed_endings_with_no_policy ... ok
[INFO] [stdout] test message::tests::control_chars_in_message_are_escaped ... ok
[INFO] [stdout] test git::tests::write_warning_is_silent_for_a_conforming_file ... ok
[INFO] [stdout] test git_text_policy_tests::read_text_file_rejects_missing_required_worktree_bom ... ok
[INFO] [stdout] test message::tests::data_content_with_newlines_is_escaped ... ok
[INFO] [stdout] test git_text_policy_tests::read_text_file_uses_discovered_worktree_encoding ... ok
[INFO] [stdout] test message::tests::data_reason_is_data ... ok
[INFO] [stdout] test message::tests::diff_fields ... ok
[INFO] [stdout] test git_text_policy_tests::read_text_file_treats_worktree_encoding_as_authoritative ... ok
[INFO] [stdout] test message::tests::diff_reason_is_diff ... ok
[INFO] [stdout] test message::tests::error_reason_is_error ... ok
[INFO] [stdout] test message::tests::data_fields ... ok
[INFO] [stdout] test message::tests::finished_success_false ... ok
[INFO] [stdout] test message::tests::message_format_default_is_human ... ok
[INFO] [stdout] test message::tests::serialises_to_single_line ... ok
[INFO] [stdout] test message::tests::status_fields ... ok
[INFO] [stdout] test message::tests::status_reason_is_status ... ok
[INFO] [stdout] test message::tests::unicode_content_round_trips ... ok
[INFO] [stdout] test message::tests::warning_fields ... ok
[INFO] [stdout] test message::tests::warning_reason_is_warning ... ok
[INFO] [stdout] test mojibake::tests::allow_marker_absent ... ok
[INFO] [stdout] test message::tests::finished_success_true ... ok
[INFO] [stdout] test mojibake::tests::allow_marker_empty_string ... ok
[INFO] [stdout] test mojibake::tests::allow_marker_is_case_sensitive ... ok
[INFO] [stdout] test mojibake::tests::allow_marker_misspelled_does_not_match ... ok
[INFO] [stdout] test message::tests::empty_content_serialises ... ok
[INFO] [stdout] test message::tests::error_fields ... ok
[INFO] [stdout] test message::tests::finished_reason_is_finished ... ok
[INFO] [stdout] test mojibake::tests::attempt_peel_reports_not_beneficial_when_reapplied_to_clean_text ... ok
[INFO] [stdout] test mojibake::tests::attempt_peel_reports_nothing_to_peel_for_clean_text ... ok
[INFO] [stdout] test mojibake::tests::attempt_peel_reports_would_produce_invalid_utf8 ... ok
[INFO] [stdout] test mojibake::tests::char_to_cp1252_ascii_and_gap_boundary ... ok
[INFO] [stdout] test mojibake::tests::char_to_cp1252_identity_range_boundary ... ok
[INFO] [stdout] test mojibake::tests::char_to_cp1252_covers_full_c1_special_table ... ok
[INFO] [stdout] test mojibake::tests::allow_marker_present_in_comment ... ok
[INFO] [stdout] test mojibake::tests::attempt_peel_reports_improved_on_success ... ok
[INFO] [stdout] test mojibake::tests::char_to_cp1252_undefined_c1_codepoint_returns_none ... ok
[INFO] [stdout] test mojibake::tests::check_corrupt_to_clean_is_ok ... ok
[INFO] [stdout] test mojibake::tests::check_does_not_consult_allow_marker_in_old ... ok
[INFO] [stdout] test git_text_policy_tests::read_text_file_strictly_validates_declared_encoding ... ok
[INFO] [stdout] test mojibake::tests::check_clean_to_clean_is_ok ... ok
[INFO] [stdout] test mojibake::tests::check_clean_to_corrupt_is_rejected ... ok
[INFO] [stdout] test git::tests::write_warning_reports_a_partly_non_conforming_file ... ok
[INFO] [stdout] test git::tests::write_warning_is_silent_for_an_explicitly_non_text_path ... ok
[INFO] [stdout] test mojibake::tests::check_error_display_contains_hint ... ok
[INFO] [stdout] test mojibake::tests::check_preexisting_corrupt_unchanged_is_ok ... ok
[INFO] [stdout] test mojibake::tests::check_introduces_multiple_pattern_classes ... ok
[INFO] [stdout] test mojibake::tests::check_read_advisory_honours_allow_marker ... ok
[INFO] [stdout] test mojibake::tests::check_read_advisory_returns_count_for_mojibake ... ok
[INFO] [stdout] test mojibake::tests::check_preexisting_corrupt_plus_more_is_rejected ... ok
[INFO] [stdout] test mojibake::tests::emit_read_advisory_writes_canonical_line ... ok
[INFO] [stdout] test mojibake::tests::first_match_returns_earliest_by_byte_offset ... ok
[INFO] [stdout] test mojibake::tests::emit_read_advisory_writes_nothing_for_clean_text ... ok
[INFO] [stdout] test mojibake::tests::guess_replacement_char_em_dash_requires_both_flanking_spaces ... ok
[INFO] [stdout] test mojibake::tests::first_match_returns_none_on_clean_input ... ok
[INFO] [stdout] test mojibake::tests::guess_replacement_char_none_at_string_boundaries ... ok
[INFO] [stdout] test mojibake::tests::first_match_finds_late_match_in_long_input ... ok
[INFO] [stdout] test mojibake::tests::check_empty_to_clean_is_ok ... ok
[INFO] [stdout] test mojibake::tests::pattern_all_constant_lists_every_variant ... ok
[INFO] [stdout] test mojibake::tests::check_empty_to_corrupt_is_rejected ... ok
[INFO] [stdout] test mojibake::tests::peel_does_not_attempt_double_mojibake ... ok
[INFO] [stdout] test mojibake::tests::peel_preserves_non_latin1_chars ... ok
[INFO] [stdout] test mojibake::tests::peel_returns_none_when_no_improvement ... ok
[INFO] [stdout] test mojibake::tests::is_clean_reports_false_when_matches_present ... ok
[INFO] [stdout] test mojibake::tests::check_read_advisory_returns_none_for_clean_text ... ok
[INFO] [stdout] test mojibake::tests::check_respects_allow_marker_in_new ... ok
[INFO] [stdout] test mojibake::tests::peel_returns_none_when_result_is_invalid_utf8 ... ok
[INFO] [stdout] test mojibake::tests::scan_clean_ascii_has_no_matches ... ok
[INFO] [stdout] test mojibake::tests::peel_recovers_single_layer_mojibake ... ok
[INFO] [stdout] test mojibake::tests::peel_returns_none_for_clean_input ... ok
[INFO] [stdout] test mojibake::tests::guess_replacement_char_en_dash_requires_both_flanking_digits ... ok
[INFO] [stdout] test mojibake::tests::scan_detects_box_drawing_pattern ... ok
[INFO] [stdout] test mojibake::tests::scan_detects_latin1_pattern ... ok
[INFO] [stdout] test mojibake::tests::scan_detects_nbsp_pattern ... ok
[INFO] [stdout] test mojibake::tests::scan_detects_punctuation_pattern ... ok
[INFO] [stdout] test mojibake::tests::scan_lone_capital_a_tilde_does_not_match_latin1 ... ok
[INFO] [stdout] test mojibake::tests::scan_matches_are_sorted_by_offset ... ok
[INFO] [stdout] test mojibake::tests::scan_replacement_chars_context_window_clamps_at_start_and_end ... ok
[INFO] [stdout] test mojibake::tests::scan_replacement_chars_returns_empty_for_clean_text ... ok
[INFO] [stdout] test mojibake::tests::scan_replacement_chars_reports_precise_byte_offsets ... ok
[INFO] [stdout] test mojibake::tests::emit_read_advisory_writes_nothing_when_marker_present ... ok
[INFO] [stdout] test mojibake::tests::scan_empty_string_has_no_matches ... ok
[INFO] [stdout] test mojibake::tests::scan_lone_a_circ_does_not_match_punctuation ... ok
[INFO] [stdout] test mojibake::tests::scan_replacement_chars_without_guess_never_suggests ... ok
[INFO] [stdout] test mojibake::tests::scan_replacement_chars_context_window_is_byte_and_char_exact ... ok
[INFO] [stdout] test mojibake::tests::scan_total_chars_counts_codepoints_not_bytes ... ok
[INFO] [stdout] test mojibake::tests::write_policy_default_rejects ... ok
[INFO] [stdout] test mojibake::tests::write_policy_permissive_does_not_reject ... ok
[INFO] [stdout] test output::tests::human_emit_binary_all_byte_values ... ok
[INFO] [stdout] test mojibake::tests::scan_clean_utf8_with_real_chars_has_no_matches ... ok
[INFO] [stdout] test mojibake::tests::scan_detects_all_four_patterns_mixed ... ok
[INFO] [stdout] test output::tests::human_emit_binary_empty_slice_writes_nothing ... ok
[INFO] [stdout] test output::tests::human_emit_formats_args ... ok
[INFO] [stdout] test output::tests::human_emit_binary_ignores_provenance ... ok
[INFO] [stdout] test output::tests::human_emit_binary_ln_empty_is_just_newline ... ok
[INFO] [stdout] test output::tests::human_emit_ignores_file_and_range ... ok
[INFO] [stdout] test output::tests::human_emit_json_empty_rendered ... ok
[INFO] [stdout] test output::tests::human_emit_json_panics_when_rendered_absent - should panic ... ok
[INFO] [stdout] test output::tests::human_emit_binary_ln_appends_newline ... ok
[INFO] [stdout] test output::tests::human_emit_binary_writes_escaped_bytes ... ok
[INFO] [stdout] test output::tests::human_emit_empty_args ... ok
[INFO] [stdout] test mojibake::tests::write_policy_is_copy_clone_eq_debug ... ok
[INFO] [stdout] test output::tests::human_emit_multiple_calls_accumulate ... ok
[INFO] [stdout] test output::tests::human_emit_json_ignores_provenance_params ... ok
[INFO] [stdout] test output::tests::human_emit_writes_text_verbatim ... ok
[INFO] [stdout] test output::tests::human_emit_json_ignores_other_fields ... ok
[INFO] [stdout] test output::tests::json_emit_binary_encoding_is_bytes_base64 ... ok
[INFO] [stdout] test output::tests::human_emit_json_panics_when_rendered_is_not_string - should panic ... ok
[INFO] [stdout] test output::tests::human_emit_json_writes_rendered_field ... ok
[INFO] [stdout] test output::tests::json_emit_binary_content_is_base64 ... ok
[INFO] [stdout] test output::tests::json_emit_content_is_formatted_args ... ok
[INFO] [stdout] test output::tests::json_emit_empty_content ... ok
[INFO] [stdout] test output::tests::json_emit_each_call_is_one_ndjson_line ... ok
[INFO] [stdout] test output::tests::json_emit_encoding_is_text ... ok
[INFO] [stdout] test output::tests::json_emit_binary_with_file_and_range ... ok
[INFO] [stdout] test output::tests::json_emit_binary_without_provenance_omits_fields ... ok
[INFO] [stdout] test output::tests::json_emit_json_ignores_provenance_params ... ok
[INFO] [stdout] test output::tests::json_emit_json_is_one_ndjson_line ... ok
[INFO] [stdout] test output::tests::json_emit_with_file_and_range ... ok
[INFO] [stdout] test output::tests::json_emit_with_file_includes_file_field ... ok
[INFO] [stdout] test output::tests::tpu_emit_macro_human_mode ... ok
[INFO] [stdout] test output::tests::json_emit_with_range_includes_range_field ... ok
[INFO] [stdout] test output::tests::json_emit_json_passes_value_through_unchanged ... ok
[INFO] [stdout] test output::tests::json_emit_subcommand_field ... ok
[INFO] [stdout] test output::tests::json_emit_without_provenance_omits_file_and_range ... ok
[INFO] [stdout] test output::tests::tpu_emit_macro_json_mode ... ok
[INFO] [stdout] test output::tests::tpu_emit_macro_passes_no_provenance ... ok
[INFO] [stdout] test path_exists_tests::a_non_not_found_error_is_not_reported_as_absence ... ok
[INFO] [stdout] test path_exists_tests::the_two_probes_diverge_on_an_unresolved_error ... ok
[INFO] [stdout] test path_exists_tests::a_path_below_a_plain_file_is_absent_not_an_error ... ok
[INFO] [stdout] test recover_tests::recover_no_file_no_bak_is_noop ... ok
[INFO] [stdout] test recover_tests::recover_file_present_is_noop ... ok
[INFO] [stdout] test rsp::tests::rsp_path_bare_at_yields_empty_path ... ok
[INFO] [stdout] test retry_io_tests::retry_io_succeeds_immediately_without_retrying ... ok
[INFO] [stdout] test path_exists_tests::path_exists_answers_for_a_present_and_an_absent_file ... ok
[INFO] [stdout] test rsp::tests::rsp_path_detected_when_argv_len_2_with_at_prefix ... ok
[INFO] [stdout] test retry_io_tests::retry_io_propagates_non_transient_errors_immediately ... ok
[INFO] [stdout] test rsp::tests::rsp_path_none_when_argv_len_3 ... ok
[INFO] [stdout] test rsp::tests::rsp_path_none_when_second_arg_has_no_at ... ok
[INFO] [stdout] test rsp::tests::tokenize_backslash_quote_in_quoted_token ... ok
[INFO] [stdout] test rsp::tests::rsp_path_detected_with_absolute_path ... ok
[INFO] [stdout] test output::tests::json_emit_binary_empty_bytes ... ok
[INFO] [stdout] test rsp::tests::rsp_path_none_when_argv_len_1 ... ok
[INFO] [stdout] test output::tests::json_emit_binary_round_trips_via_decode ... ok
[INFO] [stdout] test output::tests::json_emit_reason_is_data ... ok
[INFO] [stdout] test rsp::tests::tokenize_crlf_separated_tokens ... ok
[INFO] [stdout] test rsp::tests::tokenize_empty_string_gives_no_tokens ... ok
[INFO] [stdout] test recover_tests::recover_promotes_bak_when_file_missing ... ok
[INFO] [stdout] test rsp::tests::tokenize_mixed_unquoted_and_quoted_tokens ... ok
[INFO] [stdout] test rsp::tests::tokenize_multiple_quoted_tokens ... ok
[INFO] [stdout] test rsp::tests::tokenize_newline_separated_tokens ... ok
[INFO] [stdout] test rsp::tests::tokenize_only_whitespace_gives_no_tokens ... ok
[INFO] [stdout] test rsp::tests::tokenize_quoted_token_at_start_then_unquoted ... ok
[INFO] [stdout] test rsp::tests::tokenize_quoted_token_empty_string ... ok
[INFO] [stdout] test rsp::tests::tokenize_quoted_token_with_spaces ... ok
[INFO] [stdout] test rsp::tests::tokenize_quoted_token_with_tabs ... ok
[INFO] [stdout] test rsp::tests::tokenize_single_token ... ok
[INFO] [stdout] test rsp::tests::tokenize_trailing_whitespace_ignored ... ok
[INFO] [stdout] test rsp::tests::tokenize_unmatched_opening_quote_is_error ... ok
[INFO] [stdout] test rsp::tests::tokenize_backslash_backslash_in_quoted_token ... ok
[INFO] [stdout] test rsp::tests::tokenize_unmatched_quote_after_tokens_is_error ... ok
[INFO] [stdout] test rsp::tests::tokenize_unrecognised_escape_passes_through ... ok
[INFO] [stdout] test rsp::tests::tokenize_error_message_mentions_unmatched_quote ... ok
[INFO] [stdout] test shell::tests::emit_finished_false ... ok
[INFO] [stdout] test rsp::tests::tokenize_leading_whitespace_ignored ... ok
[INFO] [stdout] test shell::tests::error_writes_error_prefix ... ok
[INFO] [stdout] test shell::tests::emit_finished_true ... ok
[INFO] [stdout] test shell::tests::human_mode_is_not_json ... ok
[INFO] [stdout] test shell::tests::json_message_with_newlines_is_single_ndjson_line ... ok
[INFO] [stdout] test shell::tests::json_messages_appear_in_order ... ok
[INFO] [stdout] test shell::tests::err_write_raw ... ok
[INFO] [stdout] test shell::tests::error_and_warn_coexist ... ok
[INFO] [stdout] test shell::tests::json_status_not_suppressed_in_quiet ... ok
[INFO] [stdout] test shell::tests::json_warn_emits_ndjson ... ok
[INFO] [stdout] test shell::tests::json_warn_not_suppressed_in_quiet ... ok
[INFO] [stdout] test shell::tests::multiple_statuses_append ... ok
[INFO] [stdout] test shell::tests::quiet_does_not_suppress_error ... ok
[INFO] [stdout] test shell::tests::quiet_suppresses_status_and_warn ... ok
[INFO] [stdout] test shell::tests::set_verbosity_roundtrip ... ok
[INFO] [stdout] test shell::tests::status_right_aligns_to_12_chars ... ok
[INFO] [stdout] test shell::tests::status_writes_to_stderr_sink ... ok
[INFO] [stdout] test rsp::tests::tokenize_bare_at_eof_after_backslash_in_quoted_is_error ... ok
[INFO] [stdout] test shell::tests::json_mode_is_json ... ok
[INFO] [stdout] test shell::tests::warn_writes_warning_prefix ... ok
[INFO] [stdout] test test_fixtures::selftests::all_fixture_strings_are_valid_utf8 ... ok
[INFO] [stdout] test test_fixtures::selftests::b64_handles_a_three_char_final_chunk ... ok
[INFO] [stdout] test shell::tests::json_error_emits_ndjson ... ok
[INFO] [stdout] test shell::tests::json_status_emits_ndjson ... ok
[INFO] [stdout] test shell::tests::json_error_then_finished_false ... ok
[INFO] [stdout] test test_fixtures::selftests::cafe_b64_decodes_correctly ... ok
[INFO] [stdout] test shell::tests::verbosity_default_is_normal ... ok
[INFO] [stdout] test test_fixtures::selftests::double_cafe_returns_the_expected_string ... ok
[INFO] [stdout] test test_fixtures::selftests::em_dash_b64_decodes_correctly ... ok
[INFO] [stdout] test test_fixtures::selftests::latin1_fragment_b64_decodes_correctly ... ok
[INFO] [stdout] test test_fixtures::selftests::latin1_fragment_returns_the_expected_string ... ok
[INFO] [stdout] test test_fixtures::selftests::naive_b64_decodes_correctly ... ok
[INFO] [stdout] test test_fixtures::selftests::b64_handles_a_two_char_final_chunk ... ok
[INFO] [stdout] test rsp::tests::tokenize_mixed_spaces_tabs_between_tokens ... ok
[INFO] [stdout] test test_fixtures::selftests::box_drawing_b64_decodes_correctly ... ok
[INFO] [stdout] test rsp::tests::tokenize_multiple_tokens_space_separated ... ok
[INFO] [stdout] test test_fixtures::selftests::e_grave_b64_decodes_correctly ... ok
[INFO] [stdout] test test_fixtures::selftests::double_cafe_b64_decodes_correctly ... ok
[INFO] [stdout] test text_layout_tests::analyze_crlf_pair ... ok
[INFO] [stdout] test text_layout_tests::analyze_lone_cr ... ok
[INFO] [stdout] test text_layout_tests::analyze_lone_lf ... ok
[INFO] [stdout] test text_layout_tests::analyze_trailing_newline_does_not_add_a_phantom_line ... ok
[INFO] [stdout] test test_fixtures::selftests::nbsp_b64_decodes_correctly ... ok
[INFO] [stdout] test text_layout_tests::analyze_content_after_last_terminator_adds_one_line ... ok
[INFO] [stdout] test walk::tests::split_absolute_glob_with_partial_leaf ... ok
[INFO] [stdout] test text_layout_tests::analyze_empty_string_yields_default_layout ... ok
[INFO] [stdout] test text_layout_tests::uniformity_of_a_file_with_no_terminators_is_none ... ok
[INFO] [stdout] test walk::tests::split_relative_glob_walks_dot ... ok
[INFO] [stdout] test walk::tests::split_absolute_glob_anchors_at_prefix ... ok
[INFO] [stdout] test text_layout_tests::analyze_mixed_line_endings_counts_each_line_and_sets_every_flag ... ok
[INFO] [stdout] test text_layout_tests::analyze_reports_a_stray_terminator_rather_than_the_winner ... ok
[INFO] [stdout] test text_layout_tests::analyze_cr_not_followed_by_lf_is_lone_cr_not_crlf ... ok
[INFO] [stdout] test write_lock_tests::lock_sidecar_path_exact_255_char_boundary ... ok
[INFO] [stdout] test text_layout_tests::projected_onto_moves_every_terminator_into_one_bucket ... ok
[INFO] [stdout] test write_lock_tests::overlong_sidecar_name_falls_back_to_unlocked ... ok
[INFO] [stdout] test write_lock_tests::write_lock_excludes_a_second_holder ... ok
[INFO] [stdout] test write_lock_tests::sequential_acquire_release_reacquire ... ok
[INFO] [stdout] test write_lock_tests::acquire_write_lock_waits_for_contended_lock_then_succeeds ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- cmd::find::tests::expand_paths_relative_dir_suggests_subdir_glob stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'cmd::find::tests::expand_paths_relative_dir_suggests_subdir_glob' (3547) panicked at src/cmd/find.rs:1251:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Custom { kind: ReadOnlyFilesystem, error: PathError { path: "/opt/rustwide/workdir/./tpu_test_expand_0tnphW", err: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } } }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5dd627a58321 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5dd627a715ba - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5dd627a5dbbc - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5dd627a2eda6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5dd627a4de19 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5dd62777b760 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5dd627a4e142 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5dd627a2ee52 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5dd627a276c9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5dd627a2fd1d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5dd627a71d9c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5dd627a71b72 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5dd627675bfa - tpu[ca5c7ffc7bf64b36]::cmd::find::tests::expand_paths_relative_dir_suggests_subdir_glob
[INFO] [stdout]   13:     0x5dd627711639 - <tpu[ca5c7ffc7bf64b36]::cmd::find::tests::expand_paths_relative_dir_suggests_subdir_glob::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x5dd62776ea4b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   15:     0x5dd62777c0b5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   16:     0x5dd627775974 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x5dd62777f212 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x5dd627a57239 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x7f6e9f1d3dfa - <unknown>
[INFO] [stdout]   20:     0x7f6e9f2673d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     cmd::find::tests::expand_paths_relative_dir_suggests_subdir_glob
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1132 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.87s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "ad0618b9a3494fa4e45cf7d5a870abace90b9ee634706bbc25fe073e4874aa66", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ad0618b9a3494fa4e45cf7d5a870abace90b9ee634706bbc25fe073e4874aa66", kill_on_drop: false }`
[INFO] [stdout] ad0618b9a3494fa4e45cf7d5a870abace90b9ee634706bbc25fe073e4874aa66
