[INFO] cloning repository https://github.com/Harry-Zhang121/pdfsani
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Harry-Zhang121/pdfsani" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHarry-Zhang121%2Fpdfsani", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHarry-Zhang121%2Fpdfsani'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 86a76bf51735760374f5b568bf21413f739b7f8d
[INFO] testing Harry-Zhang121/pdfsani against beta-2026-04-21 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHarry-Zhang121%2Fpdfsani" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Harry-Zhang121/pdfsani
[INFO] finished tweaking git repo https://github.com/Harry-Zhang121/pdfsani
[INFO] tweaked toml for git repo https://github.com/Harry-Zhang121/pdfsani written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Harry-Zhang121/pdfsani on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Harry-Zhang121/pdfsani 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 391a0dd2cd2acda3c5c38f46cad10d02303665e56347d7285cda72fda1499139
[INFO] running `Command { std: "docker" "start" "-a" "391a0dd2cd2acda3c5c38f46cad10d02303665e56347d7285cda72fda1499139", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "391a0dd2cd2acda3c5c38f46cad10d02303665e56347d7285cda72fda1499139", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "391a0dd2cd2acda3c5c38f46cad10d02303665e56347d7285cda72fda1499139", kill_on_drop: false }`
[INFO] [stdout] 391a0dd2cd2acda3c5c38f46cad10d02303665e56347d7285cda72fda1499139
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 28e8b4b00894138433b39d819b4f61b83a6e262376ead3040b18432eb1d31007
[INFO] running `Command { std: "docker" "start" "-a" "28e8b4b00894138433b39d819b4f61b83a6e262376ead3040b18432eb1d31007", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling block-padding v0.3.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling jiff v0.2.23
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling env_filter v1.0.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling nom_locate v5.0.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling ecb v0.1.2
[INFO] [stderr]    Compiling cbc v0.1.2
[INFO] [stderr]    Compiling rangemap v1.7.1
[INFO] [stderr]    Compiling ttf-parser v0.25.1
[INFO] [stderr]    Compiling weezl v0.1.12
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling env_logger v0.11.10
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling lopdf v0.38.0
[INFO] [stderr]    Compiling pdfsani v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 36s
[INFO] running `Command { std: "docker" "inspect" "28e8b4b00894138433b39d819b4f61b83a6e262376ead3040b18432eb1d31007", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "28e8b4b00894138433b39d819b4f61b83a6e262376ead3040b18432eb1d31007", kill_on_drop: false }`
[INFO] [stdout] 28e8b4b00894138433b39d819b4f61b83a6e262376ead3040b18432eb1d31007
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f49998af6d03f1a37adc7c70c49f1b7b0bd641834c9b8a953ebae7b0d03f735e
[INFO] running `Command { std: "docker" "start" "-a" "f49998af6d03f1a37adc7c70c49f1b7b0bd641834c9b8a953ebae7b0d03f735e", kill_on_drop: false }`
[INFO] [stderr]    Compiling pdfsani v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.17s
[INFO] running `Command { std: "docker" "inspect" "f49998af6d03f1a37adc7c70c49f1b7b0bd641834c9b8a953ebae7b0d03f735e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f49998af6d03f1a37adc7c70c49f1b7b0bd641834c9b8a953ebae7b0d03f735e", kill_on_drop: false }`
[INFO] [stdout] f49998af6d03f1a37adc7c70c49f1b7b0bd641834c9b8a953ebae7b0d03f735e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8686b24dd4948a1e06c840e12fddc76dab54db7b03e8c0d099898329714c7160
[INFO] running `Command { std: "docker" "start" "-a" "8686b24dd4948a1e06c840e12fddc76dab54db7b03e8c0d099898329714c7160", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.20s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/pdfsani-902b07a9bf0cc5c5)
[INFO] [stdout] 
[INFO] [stdout] running 84 tests
[INFO] [stdout] test charset::tests::test_filter_bidi_control ... ok
[INFO] [stdout] test charset::tests::test_filter_c0_control_preserves_whitespace ... ok
[INFO] [stdout] test charset::tests::test_all_zero_width_chars_covered ... ok
[INFO] [stdout] test charset::tests::test_filter_c0_control_removes_dangerous ... ok
[INFO] [stdout] test charset::tests::test_filter_bidi_isolates ... ok
[INFO] [stdout] test charset::tests::test_filter_c1_control ... ok
[INFO] [stdout] test charset::tests::test_filter_clean_text ... ok
[INFO] [stdout] test charset::tests::test_filter_mixed_categories ... ok
[INFO] [stdout] test charset::tests::test_filter_mongolian_vowel_separator ... ok
[INFO] [stdout] test charset::tests::test_filter_pua ... ok
[INFO] [stdout] test charset::tests::test_filter_word_joiner_and_invisibles ... ok
[INFO] [stdout] test charset::tests::test_filter_zero_width_chars ... ok
[INFO] [stdout] test charset::tests::test_nfkc_compatibility_decomposition ... ok
[INFO] [stdout] test charset::tests::test_nfkc_fullwidth_to_halfwidth ... ok
[INFO] [stdout] test charset::tests::test_sanitize_text_all_dangerous ... ok
[INFO] [stdout] test charset::tests::test_nfkc_normal_text_unchanged ... ok
[INFO] [stdout] test charset::tests::test_filter_bom_and_soft_hyphen ... ok
[INFO] [stdout] test charset::tests::test_sanitize_text_combined ... ok
[INFO] [stdout] test charset::tests::test_sanitize_text_empty ... ok
[INFO] [stdout] test cleaner::tests::test_output_is_valid_pdf ... ok
[INFO] [stdout] test charset::tests::test_filter_unicode_tags ... ok
[INFO] [stdout] test cleaner::tests::test_ocg_text_removal ... ok
[INFO] [stdout] test cleaner::tests::test_strip_zwc_singlebyte_no_zwc ... ok
[INFO] [stdout] test cleaner::tests::test_empty_content_stream ... ok
[INFO] [stdout] test cleaner::tests::test_strip_zwc_singlebyte_with_soft_hyphen ... ok
[INFO] [stdout] test cleaner::tests::test_strip_zwc_utf16be_bom_preserved ... ok
[INFO] [stdout] test cleaner::tests::test_mixed_visible_and_hidden ... ok
[INFO] [stdout] test cleaner::tests::test_offpage_text_removal ... ok
[INFO] [stdout] test cleaner::tests::test_strip_zwc_utf16be_removes_zwsp ... ok
[INFO] [stdout] test cleaner::tests::test_micro_font_removal ... ok
[INFO] [stdout] test cleaner::tests::test_graphics_state_save_restore ... ok
[INFO] [stdout] test datamark::tests::test_generate_datamark_chars_from_pool ... ok
[INFO] [stdout] test datamark::tests::test_generate_datamark_length ... ok
[INFO] [stdout] test datamark::tests::test_wrap_with_datamark_empty_text ... ok
[INFO] [stdout] test datamark::tests::test_generate_datamark_no_duplicates ... ok
[INFO] [stdout] test datamark::tests::test_generate_datamark_randomness ... ok
[INFO] [stdout] test datamark::tests::test_wrap_with_datamark_contains_content ... ok
[INFO] [stdout] test datamark::tests::test_wrap_with_datamark_starts_and_ends ... ok
[INFO] [stdout] test datamark::tests::test_wrap_with_datamark_exact_format ... ok
[INFO] [stdout] test cleaner::tests::test_zwc_utf16be_stripped ... ok
[INFO] [stdout] test extractor::tests::test_decode_pdf_string_ascii ... ok
[INFO] [stdout] test extractor::tests::test_decode_pdf_string_utf16be ... ok
[INFO] [stdout] test cleaner::tests::test_white_text_removal ... ok
[INFO] [stdout] test extractor::tests::test_basic_text_extraction ... ok
[INFO] [stdout] test extractor::tests::test_graphics_state_save_restore ... ok
[INFO] [stdout] test cleaner::tests::test_zwc_stripped_from_visible_text ... ok
[INFO] [stdout] test extractor::tests::test_borderline_white_color ... ok
[INFO] [stdout] test extractor::tests::test_grayscale_white_filtered ... ok
[INFO] [stdout] test extractor::tests::test_cmyk_white_filtered ... ok
[INFO] [stdout] test cleaner::tests::test_tj_array_hidden_filtered ... ok
[INFO] [stdout] test extractor::tests::test_empty_pdf ... ok
[INFO] [stdout] test extractor::tests::test_invalid_pdf_data ... ok
[INFO] [stdout] test extractor::tests::test_micro_font_filtered ... ok
[INFO] [stdout] test extractor::tests::test_offpage_text_right ... ok
[INFO] [stdout] test extractor::tests::test_offpage_text_below ... ok
[INFO] [stdout] test extractor::tests::test_text_matrix_position ... ok
[INFO] [stdout] test extractor::tests::test_offpage_text_filtered ... ok
[INFO] [stdout] test extractor::tests::test_near_white_text_filtered ... ok
[INFO] [stdout] test output::tests::test_character_stats_from_filter_stats ... ok
[INFO] [stdout] test output::tests::test_content_filter_stats_from_extract_stats ... ok
[INFO] [stdout] test output::tests::test_format_json_processing_time ... ok
[INFO] [stdout] test extractor::tests::test_tj_array_extraction ... ok
[INFO] [stdout] test extractor::tests::test_white_text_filtered ... ok
[INFO] [stdout] test output::tests::test_format_json_is_valid_json ... ok
[INFO] [stdout] test output::tests::test_format_json_content_filter_stats_values ... ok
[INFO] [stdout] test output::tests::test_format_json_removed_has_content_filtered ... ok
[INFO] [stdout] test output::tests::test_format_json_required_fields ... ok
[INFO] [stdout] test output::tests::test_format_json_text_field ... ok
[INFO] [stdout] test output::tests::test_format_text_datamark_exact_format ... ok
[INFO] [stdout] test output::tests::test_format_json_with_datamark_field_present ... ok
[INFO] [stdout] test output::tests::test_format_json_success_true ... ok
[INFO] [stdout] test output::tests::test_format_json_sanitize_stats_values ... ok
[INFO] [stdout] test output::tests::test_format_text_no_datamark ... ok
[INFO] [stdout] test output::tests::test_format_text_with_datamark ... ok
[INFO] [stdout] test output::tests::test_format_json_without_datamark_field_absent ... ok
[INFO] [stdout] test sanitizer::tests::test_load_invalid_pdf ... ok
[INFO] [stdout] test sanitizer::tests::test_stats_default ... ok
[INFO] [stdout] test sanitizer::tests::test_sanitized_pdf_is_valid ... ok
[INFO] [stdout] test extractor::tests::test_borderline_font_size ... ok
[INFO] [stdout] test sanitizer::tests::test_ocg_page_properties_cleaned ... ok
[INFO] [stdout] test sanitizer::tests::test_metadata_removal ... ok
[INFO] [stdout] test sanitizer::tests::test_ocg_off_layer_removed ... ok
[INFO] [stdout] test sanitizer::tests::test_sanitize_pdf_with_annotations ... ok
[INFO] [stdout] test sanitizer::tests::test_sanitize_minimal_pdf ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 84 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/pdfsani-84f4eb32f31180a3)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_tests.rs (/opt/rustwide/target/debug/deps/integration_tests-632271b864ec43ec)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 33 tests
[INFO] [stdout] test charset_unicode_tags_removed ... ok
[INFO] [stdout] test charset_c0_control_stripped_whitespace_preserved ... ok
[INFO] [stdout] test charset_pua_chars_removed ... ok
[INFO] [stdout] test cli_extract_nonexistent_file ... ok
[INFO] [stdout] test cli_clean_no_input_exits_nonzero ... ok
[INFO] [stdout] test cli_extract_no_input_exits_nonzero ... ok
[INFO] [stdout] test cli_extract_text_datamark_wraps_output ... ok
[INFO] [stdout] test cli_clean_valid_pdf_produces_output_file ... ok
[INFO] [stdout] test cli_extract_invalid_format ... ok
[INFO] [stdout] test cli_extract_empty_file_errors ... ok
[INFO] [stdout] test cli_clean_missing_output_flag ... ok
[INFO] [stdout] test cli_extract_random_bytes_errors ... ok
[INFO] [stdout] test cli_extract_text_file_errors ... ok
[INFO] [stdout] test cli_no_args_exits_nonzero ... ok
[INFO] [stdout] test full_pipeline_bidi_control_chars_removed ... ok
[INFO] [stdout] test cli_extract_to_output_file ... ok
[INFO] [stdout] test cli_json_no_datamark_field_absent ... ok
[INFO] [stdout] test lib_clean_random_bytes_errors ... ok
[INFO] [stdout] test lib_extract_random_bytes_errors ... ok
[INFO] [stdout] test cli_json_datamark_field_present ... ok
[INFO] [stdout] test lib_extract_text_from_minimal_pdf ... ok
[INFO] [stdout] test cli_extract_valid_pdf_succeeds ... ok
[INFO] [stdout] test lib_sanitize_empty_bytes_errors ... ok
[INFO] [stdout] test lib_full_extract_pipeline ... ok
[INFO] [stdout] test lib_clean_minimal_pdf_produces_valid_pdf ... ok
[INFO] [stdout] test lib_sanitize_random_bytes_invalid_pdf ... ok
[INFO] [stdout] test cli_json_output_valid_and_complete ... ok
[INFO] [stdout] test cli_json_removed_subfields_present ... ok
[INFO] [stdout] test full_pipeline_ascii_text_preserved ... ok
[INFO] [stdout] test full_pipeline_zero_width_chars_removed ... ok
[INFO] [stdout] test lib_sanitize_strips_metadata ... ok
[INFO] [stdout] test lib_sanitize_minimal_pdf_succeeds ... ok
[INFO] [stdout] test lib_full_clean_pipeline ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests pdfsani
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "8686b24dd4948a1e06c840e12fddc76dab54db7b03e8c0d099898329714c7160", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8686b24dd4948a1e06c840e12fddc76dab54db7b03e8c0d099898329714c7160", kill_on_drop: false }`
[INFO] [stdout] 8686b24dd4948a1e06c840e12fddc76dab54db7b03e8c0d099898329714c7160
