[INFO] fetching crate oximedia-image-transform 0.1.3... [INFO] testing oximedia-image-transform-0.1.3 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate oximedia-image-transform 0.1.3 into /workspace/builds/worker-1-tc2/source [INFO] started tweaking crates.io crate oximedia-image-transform 0.1.3 [INFO] finished tweaking crates.io crate oximedia-image-transform 0.1.3 [INFO] tweaked toml for crates.io crate oximedia-image-transform 0.1.3 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-image-transform 0.1.3 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oximedia-image-transform 0.1.3 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e3ea6ffcce89cc6c610570bb9dc5337e4e6bfc17b355a6e47ba179a7230d83b4 [INFO] running `Command { std: "docker" "start" "-a" "e3ea6ffcce89cc6c610570bb9dc5337e4e6bfc17b355a6e47ba179a7230d83b4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e3ea6ffcce89cc6c610570bb9dc5337e4e6bfc17b355a6e47ba179a7230d83b4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e3ea6ffcce89cc6c610570bb9dc5337e4e6bfc17b355a6e47ba179a7230d83b4", kill_on_drop: false }` [INFO] [stdout] e3ea6ffcce89cc6c610570bb9dc5337e4e6bfc17b355a6e47ba179a7230d83b4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 14089f2da32a61a294e671b1c228cdd133139361db99684bc357e52bec20646b [INFO] running `Command { std: "docker" "start" "-a" "14089f2da32a61a294e671b1c228cdd133139361db99684bc357e52bec20646b", kill_on_drop: false }` [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling oximedia-image-transform v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.69s [INFO] running `Command { std: "docker" "inspect" "14089f2da32a61a294e671b1c228cdd133139361db99684bc357e52bec20646b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "14089f2da32a61a294e671b1c228cdd133139361db99684bc357e52bec20646b", kill_on_drop: false }` [INFO] [stdout] 14089f2da32a61a294e671b1c228cdd133139361db99684bc357e52bec20646b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 71b663a1f73466264a6c131d89f823e2aef4d43f699a8f25f1f5788574b7da70 [INFO] running `Command { std: "docker" "start" "-a" "71b663a1f73466264a6c131d89f823e2aef4d43f699a8f25f1f5788574b7da70", kill_on_drop: false }` [INFO] [stderr] Compiling oximedia-image-transform v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.96s [INFO] running `Command { std: "docker" "inspect" "71b663a1f73466264a6c131d89f823e2aef4d43f699a8f25f1f5788574b7da70", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "71b663a1f73466264a6c131d89f823e2aef4d43f699a8f25f1f5788574b7da70", kill_on_drop: false }` [INFO] [stdout] 71b663a1f73466264a6c131d89f823e2aef4d43f699a8f25f1f5788574b7da70 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] d45697fc3c06cf35fbeee2561bbe959e291d7db963aa71561aa115641ace2ea2 [INFO] running `Command { std: "docker" "start" "-a" "d45697fc3c06cf35fbeee2561bbe959e291d7db963aa71561aa115641ace2ea2", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_image_transform-85ef45ed54f72f7c) [INFO] [stdout] [INFO] [stdout] running 501 tests [INFO] [stdout] test blur_region::tests::test_apply_no_panic_on_full_image_region ... ok [INFO] [stdout] test blur_region::tests::test_apply_partial_region ... ok [INFO] [stdout] test blur_region::tests::test_apply_multiple_regions ... ok [INFO] [stdout] test blur_region::tests::test_blur_region_clamped ... ok [INFO] [stdout] test blur_region::tests::test_blur_region_validate_bad_strength ... ok [INFO] [stdout] test blur_region::tests::test_blur_region_validate_ok ... ok [INFO] [stdout] test blur_region::tests::test_blur_region_validate_zero_width ... ok [INFO] [stdout] test blur_region::tests::test_blur_regions_clamps_out_of_bounds_region ... ok [INFO] [stdout] test blur_region::tests::test_blur_region_validate_out_of_bounds ... ok [INFO] [stdout] test blur_region::tests::test_blur_regions_noop_zero_radius ... ok [INFO] [stdout] test blur_region::tests::test_gaussian_kernel_symmetry ... ok [INFO] [stdout] test blur_region::tests::test_apply_rgb_channels ... ok [INFO] [stdout] test face_detect::tests::test_default_result ... ok [INFO] [stdout] test face_detect::tests::test_detect_rgb_buffer ... ok [INFO] [stdout] test face_detect::tests::test_detect_faces_subsample_large ... ok [INFO] [stdout] test face_detect::tests::test_gradient_at_border ... ok [INFO] [stdout] test face_detect::tests::test_detect_confidence_no_skin ... ok [INFO] [stdout] test face_detect::tests::test_luminance_green_brightest ... ok [INFO] [stdout] test face_detect::tests::test_luminance_white ... ok [INFO] [stdout] test face_detect::tests::test_detect_confidence_with_skin ... ok [INFO] [stdout] test face_detect::tests::test_skin_tone_dark_not_skin ... ok [INFO] [stdout] test face_detect::tests::test_skin_tone_green_not_skin ... ok [INFO] [stdout] test blur_region::tests::test_buffer_size_mismatch ... ok [INFO] [stdout] test face_detect::tests::test_skin_tone_warm_skin ... ok [INFO] [stdout] test face_detect::tests::test_luminance_black ... ok [INFO] [stdout] test face_detect::tests::test_skin_tone_various_tones ... ok [INFO] [stdout] test face_detect::tests::test_detect_faces_zero_size ... ok [INFO] [stdout] test face_detect::tests::test_skin_tone_blue_not_skin ... ok [INFO] [stdout] test face_detect::tests::test_gradient_uniform_is_zero ... ok [INFO] [stdout] test face_detect::tests::test_gradient_sharp_edge ... ok [INFO] [stdout] test face_detect::tests::test_detection_config_defaults ... ok [INFO] [stdout] test face_detect::tests::test_skin_tone_white_not_skin ... ok [INFO] [stdout] test blur_region::tests::test_gaussian_kernel_sums_to_one ... ok [INFO] [stdout] test face_detect::tests::test_tiny_buffer_returns_center ... ok [INFO] [stdout] test image_analysis::tests::test_blurhash_buffer_size_mismatch ... ok [INFO] [stdout] test blur_region::tests::test_blur_regions_ignores_wrong_buffer_size ... ok [INFO] [stdout] test image_analysis::tests::test_blurhash_length_varies_with_components ... ok [INFO] [stdout] test image_analysis::tests::test_blurhash_rgb_channels ... ok [INFO] [stdout] test image_analysis::tests::test_extract_multiple_colors ... ok [INFO] [stdout] test face_detect::tests::test_smart_gravity_bright_corner ... ok [INFO] [stdout] test face_detect::tests::test_smart_gravity_uniform ... ok [INFO] [stdout] test image_analysis::tests::test_extract_ignores_transparent_pixels ... ok [INFO] [stdout] test image_analysis::tests::test_extract_single_color ... ok [INFO] [stdout] test face_detect::tests::test_uniform_gray_low_saliency ... ok [INFO] [stdout] test image_analysis::tests::test_blurhash_invalid_components ... ok [INFO] [stdout] test image_analysis::tests::test_extract_invalid_color_count ... ok [INFO] [stdout] test blur_region::tests::test_blur_region_applies ... ok [INFO] [stdout] test image_analysis::tests::test_extract_unsupported_channels ... ok [INFO] [stdout] test image_analysis::tests::test_blurhash_non_empty ... ok [INFO] [stdout] test image_analysis::tests::test_blurhash_deterministic ... ok [INFO] [stdout] test image_analysis::tests::test_extract_rgb_channels ... ok [INFO] [stdout] test image_analysis::tests::test_image_too_small ... ok [INFO] [stdout] test metrics::tests::test_format_distribution ... ok [INFO] [stdout] test image_analysis::tests::test_rgb_color_to_hex ... ok [INFO] [stdout] test image_analysis::tests::test_srgb_linear_roundtrip_black ... ok [INFO] [stdout] test image_analysis::tests::test_srgb_linear_roundtrip_white ... ok [INFO] [stdout] test metrics::tests::test_all_formats_tracked ... ok [INFO] [stdout] test metrics::tests::test_cache_misses ... ok [INFO] [stdout] test metrics::tests::test_default_metrics ... ok [INFO] [stdout] test image_analysis::tests::test_median_cut_reduces_to_n_buckets ... ok [INFO] [stdout] test metrics::tests::test_mean_latency ... ok [INFO] [stdout] test metrics::tests::test_p95_latency_computed ... ok [INFO] [stdout] test metrics::tests::test_reset ... ok [INFO] [stdout] test metrics::tests::test_record_single_request ... ok [INFO] [stdout] test metrics::tests::test_initial_state ... ok [INFO] [stdout] test negotiation::tests::test_cache_control_boundary_quality_49 ... ok [INFO] [stdout] test metrics::tests::test_latency_bucket_zero ... ok [INFO] [stdout] test metrics::tests::test_latency_histogram_populated ... ok [INFO] [stdout] test negotiation::tests::test_accepts_mime_exact_zero_quality ... ok [INFO] [stdout] test negotiation::tests::test_accepts_mime_wildcard_zero_quality ... ok [INFO] [stdout] test blur_region::tests::test_unsupported_channels ... ok [INFO] [stdout] test negotiation::tests::test_cache_control_jpeg_normal_quality ... ok [INFO] [stdout] test negotiation::tests::test_cache_control_avif ... ok [INFO] [stdout] test metrics::tests::test_latency_bucket_large ... ok [INFO] [stdout] test negotiation::tests::test_cache_control_boundary_quality_50 ... ok [INFO] [stdout] test negotiation::tests::test_cache_control_low_quality ... ok [INFO] [stdout] test negotiation::tests::test_cache_control_low_quality_avif_priority ... ok [INFO] [stdout] test negotiation::tests::test_cache_control_png ... ok [INFO] [stdout] test negotiation::tests::test_cache_control_webp ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_apply_does_not_override_explicit_dpr ... ok [INFO] [stdout] test metrics::tests::test_error_tracking ... ok [INFO] [stdout] test metrics::tests::test_latency_bucket_one_us ... ok [INFO] [stdout] test face_detect::tests::test_smart_gravity_skin_region ... ok [INFO] [stdout] test metrics::tests::test_thread_safe_concurrent_updates ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_apply_does_not_override_explicit_width ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_apply_dpr_clamped ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_apply_dpr ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_apply_to_params_width ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_default ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_has_hints ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_invalid_viewport ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_invalid_width ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_invalid_dpr ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_parse_none ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_response_headers_no_hints ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_whitespace_trimming ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_parse_all ... ok [INFO] [stdout] test negotiation::tests::test_format_to_mime_avif ... ok [INFO] [stdout] test negotiation::tests::test_format_to_mime_jpeg ... ok [INFO] [stdout] test negotiation::tests::test_format_to_mime_png ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_parse_partial ... ok [INFO] [stdout] test negotiation::tests::test_format_to_mime_webp ... ok [INFO] [stdout] test negotiation::tests::test_negotiate_all_formats_explicit ... ok [INFO] [stdout] test negotiation::tests::test_negotiate_auto_empty_accept_falls_to_jpeg ... ok [INFO] [stdout] test negotiation::tests::test_negotiate_auto_image_wildcard_matches_avif ... ok [INFO] [stdout] test negotiation::tests::test_format_to_mime_gif ... ok [INFO] [stdout] test negotiation::tests::test_format_to_mime_baseline ... ok [INFO] [stdout] test negotiation::tests::test_negotiate_auto_jpeg_fallback ... ok [INFO] [stdout] test negotiation::tests::test_negotiate_auto_prefers_avif ... ok [INFO] [stdout] test negotiation::tests::test_negotiate_auto_wildcard_matches_avif ... ok [INFO] [stdout] test negotiation::tests::test_negotiate_auto_zero_quality_avif_skipped ... ok [INFO] [stdout] test negotiation::tests::test_negotiate_auto_no_image_types ... ok [INFO] [stdout] test negotiation::tests::test_parse_chrome_accept_header ... ok [INFO] [stdout] test negotiation::tests::test_parse_empty_accept ... ok [INFO] [stdout] test negotiation::tests::test_parse_equal_quality_preserves_order ... ok [INFO] [stdout] test negotiation::tests::test_negotiate_auto_webp_when_no_avif ... ok [INFO] [stdout] test negotiation::tests::test_negotiate_explicit_jpeg ... ok [INFO] [stdout] test negotiation::tests::test_negotiate_explicit_format_returns_directly ... ok [INFO] [stdout] test negotiation::tests::test_parse_multiple_entries_with_quality ... ok [INFO] [stdout] test negotiation::tests::test_parse_quality_clamped_to_zero ... ok [INFO] [stdout] test negotiation::tests::test_parse_no_quality_defaults_to_one ... ok [INFO] [stdout] test negotiation::tests::test_parse_quality_clamped_to_one ... ok [INFO] [stdout] test negotiation::tests::test_negotiate_auto_png_when_no_avif_no_webp ... ok [INFO] [stdout] test negotiation::tests::test_parse_safari_accept_header ... ok [INFO] [stdout] test negotiation::tests::test_parse_malformed_quality ... ok [INFO] [stdout] test negotiation::tests::test_response_headers_content_type ... ok [INFO] [stdout] test negotiation::tests::test_parse_quality_with_extra_params ... ok [INFO] [stdout] test negotiation::tests::test_parse_single_entry ... ok [INFO] [stdout] test negotiation::tests::test_response_headers_vary ... ok [INFO] [stdout] test negotiation::tests::test_parse_missing_q_value ... ok [INFO] [stdout] test negotiation::tests::test_supports_format_avif ... ok [INFO] [stdout] test negotiation::tests::test_parse_sorts_by_quality_descending ... ok [INFO] [stdout] test negotiation::tests::test_supports_format_empty_accept ... ok [INFO] [stdout] test negotiation::tests::test_parse_whitespace_only ... ok [INFO] [stdout] test negotiation::tests::test_response_headers_cache_control ... ok [INFO] [stdout] test negotiation::tests::test_response_headers_cf_resized_no_savings ... ok [INFO] [stdout] test negotiation::tests::test_response_headers_cf_resized_with_savings ... ok [INFO] [stdout] test negotiation::tests::test_response_headers_cf_resized_zero_original ... ok [INFO] [stdout] test negotiation::tests::test_response_headers_etag ... ok [INFO] [stdout] test negotiation::tests::test_response_headers_to_pairs ... ok [INFO] [stdout] test negotiation::tests::test_supports_format_non_image_wildcard_no_match ... ok [INFO] [stdout] test negotiation::tests::test_supports_format_not_supported ... ok [INFO] [stdout] test negotiation::tests::test_supports_format_webp ... ok [INFO] [stdout] test parser::tests::test_cache_key_deterministic ... ok [INFO] [stdout] test negotiation::tests::test_supports_format_zero_quality_not_supported ... ok [INFO] [stdout] test parser::tests::test_cache_key_different_paths ... ok [INFO] [stdout] test parser::tests::test_cdn_url_basic ... ok [INFO] [stdout] test parser::tests::test_cdn_cgi_path_basic ... ok [INFO] [stdout] test parser::tests::test_cdn_url_complex ... ok [INFO] [stdout] test negotiation::tests::test_supports_format_via_wildcard ... ok [INFO] [stdout] test parser::tests::test_cdn_url_invalid_prefix ... ok [INFO] [stdout] test parser::tests::test_cache_key_different_params ... ok [INFO] [stdout] test parser::tests::test_cdn_url_no_leading_slash ... ok [INFO] [stdout] test parser::tests::test_cdn_url_no_transforms ... ok [INFO] [stdout] test parser::tests::test_cdn_url_missing_image_path ... ok [INFO] [stdout] test parser::tests::test_cdn_url_traversal_prevention ... ok [INFO] [stdout] test negotiation::tests::test_client_hints_response_headers_basic ... ok [INFO] [stdout] test parser::tests::test_cdn_url_url_encoded ... ok [INFO] [stdout] test negotiation::tests::test_format_to_mime_auto_fallback ... ok [INFO] [stdout] test parser::tests::test_compute_cache_key_different_params ... ok [INFO] [stdout] test parser::tests::test_compute_cache_key_different_paths ... ok [INFO] [stdout] test parser::tests::test_compute_cache_key_deterministic ... ok [INFO] [stdout] test parser::tests::test_fnv1a_deterministic ... ok [INFO] [stdout] test parser::tests::test_parse_anim_false ... ok [INFO] [stdout] test parser::tests::test_parse_all_cloudflare_params ... ok [INFO] [stdout] test parser::tests::test_parse_anim_true ... ok [INFO] [stdout] test parser::tests::test_parse_bare_key_ignored ... ok [INFO] [stdout] test parser::tests::test_parse_background_short_alias ... ok [INFO] [stdout] test parser::tests::test_parse_basic ... ok [INFO] [stdout] test negotiation::tests::test_response_headers_different_formats ... ok [INFO] [stdout] test parser::tests::test_parse_border_uniform ... ok [INFO] [stdout] test parser::tests::test_parse_format_auto ... ok [INFO] [stdout] test parser::tests::test_parse_border_four_sides ... ok [INFO] [stdout] test parser::tests::test_parse_gravity_focal_point ... ok [INFO] [stdout] test parser::tests::test_parse_gravity_short_alias ... ok [INFO] [stdout] test parser::tests::test_parse_invalid_format ... ok [INFO] [stdout] test parser::tests::test_parse_background ... ok [INFO] [stdout] test parser::tests::test_parse_empty_string ... ok [INFO] [stdout] test parser::tests::test_fnv1a_different_inputs ... ok [INFO] [stdout] test parser::tests::test_fnv1a_empty ... ok [INFO] [stdout] test metrics::tests::test_cache_hit_tracking ... ok [INFO] [stdout] test parser::tests::test_parse_invalid_number ... ok [INFO] [stdout] test parser::tests::test_parse_onerror ... ok [INFO] [stdout] test parser::tests::test_parse_padding_four_values ... ok [INFO] [stdout] test parser::tests::test_parse_padding_two_values ... ok [INFO] [stdout] test parser::tests::test_parse_padding_uniform ... ok [INFO] [stdout] test parser::tests::test_parse_rotate_auto ... ok [INFO] [stdout] test parser::tests::test_parse_rotate_degrees ... ok [INFO] [stdout] test parser::tests::test_parse_short_aliases ... ok [INFO] [stdout] test parser::tests::test_parse_trim_uniform ... ok [INFO] [stdout] test parser::tests::test_parse_unknown_keys_ignored ... ok [INFO] [stdout] test parser::tests::test_percent_decode_basic ... ok [INFO] [stdout] test parser::tests::test_percent_decode_empty ... ok [INFO] [stdout] test parser::tests::test_preset_as_str ... ok [INFO] [stdout] test parser::tests::test_preset_case_insensitive ... ok [INFO] [stdout] test parser::tests::test_preset_hd_ready ... ok [INFO] [stdout] test parser::tests::test_preset_hd_ready_aliases ... ok [INFO] [stdout] test parser::tests::test_preset_in_cdn_url ... ok [INFO] [stdout] test parser::tests::test_preset_overridden_by_explicit_params ... ok [INFO] [stdout] test parser::tests::test_preset_preview ... ok [INFO] [stdout] test parser::tests::test_preset_thumbnail ... ok [INFO] [stdout] test parser::tests::test_preset_thumbnail_alias_thumb ... ok [INFO] [stdout] test parser::tests::test_preset_thumbnail_alias_tn ... ok [INFO] [stdout] test parser::tests::test_preset_unknown_returns_none ... ok [INFO] [stdout] test parser::tests::test_query_aliases ... ok [INFO] [stdout] test parser::tests::test_query_basic ... ok [INFO] [stdout] test parser::tests::test_query_empty ... ok [INFO] [stdout] test parser::tests::test_query_unknown_params_ignored ... ok [INFO] [stdout] test parser::tests::test_round_trip_parse_display_parse ... ok [INFO] [stdout] test parser::tests::test_round_trip_with_effects ... ok [INFO] [stdout] test processor::tests::tests::test_apply_resize_empty_source ... ok [INFO] [stdout] test processor::tests::tests::test_apply_transforms_border_and_padding ... ok [INFO] [stdout] test processor::tests::tests::test_apply_resize_pad ... ok [INFO] [stdout] test processor::tests::tests::test_apply_transforms_identity ... ok [INFO] [stdout] test processor::tests::tests::test_apply_resize_scale_down_no_change ... ok [INFO] [stdout] test processor::tests::tests::test_apply_resize_crop ... ok [INFO] [stdout] test processor::tests::tests::test_apply_resize_cover ... ok [INFO] [stdout] test processor::tests::tests::test_apply_transforms_color_adjustments ... ok [INFO] [stdout] test processor::tests::tests::test_bilinear_resize_identity ... ok [INFO] [stdout] test negotiation::tests::test_cache_control_default ... ok [INFO] [stdout] test processor::tests::tests::test_apply_resize_contain ... ok [INFO] [stdout] test processor::tests::tests::test_apply_transforms_resize_and_rotate ... ok [INFO] [stdout] test processor::tests::tests::test_apply_resize_fill ... ok [INFO] [stdout] test processor::tests::tests::test_bilinear_resize_upscale ... ok [INFO] [stdout] test processor::tests::tests::test_bilinear_resize_zero_target ... ok [INFO] [stdout] test processor::tests::tests::test_bilinear_resize_to_single_pixel ... ok [INFO] [stdout] test processor::tests::tests::test_blur_reduces_sharp_edge ... ok [INFO] [stdout] test processor::tests::tests::test_blur_zero_is_noop ... ok [INFO] [stdout] test processor::tests::tests::test_bilinear_resize_downscale ... ok [INFO] [stdout] test processor::tests::tests::test_border_adds_size ... ok [INFO] [stdout] test processor::tests::tests::test_blur_solid_color_unchanged ... ok [INFO] [stdout] test processor::tests::tests::test_border_asymmetric ... ok [INFO] [stdout] test processor::tests::tests::test_border_color_applied ... ok [INFO] [stdout] test processor::tests::tests::test_brightness_clamp_to_white ... ok [INFO] [stdout] test processor::tests::tests::test_brightness_negative_clamps_to_zero ... ok [INFO] [stdout] test processor::tests::tests::test_brightness_positive ... ok [INFO] [stdout] test processor::tests::tests::test_brightness_zero_is_noop ... ok [INFO] [stdout] test processor::tests::tests::test_build_pipeline_empty ... ok [INFO] [stdout] test processor::tests::tests::test_build_pipeline_ordering ... ok [INFO] [stdout] test processor::tests::tests::test_contrast_negative_reduces ... ok [INFO] [stdout] test processor::tests::tests::test_contrast_positive_amplifies ... ok [INFO] [stdout] test processor::tests::tests::test_contrast_zero_is_noop ... ok [INFO] [stdout] test processor::tests::tests::test_crop_rect_bottom_right ... ok [INFO] [stdout] test processor::tests::tests::test_contrast_midpoint_unchanged ... ok [INFO] [stdout] test processor::tests::tests::test_crop_rect_center ... ok [INFO] [stdout] test processor::tests::tests::test_crop_rect_focal_point ... ok [INFO] [stdout] test processor::tests::tests::test_fit_contain_landscape ... ok [INFO] [stdout] test processor::tests::tests::test_fit_contain_portrait ... ok [INFO] [stdout] test processor::tests::tests::test_gamma_darkens ... ok [INFO] [stdout] test processor::tests::tests::test_gamma_brightens ... ok [INFO] [stdout] test processor::tests::tests::test_gamma_fixed_points_black_white ... ok [INFO] [stdout] test processor::tests::tests::test_build_pipeline_skips_identity_values ... ok [INFO] [stdout] test processor::tests::tests::test_gamma_preserves_alpha ... ok [INFO] [stdout] test processor::tests::tests::test_gamma_identity ... ok [INFO] [stdout] test processor::tests::tests::test_gamma_zero_error ... ok [INFO] [stdout] test processor::tests::tests::test_crop_rect_larger_than_source ... ok [INFO] [stdout] test processor::tests::tests::test_gaussian_kernel_peak_at_center ... ok [INFO] [stdout] test processor::tests::tests::test_crop_rect_top_left ... ok [INFO] [stdout] test processor::tests::tests::test_gaussian_kernel_sums_to_one ... ok [INFO] [stdout] test processor::tests::tests::test_apply_resize_height_only ... ok [INFO] [stdout] test processor::tests::tests::test_fit_cover_landscape ... ok [INFO] [stdout] test processor::tests::tests::test_gaussian_kernel_symmetric ... ok [INFO] [stdout] test processor::tests::tests::test_gravity_focal_point_fractions ... ok [INFO] [stdout] test processor::tests::tests::test_get_set_pixel ... ok [INFO] [stdout] test processor::tests::tests::test_gravity_to_fractions ... ok [INFO] [stdout] test processor::tests::tests::test_get_pixel_out_of_bounds ... ok [INFO] [stdout] test processor::tests::tests::test_integration_quality_bounds ... ok [INFO] [stdout] test processor::tests::tests::test_lanczos3_kernel_at_boundary ... ok [INFO] [stdout] test processor::tests::tests::test_integration_parse_and_apply_resize ... ok [INFO] [stdout] test processor::tests::tests::test_lanczos3_kernel_at_zero ... ok [INFO] [stdout] test processor::tests::tests::test_negative_brightness_per_channel ... ok [INFO] [stdout] test processor::tests::tests::test_pixel_buffer_from_rgb_valid ... ok [INFO] [stdout] test processor::tests::tests::test_lanczos_resize_identity ... ok [INFO] [stdout] test processor::tests::tests::test_pixel_buffer_from_rgba_invalid ... ok [INFO] [stdout] test processor::tests::tests::test_rgb_buffer_resize ... ok [INFO] [stdout] test processor::tests::tests::test_rgb_buffer_brightness ... ok [INFO] [stdout] test processor::tests::tests::test_integration_upscale_single_pixel ... ok [INFO] [stdout] test processor::tests::tests::test_rotate_180 ... ok [INFO] [stdout] test processor::tests::tests::test_blur_preserves_dimensions ... ok [INFO] [stdout] test processor::tests::tests::test_rotate_90 ... ok [INFO] [stdout] test processor::tests::tests::test_padding_asymmetric ... ok [INFO] [stdout] test processor::tests::tests::test_pixel_buffer_from_rgba_valid ... ok [INFO] [stdout] test processor::tests::tests::test_lanczos_resize_upscale ... ok [INFO] [stdout] test processor::tests::tests::test_padding_uniform ... ok [INFO] [stdout] test processor::tests::tests::test_rotate_270 ... ok [INFO] [stdout] test processor::tests::tests::test_lanczos3_kernel_outside_support ... ok [INFO] [stdout] test processor::tests::tests::test_pixel_buffer_from_rgb_invalid ... ok [INFO] [stdout] test processor::tests::tests::test_apply_resize_scale_down_shrinks ... ok [INFO] [stdout] test processor::tests::tests::test_rotate_90_pixel_mapping ... ok [INFO] [stdout] test processor::tests::tests::test_rotate_single_pixel ... ok [INFO] [stdout] test processor::tests::tests::test_sample_bilinear_empty_buffer ... ok [INFO] [stdout] test processor::tests::tests::test_trim_all_sides ... ok [INFO] [stdout] test processor::tests::tests::test_trim_exceeds_dimensions ... ok [INFO] [stdout] test processor::tests::tests::test_sharpen_solid_color_unchanged ... ok [INFO] [stdout] test processor::tests::tests::test_single_pixel_buffer ... ok [INFO] [stdout] test processor::tests::tests::test_trim_uniform ... ok [INFO] [stdout] test processor::tests::tests::test_pixel_buffer_new ... ok [INFO] [stdout] test quality::tests::test_analyse_complexity_empty_buffer ... ok [INFO] [stdout] test processor::tests::tests::test_sharpen_preserves_dimensions ... ok [INFO] [stdout] test processor::tests::tests::test_sample_bilinear_interpolated ... ok [INFO] [stdout] test processor::tests::tests::test_sample_bilinear_exact_corners ... ok [INFO] [stdout] test processor::tests::tests::test_set_pixel_out_of_bounds_noop ... ok [INFO] [stdout] test quality::tests::test_auto_tune_quality_preserves_explicit ... ok [INFO] [stdout] test quality::tests::test_complexity_to_quality_range ... ok [INFO] [stdout] test quality::tests::test_pixel_luminance_black ... ok [INFO] [stdout] test quality::tests::test_pixel_luminance_white ... ok [INFO] [stdout] test quality::tests::test_pixel_luminance_out_of_bounds ... ok [INFO] [stdout] test quality::tests::test_ssim_different_sizes ... ok [INFO] [stdout] test processor::tests::tests::test_rotate_auto_noop ... ok [INFO] [stdout] test processor::tests::tests::test_rotate_deg0_identity ... ok [INFO] [stdout] test quality::tests::test_analyse_complexity_solid ... ok [INFO] [stdout] test quality::tests::test_analyse_complexity_gradient ... ok [INFO] [stdout] test quality::tests::test_ssim_tiny_image ... ok [INFO] [stdout] test responsive::tests::test_breakpoint_with_media_query ... ok [INFO] [stdout] test responsive::tests::test_builder_fluent_api ... ok [INFO] [stdout] test responsive::tests::test_picture_element_has_webp_source ... ok [INFO] [stdout] test responsive::tests::test_picture_element_lazy_loading ... ok [INFO] [stdout] test processor::tests::tests::test_apply_resize_width_only ... ok [INFO] [stdout] test responsive::tests::test_picture_element_has_avif_source ... ok [INFO] [stdout] test quality::tests::test_analyse_complexity_tiny_buffer ... ok [INFO] [stdout] test responsive::tests::test_single_format_no_source_elements ... ok [INFO] [stdout] test responsive::tests::test_srcset_contains_format ... ok [INFO] [stdout] test responsive::tests::test_validate_empty_breakpoints ... ok [INFO] [stdout] test responsive::tests::test_picture_element_alt_text ... ok [INFO] [stdout] test responsive::tests::test_picture_element_sizes_attr ... ok [INFO] [stdout] test responsive::tests::test_validate_ok ... ok [INFO] [stdout] test security::tests::test_backslash_traversal ... ok [INFO] [stdout] test responsive::tests::test_picture_element_structure ... ok [INFO] [stdout] test security::tests::test_broadcast_v4 ... ok [INFO] [stdout] test responsive::tests::test_validate_empty_formats ... ok [INFO] [stdout] test responsive::tests::test_validate_zero_width_breakpoint ... ok [INFO] [stdout] test security::tests::test_cgnat_v4 ... ok [INFO] [stdout] test security::tests::test_constant_time_eq_not_equal ... ok [INFO] [stdout] test security::tests::test_constant_time_eq_different_lengths ... ok [INFO] [stdout] test security::tests::test_custom_max_dimensions ... ok [INFO] [stdout] test security::tests::test_constant_time_eq_equal ... ok [INFO] [stdout] test security::tests::test_decode_path_basic ... ok [INFO] [stdout] test security::tests::test_decode_path_empty ... ok [INFO] [stdout] test security::tests::test_dimensions_at_max_boundary ... ok [INFO] [stdout] test security::tests::test_decode_path_invalid_sequence ... ok [INFO] [stdout] test security::tests::test_dimensions_with_dpr_exceeds_max ... ok [INFO] [stdout] test security::tests::test_documentation_boundaries ... ok [INFO] [stdout] test security::tests::test_dotdot_traversal ... ok [INFO] [stdout] test security::tests::test_documentation_v4 ... ok [INFO] [stdout] test security::tests::test_double_slash ... ok [INFO] [stdout] test quality::tests::test_ssim_different ... ok [INFO] [stdout] test security::tests::test_encoded_dotdot_traversal ... ok [INFO] [stdout] test security::tests::test_encoded_backslash ... ok [INFO] [stdout] test security::tests::test_encoded_slash_traversal ... ok [INFO] [stdout] test security::tests::test_decode_path_no_encoding ... ok [INFO] [stdout] test processor::tests::tests::test_sharpen_zero_is_noop ... ok [INFO] [stdout] test security::tests::test_error_display_blocked ... ok [INFO] [stdout] test processor::tests::tests::test_trim_empty_buffer ... ok [INFO] [stdout] test security::tests::test_error_display_dimension ... ok [INFO] [stdout] test security::tests::test_error_display_file_size ... ok [INFO] [stdout] test security::tests::test_error_display_path_traversal ... ok [INFO] [stdout] test security::tests::test_error_display_private_ip ... ok [INFO] [stdout] test security::tests::test_error_display_protocol ... ok [INFO] [stdout] test security::tests::test_height_exceeds_max ... ok [INFO] [stdout] test security::tests::test_link_local_v4 ... ok [INFO] [stdout] test security::tests::test_hex_encode ... ok [INFO] [stdout] test security::tests::test_error_display_invalid_url ... ok [INFO] [stdout] test security::tests::test_loopback_v4 ... ok [INFO] [stdout] test security::tests::test_hmac_sha256_known ... ok [INFO] [stdout] test security::tests::test_loopback_v6 ... ok [INFO] [stdout] test security::tests::test_no_dimensions_passes ... ok [INFO] [stdout] test security::tests::test_not_ula_boundary ... ok [INFO] [stdout] test security::tests::test_link_local_v6 ... ok [INFO] [stdout] test security::tests::test_public_v6 ... ok [INFO] [stdout] test security::tests::test_quadruple_dot_traversal ... ok [INFO] [stdout] test security::tests::test_rfc1918_10_network ... ok [INFO] [stdout] test security::tests::test_rfc1918_172_16_network ... ok [INFO] [stdout] test security::tests::test_rfc1918_192_168_network ... ok [INFO] [stdout] test security::tests::test_security_config_defaults ... ok [INFO] [stdout] test security::tests::test_null_byte ... ok [INFO] [stdout] test security::tests::test_public_v4 ... ok [INFO] [stdout] test security::tests::test_sign_and_verify_roundtrip ... ok [INFO] [stdout] test security::tests::test_sha256_known_vector ... ok [INFO] [stdout] test security::tests::test_sign_url_different_params ... ok [INFO] [stdout] test security::tests::test_sign_url_deterministic ... ok [INFO] [stdout] test security::tests::test_sha256_abc ... ok [INFO] [stdout] test security::tests::test_sign_url_different_paths ... ok [INFO] [stdout] test security::tests::test_sign_url_no_secret ... ok [INFO] [stdout] test security::tests::test_signed_url_config_defaults ... ok [INFO] [stdout] test security::tests::test_signed_url_error_display ... ok [INFO] [stdout] test security::tests::test_tilde_home_dir ... ok [INFO] [stdout] test security::tests::test_tilde_not_at_start_is_ok ... ok [INFO] [stdout] test security::tests::test_ula_v6 ... ok [INFO] [stdout] test security::tests::test_unspecified_v4 ... ok [INFO] [stdout] test security::tests::test_valid_path ... ok [INFO] [stdout] test security::tests::test_validate_request_dimension_exceeded ... ok [INFO] [stdout] test security::tests::test_unspecified_v6 ... ok [INFO] [stdout] test security::tests::test_validate_request_path_checked_first ... ok [INFO] [stdout] test security::tests::test_verify_no_secret ... ok [INFO] [stdout] test security::tests::test_valid_dimensions ... ok [INFO] [stdout] test security::tests::test_verify_signed_url_no_expiry ... ok [INFO] [stdout] test security::tests::test_verify_signed_url_with_expiry ... ok [INFO] [stdout] test security::tests::test_validate_request_valid ... ok [INFO] [stdout] test security::tests::test_validate_request_path_traversal ... ok [INFO] [stdout] test security::tests::test_verify_wrong_signature ... ok [INFO] [stdout] test security::tests::test_width_exceeds_max ... ok [INFO] [stdout] test transform::tests::test_border_uniform ... ok [INFO] [stdout] test transform::tests::test_cache_key_deterministic ... ok [INFO] [stdout] test transform::tests::test_color_from_css_rgb ... ok [INFO] [stdout] test transform::tests::test_color_display ... ok [INFO] [stdout] test transform::tests::test_color_from_hex_no_hash ... ok [INFO] [stdout] test transform::tests::test_color_from_css_rgba ... ok [INFO] [stdout] test transform::tests::test_color_invalid ... ok [INFO] [stdout] test transform::tests::test_cache_key_excludes_onerror ... ok [INFO] [stdout] test transform::tests::test_color_from_hex_6 ... ok [INFO] [stdout] test transform::tests::test_color_presets ... ok [INFO] [stdout] test transform::tests::test_default_params ... ok [INFO] [stdout] test transform::tests::test_display_default_is_empty ... ok [INFO] [stdout] test transform::tests::test_color_to_hex_transparent ... ok [INFO] [stdout] test transform::tests::test_effective_height_with_dpr ... ok [INFO] [stdout] test transform::tests::test_effective_none ... ok [INFO] [stdout] test transform::tests::test_display_with_params ... ok [INFO] [stdout] test transform::tests::test_compression_parse ... ok [INFO] [stdout] test transform::tests::test_effective_height_no_dpr ... ok [INFO] [stdout] test transform::tests::test_fit_as_str ... ok [INFO] [stdout] test transform::tests::test_effective_width_clamped ... ok [INFO] [stdout] test transform::tests::test_effective_width_no_dpr ... ok [INFO] [stdout] test transform::tests::test_effective_width_with_dpr ... ok [INFO] [stdout] test transform::tests::test_fit_display ... ok [INFO] [stdout] test transform::tests::test_format_as_str ... ok [INFO] [stdout] test transform::tests::test_fit_parse ... ok [INFO] [stdout] test transform::tests::test_format_animation ... ok [INFO] [stdout] test transform::tests::test_format_display ... ok [INFO] [stdout] test transform::tests::test_format_extension ... ok [INFO] [stdout] test transform::tests::test_format_mime ... ok [INFO] [stdout] test transform::tests::test_format_parse ... ok [INFO] [stdout] test transform::tests::test_format_transparency ... ok [INFO] [stdout] test transform::tests::test_gravity_as_str ... ok [INFO] [stdout] test transform::tests::test_gravity_display ... ok [INFO] [stdout] test transform::tests::test_gravity_parse_named ... ok [INFO] [stdout] test transform::tests::test_gravity_focal_point_out_of_range ... ok [INFO] [stdout] test transform::tests::test_gravity_focal_point_parse ... ok [INFO] [stdout] test transform::tests::test_identity ... ok [INFO] [stdout] test transform::tests::test_metadata_parse ... ok [INFO] [stdout] test transform::tests::test_rotation_from_degrees ... ok [INFO] [stdout] test transform::tests::test_rotation_from_str ... ok [INFO] [stdout] test transform::tests::test_padding_uniform ... ok [INFO] [stdout] test transform::tests::test_trim_uniform ... ok [INFO] [stdout] test transform::tests::test_rotation_to_degrees ... ok [INFO] [stdout] test transform::tests::test_rotation_display ... ok [INFO] [stdout] test transform::tests::test_validate_blur_ok ... ok [INFO] [stdout] test transform::tests::test_validate_blur_too_high ... ok [INFO] [stdout] test transform::tests::test_validate_brightness_ok ... ok [INFO] [stdout] test transform::tests::test_validate_brightness_too_high ... ok [INFO] [stdout] test transform::tests::test_validate_contrast_too_high ... ok [INFO] [stdout] test transform::tests::test_validate_brightness_too_low ... ok [INFO] [stdout] test transform::tests::test_validate_dpr_high ... ok [INFO] [stdout] test transform::tests::test_validate_contrast_ok ... ok [INFO] [stdout] test transform::tests::test_validate_exceed_dimension ... ok [INFO] [stdout] test transform::tests::test_validate_focal_point_ok ... ok [INFO] [stdout] test transform::tests::test_validate_focal_point_out_of_range ... ok [INFO] [stdout] test transform::tests::test_validate_gamma_ok ... ok [INFO] [stdout] test transform::tests::test_validate_gamma_too_high ... ok [INFO] [stdout] test transform::tests::test_validate_quality_100 ... ok [INFO] [stdout] test transform::tests::test_validate_dpr_low ... ok [INFO] [stdout] test transform::tests::test_validate_dpr_ok ... ok [INFO] [stdout] test transform::tests::test_validate_quality_zero ... ok [INFO] [stdout] test transform::tests::test_validate_quality_101 ... ok [INFO] [stdout] test transform::tests::test_validate_sharpen_negative ... ok [INFO] [stdout] test transform::tests::test_validate_sharpen_ok ... ok [INFO] [stdout] test transform::tests::test_validate_sharpen_too_high ... ok [INFO] [stdout] test watermark::tests::test_blend_pixel_full_alpha ... ok [INFO] [stdout] test transform::tests::test_validate_valid ... ok [INFO] [stdout] test watermark::tests::test_blend_pixel_out_of_bounds ... ok [INFO] [stdout] test watermark::tests::test_config_defaults ... ok [INFO] [stdout] test watermark::tests::test_glyph_unknown_char_is_box ... ok [INFO] [stdout] test watermark::tests::test_glyph_space_is_blank ... ok [INFO] [stdout] test watermark::tests::test_glyph_lowercase_maps_to_uppercase ... ok [INFO] [stdout] test watermark::tests::test_image_watermark_empty_stamp_noop ... ok [INFO] [stdout] test watermark::tests::test_image_watermark_half_opacity ... ok [INFO] [stdout] test transform::tests::test_validate_zero_width ... ok [INFO] [stdout] test watermark::tests::test_image_watermark_modifies_pixels ... ok [INFO] [stdout] test transform::tests::test_color_to_hex_opaque ... ok [INFO] [stdout] test watermark::tests::test_position_default ... ok [INFO] [stdout] test watermark::tests::test_position_origin_bottom_right ... ok [INFO] [stdout] test watermark::tests::test_position_origin_center ... ok [INFO] [stdout] test watermark::tests::test_position_origin_top_left ... ok [INFO] [stdout] test watermark::tests::test_position_parse ... ok [INFO] [stdout] test watermark::tests::test_image_watermark_scaled ... ok [INFO] [stdout] test watermark::tests::test_text_watermark_empty_string_noop ... ok [INFO] [stdout] test watermark::tests::test_text_watermark_rgb_buffer ... ok [INFO] [stdout] test watermark::tests::test_text_watermark_full_opacity ... ok [INFO] [stdout] test watermark::tests::test_text_watermark_modifies_pixels ... ok [INFO] [stdout] test watermark::tests::test_text_watermark_small_buffer ... ok [INFO] [stdout] test responsive::tests::test_url_format ... ok [INFO] [stdout] test responsive::tests::test_srcset_contains_all_widths ... ok [INFO] [stdout] test security::tests::test_cgnat_boundaries ... ok [INFO] [stdout] test quality::tests::test_analyse_complexity_checkerboard ... ok [INFO] [stdout] test quality::tests::test_auto_tune_quality_modifies_default ... ok [INFO] [stdout] test watermark::tests::test_text_watermark_zero_opacity_noop ... ok [INFO] [stdout] test quality::tests::test_ssim_identical ... ok [INFO] [stdout] test transform::tests::test_color_from_hex_8 ... ok [INFO] [stdout] test processor::tests::tests::test_lanczos_resize_downscale ... ok [INFO] [stdout] test quality::tests::test_ssim_similar ... ok [INFO] [stdout] test watermark::tests::test_text_watermark_positions ... ok [INFO] [stdout] test processor::tests::tests::test_large_resize_from_single_pixel ... ok [INFO] [stderr] Doc-tests oximedia_image_transform [INFO] [stdout] [INFO] [stdout] test result: ok. 501 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 47 tests [INFO] [stdout] test src/blur_region.rs - blur_region::BlurRegion (line 94) ... ok [INFO] [stdout] test src/blur_region.rs - blur_region::BoxBlurRegion (line 120) ... ok [INFO] [stdout] test src/parser.rs - parser::parse_cdn_url (line 159) ... ok [INFO] [stdout] test src/blur_region.rs - blur_region (line 16) ... ok [INFO] [stdout] test src/parser.rs - parser::TransformRequest (line 135) ... ok [INFO] [stdout] test src/parser.rs - parser::TransformPreset (line 42) ... ok [INFO] [stdout] test src/parser.rs - parser::generate_cache_key (line 274) ... ok [INFO] [stdout] test src/negotiation.rs - negotiation::ClientHints::from_headers (line 326) ... ok [INFO] [stdout] test src/blur_region.rs - blur_region::apply_blur_regions (line 258) ... ok [INFO] [stdout] test src/parser.rs - parser (line 17) ... ok [INFO] [stdout] test src/negotiation.rs - negotiation::generate_cache_control (line 219) ... ok [INFO] [stdout] test src/lib.rs - (line 19) ... ok [INFO] [stdout] test src/parser.rs - parser::parse_preset (line 111) ... ok [INFO] [stdout] test src/negotiation.rs - negotiation::parse_accept_header (line 28) ... ok [INFO] [stdout] test src/image_analysis.rs - image_analysis (line 25) ... ok [INFO] [stdout] test src/responsive.rs - responsive::Breakpoint (line 67) ... ok [INFO] [stdout] test src/image_analysis.rs - image_analysis::RgbColor (line 94) ... ok [INFO] [stdout] test src/responsive.rs - responsive (line 11) ... ok [INFO] [stdout] test src/metrics.rs - metrics (line 16) ... ok [INFO] [stdout] test src/responsive.rs - responsive::ResponsiveImageSet::render_srcset (line 148) ... ok [INFO] [stdout] test src/parser.rs - parser::parse_transform_string (line 236) ... ok [INFO] [stdout] test src/transform.rs - transform::Color (line 514) ... ok [INFO] [stdout] test src/transform.rs - transform (line 15) ... ok [INFO] [stdout] test src/transform.rs - transform::FitMode (line 125) ... ok [INFO] [stdout] test src/parser.rs - parser::parse_query_params (line 199) ... ok [INFO] [stdout] test src/transform.rs - transform::FitMode::from_str_loose (line 161) ... ok [INFO] [stdout] test src/transform.rs - transform::MetadataMode (line 451) ... ok [INFO] [stdout] test src/transform.rs - transform::Gravity (line 213) ... ok [INFO] [stdout] test src/transform.rs - transform::Gravity::from_str_loose (line 256) ... ok [INFO] [stdout] test src/transform.rs - transform::Color::from_css (line 585) ... ok [INFO] [stdout] test src/transform.rs - transform::OutputFormat (line 320) ... ok [INFO] [stdout] test src/transform.rs - transform::MetadataMode::from_str_loose (line 475) ... ok [INFO] [stdout] test src/transform.rs - transform::OutputFormat::from_str_loose (line 399) ... ok [INFO] [stdout] test src/transform.rs - transform::OutputFormat::mime_type (line 357) ... ok [INFO] [stdout] test src/transform_types.rs - transform_types::Compression (line 219) ... ok [INFO] [stdout] test src/transform_types.rs - transform_types::OutputOptions (line 275) ... ok [INFO] [stdout] test src/transform.rs - transform::TransformParams::validate (line 900) ... ok [INFO] [stdout] test src/transform_types.rs - transform_types::Trim (line 98) ... ok [INFO] [stdout] test src/transform.rs - transform::TransformParams::is_progressive_output (line 859) ... ok [INFO] [stdout] test src/transform_types.rs - transform_types::Padding (line 62) ... ok [INFO] [stdout] test src/responsive.rs - responsive::ResponsiveImageBuilder (line 286) ... ok [INFO] [stdout] test src/transform.rs - transform::TransformParams (line 722) ... ok [INFO] [stdout] test src/transform.rs - transform::TransformParams::effective_width (line 815) ... ok [INFO] [stdout] test src/transform_types.rs - transform_types::Border (line 17) ... ok [INFO] [stdout] test src/transform.rs - transform::TransformParams::cache_key (line 988) ... ok [INFO] [stdout] test src/transform_types.rs - transform_types::Rotation (line 134) ... ok [INFO] [stdout] test src/transform.rs - transform::TransformParams::effective_height (line 832) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 47 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.44s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "d45697fc3c06cf35fbeee2561bbe959e291d7db963aa71561aa115641ace2ea2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d45697fc3c06cf35fbeee2561bbe959e291d7db963aa71561aa115641ace2ea2", kill_on_drop: false }` [INFO] [stdout] d45697fc3c06cf35fbeee2561bbe959e291d7db963aa71561aa115641ace2ea2