[INFO] cloning repository https://github.com/ComposerChrisF/pdf-dump [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ComposerChrisF/pdf-dump" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FComposerChrisF%2Fpdf-dump", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FComposerChrisF%2Fpdf-dump'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 07664a3e1a8a7bdefff0e0f088c207ca2f8d79a7 [INFO] testing ComposerChrisF/pdf-dump against 1.97.0-beta.6 for beta-1.98-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FComposerChrisF%2Fpdf-dump" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-6-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/ComposerChrisF/pdf-dump [INFO] finished tweaking git repo https://github.com/ComposerChrisF/pdf-dump [INFO] tweaked toml for git repo https://github.com/ComposerChrisF/pdf-dump written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ComposerChrisF/pdf-dump on toolchain 1.97.0-beta.6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/ComposerChrisF/pdf-dump 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded anstyle-query v1.1.3 [INFO] [stderr] Downloaded anstyle-wincon v3.0.9 [INFO] [stderr] Downloaded ecb v0.1.2 [INFO] [stderr] Downloaded anstream v0.6.19 [INFO] [stderr] Downloaded clap_derive v4.5.40 [INFO] [stderr] Downloaded weezl v0.1.10 [INFO] [stderr] Downloaded clap v4.5.40 [INFO] [stderr] Downloaded jiff-tzdb v0.1.4 [INFO] [stderr] Downloaded jiff-static v0.2.15 [INFO] [stderr] Downloaded rand v0.10.1 [INFO] [stderr] Downloaded serde_json v1.0.143 [INFO] [stderr] Downloaded clap_builder v4.5.40 [INFO] [stderr] Downloaded lopdf v0.42.0 [INFO] [stderr] Downloaded jiff v0.2.15 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 78893a9b55741a2a30e87cc08da221e1f23e4b0f220c73353fa9bdf706c8c27c [INFO] running `Command { std: "docker" "start" "78893a9b55741a2a30e87cc08da221e1f23e4b0f220c73353fa9bdf706c8c27c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "78893a9b55741a2a30e87cc08da221e1f23e4b0f220c73353fa9bdf706c8c27c", 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" "78893a9b55741a2a30e87cc08da221e1f23e4b0f220c73353fa9bdf706c8c27c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "78893a9b55741a2a30e87cc08da221e1f23e4b0f220c73353fa9bdf706c8c27c", 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" "78893a9b55741a2a30e87cc08da221e1f23e4b0f220c73353fa9bdf706c8c27c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Compiling cfg-if v1.0.1 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling rand_core v0.10.1 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling anstyle-query v1.1.3 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling tinyvec v1.9.0 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.1 [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling cpufeatures v0.3.0 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling anstyle v1.0.11 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling chacha20 v0.10.1 [INFO] [stderr] Compiling crc32fast v1.4.2 [INFO] [stderr] Compiling deranged v0.4.0 [INFO] [stderr] Compiling hashbrown v0.15.4 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling anstream v0.6.19 [INFO] [stderr] Compiling serde_json v1.0.143 [INFO] [stderr] Compiling clap_lex v0.7.5 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling iana-time-zone v0.1.63 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling unicode-properties v0.1.3 [INFO] [stderr] Compiling unicode-bidi v0.3.18 [INFO] [stderr] Compiling time-core v0.1.4 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling indexmap v2.10.0 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Compiling flate2 v1.1.2 [INFO] [stderr] Compiling unicode-normalization v0.1.24 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling clap_builder v4.5.40 [INFO] [stderr] Compiling time v0.3.41 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling chrono v0.4.41 [INFO] [stderr] Compiling rand v0.10.1 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling rangemap v1.5.1 [INFO] [stderr] Compiling stringprep v0.1.5 [INFO] [stderr] Compiling jiff v0.2.15 [INFO] [stderr] Compiling crypto-common v0.1.6 [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 digest v0.10.7 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling ecb v0.1.2 [INFO] [stderr] Compiling cbc v0.1.2 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling md-5 v0.10.6 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling ttf-parser v0.25.1 [INFO] [stderr] Compiling log v0.4.27 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling weezl v0.1.10 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling clap_derive v4.5.40 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling lopdf v0.42.0 [INFO] [stderr] Compiling clap v4.5.40 [INFO] [stderr] Compiling pdf-dump v0.23.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 55.53s [INFO] running `Command { std: "docker" "inspect" "78893a9b55741a2a30e87cc08da221e1f23e4b0f220c73353fa9bdf706c8c27c", 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" "78893a9b55741a2a30e87cc08da221e1f23e4b0f220c73353fa9bdf706c8c27c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling diff v0.1.13 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling lopdf v0.42.0 [INFO] [stderr] Compiling pretty_assertions v1.4.1 [INFO] [stderr] Compiling tempfile v3.25.0 [INFO] [stderr] Compiling pdf-dump v0.23.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 31.97s [INFO] running `Command { std: "docker" "inspect" "78893a9b55741a2a30e87cc08da221e1f23e4b0f220c73353fa9bdf706c8c27c", 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" "78893a9b55741a2a30e87cc08da221e1f23e4b0f220c73353fa9bdf706c8c27c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", 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/pdf_dump-fc81e38f036b8fb2) [INFO] [stdout] [INFO] [stdout] running 1010 tests [INFO] [stdout] test annotations::tests::annotations_highlight_type ... ok [INFO] [stdout] test annotations::tests::annotations_json_includes_link_fields ... ok [INFO] [stdout] test annotations::tests::annotations_link_annotation ... ok [INFO] [stdout] test annotations::tests::annotations_json_output ... ok [INFO] [stdout] test annotations::tests::annotations_link_goto_type ... ok [INFO] [stdout] test annotations::tests::annotations_link_gotor_type ... ok [INFO] [stdout] test annotations::tests::annotations_annots_as_reference ... ok [INFO] [stdout] test annotations::tests::annotations_link_launch_type ... ok [INFO] [stdout] test annotations::tests::annotations_link_named_type ... ok [INFO] [stdout] test annotations::tests::annotations_link_unknown_action ... ok [INFO] [stdout] test annotations::tests::annotations_link_uri_type_and_target ... ok [INFO] [stdout] test annotations::tests::annotations_missing_rect ... ok [INFO] [stdout] test annotations::tests::annotations_missing_subtype ... ok [INFO] [stdout] test annotations::tests::annotations_no_annotations ... ok [INFO] [stdout] test annotations::tests::annotations_multiple_on_same_page ... ok [INFO] [stdout] test annotations::tests::annotations_non_link_has_no_link_type ... ok [INFO] [stdout] test annotations::tests::annotations_page_filter ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_count_no_outlines ... ok [INFO] [stdout] test annotations::tests::annotations_page_range_filter ... ok [INFO] [stdout] test annotations::tests::annotations_text_annotation ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_missing_title ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_no_dest_no_action ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_count_function ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_with_dest_array ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_nested_children ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_with_goto_action ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_with_string_dest ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_json_nested_children ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_cycle_detection ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_json_no_outlines ... ok [INFO] [stdout] test cmap::tests::bfchar_single_one_byte ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_with_unknown_action ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_with_named_dest ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_no_outlines ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_siblings ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_with_uri_action ... ok [INFO] [stdout] test cmap::tests::array_shorter_than_range_returns_none_for_tail ... ok [INFO] [stdout] test cmap::tests::byte_width_fixed_one ... ok [INFO] [stdout] test cmap::tests::byte_width_fixed_two ... ok [INFO] [stdout] test cmap::tests::byte_width_unknown_when_absent ... ok [INFO] [stdout] test cmap::tests::comments_are_skipped ... ok [INFO] [stdout] test cmap::tests::byte_width_variable ... ok [INFO] [stdout] test bookmarks::tests::bookmarks_json_output ... ok [INFO] [stdout] test cmap::tests::empty_input_is_empty ... ok [INFO] [stdout] test cmap::tests::bfchar_single_two_byte ... ok [INFO] [stdout] test cmap::tests::bfrange_array ... ok [INFO] [stdout] test cmap::tests::garbage_between_sections_is_skipped ... ok [INFO] [stdout] test cmap::tests::empty_dst_maps_to_empty_string ... ok [INFO] [stdout] test cmap::tests::lone_surrogate_becomes_replacement ... ok [INFO] [stdout] test cmap::tests::map_code_miss_returns_none ... ok [INFO] [stdout] test cmap::tests::multi_unit_ligature ... ok [INFO] [stdout] test cmap::tests::next_code_fixed_width_consumes_full_width ... ok [INFO] [stdout] test cmap::tests::next_code_no_match_consumes_min_width ... ok [INFO] [stdout] test cmap::tests::next_code_mixed_width_prefers_matching_range ... ok [INFO] [stdout] test cmap::tests::next_code_short_tail_consumes_remainder ... ok [INFO] [stdout] test cmap::tests::odd_hex_digits_do_not_panic ... ok [INFO] [stdout] test cmap::tests::huge_incrementing_range_is_lazy ... ok [INFO] [stdout] test cmap::tests::bfrange_incrementing ... ok [INFO] [stdout] test cmap::tests::reversed_range_never_matches ... ok [INFO] [stdout] test cmap::tests::unterminated_section_still_maps ... ok [INFO] [stdout] test embedded::tests::embedded_files_none ... ok [INFO] [stdout] test embedded::tests::embedded_files_print ... ok [INFO] [stdout] test embedded::tests::embedded_files_basic ... ok [INFO] [stdout] test embedded::tests::embedded_files_json ... ok [INFO] [stdout] test embedded::tests::embedded_files_uf_fallback_to_f ... ok [INFO] [stdout] test encodings::tests::ascii_is_identity ... ok [INFO] [stdout] test embedded::tests::embedded_files_json_structure_with_file ... ok [INFO] [stdout] test embedded::tests::embedded_files_non_reference_value_skipped ... ok [INFO] [stdout] test embedded::tests::embedded_files_no_names ... ok [INFO] [stdout] test encodings::tests::curly_quotes ... ok [INFO] [stdout] test encodings::tests::dashes ... ok [INFO] [stdout] test embedded::tests::embedded_files_print_with_file ... ok [INFO] [stdout] test embedded::tests::embedded_files_missing_ef ... ok [INFO] [stdout] test embedded::tests::embedded_files_missing_params_size ... ok [INFO] [stdout] test encodings::tests::latin1_high_range ... ok [INFO] [stdout] test encodings::tests::macexpert_exact_unicode_forms ... ok [INFO] [stdout] test encodings::tests::macexpert_ligatures_and_rupiah_expand_multi_char ... ok [INFO] [stdout] test encodings::tests::macexpert_small_caps_fold_to_base_letters ... ok [INFO] [stdout] test cmap::tests::surrogate_pair ... ok [INFO] [stdout] test encodings::tests::macexpert_small_punctuation_and_currency_fold ... ok [INFO] [stdout] test encodings::tests::macexpert_superior_inferior_letters_and_punct_fold_to_base ... ok [INFO] [stdout] test encodings::tests::euro_and_trademark ... ok [INFO] [stdout] test encodings::tests::macroman_apostrophe_and_quotes ... ok [INFO] [stdout] test encodings::tests::macroman_ascii_is_identity ... ok [INFO] [stdout] test encodings::tests::macroman_accented_letters ... ok [INFO] [stdout] test encodings::tests::macexpert_unassigned_are_none ... ok [INFO] [stdout] test encodings::tests::macexpert_oldstyle_figures_fold_to_digits ... ok [INFO] [stdout] test encodings::tests::macroman_ligatures_decompose_to_ascii ... ok [INFO] [stdout] test encodings::tests::standard_ascii_is_mostly_identity ... ok [INFO] [stdout] test embedded::tests::embedded_files_missing_mime_type ... ok [INFO] [stdout] test encodings::tests::macroman_dashes_and_ellipsis ... ok [INFO] [stdout] test encodings::tests::macroman_control_range_is_none ... ok [INFO] [stdout] test encodings::tests::standard_quote_departures_from_ascii ... ok [INFO] [stdout] test encodings::tests::standard_unassigned_and_control_are_none ... ok [INFO] [stdout] test encodings::tests::macroman_high_range_all_defined ... ok [INFO] [stdout] test encodings::tests::unassigned_and_control_are_none ... ok [INFO] [stdout] test encodings::tests::standard_high_range_glyphs ... ok [INFO] [stdout] test encodings::tests::winansi_latin1_matches_scalar ... ok [INFO] [stdout] test encodings::tests::macroman_special_symbols ... ok [INFO] [stdout] test encodings::tests::standard_high_range_letters ... ok [INFO] [stdout] test find_text::tests::find_text_empty_pattern ... ok [INFO] [stdout] test find_text::tests::find_text_case_insensitive ... ok [INFO] [stdout] test find_text::tests::find_text_json_no_matches ... ok [INFO] [stdout] test find_text::tests::find_text_json_output ... ok [INFO] [stdout] test find_text::tests::find_text_multiple_pages ... ok [INFO] [stdout] test find_text::tests::find_text_json_multiple_pages ... ok [INFO] [stdout] test find_text::tests::find_text_context_shown ... ok [INFO] [stdout] test find_text::tests::find_text_multiple_matches_on_same_page ... ok [INFO] [stdout] test find_text::tests::find_text_page_filter_nonexistent_page ... ok [INFO] [stdout] test fonts::tests::collect_fonts_by_subtype_only ... ok [INFO] [stdout] test fonts::tests::collect_fonts_cid_font_subtypes ... ok [INFO] [stdout] test fonts::tests::collect_fonts_embedded_fontfile3_opentype ... ok [INFO] [stdout] test find_text::tests::find_text_with_page_filter ... ok [INFO] [stdout] test find_text::tests::find_text_page_range_filter ... ok [INFO] [stdout] test find_text::tests::find_text_singular_plural ... ok [INFO] [stdout] test find_text::tests::find_text_single_match ... ok [INFO] [stdout] test fonts::tests::collect_fonts_encoding_as_dict_shows_dash ... ok [INFO] [stdout] test fonts::tests::collect_fonts_embedded_fontfile_type1 ... ok [INFO] [stdout] test fonts::tests::collect_fonts_finds_typed_font ... ok [INFO] [stdout] test fonts::tests::collect_fonts_no_fontdescriptor_means_not_embedded ... ok [INFO] [stdout] test fonts::tests::collect_fonts_encoding_as_reference ... ok [INFO] [stdout] test fonts::tests::collect_fonts_font_in_stream_object ... ok [INFO] [stdout] test fonts::tests::collect_fonts_no_fonts_in_doc ... ok [INFO] [stdout] test fonts::tests::collect_fonts_fontdescriptor_without_fontfile ... ok [INFO] [stdout] test fonts::tests::collect_fonts_missing_subtype_defaults_to_dash ... ok [INFO] [stdout] test fonts::tests::collect_fonts_mmtype1 ... ok [INFO] [stdout] test fonts::tests::collect_fonts_detects_embedded ... ok [INFO] [stdout] test fonts::tests::collect_fonts_non_font_subtype_ignored ... ok [INFO] [stdout] test fonts::tests::collect_fonts_sorted_by_object_id ... ok [INFO] [stdout] test fonts::tests::collect_fonts_type0_composite ... ok [INFO] [stdout] test fonts::tests::collect_fonts_without_basefont ... ok [INFO] [stdout] test fonts::tests::fonts_cid_system_info ... ok [INFO] [stdout] test fonts::tests::fonts_encoding_differences_small ... ok [INFO] [stdout] test fonts::tests::fonts_json_omits_absent_diagnostics ... ok [INFO] [stdout] test fonts::tests::fonts_encoding_differences_truncated ... ok [INFO] [stdout] test fonts::tests::fonts_encoding_differences_via_reference ... ok [INFO] [stdout] test find_text::tests::find_text_no_matches ... ok [INFO] [stdout] test fonts::tests::fonts_first_last_char_widths ... ok [INFO] [stdout] test fonts::tests::fonts_to_unicode_absent ... ok [INFO] [stdout] test fonts::tests::fonts_text_output_shows_diagnostics ... ok [INFO] [stdout] test fonts::tests::print_fonts_json_embedded_null_when_not_embedded ... ok [INFO] [stdout] test fonts::tests::print_fonts_text_output ... ok [INFO] [stdout] test fonts::tests::fonts_json_cid_system_info ... ok [INFO] [stdout] test fonts::tests::print_fonts_json_produces_valid_json ... ok [INFO] [stdout] test fonts::tests::fonts_no_diagnostics_for_simple_font ... ok [INFO] [stdout] test forms::tests::forms_empty_fields ... ok [INFO] [stdout] test forms::tests::forms_field_missing_name ... ok [INFO] [stdout] test fonts::tests::fonts_to_unicode_present ... ok [INFO] [stdout] test forms::tests::forms_field_missing_type ... ok [INFO] [stdout] test forms::tests::forms_field_missing_value ... ok [INFO] [stdout] test fonts::tests::fonts_widths_as_reference ... ok [INFO] [stdout] test forms::tests::forms_hierarchical_fields ... ok [INFO] [stdout] test fonts::tests::print_fonts_json_embedded_object_when_embedded ... ok [INFO] [stdout] test forms::tests::forms_json_no_acroform ... ok [INFO] [stdout] test forms::tests::forms_deeply_nested_hierarchy ... ok [INFO] [stdout] test forms::tests::forms_flags_preserved ... ok [INFO] [stdout] test fonts::tests::fonts_json_includes_diagnostics ... ok [INFO] [stdout] test forms::tests::forms_inline_acroform ... ok [INFO] [stdout] test forms::tests::forms_json_structure_complete ... ok [INFO] [stdout] test forms::tests::forms_json_structure ... ok [INFO] [stdout] test forms::tests::forms_need_appearances_false ... ok [INFO] [stdout] test forms::tests::forms_no_acroform ... ok [INFO] [stdout] test forms::tests::forms_page_mapping ... ok [INFO] [stdout] test forms::tests::forms_shows_fields ... ok [INFO] [stdout] test helpers::tests::format_color_space_array ... ok [INFO] [stdout] test helpers::tests::format_color_space_array_with_unknown_item ... ok [INFO] [stdout] test helpers::tests::format_color_space_name ... ok [INFO] [stdout] test helpers::tests::format_color_space_reference_in_array ... ok [INFO] [stdout] test helpers::tests::format_color_space_unknown_type_shows_dash ... ok [INFO] [stdout] test helpers::tests::format_dict_value_boolean ... ok [INFO] [stdout] test helpers::tests::format_dict_value_array ... ok [INFO] [stdout] test helpers::tests::format_dict_value_name ... ok [INFO] [stdout] test helpers::tests::format_dict_value_dictionary ... ok [INFO] [stdout] test helpers::tests::format_dict_value_real ... ok [INFO] [stdout] test helpers::tests::format_dict_value_reference ... ok [INFO] [stdout] test helpers::tests::format_dict_value_integer ... ok [INFO] [stdout] test forms::tests::forms_value_types ... ok [INFO] [stdout] test helpers::tests::format_dict_value_nested_array ... ok [INFO] [stdout] test helpers::tests::format_dict_value_stream ... ok [INFO] [stdout] test helpers::tests::format_dict_value_null ... ok [INFO] [stdout] test helpers::tests::format_filter_array_with_unknown_item ... ok [INFO] [stdout] test helpers::tests::format_filter_array ... ok [INFO] [stdout] test helpers::tests::format_filter_name ... ok [INFO] [stdout] test helpers::tests::format_filter_unknown_type_shows_dash ... ok [INFO] [stdout] test helpers::tests::format_dict_value_string ... ok [INFO] [stdout] test helpers::tests::format_operation_name_and_int ... ok [INFO] [stdout] test helpers::tests::format_operation_reference ... ok [INFO] [stdout] test helpers::tests::format_operation_no_operands ... ok [INFO] [stdout] test helpers::tests::format_operation_string_tj ... ok [INFO] [stdout] test helpers::tests::format_operation_tj_array ... ok [INFO] [stdout] test helpers::tests::object_type_label_null ... ok [INFO] [stdout] test helpers::tests::object_type_label_dictionary_with_type ... ok [INFO] [stdout] test helpers::tests::object_type_label_dictionary_without_type ... ok [INFO] [stdout] test helpers::tests::object_type_label_stream_without_type ... ok [INFO] [stdout] test helpers::tests::object_type_label_stream_with_type ... ok [INFO] [stdout] test helpers::tests::walk_name_tree_cycle_protection ... ok [INFO] [stdout] test helpers::tests::object_type_label_integer ... ok [INFO] [stdout] test helpers::tests::walk_name_tree_leaf_only ... ok [INFO] [stdout] test helpers::tests::walk_name_tree_with_kids ... ok [INFO] [stdout] test helpers::tests::walk_name_tree_empty ... ok [INFO] [stdout] test helpers::tests::walk_number_tree_cycle_protection ... ok [INFO] [stdout] test helpers::tests::walk_number_tree_empty ... ok [INFO] [stdout] test helpers::tests::walk_number_tree_leaf_only ... ok [INFO] [stdout] test helpers::tests::walk_number_tree_with_kids ... ok [INFO] [stdout] test images::tests::collect_images_colorspace_as_broken_reference ... ok [INFO] [stdout] test images::tests::collect_images_dict_not_stream ... ok [INFO] [stdout] test images::tests::collect_images_icc_color_space ... ok [INFO] [stdout] test images::tests::collect_images_missing_width_height_bpc_defaults_to_zero ... ok [INFO] [stdout] test images::tests::collect_images_multiple_images ... ok [INFO] [stdout] test images::tests::collect_images_no_colorspace_defaults_to_dash ... ok [INFO] [stdout] test images::tests::collect_images_no_filter_defaults_to_dash ... ok [INFO] [stdout] test images::tests::collect_images_no_images ... ok [INFO] [stdout] test images::tests::collect_images_sorted_by_object_id ... ok [INFO] [stdout] test images::tests::collect_images_filter_array ... ok [INFO] [stdout] test images::tests::collect_images_device_cmyk_color_space ... ok [INFO] [stdout] test images::tests::collect_images_finds_image_stream ... ok [INFO] [stdout] test images::tests::collect_images_colorspace_as_reference_resolved ... ok [INFO] [stdout] test images::tests::collect_images_dctdecode_filter ... ok [INFO] [stdout] test images::tests::print_images_json_all_fields_present ... ok [INFO] [stdout] test images::tests::print_images_json_produces_valid_json ... ok [INFO] [stdout] test images::tests::print_images_text_output ... ok [INFO] [stdout] test inspect::tests::classify_font_by_subtype_only ... ok [INFO] [stdout] test inspect::tests::classify_font_inline_font_descriptor ... ok [INFO] [stdout] test inspect::tests::classify_font_no_basefont ... ok [INFO] [stdout] test inspect::tests::classify_font_encoding_as_reference ... ok [INFO] [stdout] test inspect::tests::classify_font_unresolvable_font_descriptor ... ok [INFO] [stdout] test inspect::tests::classify_font_with_embedded_fontfile ... ok [INFO] [stdout] test inspect::tests::classify_font_no_font_descriptor ... ok [INFO] [stdout] test inspect::tests::classify_font_not_embedded ... ok [INFO] [stdout] test inspect::tests::classify_font_cid_font_type2 ... ok [INFO] [stdout] test inspect::tests::classify_font_cid_font_type0 ... ok [INFO] [stdout] test inspect::tests::classify_font_with_embedded_fontfile2 ... ok [INFO] [stdout] test inspect::tests::classify_font_with_firstchar_lastchar ... ok [INFO] [stdout] test inspect::tests::classify_font_with_tounicode ... ok [INFO] [stdout] test inspect::tests::classify_image_with_only_width ... ok [INFO] [stdout] test inspect::tests::classify_font_without_tounicode ... ok [INFO] [stdout] test inspect::tests::classify_image_without_colorspace ... ok [INFO] [stdout] test inspect::tests::classify_object_action ... ok [INFO] [stdout] test inspect::tests::classify_object_array ... ok [INFO] [stdout] test inspect::tests::classify_image_without_dimensions ... ok [INFO] [stdout] test inspect::tests::classify_object_annotation ... ok [INFO] [stdout] test inspect::tests::classify_object_boolean ... ok [INFO] [stdout] test inspect::tests::classify_object_catalog ... ok [INFO] [stdout] test inspect::tests::classify_object_embedded_font_program_cidfonttype0c ... ok [INFO] [stdout] test inspect::tests::classify_object_embedded_font_program_opentype ... ok [INFO] [stdout] test inspect::tests::classify_object_encoding ... ok [INFO] [stdout] test inspect::tests::classify_object_form_xobject ... ok [INFO] [stdout] test inspect::tests::classify_object_ext_gstate ... ok [INFO] [stdout] test inspect::tests::classify_object_font_descriptor ... ok [INFO] [stdout] test inspect::tests::classify_object_generic_dict ... ok [INFO] [stdout] test inspect::tests::classify_object_font ... ok [INFO] [stdout] test inspect::tests::classify_object_font_heuristic_widths_firstchar ... ok [INFO] [stdout] test inspect::tests::classify_object_generic_stream ... ok [INFO] [stdout] test inspect::tests::classify_object_image ... ok [INFO] [stdout] test inspect::tests::classify_object_integer ... ok [INFO] [stdout] test inspect::tests::classify_object_metadata_stream ... ok [INFO] [stdout] test inspect::tests::classify_object_mmtype1_font ... ok [INFO] [stdout] test inspect::tests::classify_object_name ... ok [INFO] [stdout] test inspect::tests::classify_object_obj_stream ... ok [INFO] [stdout] test inspect::tests::classify_object_null ... ok [INFO] [stdout] test inspect::tests::classify_object_pages_tree ... ok [INFO] [stdout] test inspect::tests::classify_object_real ... ok [INFO] [stdout] test inspect::tests::classify_object_page ... ok [INFO] [stdout] test inspect::tests::classify_object_reference ... ok [INFO] [stdout] test inspect::tests::classify_object_string ... ok [INFO] [stdout] test inspect::tests::classify_object_xref_stream ... ok [INFO] [stdout] test inspect::tests::classify_object_type3_font ... ok [INFO] [stdout] test inspect::tests::find_page_associations_multiple_pages ... ok [INFO] [stdout] test inspect::tests::find_page_associations_via_resource_ref ... ok [INFO] [stdout] test inspect::tests::find_page_associations_finds_direct_ref ... ok [INFO] [stdout] test inspect::tests::find_page_associations_no_association ... ok [INFO] [stdout] test inspect::tests::print_info_json_integer_object ... ok [INFO] [stdout] test inspect::tests::print_info_integer_object ... ok [INFO] [stdout] test glyphlist::tests::non_hex_uni_falls_through_to_table_or_none ... ok [INFO] [stdout] test glyphlist::tests::suffix_is_stripped ... ok [INFO] [stdout] test glyphlist::tests::uni_form_surrogate_pair ... ok [INFO] [stdout] test glyphlist::tests::uni_form_bmp ... ok [INFO] [stdout] test glyphlist::tests::underscore_ligature_concatenates_components ... ok [INFO] [stdout] test glyphlist::tests::u_form_astral ... ok [INFO] [stdout] test glyphlist::tests::uni_form_multiple_units ... ok [INFO] [stdout] test glyphlist::tests::unresolved_names_are_none ... ok [INFO] [stdout] test glyphlist::tests::plain_agl_names ... ok [INFO] [stdout] test glyphlist::tests::multi_codepoint_agl_entry ... ok [INFO] [stdout] test inspect::tests::print_info_json_metadata_stream ... ok [INFO] [stdout] test inspect::tests::print_info_json_object_not_found ... ok [INFO] [stdout] test inspect::tests::print_info_object_not_found ... ok [INFO] [stdout] test inspect::tests::print_info_page_associations_text ... ok [INFO] [stdout] test inspect::tests::print_info_shows_forward_refs ... ok [INFO] [stdout] test inspect::tests::print_info_json_with_page_associations ... ok [INFO] [stdout] test layers::tests::layers_default_state ... ok [INFO] [stdout] test layers::tests::layers_base_state_off_with_on_override ... ok [INFO] [stdout] test inspect::tests::print_info_json_multiple_page_associations ... ok [INFO] [stdout] test inspect::tests::print_info_shows_reverse_refs ... ok [INFO] [stdout] test inspect::tests::print_info_json_valid ... ok [INFO] [stdout] test layers::tests::layers_empty_ocgs ... ok [INFO] [stdout] test layers::tests::layers_collects_ocgs ... ok [INFO] [stdout] test layers::tests::layers_json_includes_generation_number ... ok [INFO] [stdout] test layers::tests::layers_no_d_config_defaults_base_state_on ... ok [INFO] [stdout] test layers::tests::layers_json_output ... ok [INFO] [stdout] test layers::tests::layers_ocgs_array_via_reference ... ok [INFO] [stdout] test inspect::tests::print_info_shows_role_and_details ... ok [INFO] [stdout] test layers::tests::layers_ocg_object_missing_from_doc_skipped ... ok [INFO] [stdout] test layers::tests::layers_non_reference_items_in_ocgs_array_skipped ... ok [INFO] [stdout] test layers::tests::layers_ocg_on_multiple_pages ... ok [INFO] [stdout] test layers::tests::layers_page_references ... ok [INFO] [stdout] test layers::tests::layers_print_no_layers_shows_zero_count_no_header ... ok [INFO] [stdout] test layers::tests::layers_print_shows_multiple_page_numbers ... ok [INFO] [stdout] test layers::tests::layers_properties_entry_non_ocg_not_counted ... ok [INFO] [stdout] test layers::tests::layers_unnamed_ocg ... ok [INFO] [stdout] test layers::tests::layers_text_output ... ok [INFO] [stdout] test layers::tests::layers_resources_inherited_from_parent ... ok [INFO] [stdout] test layers::tests::layers_ocproperties_via_reference ... ok [INFO] [stdout] test layers::tests::layers_no_ocproperties ... ok [INFO] [stdout] test object::tests::collect_reachable_ids_from_trailer ... ok [INFO] [stdout] test object::tests::collect_reachable_ids_multi_hop ... ok [INFO] [stdout] test object::tests::collect_reachable_ids_via_array ... ok [INFO] [stdout] test object::tests::collect_reachable_ids_via_stream_dict ... ok [INFO] [stdout] test object::tests::deref_stream_summary ... ok [INFO] [stdout] test object::tests::hex_mode_text_stream_unaffected ... ok [INFO] [stdout] test object::tests::hex_mode_json_shows_content_hex ... ok [INFO] [stdout] test object::tests::json_binary_stream_truncate_no_hex_shows_content_truncated ... ok [INFO] [stdout] test object::tests::hex_mode_json_text_stream_uses_content_not_hex ... ok [INFO] [stdout] test object::tests::deref_false_no_expansion ... ok [INFO] [stdout] test object::tests::multi_object_plain_output ... ok [INFO] [stdout] test object::tests::multi_object_missing_reports_error_in_json ... ok [INFO] [stdout] test object::tests::deref_json_no_recursive_deref ... ok [INFO] [stdout] test object::tests::collect_reachable_ids_cycle_safe ... ok [INFO] [stdout] test object::tests::multi_object_json_wraps_in_array ... ok [INFO] [stdout] test object::tests::deref_shows_reference_summary ... ok [INFO] [stdout] test object::tests::hex_mode_without_decode_no_hex ... ok [INFO] [stdout] test object::tests::hex_mode_json_with_truncate ... ok [INFO] [stdout] test object::tests::hex_mode_with_truncate ... ok [INFO] [stdout] test object::tests::json_binary_stream_no_hex_shows_content_binary ... ok [INFO] [stdout] test object::tests::hex_mode_binary_stream ... ok [INFO] [stdout] test object::tests::deref_json_adds_resolved ... ok [INFO] [stdout] test object::tests::object_to_json_array ... ok [INFO] [stdout] test object::tests::object_to_json_boolean ... ok [INFO] [stdout] test object::tests::object_to_json_integer ... ok [INFO] [stdout] test object::tests::object_to_json_null ... ok [INFO] [stdout] test object::tests::object_to_json_name ... ok [INFO] [stdout] test object::tests::object_to_json_real ... ok [INFO] [stdout] test object::tests::object_to_json_reference ... ok [INFO] [stdout] test object::tests::object_to_json_dictionary ... ok [INFO] [stdout] test object::tests::object_to_json_stream_no_decode ... ok [INFO] [stdout] test object::tests::object_to_json_stream_with_decode ... ok [INFO] [stdout] test object::tests::object_to_json_stream_with_decode_binary ... ok [INFO] [stdout] test object::tests::object_to_json_string ... ok [INFO] [stdout] test object::tests::object_to_json_stream_with_decode_binary_truncated ... ok [INFO] [stdout] test object::tests::print_content_data_ascii_not_truncated_even_when_flag_set ... ok [INFO] [stdout] test object::tests::object_to_json_stream_unsupported_filter_warning ... ok [INFO] [stdout] test object::tests::object_to_json_stream_no_decode_warning ... ok [INFO] [stdout] test object::tests::object_to_json_stream_pipeline_partial_failure_warning ... ok [INFO] [stdout] test object::tests::object_to_json_stream ... ok [INFO] [stdout] test object::tests::print_content_data_binary_short_with_truncation_enabled ... ok [INFO] [stdout] test object::tests::print_content_data_binary_truncated ... ok [INFO] [stdout] test object::tests::object_to_json_stream_decode_warning ... ok [INFO] [stdout] test object::tests::print_content_data_empty_content ... ok [INFO] [stdout] test object::tests::print_content_data_description_propagated ... ok [INFO] [stdout] test object::tests::print_content_data_binary_101_bytes_with_truncation ... ok [INFO] [stdout] test object::tests::print_content_data_binary_exactly_100_bytes_with_truncation ... ok [INFO] [stdout] test object::tests::print_content_data_binary_no_truncation ... ok [INFO] [stdout] test object::tests::print_content_data_hex_without_truncation ... ok [INFO] [stdout] test object::tests::print_content_data_indent_str_used ... ok [INFO] [stdout] test object::tests::print_content_data_hex_with_truncation ... ok [INFO] [stdout] test object::tests::print_content_data_is_contents_indent_str_used ... ok [INFO] [stdout] test object::tests::print_content_data_is_contents_parses_operations ... ok [INFO] [stdout] test object::tests::print_content_data_ascii_no_truncation ... ok [INFO] [stdout] test object::tests::print_content_data_truncate_larger_than_stream ... ok [INFO] [stdout] test object::tests::print_content_data_truncate_none_no_truncation ... ok [INFO] [stdout] test object::tests::print_content_data_truncate_one ... ok [INFO] [stdout] test object::tests::print_content_data_truncate_zero ... ok [INFO] [stdout] test object::tests::print_content_data_is_contents_invalid_stream_falls_back ... ok [INFO] [stdout] test object::tests::print_content_data_warning_with_hex_and_truncation ... ok [INFO] [stdout] test object::tests::print_content_data_truncate_custom_50 ... ok [INFO] [stdout] test object::tests::print_content_data_warning_with_hex_mode ... ok [INFO] [stdout] test object::tests::print_content_data_warning_with_truncation ... ok [INFO] [stdout] test object::tests::print_content_data_with_warning ... ok [INFO] [stdout] test object::tests::print_content_data_without_warning ... ok [INFO] [stdout] test object::tests::print_object_array ... ok [INFO] [stdout] test object::tests::print_object_array_mixed_types ... ok [INFO] [stdout] test object::tests::print_object_array_of_arrays ... ok [INFO] [stdout] test object::tests::print_object_array_with_references_collects_child_refs ... ok [INFO] [stdout] test object::tests::print_object_boolean ... ok [INFO] [stdout] test object::tests::print_object_contents_key_propagates_is_contents ... ok [INFO] [stdout] test object::tests::print_object_contents_key_with_array_of_refs ... ok [INFO] [stdout] test object::tests::print_object_dict_in_array ... ok [INFO] [stdout] test object::tests::print_object_contents_key_with_non_reference_value ... ok [INFO] [stdout] test object::tests::print_object_dictionary ... ok [INFO] [stdout] test object::tests::print_object_empty_name ... ok [INFO] [stdout] test object::tests::print_object_empty_array ... ok [INFO] [stdout] test object::tests::print_object_empty_dictionary ... ok [INFO] [stdout] test object::tests::print_object_is_contents_propagated_to_array_ref ... ok [INFO] [stdout] test object::tests::print_object_name_non_utf8 ... ok [INFO] [stdout] test object::tests::print_object_integer_zero ... ok [INFO] [stdout] test object::tests::print_object_name_with_special_chars ... ok [INFO] [stdout] test object::tests::print_object_multiple_refs_in_dict ... ok [INFO] [stdout] test object::tests::print_object_empty_string ... ok [INFO] [stdout] test object::tests::print_object_real_large ... ok [INFO] [stdout] test object::tests::print_object_integer ... ok [INFO] [stdout] test object::tests::print_object_name ... ok [INFO] [stdout] test object::tests::print_object_reference_nonzero_generation ... ok [INFO] [stdout] test object::tests::print_object_reference_populates_child_refs ... ok [INFO] [stdout] test object::tests::print_object_negative_integer ... ok [INFO] [stdout] test object::tests::print_object_null ... ok [INFO] [stdout] test object::tests::print_object_reference_visited ... ok [INFO] [stdout] test object::tests::print_object_real ... ok [INFO] [stdout] test object::tests::print_object_stream_dict_entries_printed ... ok [INFO] [stdout] test object::tests::print_object_stream_no_decode ... ok [INFO] [stdout] test object::tests::print_object_stream_dict_with_reference_collects_child_ref ... ok [INFO] [stdout] test object::tests::print_object_stream_with_decode ... ok [INFO] [stdout] test object::tests::print_object_nested_dictionary ... ok [INFO] [stdout] test object::tests::print_object_real_negative ... ok [INFO] [stdout] test object::tests::print_object_string_hex_format ... ok [INFO] [stdout] test object::tests::print_object_string_non_utf8 ... ok [INFO] [stdout] test object::tests::print_object_zero_real ... ok [INFO] [stdout] test object::tests::print_stream_content_is_contents_parses ... ok [INFO] [stdout] test object::tests::print_single_object_dict_does_not_follow_refs ... ok [INFO] [stdout] test object::tests::print_single_object_integer ... ok [INFO] [stdout] test object::tests::print_stream_content_no_filter ... ok [INFO] [stdout] test object::tests::print_object_string ... ok [INFO] [stdout] test object::tests::print_stream_content_corrupt_flatedecode_not_contents ... ok [INFO] [stdout] test object::tests::print_stream_content_flatedecode ... ok [INFO] [stdout] test object::tests::print_single_object_stream_with_decode ... ok [INFO] [stdout] test object::tests::print_object_stream_with_flatedecode_and_decode_flag ... ok [INFO] [stdout] test object::tests::print_stream_content_flatedecode_is_contents ... ok [INFO] [stdout] test object::tests::raw_does_not_parse_content_stream ... ok [INFO] [stdout] test object::tests::print_stream_content_with_truncation ... ok [INFO] [stdout] test object::tests::print_stream_content_unsupported_filter_shows_warning ... ok [INFO] [stdout] test object::tests::print_stream_content_corrupt_shows_warning ... ok [INFO] [stdout] test object::tests::print_single_object_json_produces_valid_json ... ok [INFO] [stdout] test object::tests::print_stream_content_description_shows_raw_for_no_filter ... ok [INFO] [stdout] test object::tests::print_stream_content_successful_decode_no_warning ... ok [INFO] [stdout] test object::tests::raw_json_binary_hex ... ok [INFO] [stdout] test object::tests::raw_json_binary_hex_truncate ... ok [INFO] [stdout] test object::tests::raw_json_text_stream ... ok [INFO] [stdout] test object::tests::raw_text_stream_shows_content ... ok [INFO] [stdout] test object::tests::raw_on_non_stream_is_noop ... ok [INFO] [stdout] test object::tests::raw_with_truncate ... ok [INFO] [stdout] test object::tests::raw_json_binary_stream ... ok [INFO] [stdout] test object::tests::single_object_json_backward_compat ... ok [INFO] [stdout] test operators::tests::operators_empty_page ... ok [INFO] [stdout] test operators::tests::operators_get_page_operations_no_content ... ok [INFO] [stdout] test object::tests::raw_shows_compressed_bytes ... ok [INFO] [stdout] test object::tests::print_stream_content_description_shows_decoded_for_flatedecode ... ok [INFO] [stdout] test operators::tests::operators_get_page_operations_direct ... ok [INFO] [stdout] test object::tests::raw_with_hex ... ok [INFO] [stdout] test operators::tests::operators_syntax_error_in_stream ... ok [INFO] [stdout] test operators::tests::operators_with_page_filter ... ok [INFO] [stdout] test page_info::tests::garbled_text_cid_warning_empty_text ... ok [INFO] [stdout] test page_info::tests::garbled_text_at_exactly_50_percent_boundary ... ok [INFO] [stdout] test operators::tests::operators_json_has_operator_and_operands ... ok [INFO] [stdout] test operators::tests::operators_json_no_warnings_key_when_clean ... ok [INFO] [stdout] test operators::tests::operators_json_structure ... ok [INFO] [stdout] test page_info::tests::garbled_text_detection_clean ... ok [INFO] [stdout] test operators::tests::operators_json_page_filter ... ok [INFO] [stdout] test page_info::tests::garbled_text_detection_empty ... ok [INFO] [stdout] test operators::tests::operators_page_filter_excludes ... ok [INFO] [stdout] test operators::tests::operators_multiple_pages ... ok [INFO] [stdout] test operators::tests::operators_shows_operations ... ok [INFO] [stdout] test page_info::tests::garbled_text_detection_mostly_non_ascii ... ok [INFO] [stdout] test page_info::tests::page_info_json_with_rotation ... ok [INFO] [stdout] test page_info::tests::page_info_json_value_invalid_page ... ok [INFO] [stdout] test page_info::tests::page_info_multiple_annotation_subtypes ... ok [INFO] [stdout] test page_info::tests::page_info_json_structure ... ok [INFO] [stdout] test page_info::tests::page_info_json_text_extractable_false ... ok [INFO] [stdout] test page_info::tests::garbled_text_encoding_warning ... ok [INFO] [stdout] test page_info::tests::page_info_no_content_streams ... ok [INFO] [stdout] test page_info::tests::page_info_multiple_content_streams ... ok [INFO] [stdout] test page_info::tests::garbled_text_detection_cid_warning ... ok [INFO] [stdout] test page_info::tests::page_info_shows_content_streams ... ok [INFO] [stdout] test page_info::tests::garbled_text_tounicode_warning ... ok [INFO] [stdout] test page_info::tests::page_info_range ... ok [INFO] [stdout] test page_info::tests::garbled_text_unicode_chars ... ok [INFO] [stdout] test page_info::tests::page_info_shows_font_detail ... ok [INFO] [stdout] test page_labels::tests::format_page_label_alpha ... ok [INFO] [stdout] test page_info::tests::page_info_text_stream_pluralization ... ok [INFO] [stdout] test page_info::tests::page_info_with_rotation ... ok [INFO] [stdout] test page_info::tests::page_info_shows_fonts ... ok [INFO] [stdout] test page_info::tests::page_info_with_crop_box ... ok [INFO] [stdout] test page_labels::tests::format_page_label_prefix_only ... ok [INFO] [stdout] test page_labels::tests::int_to_alpha_basic ... ok [INFO] [stdout] test page_labels::tests::format_page_label_roman ... ok [INFO] [stdout] test page_labels::tests::format_page_label_decimal ... ok [INFO] [stdout] test page_info::tests::page_info_json_has_resources ... ok [INFO] [stdout] test page_info::tests::page_info_with_xobjects ... ok [INFO] [stdout] test page_info::tests::page_info_with_ext_gstate ... ok [INFO] [stdout] test page_info::tests::page_info_text_preview ... ok [INFO] [stdout] test page_info::tests::page_info_with_annotations ... ok [INFO] [stdout] test page_labels::tests::int_to_roman_basic ... ok [INFO] [stdout] test page_labels::tests::page_labels_no_labels ... ok [INFO] [stdout] test page_labels::tests::page_labels_print_no_labels ... ok [INFO] [stdout] test page_labels::tests::page_labels_roman_then_decimal ... ok [INFO] [stdout] test recover::tests::extract_stream_body_returns_none_without_stream ... ok [INFO] [stdout] test recover::tests::extract_stream_body_handles_offset_past_eof ... ok [INFO] [stdout] test page_labels::tests::page_labels_json ... ok [INFO] [stdout] test page_info::tests::page_info_shows_media_box ... ok [INFO] [stdout] test recover::tests::does_not_capture_next_objects_stream ... ok [INFO] [stdout] test recover::tests::recovers_with_crlf_line_endings ... ok [INFO] [stdout] test recover::tests::banner_states_declared_and_actual_length ... ok [INFO] [stdout] test recover::tests::banner_is_none_when_nothing_recovered ... ok [INFO] [stdout] test recover::tests::detect_finds_without_mutating ... ok [INFO] [stdout] test recover::tests::dictionary_without_length_is_not_a_candidate ... ok [INFO] [stdout] test recover::tests::leaves_genuine_dictionary_untouched ... ok [INFO] [stdout] test recover::tests::has_candidates_detects_dict_with_length ... ok [INFO] [stdout] test recover::tests::recovery_json_value_strict_and_absent_length ... ok [INFO] [stdout] test recover::tests::strict_banner_is_none_when_nothing_detected ... ok [INFO] [stdout] test page_labels::tests::page_labels_with_prefix ... ok [INFO] [stdout] test recover::tests::skips_candidate_without_xref_offset ... ok [INFO] [stdout] test recover::tests::strict_banner_states_refusal_and_exit ... ok [INFO] [stdout] test recover::tests::recovers_stream_with_wrong_length ... ok [INFO] [stdout] test recovery_merge_tests::merge_is_noop_without_recovery ... ok [INFO] [stdout] test recover::tests::recovery_json_value_repaired_shape ... ok [INFO] [stdout] test recovery_merge_tests::merge_inserts_recovery_into_object_root ... ok [INFO] [stdout] test recovery_merge_tests::merge_wraps_non_object_root ... ok [INFO] [stdout] test refs::tests::collect_refs_direct_reference ... ok [INFO] [stdout] test refs::tests::collect_refs_deeply_nested ... ok [INFO] [stdout] test refs::tests::collect_refs_in_array ... ok [INFO] [stdout] test refs::tests::collect_refs_with_paths_array_in_dict ... ok [INFO] [stdout] test refs::tests::collect_refs_in_dict ... ok [INFO] [stdout] test refs::tests::collect_refs_in_stream_dict ... ok [INFO] [stdout] test refs::tests::collect_refs_with_paths_from_bare_array ... ok [INFO] [stdout] test refs::tests::collect_refs_mixed_containers_dict_array_ref ... ok [INFO] [stdout] test refs::tests::collect_refs_with_paths_from_dict ... ok [INFO] [stdout] test refs::tests::collect_refs_nested_dict ... ok [INFO] [stdout] test refs::tests::collect_refs_no_match ... ok [INFO] [stdout] test refs::tests::collect_refs_multiple_paths_same_object ... ok [INFO] [stdout] test refs::tests::collect_refs_primitive_types_return_empty ... ok [INFO] [stdout] test refs::tests::collect_refs_non_matching_reference_ignored ... ok [INFO] [stdout] test resources::tests::collect_resources_color_space_broken_reference ... ok [INFO] [stdout] test refs::tests::collect_refs_with_paths_nested_array_in_array ... ok [INFO] [stdout] test refs::tests::collect_refs_with_paths_no_refs ... ok [INFO] [stdout] test resources::tests::collect_resources_inline_font ... ok [INFO] [stdout] test resources::tests::collect_resources_no_resources ... ok [INFO] [stdout] test resources::tests::collect_resources_sorts_by_name ... ok [INFO] [stdout] test refs::tests::collect_refs_with_paths_scalar_object ... ok [INFO] [stdout] test resources::tests::collect_resources_with_color_spaces_reference ... ok [INFO] [stdout] test resources::tests::collect_resources_with_color_spaces_array ... ok [INFO] [stdout] test resources::tests::collect_resources_with_ext_gstate ... ok [INFO] [stdout] test resources::tests::collect_resources_with_fonts ... ok [INFO] [stdout] test resources::tests::collect_resources_with_xobjects ... ok [INFO] [stdout] test resources::tests::entries_to_json_empty ... ok [INFO] [stdout] test resources::tests::entries_to_json_with_object_id ... ok [INFO] [stdout] test resources::tests::entries_to_json_without_object_id ... ok [INFO] [stdout] test resources::tests::font_detail_from_stream_object ... ok [INFO] [stdout] test resources::tests::font_detail_full_info ... ok [INFO] [stdout] test resources::tests::font_detail_missing_basefont ... ok [INFO] [stdout] test resources::tests::collect_resources_with_color_spaces_name ... ok [INFO] [stdout] test resources::tests::font_detail_empty_dict ... ok [INFO] [stdout] test resources::tests::font_detail_nonexistent_object ... ok [INFO] [stdout] test resources::tests::resolve_resources_missing_entirely ... ok [INFO] [stdout] test resources::tests::resolve_resources_direct_on_page ... ok [INFO] [stdout] test resources::tests::resolve_resources_nonexistent_page ... ok [INFO] [stdout] test resources::tests::xobject_detail_form ... ok [INFO] [stdout] test resources::tests::xobject_detail_image ... ok [INFO] [stdout] test resources::tests::xobject_detail_missing_subtype ... ok [INFO] [stdout] test refs::tests::collect_refs_with_paths_from_stream ... ok [INFO] [stdout] test resources::tests::resolve_resources_cycle_detection ... ok [INFO] [stdout] test resources::tests::resolve_resources_inherited_from_parent ... ok [INFO] [stdout] test resources::tests::resolve_resources_via_reference ... ok [INFO] [stdout] test resources::tests::xobject_detail_image_missing_dimensions ... ok [INFO] [stdout] test resources::tests::xobject_detail_nonexistent ... ok [INFO] [stdout] test search::tests::object_matches_and_logic ... ok [INFO] [stdout] test search::tests::object_matches_key_value ... ok [INFO] [stdout] test search::tests::object_matches_key_value_case_insensitive ... ok [INFO] [stdout] test search::tests::object_matches_non_dict_returns_false ... ok [INFO] [stdout] test resources::tests::xobject_detail_non_stream_object ... ok [INFO] [stdout] test search::tests::object_matches_and_logic_partial_fail ... ok [INFO] [stdout] test search::tests::object_matches_regex_name_value ... ok [INFO] [stdout] test search::tests::object_matches_regex_key_name ... ok [INFO] [stdout] test search::tests::object_matches_regex_stream_content ... ok [INFO] [stdout] test search::tests::object_matches_has_key ... ok [INFO] [stdout] test search::tests::object_matches_has_key_missing ... ok [INFO] [stdout] test search::tests::object_matches_key_equals_non_matching_type ... ok [INFO] [stdout] test search::tests::object_matches_key_equals_string_value ... ok [INFO] [stdout] test search::tests::object_matches_regex_combined_with_other ... ok [INFO] [stdout] test search::tests::object_matches_stream ... ok [INFO] [stdout] test search::tests::object_matches_value_contains ... ok [INFO] [stdout] test search::tests::object_matches_value_contains_no_match ... ok [INFO] [stdout] test search::tests::parse_search_expr_key_case_insensitive ... ok [INFO] [stdout] test search::tests::parse_search_expr_multiple ... ok [INFO] [stdout] test search::tests::object_matches_regex_case_flag ... ok [INFO] [stdout] test search::tests::parse_search_expr_key_value ... ok [INFO] [stdout] test search::tests::parse_search_expr_only_commas_fails ... ok [INFO] [stdout] test search::tests::parse_search_expr_multiple_with_whitespace ... ok [INFO] [stdout] test search::tests::parse_search_expr_no_equals_fails ... ok [INFO] [stdout] test search::tests::parse_search_expr_regex_case_insensitive ... ok [INFO] [stdout] test search::tests::object_matches_regex_no_match ... ok [INFO] [stdout] test search::tests::parse_search_expr_regex_invalid ... ok [INFO] [stdout] test search::tests::object_matches_value_contains_non_string_values_skipped ... ok [INFO] [stdout] test search::tests::object_matches_value_contains_string_object ... ok [INFO] [stdout] test search::tests::parse_search_expr_empty_fails ... ok [INFO] [stdout] test search::tests::parse_search_expr_empty_parts_skipped ... ok [INFO] [stdout] test search::tests::parse_search_expr_empty_value_fails ... ok [INFO] [stdout] test search::tests::parse_search_expr_value_contains ... ok [INFO] [stdout] test search::tests::parse_search_expr_has_key ... ok [INFO] [stdout] test search::tests::parse_search_expr_whitespace_trimmed ... ok [INFO] [stdout] test search::tests::search_objects_json_no_matches ... ok [INFO] [stdout] test search::tests::search_objects_finds_match ... ok [INFO] [stdout] test search::tests::search_objects_no_match ... ok [INFO] [stdout] test search::tests::object_matches_regex_string_value ... ok [INFO] [stdout] test search::tests::search_objects_json_produces_valid_json ... ok [INFO] [stdout] test search::tests::parse_search_stream_condition ... ok [INFO] [stdout] test search::tests::search_stream_contains_case_insensitive ... ok [INFO] [stdout] test search::tests::search_objects_summary_mode ... ok [INFO] [stdout] test search::tests::search_stream_and_key_combined ... ok [INFO] [stdout] test search::tests::parse_search_expr_regex ... ok [INFO] [stdout] test search::tests::search_stream_contains_matches ... ok [INFO] [stdout] test search::tests::search_stream_no_match ... ok [INFO] [stdout] test search::tests::search_stream_on_dict_returns_false ... ok [INFO] [stdout] test security::tests::algorithm_name_v2_custom_length ... ok [INFO] [stdout] test security::tests::algorithm_name_unknown_version ... ok [INFO] [stdout] test security::tests::algorithm_name_v2_default_length ... ok [INFO] [stdout] test security::tests::algorithm_name_v3_unpublished ... ok [INFO] [stdout] test security::tests::collect_security_v2_custom_length ... ok [INFO] [stdout] test security::tests::decode_permissions_all_denied ... ok [INFO] [stdout] test search::tests::parse_search_expr_value_case_insensitive ... ok [INFO] [stdout] test security::tests::algorithm_name_v0_undocumented ... ok [INFO] [stdout] test security::tests::extract_int_after_key_basic ... ok [INFO] [stdout] test security::tests::encrypt_dict_via_xref_stream_fallback ... ok [INFO] [stdout] test security::tests::encrypt_dict_inline_in_trailer ... ok [INFO] [stdout] test security::tests::extract_int_after_key_missing ... ok [INFO] [stdout] test security::tests::extract_int_after_key_negative ... ok [INFO] [stdout] test security::tests::parse_encrypt_from_raw_file_nonexistent_path ... ok [INFO] [stdout] test security::tests::extract_int_after_key_newline_whitespace ... ok [INFO] [stdout] test security::tests::security_encrypted_v1 ... ok [INFO] [stdout] test security::tests::print_security_shows_encrypt_object_number ... ok [INFO] [stdout] test security::tests::security_permissions_all_allowed ... ok [INFO] [stdout] test security::tests::security_encrypted_v5 ... ok [INFO] [stdout] test security::tests::security_json_output ... ok [INFO] [stdout] test security::tests::security_json_value_unencrypted ... ok [INFO] [stdout] test security::tests::security_unencrypted ... ok [INFO] [stdout] test stream::tests::decode_ascii85_empty_input ... ok [INFO] [stdout] test stream::tests::decode_ascii85_basic ... ok [INFO] [stdout] test stream::tests::decode_ascii85_empty_with_prefix ... ok [INFO] [stdout] test security::tests::parse_encrypt_from_raw_file_not_found ... ok [INFO] [stdout] test security::tests::parse_encrypt_from_raw_file_with_tempfile ... ok [INFO] [stdout] test stream::tests::decode_ascii85_multiple_z ... ok [INFO] [stdout] test stream::tests::decode_ascii85_no_eod_marker ... ok [INFO] [stdout] test security::tests::security_permissions_decode ... ok [INFO] [stdout] test stream::tests::decode_ascii85_stream ... ok [INFO] [stdout] test security::tests::security_print_encrypted ... ok [INFO] [stdout] test security::tests::extract_int_after_key_sign_only_no_digits ... ok [INFO] [stdout] test security::tests::security_encrypted_v4 ... ok [INFO] [stdout] test security::tests::extract_int_after_key_positive_sign ... ok [INFO] [stdout] test stream::tests::decode_ascii85_four_char_group ... ok [INFO] [stdout] test stream::tests::decode_ascii85_invalid_char ... ok [INFO] [stdout] test security::tests::security_print_unencrypted ... ok [INFO] [stdout] test security::tests::extract_int_after_key_with_spaces ... ok [INFO] [stdout] test stream::tests::decode_ascii85_partial_group ... ok [INFO] [stdout] test stream::tests::decode_ascii85_three_char_group ... ok [INFO] [stdout] test stream::tests::decode_ascii85_with_prefix ... ok [INFO] [stdout] test stream::tests::decode_ascii85_with_whitespace ... ok [INFO] [stdout] test stream::tests::decode_asciihex_mixed_case ... ok [INFO] [stdout] test stream::tests::decode_ascii85_z_shortcut ... ok [INFO] [stdout] test stream::tests::decode_asciihex_basic ... ok [INFO] [stdout] test stream::tests::decode_asciihex_single_byte ... ok [INFO] [stdout] test stream::tests::decode_asciihex_uppercase ... ok [INFO] [stdout] test stream::tests::decode_asciihex_empty_input ... ok [INFO] [stdout] test stream::tests::decode_lzw_corrupt_data_returns_error ... ok [INFO] [stdout] test stream::tests::decode_run_length_empty_input ... ok [INFO] [stdout] test stream::tests::decode_asciihex_invalid_char ... ok [INFO] [stdout] test stream::tests::decode_lzw_single_byte_input ... ok [INFO] [stdout] test stream::tests::decode_asciihex_no_eod_marker ... ok [INFO] [stdout] test stream::tests::decode_run_length_eod_marker ... ok [INFO] [stdout] test stream::tests::decode_run_length_mixed ... ok [INFO] [stdout] test stream::tests::decode_run_length_repeat_run ... ok [INFO] [stdout] test stream::tests::decode_lzw_stream_unsupported_returns_error_or_data ... ok [INFO] [stdout] test stream::tests::decode_asciihex_stream ... ok [INFO] [stdout] test stream::tests::decode_asciihex_with_whitespace ... ok [INFO] [stdout] test stream::tests::decode_asciihex_empty_no_marker ... ok [INFO] [stdout] test stream::tests::decode_lzw_repeated_data ... ok [INFO] [stdout] test stream::tests::decode_asciihex_odd_digits ... ok [INFO] [stdout] test stream::tests::decode_run_length_literal_run ... ok [INFO] [stdout] test stream::tests::decode_stream_ccittfaxdecode_unsupported ... ok [INFO] [stdout] test stream::tests::decode_stream_array_with_unsupported_filter ... ok [INFO] [stdout] test stream::tests::decode_run_length_truncated_repeat ... ok [INFO] [stdout] test stream::tests::decode_stream_filter_array_all_non_name ... ok [INFO] [stdout] test stream::tests::decode_lzw_stream_via_decode_stream ... ok [INFO] [stdout] test stream::tests::decode_stream_corrupt_flatedecode ... ok [INFO] [stdout] test stream::tests::decode_stream_empty_content_no_filter ... ok [INFO] [stdout] test stream::tests::decode_stream_no_filter_no_warning ... ok [INFO] [stdout] test stream::tests::decode_stream_jpxdecode_unsupported ... ok [INFO] [stdout] test stream::tests::decode_run_length_truncated_literal ... ok [INFO] [stdout] test stream::tests::decode_stream_empty_filter_array ... ok [INFO] [stdout] test stream::tests::decode_run_length_stream_via_decode_stream ... ok [INFO] [stdout] test stream::tests::decode_stream_no_filter ... ok [INFO] [stdout] test stream::tests::decode_stream_flatedecode_name ... ok [INFO] [stdout] test stream::tests::decode_stream_filter_array_with_non_name_elements ... ok [INFO] [stdout] test stream::tests::decode_stream_filter_is_integer_ignored ... ok [INFO] [stdout] test stream::tests::decode_stream_pipeline_ascii85_then_lzw ... ok [INFO] [stdout] test stream::tests::decode_stream_flatedecode_empty_payload ... ok [INFO] [stdout] test stream::tests::decode_stream_flatedecode_in_array ... ok [INFO] [stdout] test stream::tests::decode_stream_multiple_filters_pipeline ... ok [INFO] [stdout] test stream::tests::decode_uses_format_operation_not_debug ... ok [INFO] [stdout] test stream::tests::format_hex_dump_17_bytes_two_lines ... ok [INFO] [stdout] test stream::tests::flatedecode_size_limit_returns_error ... ok [INFO] [stdout] test stream::tests::decode_stream_pipeline_lzw_then_asciihex ... ok [INFO] [stdout] test stream::tests::format_hex_dump_all_non_printable ... ok [INFO] [stdout] test stream::tests::decode_stream_pipeline_asciihex_then_flatedecode ... ok [INFO] [stdout] test stream::tests::decode_stream_pipeline_stops_on_failure ... ok [INFO] [stdout] test stream::tests::decode_stream_pipeline_stops_on_unsupported ... ok [INFO] [stdout] test stream::tests::decode_stream_large_content ... ok [INFO] [stdout] test stream::tests::decode_stream_pipeline_corrupt_at_second_stage ... ok [INFO] [stdout] test stream::tests::format_hex_dump_ascii_repr ... ok [INFO] [stdout] test stream::tests::format_hex_dump_empty ... ok [INFO] [stdout] test stream::tests::format_hex_dump_exactly_8_bytes ... ok [INFO] [stdout] test stream::tests::format_hex_dump_exactly_32_bytes_two_full_lines ... ok [INFO] [stdout] test stream::tests::format_hex_dump_exactly_9_bytes ... ok [INFO] [stdout] test stream::tests::format_hex_dump_high_bytes_show_as_dots ... ok [INFO] [stdout] test stream::tests::format_hex_dump_full_line ... ok [INFO] [stdout] test stream::tests::decode_stream_pipeline_unsupported_in_middle ... ok [INFO] [stdout] test stream::tests::format_hex_dump_partial_line ... ok [INFO] [stdout] test stream::tests::decode_stream_unknown_filter ... ok [INFO] [stdout] test stream::tests::decode_stream_triple_pipeline_asciihex_flate_ascii85 ... ok [INFO] [stdout] test stream::tests::get_filter_names_array_of_names ... ok [INFO] [stdout] test stream::tests::get_filter_names_mixed_array ... ok [INFO] [stdout] test stream::tests::format_hex_dump_large_offset ... ok [INFO] [stdout] test stream::tests::format_hex_dump_mixed_printable_and_non ... ok [INFO] [stdout] test stream::tests::get_filter_names_no_filter_key ... ok [INFO] [stdout] test stream::tests::get_filter_names_non_name_filter ... ok [INFO] [stdout] test stream::tests::get_filter_names_single_name ... ok [INFO] [stdout] test stream::tests::is_binary_stream_all_allowed_types_combined ... ok [INFO] [stdout] test stream::tests::is_binary_stream_high_bit ... ok [INFO] [stdout] test stream::tests::decode_stream_valid_flatedecode_no_warning ... ok [INFO] [stdout] test stream::tests::format_hex_dump_space_is_printable ... ok [INFO] [stdout] test stream::tests::format_hex_dump_multi_line ... ok [INFO] [stdout] test stream::tests::is_binary_stream_ascii_with_whitespace_and_punctuation ... ok [INFO] [stdout] test stream::tests::is_binary_stream_del_char ... ok [INFO] [stdout] test stream::tests::is_binary_stream_control_chars ... ok [INFO] [stdout] test stream::tests::is_binary_stream_unit_separator ... ok [INFO] [stdout] test stream::tests::is_binary_stream_empty ... ok [INFO] [stdout] test stream::tests::is_binary_stream_tilde_is_punctuation ... ok [INFO] [stdout] test stream::tests::is_binary_stream_escape_char ... ok [INFO] [stdout] test stream::tests::is_binary_stream_mixed ... ok [INFO] [stdout] test stream::tests::is_binary_stream_punctuation_only ... ok [INFO] [stdout] test stream::tests::is_binary_stream_pure_ascii ... ok [INFO] [stdout] test stream::tests::is_binary_stream_single_null_among_ascii ... ok [INFO] [stdout] test stream::tests::is_binary_stream_whitespace_only ... ok [INFO] [stdout] test stream::tests::is_binary_stream_tab_only ... ok [INFO] [stdout] test stream::tests::lzw_size_limit_returns_error ... ok [INFO] [stdout] test structure::tests::count_struct_elems_empty ... ok [INFO] [stdout] test structure::tests::count_struct_elems_nested ... ok [INFO] [stdout] test structure::tests::structure_alt_text ... ok [INFO] [stdout] test structure::tests::structure_collects_tree ... ok [INFO] [stdout] test structure::tests::structure_depth_limit_0 ... ok [INFO] [stdout] test structure::tests::structure_depth_limit_1 ... ok [INFO] [stdout] test structure::tests::structure_deep_nesting_three_levels ... ok [INFO] [stdout] test structure::tests::structure_empty_tree ... ok [INFO] [stdout] test structure::tests::structure_inline_struct_element ... ok [INFO] [stdout] test structure::tests::structure_mark_info_false ... ok [INFO] [stdout] test structure::tests::structure_k_as_array ... ok [INFO] [stdout] test structure::tests::structure_json_output ... ok [INFO] [stdout] test structure::tests::structure_mcid_in_dict_form ... ok [INFO] [stdout] test structure::tests::structure_mcid_in_array_with_dict_form ... ok [INFO] [stdout] test structure::tests::structure_no_k_key ... ok [INFO] [stdout] test structure::tests::structure_multiple_children_at_same_level ... ok [INFO] [stdout] test structure::tests::structure_cycle_detection ... ok [INFO] [stdout] test structure::tests::structure_json_with_depth_limit ... ok [INFO] [stdout] test structure::tests::structure_no_struct_tree_root ... ok [INFO] [stdout] test structure::tests::structure_print_empty_tree_with_mark_info_true ... ok [INFO] [stdout] test structure::tests::structure_object_id_in_text_output ... ok [INFO] [stdout] test structure::tests::structure_role_as_non_name_type ... ok [INFO] [stdout] test summary::tests::metadata_info_empty_doc ... ok [INFO] [stdout] test structure::tests::structure_text_output ... ok [INFO] [stdout] test stream::tests::lzw_normal_size_succeeds ... ok [INFO] [stdout] test structure::tests::structure_page_refs ... ok [INFO] [stdout] test summary::tests::overview_flags_encrypted_but_undecrypted ... ok [INFO] [stdout] test summary::tests::metadata_info_catalog_page_layout_name ... ok [INFO] [stdout] test summary::tests::overview_json_shows_encrypted_via_encryption_state ... ok [INFO] [stdout] test summary::tests::overview_plain_doc_is_not_encrypted_and_omits_decrypted ... ok [INFO] [stdout] test summary::tests::overview_shows_encrypted_via_encryption_state ... ok [INFO] [stdout] test summary::tests::print_list_json_produces_valid_json ... ok [INFO] [stdout] test summary::tests::print_list_json_includes_detail ... ok [INFO] [stdout] test summary::tests::overview_shows_not_encrypted_when_no_encrypt ... ok [INFO] [stdout] test summary::tests::print_list_dict_shows_type_label ... ok [INFO] [stdout] test summary::tests::overview_shows_object_type_breakdown ... ok [INFO] [stdout] test summary::tests::metadata_info_with_info_and_catalog ... ok [INFO] [stdout] test summary::tests::overview_json_includes_object_types_and_stream_stats ... ok [INFO] [stdout] test summary::tests::overview_skips_decoded_bytes_by_default ... ok [INFO] [stdout] test summary::tests::print_list_multiple_objects_sorted ... ok [INFO] [stdout] test structure::tests::structure_json_with_title_and_alt ... ok [INFO] [stdout] test summary::tests::print_list_shows_version_and_count ... ok [INFO] [stdout] test summary::tests::summary_detail_boolean ... ok [INFO] [stdout] test summary::tests::print_list_stream_shows_bytes_and_filter ... ok [INFO] [stdout] test summary::tests::summary_detail_dict_keys_only ... ok [INFO] [stdout] test summary::tests::summary_detail_dict_notable_non_name_non_array ... ok [INFO] [stdout] test summary::tests::summary_detail_dict_with_basefont ... ok [INFO] [stdout] test summary::tests::summary_detail_dict_with_mediabox ... ok [INFO] [stdout] test summary::tests::summary_detail_null ... ok [INFO] [stdout] test summary::tests::summary_detail_mediabox_with_reals ... ok [INFO] [stdout] test summary::tests::overview_shows_stream_filters ... ok [INFO] [stdout] test summary::tests::summary_detail_stream_no_filter ... ok [INFO] [stdout] test summary::tests::summary_detail_stream_with_filter ... ok [INFO] [stdout] test summary::tests::summary_detail_integer ... ok [INFO] [stdout] test summary::tests::summary_detail_dict_with_subtype ... ok [INFO] [stdout] test text::tests::differences_glyph_names_resolve_via_agl_and_are_reliable ... ok [INFO] [stdout] test text::tests::base_less_differences_self_corrects_via_coverage ... ok [INFO] [stdout] test text::tests::differences_falls_through_to_base_table_for_unoverridden_codes ... ok [INFO] [stdout] test text::tests::cid_without_tounicode_is_unreliable ... ok [INFO] [stdout] test summary::tests::summary_detail_mediabox_with_mixed_types ... ok [INFO] [stdout] test text::tests::extract_text_empty_stream ... ok [INFO] [stdout] test text::tests::extract_text_double_quote_operator ... ok [INFO] [stdout] test text::tests::extract_text_contents_array_of_refs ... ok [INFO] [stdout] test text::tests::differences_without_base_encoding_resolves_overrides_passthrough_rest ... ok [INFO] [stdout] test stream::tests::flatedecode_normal_size_succeeds ... ok [INFO] [stdout] test text::tests::extract_text_contents_ref_to_non_stream ... ok [INFO] [stdout] test text::tests::extract_text_tj_array ... ok [INFO] [stdout] test text::tests::extract_text_no_contents ... ok [INFO] [stdout] test text::tests::extract_text_non_dictionary_page ... ok [INFO] [stdout] test text::tests::extract_text_quote_operator ... ok [INFO] [stdout] test text::tests::extract_text_multiple_bt_blocks ... ok [INFO] [stdout] test text::tests::extract_text_td_newline ... ok [INFO] [stdout] test text::tests::extract_text_td_positive_real_ty_no_newline ... ok [INFO] [stdout] test text::tests::extract_text_td_positive_ty_no_newline ... ok [INFO] [stdout] test text::tests::extract_text_tj_small_negative_no_space ... ok [INFO] [stdout] test text::tests::extract_text_td_real_operand ... ok [INFO] [stdout] test text::tests::extract_text_tj_array_spacing ... ok [INFO] [stdout] test text::tests::extract_text_tj ... ok [INFO] [stdout] test text::tests::extract_text_td_uppercase ... ok [INFO] [stdout] test text::tests::form_xobject_text_is_extracted ... ok [INFO] [stdout] test text::tests::extract_text_tstar ... ok [INFO] [stdout] test text::tests::extract_text_td_zero_ty_no_newline ... ok [INFO] [stdout] test text::tests::form_with_own_resources_decodes_via_its_font ... ok [INFO] [stdout] test text::tests::form_without_resources_inherits_page_fonts ... ok [INFO] [stdout] test text::tests::form_fonts_contribute_to_reliability_verdict ... ok [INFO] [stdout] test text::tests::no_tf_falls_back_to_passthrough ... ok [INFO] [stdout] test text::tests::image_xobject_do_is_ignored ... ok [INFO] [stdout] test text::tests::extract_text_flatedecode_content_stream ... ok [INFO] [stdout] test text::tests::identity_h_fixed_width_unchanged ... ok [INFO] [stdout] test text::tests::json_includes_reliability_object ... ok [INFO] [stdout] test text::tests::macroman_simple_font_decodes_apostrophe ... ok [INFO] [stdout] test text::tests::macexpert_simple_font_folds_to_base_characters ... ok [INFO] [stdout] test text::tests::low_coverage_downgrades_verdict_to_degraded ... ok [INFO] [stdout] test text::tests::mostly_ascii_table_font_stays_reliable ... ok [INFO] [stdout] test text::tests::non_standard_14_no_encoding_stays_degraded_passthrough ... ok [INFO] [stdout] test text::tests::multi_char_glyphs_expand_through_pipeline ... ok [INFO] [stdout] test text::tests::nested_forms_within_depth_limit_all_extract ... ok [INFO] [stdout] test summary::tests::summary_detail_stream ... ok [INFO] [stdout] test text::tests::self_referential_form_does_not_loop ... ok [INFO] [stdout] test text::tests::simple_helvetica_ascii_unchanged ... ok [INFO] [stdout] test text::tests::simple_table_high_unmapped_ratio_downgrades_to_degraded ... ok [INFO] [stdout] test text::tests::standard_simple_font_decodes_quote_and_high_byte ... ok [INFO] [stdout] test text::tests::type0_identity_h_with_tounicode_decodes_two_byte ... ok [INFO] [stdout] test text::tests::print_text_json_with_page_filter ... ok [INFO] [stdout] test text::tests::simple_table_unmapped_codes_feed_coverage ... ok [INFO] [stdout] test text::tests::text_with_page_range ... ok [INFO] [stdout] test text::tests::page_and_form_text_both_appear ... ok [INFO] [stdout] test text::tests::partially_resolving_differences_is_degraded_and_emits_replacement ... ok [INFO] [stdout] test text::tests::over_deep_form_nesting_is_capped_with_warning ... ok [INFO] [stdout] test text::tests::passthrough_invalid_utf8_counts_as_unmapped ... ok [INFO] [stdout] test text::tests::unknown_xobject_name_is_ignored ... ok [INFO] [stdout] test text::tests::unmapped_code_emits_replacement_and_counts ... ok [INFO] [stdout] test text::tests::print_text_all_pages ... ok [INFO] [stdout] test text::tests::print_text_json_produces_valid_json ... ok [INFO] [stdout] test text::tests::standard_14_no_encoding_decodes_quotes_via_standard_table ... ok [INFO] [stdout] test tree::tests::dot_depth_limiting ... ok [INFO] [stdout] test text::tests::winansi_simple_font_decodes_high_byte ... ok [INFO] [stdout] test tree::tests::dot_empty_tree ... ok [INFO] [stdout] test tree::tests::escape_dot_quotes_and_backslash ... ok [INFO] [stdout] test text::tests::variable_width_cmap_decodes_mixed_one_and_two_byte ... ok [INFO] [stdout] test tree::tests::dot_revisited_nodes ... ok [INFO] [stdout] test tree::tests::tree_depth_limit_respected ... ok [INFO] [stdout] test tree::tests::dot_basic_output ... ok [INFO] [stdout] test tree::tests::tree_node_label_custom_type ... ok [INFO] [stdout] test tree::tests::tree_depth_zero_shows_only_trailer_refs ... ok [INFO] [stdout] test tree::tests::tree_basic_output ... ok [INFO] [stdout] test tree::tests::tree_depth_two_shows_three_levels ... ok [INFO] [stdout] test tree::tests::tree_json_depth_limit ... ok [INFO] [stdout] test tree::tests::tree_node_label_dict_no_type ... ok [INFO] [stdout] test tree::tests::tree_node_label_empty_array ... ok [INFO] [stdout] test tree::tests::tree_json_missing_object_shows_status ... ok [INFO] [stdout] test tree::tests::tree_json_output_valid ... ok [INFO] [stdout] test tree::tests::tree_missing_object_shows_missing ... ok [INFO] [stdout] test tree::tests::tree_node_label_annot ... ok [INFO] [stdout] test tree::tests::tree_json_visited_status ... ok [INFO] [stdout] test tree::tests::tree_node_label_array ... ok [INFO] [stdout] test tree::tests::tree_node_label_boolean_false ... ok [INFO] [stdout] test tree::tests::tree_node_label_boolean_true ... ok [INFO] [stdout] test tree::tests::tree_node_label_catalog ... ok [INFO] [stdout] test tree::tests::tree_node_label_empty_dict ... ok [INFO] [stdout] test tree::tests::tree_node_label_font ... ok [INFO] [stdout] test tree::tests::tree_node_label_encoding ... ok [INFO] [stdout] test tree::tests::tree_node_label_negative_integer ... ok [INFO] [stdout] test tree::tests::tree_node_label_null ... ok [INFO] [stdout] test tree::tests::tree_node_label_name ... ok [INFO] [stdout] test tree::tests::tree_node_label_page ... ok [INFO] [stdout] test tree::tests::tree_node_label_reference ... ok [INFO] [stdout] test tree::tests::tree_node_label_pages ... ok [INFO] [stdout] test tree::tests::tree_node_label_stream ... ok [INFO] [stdout] test tree::tests::tree_node_label_integer ... ok [INFO] [stdout] test tree::tests::tree_node_label_xobject ... ok [INFO] [stdout] test tree::tests::tree_node_label_stream_with_type ... ok [INFO] [stdout] test types::tests::detail_sub_equality ... ok [INFO] [stdout] test types::tests::detail_sub_ordering ... ok [INFO] [stdout] test types::tests::doc_mode_label_all_variants ... ok [INFO] [stdout] test types::tests::doc_mode_ordering ... ok [INFO] [stdout] test types::tests::dump_config_construction ... ok [INFO] [stdout] test types::tests::dump_config_is_copy ... ok [INFO] [stdout] test types::tests::detail_sub_sorting ... ok [INFO] [stdout] test types::tests::page_spec_contains ... ok [INFO] [stdout] test types::tests::doc_mode_detail_sub_ordering_within_detail ... ok [INFO] [stdout] test types::tests::doc_mode_json_key_all_variants ... ok [INFO] [stdout] test tree::tests::tree_node_label_real ... ok [INFO] [stdout] test types::tests::doc_mode_sorting ... ok [INFO] [stdout] test tree::tests::tree_node_label_string ... ok [INFO] [stdout] test types::tests::args_find_text_is_doc_mode ... ok [INFO] [stdout] test types::tests::dump_config_defaults_style ... ok [INFO] [stdout] test types::tests::page_spec_error_messages ... ok [INFO] [stdout] test types::tests::args_json_modifier_alone_is_default ... ok [INFO] [stdout] test types::tests::page_spec_open_range_pages_empty ... ok [INFO] [stdout] test types::tests::page_spec_pages ... ok [INFO] [stdout] test types::tests::page_spec_contains_boundary ... ok [INFO] [stdout] test types::tests::page_spec_open_range_contains ... ok [INFO] [stdout] test types::tests::args_page_modifier_alone_is_default ... ok [INFO] [stdout] test tree::tests::tree_visited_nodes_show_visited ... ok [INFO] [stdout] test types::tests::page_spec_parse_negative_like_string ... ok [INFO] [stdout] test types::tests::page_spec_parse_double_dash ... ok [INFO] [stdout] test types::tests::page_spec_parse_open_range_invalid ... ok [INFO] [stdout] test types::tests::page_spec_parse_invalid ... ok [INFO] [stdout] test types::tests::page_spec_parse_open_range ... ok [INFO] [stdout] test types::tests::page_spec_parse_range ... ok [INFO] [stdout] test types::tests::page_spec_parse_single ... ok [INFO] [stdout] test types::tests::page_spec_parse_single_page_boundary ... ok [INFO] [stdout] test types::tests::page_spec_parse_same_start_end_range ... ok [INFO] [stdout] test types::tests::page_spec_parse_whitespace ... ok [INFO] [stdout] test types::tests::page_spec_range_pages_large ... ok [INFO] [stdout] test types::tests::parse_object_spec_invalid ... ok [INFO] [stdout] test types::tests::parse_object_spec_large_numbers ... ok [INFO] [stdout] test types::tests::page_spec_single_pages_returns_one_element ... ok [INFO] [stdout] test types::tests::parse_object_spec_large_range ... ok [INFO] [stdout] test types::tests::parse_object_spec_deduplicates ... ok [INFO] [stdout] test types::tests::parse_object_spec_leading_comma ... ok [INFO] [stdout] test types::tests::parse_object_spec_mixed ... ok [INFO] [stdout] test types::tests::parse_object_spec_multiple ... ok [INFO] [stdout] test types::tests::parse_object_spec_non_numeric_in_range ... ok [INFO] [stdout] test types::tests::parse_object_spec_only_commas ... ok [INFO] [stdout] test types::tests::parse_object_spec_sorts ... ok [INFO] [stdout] test types::tests::parse_object_spec_overlap_deduped ... ok [INFO] [stdout] test types::tests::parse_object_spec_whitespace ... ok [INFO] [stdout] test types::tests::parse_object_spec_trailing_comma ... ok [INFO] [stdout] test types::tests::parse_object_spec_reversed_range_error ... ok [INFO] [stdout] test types::tests::page_spec_single_contains_only_self ... ok [INFO] [stdout] test types::tests::parse_object_spec_single ... ok [INFO] [stdout] test types::tests::parse_object_spec_single_element_range ... ok [INFO] [stdout] test types::tests::parse_object_spec_range ... ok [INFO] [stdout] test types::tests::parse_object_spec_zero ... ok [INFO] [stdout] test types::tests::resolve_mode_all_doc_modes_at_once ... ok [INFO] [stdout] test types::tests::resolve_mode_list_without_search_is_doc_mode ... ok [INFO] [stdout] test validate::tests::check_broken_references_detects_broken ... ok [INFO] [stdout] test types::tests::resolve_mode_detail_mixed_with_doc_modes ... ok [INFO] [stdout] test types::tests::resolve_mode_no_flags_returns_default ... ok [INFO] [stdout] test types::tests::resolve_mode_multiple_standalone_error ... ok [INFO] [stdout] test types::tests::resolve_mode_multiple_doc_modes ... ok [INFO] [stdout] test validate::tests::check_broken_references_valid ... ok [INFO] [stdout] test types::tests::resolve_mode_standalone_object ... ok [INFO] [stdout] test types::tests::resolve_mode_standalone_search ... ok [INFO] [stdout] test types::tests::resolve_mode_object_with_multi_spec ... ok [INFO] [stdout] test types::tests::resolve_mode_standalone_plus_doc_mode_error ... ok [INFO] [stdout] test types::tests::resolve_mode_object_invalid_spec_error ... ok [INFO] [stdout] test types::tests::resolve_mode_search_with_list_modifier ... ok [INFO] [stdout] test types::tests::resolve_mode_standalone_extract_stream ... ok [INFO] [stdout] test types::tests::resolve_mode_standalone_inspect ... ok [INFO] [stdout] test validate::tests::check_page_tree_correct_count ... ok [INFO] [stdout] test types::tests::resolve_mode_single_detail ... ok [INFO] [stdout] test types::tests::resolve_mode_multiple_details ... ok [INFO] [stdout] test types::tests::resolve_mode_single_doc_mode ... ok [INFO] [stdout] test validate::tests::check_required_keys_valid_catalog ... ok [INFO] [stdout] test validate::tests::check_page_tree_count_mismatch ... ok [INFO] [stdout] test validate::tests::collect_broken_refs_multiple_in_one_object ... ok [INFO] [stdout] test validate::tests::check_stream_lengths_correct ... ok [INFO] [stdout] test validate::tests::check_required_keys_catalog_missing_pages ... ok [INFO] [stdout] test validate::tests::collect_broken_refs_nested_array ... ok [INFO] [stdout] test validate::tests::check_unreachable_all_reachable ... ok [INFO] [stdout] test validate::tests::collect_broken_refs_nested_dict ... ok [INFO] [stdout] test validate::tests::check_unreachable_multiple_orphans ... ok [INFO] [stdout] test validate::tests::check_stream_lengths_mismatch ... ok [INFO] [stdout] test validate::tests::check_stream_lengths_zero_length_correct ... ok [INFO] [stdout] test validate::tests::collect_broken_refs_primitives_return_empty ... ok [INFO] [stdout] test validate::tests::check_unreachable_objects_finds_orphans ... ok [INFO] [stdout] test validate::tests::collect_broken_refs_in_array ... ok [INFO] [stdout] test validate::tests::collect_broken_refs_valid_ref_not_reported ... ok [INFO] [stdout] test validate::tests::collect_broken_refs_in_stream_dict ... ok [INFO] [stdout] test validate::tests::collect_xref_stream_ids_empty_for_no_xref ... ok [INFO] [stdout] test validate::tests::page_has_media_box_inherited ... ok [INFO] [stdout] test validate::tests::page_has_media_box_cycle_guard ... ok [INFO] [stdout] test validate::tests::page_has_media_box_direct ... ok [INFO] [stdout] test validate::tests::page_has_media_box_non_dict_object ... ok [INFO] [stdout] test validate::tests::page_has_media_box_inherited_three_levels ... ok [INFO] [stdout] test validate::tests::check_stream_lengths_no_length_key_no_issue ... ok [INFO] [stdout] test validate::tests::collect_xref_stream_ids_finds_xref ... ok [INFO] [stdout] test validate::tests::page_has_media_box_missing ... ok [INFO] [stdout] test validate::tests::validate_empty_doc_reports_missing_root ... ok [INFO] [stdout] test validate::tests::print_validation_json_produces_valid_json ... ok [INFO] [stdout] test validate::tests::print_validation_json_structure ... ok [INFO] [stdout] test validate::tests::print_validation_shows_errors_and_summary ... ok [INFO] [stdout] test validate::tests::page_has_media_box_nonexistent_parent ... ok [INFO] [stdout] test validate::tests::validate_content_stream_valid ... ok [INFO] [stdout] test validate::tests::validate_font_firstchar_without_lastchar ... ok [INFO] [stdout] test validate::tests::validate_content_stream_invalid ... ok [INFO] [stdout] test validate::tests::validate_font_widths_mismatch ... ok [INFO] [stdout] test validate::tests::validate_font_missing_basefont ... ok [INFO] [stdout] test validate::tests::validate_name_tree_no_names_or_kids ... ok [INFO] [stdout] test validate::tests::validate_name_tree_odd_names ... ok [INFO] [stdout] test validate::tests::validate_pdf_mixed_issues ... ok [INFO] [stdout] test validate::tests::print_validation_no_issues ... ok [INFO] [stdout] test validate::tests::validate_font_valid ... ok [INFO] [stdout] test validate::tests::xref_stream_with_removed_encrypt_not_reported ... ok [INFO] [stdout] test validate::tests::validate_duplicate_objects ... ok [INFO] [stdout] test validate::tests::validate_page_tree_cycle ... ok [INFO] [stdout] test validate::tests::validate_no_duplicate_objects ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1010 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/pdf_dump-917ba327808fc3d6) [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] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-6e040cf79737139c) [INFO] [stdout] [INFO] [stdout] running 102 tests [INFO] [stdout] test annotations_with_page_filter ... ok [INFO] [stdout] test bookmarks_no_outlines_says_no_bookmarks ... ok [INFO] [stdout] test bookmarks_on_pdf_with_outlines ... ok [INFO] [stdout] test depth_with_page_still_works ... ok [INFO] [stdout] test encrypted_pdf_with_correct_password_reads_fully ... ok [INFO] [stdout] test encrypted_pdf_with_wrong_password_exits_1 ... ok [INFO] [stdout] test encrypted_pdf_overview_reports_encrypted_and_exits_3 ... ok [INFO] [stdout] test encrypted_overview_agrees_with_detail_security ... ok [INFO] [stdout] test depth_with_page_unlimited ... ok [INFO] [stdout] test bookmarks_and_fonts_mutual_exclusion ... ok [INFO] [stdout] test corrupt_pdf_file_fails_gracefully ... ok [INFO] [stdout] test annotations_on_pdf_with_link ... ok [INFO] [stdout] test extract_corrupt_stream_shows_warning_on_stderr ... ok [INFO] [stdout] test help_flag_prints_usage ... ok [INFO] [stdout] test extract_stream_object_writes_file ... ok [INFO] [stdout] test extract_object_prints_success_message ... ok [INFO] [stdout] test extract_uncompressed_stream ... ok [INFO] [stdout] test extract_non_stream_object_fails ... ok [INFO] [stdout] test hex_flag_with_decode_streams ... ok [INFO] [stdout] test extract_nonexistent_object_fails ... ok [INFO] [stdout] test images_lists_images ... ok [INFO] [stdout] test fonts_json ... ok [INFO] [stdout] test json_text_with_page_filter ... ok [INFO] [stdout] test json_page_mode ... ok [INFO] [stdout] test list_flag_short_form ... ok [INFO] [stdout] test images_no_images ... ok [INFO] [stdout] test nonexistent_pdf_file_fails_gracefully ... ok [INFO] [stdout] test images_json ... ok [INFO] [stdout] test json_list_mode ... ok [INFO] [stdout] test fonts_lists_fonts ... ok [INFO] [stdout] test hex_flag_json_mode ... ok [INFO] [stdout] test list_flag_shows_object_table ... ok [INFO] [stdout] test list_with_two_page_pdf ... ok [INFO] [stdout] test page_flag_nonexistent_page_fails ... ok [INFO] [stdout] test page_invalid_range_rejected ... ok [INFO] [stdout] test output_without_extract_object_fails ... ok [INFO] [stdout] test no_arguments_shows_error ... ok [INFO] [stdout] test page_flag_with_decode_streams_still_works ... ok [INFO] [stdout] test object_and_page_flags_fails ... ok [INFO] [stdout] test page_flag_shows_page_content ... ok [INFO] [stdout] test page_2_dump_shows_page_2 ... ok [INFO] [stdout] test malformed_length_recovered_in_text_json ... ok [INFO] [stdout] test object_flag_short_form ... ok [INFO] [stdout] test fonts_mutually_exclusive ... ok [INFO] [stdout] test page_open_range_above_last_exits_3 ... ok [INFO] [stdout] test object_mode_with_decode_streams ... ok [INFO] [stdout] test object_flag_nonexistent_object_fails ... ok [INFO] [stdout] test page_zero_rejected ... ok [INFO] [stdout] test page_out_of_range_exits_3 ... ok [INFO] [stdout] test page_range_dump ... ok [INFO] [stdout] test page_open_range_dumps_from_start_to_last ... ok [INFO] [stdout] test object_flag_prints_single_object ... ok [INFO] [stdout] test malformed_length_recovery_key_in_object_json ... ok [INFO] [stdout] test pipeline_asciihex_flate_json ... ok [INFO] [stdout] test page_range_text ... ok [INFO] [stdout] test json_object_mode ... ok [INFO] [stdout] test page_out_of_range_json_exits_3 ... ok [INFO] [stdout] test search_finds_fonts ... ok [INFO] [stdout] test pipeline_asciihex_flate_decode_integration ... ok [INFO] [stdout] test page_zero_fails ... ok [INFO] [stdout] test search_has_key ... ok [INFO] [stdout] test search_no_matches ... ok [INFO] [stdout] test search_bad_expression_fails ... ok [INFO] [stdout] test search_multiple_conditions_json ... ok [INFO] [stdout] test plain_pdf_overview_has_no_decrypted_key ... ok [INFO] [stdout] test search_multiple_and_conditions ... ok [INFO] [stdout] test search_with_list ... ok [INFO] [stdout] test search_with_json ... ok [INFO] [stdout] test text_extracts_hello ... ok [INFO] [stdout] test strict_json_marks_unrepaired ... ok [INFO] [stdout] test search_with_list_json ... ok [INFO] [stdout] test strict_refuses_repair_and_exits_3 ... ok [INFO] [stdout] test strict_on_clean_pdf_exits_0 ... ok [INFO] [stdout] test text_cid_without_tounicode_json_reliability_object ... ok [INFO] [stdout] test text_nonexistent_page_fails ... ok [INFO] [stdout] test text_page_2_only ... ok [INFO] [stdout] test search_with_decode_streams ... ok [INFO] [stdout] test text_extracts_from_multiple_pages ... ok [INFO] [stdout] test text_cid_without_tounicode_exits_3_with_banner ... ok [INFO] [stdout] test tree_depth_one_shows_root_children_only ... ok [INFO] [stdout] test tree_json_with_broken_reference ... ok [INFO] [stdout] test text_mutually_exclusive_with_list ... ok [INFO] [stdout] test tree_json_valid_structure ... ok [INFO] [stdout] test text_with_json ... ok [INFO] [stdout] test search_value_expression ... ok [INFO] [stdout] test tree_dot_with_depth_limit ... ok [INFO] [stdout] test tree_json_depth_zero ... ok [INFO] [stdout] test text_with_page_filter ... ok [INFO] [stdout] test text_reliable_font_exits_0_no_banner ... ok [INFO] [stdout] test tree_dot_produces_valid_dot ... ok [INFO] [stdout] test tree_with_broken_reference ... ok [INFO] [stdout] test tree_mutually_exclusive ... ok [INFO] [stdout] test tree_shows_reference_tree ... ok [INFO] [stdout] test validate_json ... ok [INFO] [stdout] test validate_minimal_pdf ... ok [INFO] [stdout] test truncate_with_hex_flag ... ok [INFO] [stdout] test tree_with_stream_object ... ok [INFO] [stdout] test tree_with_depth_limit ... ok [INFO] [stdout] test text_type0_with_tounicode_decodes_and_exits_0 ... ok [INFO] [stdout] test wellformed_pdf_has_no_recovery_key ... ok [INFO] [stdout] test version_flag_prints_version ... ok [INFO] [stdout] test validate_mutually_exclusive ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 102 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s [INFO] [stdout] [INFO] [stderr] Running tests/lopdf_canary.rs (/opt/rustwide/target/debug/deps/lopdf_canary-bb9da80ca05fc7b5) [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test lopdf_puts_xref_streams_in_objects_for_external_pdfs ... ok [INFO] [stdout] test lopdf_degrades_on_missing_password ... ok [INFO] [stdout] test lopdf_puts_xref_streams_in_objects_after_encrypted_round_trip ... ok [INFO] [stdout] test lopdf_populates_encryption_state ... ok [INFO] [stdout] test lopdf_load_with_wrong_password_errors ... ok [INFO] [stdout] test lopdf_removes_encrypt_from_trailer ... ok [INFO] [stdout] test lopdf_loads_fully_with_correct_password ... ok [INFO] [stdout] test lopdf_removes_encrypt_dict_object ... ok [INFO] [stdout] test lopdf_save_modern_encryption_corrupts_objstm_strings ... ok [INFO] [stderr] Doc-tests pdf_dump [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "78893a9b55741a2a30e87cc08da221e1f23e4b0f220c73353fa9bdf706c8c27c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "78893a9b55741a2a30e87cc08da221e1f23e4b0f220c73353fa9bdf706c8c27c", kill_on_drop: false }` [INFO] [stdout] 78893a9b55741a2a30e87cc08da221e1f23e4b0f220c73353fa9bdf706c8c27c