[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 1.95.0 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHarry-Zhang121%2Fpdfsani" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/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-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Harry-Zhang121/pdfsani on toolchain 1.95.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded jiff-tzdb-platform v0.1.3 [INFO] [stderr] Downloaded jiff-tzdb v0.1.6 [INFO] [stderr] Downloaded portable-atomic-util v0.2.6 [INFO] [stderr] Downloaded lopdf v0.38.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 151a3209a33cdbff4ad25a081b153884e36b999deb1adfd00573900933454da8 [INFO] running `Command { std: "docker" "start" "-a" "151a3209a33cdbff4ad25a081b153884e36b999deb1adfd00573900933454da8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "151a3209a33cdbff4ad25a081b153884e36b999deb1adfd00573900933454da8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "151a3209a33cdbff4ad25a081b153884e36b999deb1adfd00573900933454da8", kill_on_drop: false }` [INFO] [stdout] 151a3209a33cdbff4ad25a081b153884e36b999deb1adfd00573900933454da8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c8d78d7da810441b5e320eebf6f4f4e4c6f62965cb9f79acd7da7d54e13c09b7 [INFO] running `Command { std: "docker" "start" "-a" "c8d78d7da810441b5e320eebf6f4f4e4c6f62965cb9f79acd7da7d54e13c09b7", kill_on_drop: false }` [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling unicode-ident v1.0.24 [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 anstyle-parse v1.0.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling tinyvec v1.11.0 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling unicode-properties v0.1.4 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling unicode-normalization v0.1.25 [INFO] [stderr] Compiling unicode-bidi v0.3.18 [INFO] [stderr] Compiling bytecount v0.6.9 [INFO] [stderr] Compiling aho-corasick v1.1.4 [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 num-conv v0.2.1 [INFO] [stderr] Compiling jiff v0.2.23 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling stringprep v0.1.5 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling rangemap v1.7.1 [INFO] [stderr] Compiling ttf-parser v0.25.1 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling block-padding v0.3.3 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling md-5 v0.10.6 [INFO] [stderr] Compiling cbc v0.1.2 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling ecb v0.1.2 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling nom_locate v5.0.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling env_filter v1.0.1 [INFO] [stderr] Compiling env_logger v0.11.10 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling lopdf v0.38.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling pdfsani v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.59s [INFO] running `Command { std: "docker" "inspect" "c8d78d7da810441b5e320eebf6f4f4e4c6f62965cb9f79acd7da7d54e13c09b7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c8d78d7da810441b5e320eebf6f4f4e4c6f62965cb9f79acd7da7d54e13c09b7", kill_on_drop: false }` [INFO] [stdout] c8d78d7da810441b5e320eebf6f4f4e4c6f62965cb9f79acd7da7d54e13c09b7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ff688c28059aaf3120b2b208edd29fd0e0ccd997c7e708cafed5acc255b5beed [INFO] running `Command { std: "docker" "start" "-a" "ff688c28059aaf3120b2b208edd29fd0e0ccd997c7e708cafed5acc255b5beed", kill_on_drop: false }` [INFO] [stderr] Compiling pdfsani v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.61s [INFO] running `Command { std: "docker" "inspect" "ff688c28059aaf3120b2b208edd29fd0e0ccd997c7e708cafed5acc255b5beed", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ff688c28059aaf3120b2b208edd29fd0e0ccd997c7e708cafed5acc255b5beed", kill_on_drop: false }` [INFO] [stdout] ff688c28059aaf3120b2b208edd29fd0e0ccd997c7e708cafed5acc255b5beed [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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" "+1.95.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] be4481bbf01cff8cfa0ee9b538ba96882bf8c0ccca1d43cd90d2665deea550d7 [INFO] running `Command { std: "docker" "start" "-a" "be4481bbf01cff8cfa0ee9b538ba96882bf8c0ccca1d43cd90d2665deea550d7", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/pdfsani-73407bd83fb23c1f) [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_filter_c0_control_removes_dangerous ... ok [INFO] [stdout] test charset::tests::test_all_zero_width_chars_covered ... ok [INFO] [stdout] test charset::tests::test_filter_c1_control ... ok [INFO] [stdout] test charset::tests::test_filter_mixed_categories ... ok [INFO] [stdout] test charset::tests::test_filter_clean_text ... 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_unicode_tags ... ok [INFO] [stdout] test charset::tests::test_filter_zero_width_chars ... ok [INFO] [stdout] test charset::tests::test_filter_word_joiner_and_invisibles ... ok [INFO] [stdout] test charset::tests::test_nfkc_fullwidth_to_halfwidth ... ok [INFO] [stdout] test charset::tests::test_nfkc_compatibility_decomposition ... ok [INFO] [stdout] test charset::tests::test_nfkc_normal_text_unchanged ... ok [INFO] [stdout] test charset::tests::test_sanitize_text_all_dangerous ... ok [INFO] [stdout] test cleaner::tests::test_strip_zwc_utf16be_bom_preserved ... 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_strip_zwc_singlebyte_no_zwc ... ok [INFO] [stdout] test datamark::tests::test_generate_datamark_chars_from_pool ... ok [INFO] [stdout] test charset::tests::test_filter_bidi_isolates ... ok [INFO] [stdout] test charset::tests::test_filter_bom_and_soft_hyphen ... ok [INFO] [stdout] test cleaner::tests::test_strip_zwc_singlebyte_with_soft_hyphen ... ok [INFO] [stdout] test cleaner::tests::test_strip_zwc_utf16be_removes_zwsp ... ok [INFO] [stdout] test datamark::tests::test_generate_datamark_randomness ... ok [INFO] [stdout] test datamark::tests::test_generate_datamark_no_duplicates ... ok [INFO] [stdout] test datamark::tests::test_wrap_with_datamark_contains_content ... ok [INFO] [stdout] test datamark::tests::test_wrap_with_datamark_exact_format ... ok [INFO] [stdout] test datamark::tests::test_wrap_with_datamark_empty_text ... ok [INFO] [stdout] test datamark::tests::test_wrap_with_datamark_starts_and_ends ... ok [INFO] [stdout] test datamark::tests::test_generate_datamark_length ... 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_empty_content_stream ... ok [INFO] [stdout] test cleaner::tests::test_graphics_state_save_restore ... ok [INFO] [stdout] test extractor::tests::test_grayscale_white_filtered ... ok [INFO] [stdout] test extractor::tests::test_basic_text_extraction ... ok [INFO] [stdout] test extractor::tests::test_invalid_pdf_data ... ok [INFO] [stdout] test extractor::tests::test_empty_pdf ... ok [INFO] [stdout] test extractor::tests::test_graphics_state_save_restore ... ok [INFO] [stdout] test cleaner::tests::test_mixed_visible_and_hidden ... ok [INFO] [stdout] test extractor::tests::test_borderline_font_size ... ok [INFO] [stdout] test extractor::tests::test_near_white_text_filtered ... ok [INFO] [stdout] test extractor::tests::test_offpage_text_filtered ... ok [INFO] [stdout] test extractor::tests::test_micro_font_filtered ... ok [INFO] [stdout] test extractor::tests::test_borderline_white_color ... 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 extractor::tests::test_offpage_text_right ... 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 extractor::tests::test_cmyk_white_filtered ... ok [INFO] [stdout] test output::tests::test_format_json_processing_time ... ok [INFO] [stdout] test output::tests::test_format_json_success_true ... ok [INFO] [stdout] test cleaner::tests::test_white_text_removal ... ok [INFO] [stdout] test extractor::tests::test_white_text_filtered ... ok [INFO] [stdout] test output::tests::test_format_json_with_datamark_field_present ... ok [INFO] [stdout] test output::tests::test_format_json_without_datamark_field_absent ... ok [INFO] [stdout] test output::tests::test_format_text_datamark_exact_format ... ok [INFO] [stdout] test output::tests::test_format_json_text_field ... ok [INFO] [stdout] test output::tests::test_format_json_sanitize_stats_values ... ok [INFO] [stdout] test output::tests::test_format_json_removed_has_content_filtered ... ok [INFO] [stdout] test cleaner::tests::test_zwc_stripped_from_visible_text ... ok [INFO] [stdout] test output::tests::test_format_text_no_datamark ... ok [INFO] [stdout] test sanitizer::tests::test_load_invalid_pdf ... ok [INFO] [stdout] test cleaner::tests::test_output_is_valid_pdf ... ok [INFO] [stdout] test cleaner::tests::test_zwc_utf16be_stripped ... ok [INFO] [stdout] test extractor::tests::test_tj_array_extraction ... ok [INFO] [stdout] test cleaner::tests::test_tj_array_hidden_filtered ... ok [INFO] [stdout] test output::tests::test_format_text_with_datamark ... ok [INFO] [stdout] test sanitizer::tests::test_stats_default ... ok [INFO] [stdout] test cleaner::tests::test_micro_font_removal ... ok [INFO] [stdout] test extractor::tests::test_text_matrix_position ... ok [INFO] [stdout] test cleaner::tests::test_ocg_text_removal ... ok [INFO] [stdout] test sanitizer::tests::test_sanitized_pdf_is_valid ... ok [INFO] [stdout] test sanitizer::tests::test_sanitize_minimal_pdf ... ok [INFO] [stdout] test sanitizer::tests::test_ocg_page_properties_cleaned ... ok [INFO] [stdout] test sanitizer::tests::test_sanitize_pdf_with_annotations ... ok [INFO] [stdout] test output::tests::test_format_json_required_fields ... ok [INFO] [stdout] test sanitizer::tests::test_metadata_removal ... ok [INFO] [stdout] test extractor::tests::test_offpage_text_below ... ok [INFO] [stdout] test cleaner::tests::test_offpage_text_removal ... ok [INFO] [stdout] test sanitizer::tests::test_ocg_off_layer_removed ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 84 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/pdfsani-1b23afb67145d29a) [INFO] [stderr] Running tests/integration_tests.rs (/opt/rustwide/target/debug/deps/integration_tests-33ff3a32b2224eb8) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 33 tests [INFO] [stdout] test charset_pua_chars_removed ... ok [INFO] [stdout] test charset_c0_control_stripped_whitespace_preserved ... ok [INFO] [stdout] test charset_unicode_tags_removed ... 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_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 full_pipeline_bidi_control_chars_removed ... ok [INFO] [stdout] test cli_extract_nonexistent_file ... ok [INFO] [stdout] test lib_extract_random_bytes_errors ... ok [INFO] [stdout] test cli_extract_empty_file_errors ... ok [INFO] [stdout] test cli_extract_invalid_format ... ok [INFO] [stdout] test lib_clean_random_bytes_errors ... ok [INFO] [stdout] test lib_sanitize_empty_bytes_errors ... ok [INFO] [stdout] test lib_extract_text_from_minimal_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_no_args_exits_nonzero ... ok [INFO] [stdout] test cli_extract_text_datamark_wraps_output ... ok [INFO] [stdout] test cli_json_no_datamark_field_absent ... ok [INFO] [stdout] test cli_json_datamark_field_present ... ok [INFO] [stdout] test cli_extract_valid_pdf_succeeds ... ok [INFO] [stdout] test cli_clean_valid_pdf_produces_output_file ... ok [INFO] [stdout] test lib_sanitize_minimal_pdf_succeeds ... ok [INFO] [stdout] test lib_clean_minimal_pdf_produces_valid_pdf ... ok [INFO] [stdout] test lib_full_extract_pipeline ... ok [INFO] [stdout] test cli_json_removed_subfields_present ... ok [INFO] [stdout] test lib_full_clean_pipeline ... ok [INFO] [stdout] test full_pipeline_ascii_text_preserved ... ok [INFO] [stdout] test lib_sanitize_strips_metadata ... ok [INFO] [stdout] test cli_extract_to_output_file ... ok [INFO] [stdout] test full_pipeline_zero_width_chars_removed ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [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" "be4481bbf01cff8cfa0ee9b538ba96882bf8c0ccca1d43cd90d2665deea550d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "be4481bbf01cff8cfa0ee9b538ba96882bf8c0ccca1d43cd90d2665deea550d7", kill_on_drop: false }` [INFO] [stdout] be4481bbf01cff8cfa0ee9b538ba96882bf8c0ccca1d43cd90d2665deea550d7