[INFO] fetching crate uv-sbom 1.2.0...
[INFO] testing uv-sbom-1.2.0 against beta-2026-03-05 for beta-1.95-1
[INFO] extracting crate uv-sbom 1.2.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate uv-sbom 1.2.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate uv-sbom 1.2.0
[INFO] tweaked toml for crates.io crate uv-sbom 1.2.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate uv-sbom 1.2.0 on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate uv-sbom 1.2.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 59ccb115b4127372e1e4f1d0124794e01785676acfe4d7356411fcd6864a0b00
[INFO] running `Command { std: "docker" "start" "-a" "59ccb115b4127372e1e4f1d0124794e01785676acfe4d7356411fcd6864a0b00", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "59ccb115b4127372e1e4f1d0124794e01785676acfe4d7356411fcd6864a0b00", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "59ccb115b4127372e1e4f1d0124794e01785676acfe4d7356411fcd6864a0b00", kill_on_drop: false }`
[INFO] [stdout] 59ccb115b4127372e1e4f1d0124794e01785676acfe4d7356411fcd6864a0b00
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f9b9e4f9df926a9a55b8c882fab663c34052b0ea4fdd317b739e150a669a361d
[INFO] running `Command { std: "docker" "start" "-a" "f9b9e4f9df926a9a55b8c882fab663c34052b0ea4fdd317b739e150a669a361d", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.104
[INFO] [stderr]    Compiling find-msvc-tools v0.1.6
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling aws-lc-rs v1.15.3
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling rustls v0.23.35
[INFO] [stderr]    Compiling zmij v1.0.6
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling portable-atomic v1.13.0
[INFO] [stderr]    Compiling openssl-probe v0.2.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling toml_parser v1.0.9+spec-1.1.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling console v0.16.2
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling unit-prefix v0.5.2
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling cc v1.2.51
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling toml v1.0.3+spec-1.1.0
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling syn v2.0.112
[INFO] [stderr]    Compiling indicatif v0.18.4
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling aws-lc-sys v0.36.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling serde_yaml_ng v0.10.0
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling tokio-util v0.7.17
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.8
[INFO] [stderr]    Compiling hyper-util v0.1.19
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling uv-sbom v1.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 13s
[INFO] running `Command { std: "docker" "inspect" "f9b9e4f9df926a9a55b8c882fab663c34052b0ea4fdd317b739e150a669a361d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f9b9e4f9df926a9a55b8c882fab663c34052b0ea4fdd317b739e150a669a361d", kill_on_drop: false }`
[INFO] [stdout] f9b9e4f9df926a9a55b8c882fab663c34052b0ea4fdd317b739e150a669a361d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ab3ece68948fff9d87ff4f0f13f8b75fbe8bc2b8db551878296ecb8eb2ea31ef
[INFO] running `Command { std: "docker" "start" "-a" "ab3ece68948fff9d87ff4f0f13f8b75fbe8bc2b8db551878296ecb8eb2ea31ef", kill_on_drop: false }`
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling predicates-core v1.0.9
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling assert_cmd v2.1.2
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling predicates-tree v1.0.12
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling uv-sbom v1.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 24.31s
[INFO] running `Command { std: "docker" "inspect" "ab3ece68948fff9d87ff4f0f13f8b75fbe8bc2b8db551878296ecb8eb2ea31ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ab3ece68948fff9d87ff4f0f13f8b75fbe8bc2b8db551878296ecb8eb2ea31ef", kill_on_drop: false }`
[INFO] [stdout] ab3ece68948fff9d87ff4f0f13f8b75fbe8bc2b8db551878296ecb8eb2ea31ef
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 0dc97d6bd195c1958c05b0a52bc15f9e46ca81883aec43e326d421ad64289259
[INFO] running `Command { std: "docker" "start" "-a" "0dc97d6bd195c1958c05b0a52bc15f9e46ca81883aec43e326d421ad64289259", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/uv_sbom-9dfb48a7396e6197)
[INFO] [stdout] 
[INFO] [stdout] running 389 tests
[INFO] [stdout] test output
[INFO] [stdout] test adapters::outbound::console::progress_reporter::tests::test_progress_reporter_default ... ok
[INFO] [stdout] test adapters::outbound::console::progress_reporter::tests::test_progress_reporter_creation ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_writer::tests::test_stdout_presenter_success ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_basic ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_bom_ref_field ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_dependencies ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_license_spdx_id ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_metadata_component ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_license_fallback_to_name ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_group_field ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_writer::tests::test_file_writer_parent_directory_not_found ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_hashes ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_resolution_guide_multiple_introduced_by ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_reader::tests::test_read_lockfile_not_found ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_without_hashes_omits_field ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_reader::tests::test_read_project_name_invalid_toml ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_reader::tests::test_read_project_name_missing_name_field ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_vulnerabilities ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_count_unique_packages ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_reader::tests::test_read_project_name_file_not_found ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_reader::tests::test_read_lockfile_success ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_escape_markdown_table_cell ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_output_section_ordering ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_reader::tests::test_read_project_name_success ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_vulnerability_no_resolution_guide ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_without_metadata_component ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_basic ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_resolution_guide_properties ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_basic_contains_pypi_links ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_package_name_with_verified_absent ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_writer::tests::test_file_writer_success ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_vulnerability_section_ordering ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_package_name_with_verified_present ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_vulnerability_with_verified_packages ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_with_dependencies ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_with_dependencies_contains_pypi_links ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_with_empty_verified_set_no_links ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_with_informational_vulnerabilities ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_with_vulnerabilities ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_without_verified_packages_all_get_links ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_normalize_for_pypi_underscore ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_normalize_for_pypi_already_normalized ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_normalize_for_pypi_uppercase ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_package_to_pypi_link_simple ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_package_to_pypi_link_with_underscore ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_actionable_vulnerabilities ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_actionable_vulnerabilities_multiple_packages ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_informational_vulnerabilities ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_vulnerability_summary_singular ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_resolution_guide_with_entries ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_resolution_guide_omitted_when_none ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_vulnerability_id_to_link_pysec ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_resolution_guide_omitted_when_empty ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_vulnerability_id_to_link_cve ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_vulnerability_id_to_link_ghsa ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_vulnerability_summary ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_vulnerability_id_to_link_rustsec ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_osv_batch_query_serialize ... ok
[INFO] [stdout] test adapters::outbound::network::caching_pypi_client::tests::test_caching_repository_returns_cached_value ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_vulnerability_table_contains_pypi_links ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_resolution_guide_ghsa_link ... ok
[INFO] [stdout] test adapters::outbound::network::caching_pypi_client::tests::test_caching_repository_different_versions_cached_separately ... ok
[INFO] [stdout] test adapters::outbound::network::caching_pypi_client::tests::test_cache_key_equality ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_package_name_with_none_verified ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_with_verified_packages_only_verified_get_links ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_package_to_pypi_link_with_uppercase ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_resolution_guide_multiple_introduced_by ... ok
[INFO] [stdout] test adapters::outbound::network::caching_pypi_client::tests::test_caching_repository_different_packages_cached_separately ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_osv_result_deserialize_empty ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_osv_result_deserialize_with_vulns ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_cvss_score_low ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_cvss_score_medium ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_cvss_score_none ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_osv_vulnerability_with_database_specific ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_severity_string ... ok
[INFO] [stdout] test adapters::outbound::network::pypi_client::tests::test_pypi_url_deserialization_empty_digests ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_osv_vulnerability_without_database_specific ... ok
[INFO] [stdout] test adapters::outbound::network::pypi_client::tests::test_pypi_url_deserialization_with_digests ... ok
[INFO] [stdout] test adapters::outbound::network::pypi_client::tests::test_pypi_url_deserialization_without_urls ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_cvss_score_critical ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_cvss_score_invalid ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_cvss_score_high ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_clone ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_equality ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_empty ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_invalid ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_json ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_json_case_insensitive ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_markdown ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_markdown_case_insensitive ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_md ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_add_exclude_pattern_accumulates ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_builder_default_trait ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_builder_with_all_options ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_builder_with_only_project_path ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_builder_without_project_path_fails ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_cvss_threshold_opt_with_none ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_cvss_threshold_opt_with_some ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_exclude_patterns_replaces_previous ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_project_path_accepts_pathbuf ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_severity_threshold_opt_with_some ... ok
[INFO] [stdout] test application::dto::sbom_response::tests::test_builder_default ... ok
[INFO] [stdout] test application::dto::sbom_response::tests::test_builder_enriched_packages_bulk ... ok
[INFO] [stdout] test application::dto::sbom_response::tests::test_builder_fails_without_metadata ... ok
[INFO] [stdout] test application::dto::sbom_response::tests::test_builder_with_metadata_only ... ok
[INFO] [stdout] test application::dto::sbom_response::tests::test_builder_with_enriched_packages ... ok
[INFO] [stdout] test application::dto::sbom_response::tests::test_builder_with_vulnerability_flags ... ok
[INFO] [stdout] test application::factories::formatter_factory::tests::test_create_json_ignores_verified_packages ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_project_path_accepts_string ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_severity_threshold_opt_with_none ... ok
[INFO] [stdout] test application::factories::formatter_factory::tests::test_create_json_formatter ... ok
[INFO] [stdout] test application::factories::formatter_factory::tests::test_create_markdown_formatter ... ok
[INFO] [stdout] test application::factories::formatter_factory::tests::test_create_with_verified_packages ... ok
[INFO] [stdout] test application::factories::presenter_factory::tests::test_create_file_presenter ... ok
[INFO] [stdout] test application::factories::formatter_factory::tests::test_progress_message_json ... ok
[INFO] [stdout] test application::factories::presenter_factory::tests::test_presenter_type_equality ... ok
[INFO] [stdout] test application::factories::formatter_factory::tests::test_progress_message_markdown ... ok
[INFO] [stdout] test application::factories::presenter_factory::tests::test_create_stdout_presenter ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_is_direct_dependency_with_graph ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_is_direct_dependency_without_graph ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_with_license ... ok
[INFO] [stdout] test application::factories::presenter_factory::tests::test_presenter_type_clone ... ok
[INFO] [stdout] test application::read_models::resolution_guide_view::tests::test_resolution_entry_view_creation ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_generates_purl ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_display ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_dependencies_builds_transitive_map ... ok
[INFO] [stdout] test application::read_models::resolution_guide_view::tests::test_introduced_by_view_creation ... ok
[INFO] [stdout] test application::read_models::resolution_guide_view::tests::test_resolution_entry_view_without_fixed_version ... ok
[INFO] [stdout] test application::read_models::resolution_guide_view::tests::test_resolution_guide_view_default ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_dependencies_maps_direct_to_bom_refs ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_full_model_resolution_guide_none_without_graph ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_full_model_resolution_guide_none_when_no_transitive_vulns ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_generates_bom_ref ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_full_model_resolution_guide_none_without_vulns ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_full_model_resolution_guide_when_both_graph_and_vulns ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_metadata_with_project_component ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_metadata_without_project_component ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_dependencies_empty_graph ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_resolution_guide_converts_entries ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_resolution_guide_multiple_introduced_by ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerabilities_empty_result ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerabilities_multiple_vulns_per_package ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_dependencies_filters_unknown_packages ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerabilities_summary_statistics ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerabilities_actionable_and_informational ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerability_view_basic ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerability_view_component_not_found ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerability_view_with_fixed_version ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerability_view_without_cvss ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_map_severity_all_levels ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_resolution_guide_without_fixed_version ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_with_project_includes_metadata_component ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_with_empty_packages ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_full_read_model_with_vulnerabilities ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_metadata ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_without_license ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_without_sha256_hash ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_with_sha256_hash ... ok
[INFO] [stdout] test application::read_models::vulnerability_view::tests::test_severity_view_as_str ... ok
[INFO] [stdout] test application::read_models::vulnerability_view::tests::test_severity_view_default ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_summarize_empty ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_analyze_dependencies_enabled ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_summarize_multiple_packages ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_summarize_single_package_single_vuln ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_summarize_single_package_multiple_vulns ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_check_with_progress_no_vulnerabilities ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_check_with_progress_multiple_packages ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_check_with_progress_with_vulnerabilities ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_apply_exclusion_filters_empty_patterns ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_build_response ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_analyze_dependencies_disabled ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_build_response_with_threshold_exceeded ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_build_response_with_threshold_not_exceeded ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_build_threshold_config_cvss ... ok
[INFO] [stdout] test application::read_models::vulnerability_view::tests::test_severity_view_is_actionable ... ok
[INFO] [stdout] test application::read_models::vulnerability_view::tests::test_severity_view_ordering ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_build_threshold_config_severity ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_build_threshold_config_none ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_apply_exclusion_filters_with_patterns ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_check_vulnerabilities_if_requested_disabled ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_apply_exclusion_filters_all_excluded_error ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_with_cve_check_in_dry_run_mode ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_check_vulnerabilities_if_requested_enabled ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_with_cve_check_but_no_repository ... ok
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test config::tests::test_discover_config_not_found ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_full_read_model ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_with_cve_check_disabled ... ok
[INFO] [stdout] test config::tests::test_generate_config_template_creates_file ... ok
[INFO] [stdout] test config::tests::test_generate_config_template_fails_if_exists ... ok
[INFO] [stdout] test config::tests::test_load_config_missing_file ... ok
[INFO] [stdout] test config::tests::test_load_config_parse_error ... ok
[INFO] [stdout] test config::tests::test_discover_config_found ... ok
[INFO] [stdout] test config::tests::test_load_valid_config ... ok
[INFO] [stdout] test config::tests::test_template_is_valid_yaml_when_uncommented ... ok
[INFO] [stdout] test sbom_generation::domain::dependency_graph::tests::test_dependency_graph_empty ... ok
[INFO] [stdout] test sbom_generation::domain::dependency_graph::tests::test_dependency_graph_new ... ok
[INFO] [stdout] test sbom_generation::domain::license_info::tests::test_license_info_empty ... ok
[INFO] [stdout] test sbom_generation::domain::license_info::tests::test_license_info_new ... ok
[INFO] [stdout] test sbom_generation::domain::license_info::tests::test_license_info_no_license ... ok
[INFO] [stdout] test sbom_generation::domain::license_info::tests::test_license_info_without_sha256_hash ... ok
[INFO] [stdout] test config::tests::test_unknown_fields_warning ... ok
[INFO] [stdout] test config::tests::test_empty_cve_id_validation_error ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_empty_pattern_rejected ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_exact_match_case_insensitive ... ok
[INFO] [stdout] test config::tests::test_whitespace_only_cve_id_validation_error ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_policy_skips_invalid_patterns ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_prefix_match ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_violation_reason_as_str ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_contains_match ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_wildcard_only_rejected ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_equality ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_name_display ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_name_new_empty ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_name_new_valid ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_new_empty_name ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_new_empty_version ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_new_valid ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_version_display ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_version_new_valid ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_version_new_empty ... ok
[INFO] [stdout] test sbom_generation::domain::resolution_guide::tests::test_introduced_by_new ... ok
[INFO] [stdout] test sbom_generation::domain::resolution_guide::tests::test_resolution_entry_empty_introduced_by ... ok
[INFO] [stdout] test sbom_generation::domain::resolution_guide::tests::test_resolution_entry_new ... ok
[INFO] [stdout] test sbom_generation::domain::resolution_guide::tests::test_resolution_entry_without_fixed_version ... ok
[INFO] [stdout] test sbom_generation::domain::sbom_metadata::tests::test_sbom_metadata_new ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_case_insensitive_matching ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_allow_only ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_deny_only ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_empty_policy_no_violations ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_deny_overrides_allow ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_multiple_violations ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_unknown_license_allow ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_unknown_license_deny ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_unknown_license_warn ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_wildcard_deny_pattern ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_direct_dependency_vulnerability_is_skipped ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_empty_dependency_graph_returns_empty ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_empty_vulnerabilities_returns_empty ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_multiple_vulnerabilities_in_same_package ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_multiple_direct_deps_introduce_same_vulnerable_package ... ok
[INFO] [stdout] test sbom_generation::domain::license_info::tests::test_license_info_with_sha256_hash ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_package_not_found_in_transitive_list_is_omitted ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_transitive_vulnerability_produces_entry ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_multiple_wildcards ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_unknown_version_when_package_not_in_enriched_list ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_actionable_count_single_package ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_actionable_package_count ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_actionable_package_count_empty ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_empty_input ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_has_actionable_vulnerabilities_false ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_has_actionable_vulnerabilities_true ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_has_informational_vulnerabilities_false ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_has_informational_vulnerabilities_true ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_cve_across_multiple_packages ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_all_cves_in_package_removes_package ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_cve_case_sensitive ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_cve_does_not_trigger_threshold ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_cve_no_match ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_cve_with_reason ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_cves_empty_list ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_actionable_count_empty ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_actionable_count_multiple_packages ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_informational_count_multiple_packages ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_informational_count_single_package ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_with_description ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_informational_package_count ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_no_vulnerabilities_above_threshold ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_single_cve ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_multiple_cves ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_handles_fixed_version ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_includes_none_severity ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_multiple_packages ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_orders_critical_first ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_preserves_package_info ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_threshold_cvss ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_threshold_cvss_boundary ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_threshold_cvss_na_excluded ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_threshold_none_all_above ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_threshold_severity_critical_only ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_semantic_methods_with_mixed_result ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_empty_input ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_handles_cvss_display ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_cvss_score_invalid_nan ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_cvss_score_new_valid ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_cvss_score_invalid_negative ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_cvss_score_invalid_too_high ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_severity_emoji ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_package_vulnerabilities_new ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_severity_from_cvss_score ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_vulnerability_empty_id ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_vulnerability_new_valid ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_vulnerability_without_optional_fields ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_create_license_info ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_create_license_info_no_license ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_extract_license_from_classifiers ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_extract_license_from_classifiers_empty ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_extract_license_from_classifiers_not_found ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_complex_priority ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_falls_back_to_classifiers ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_falls_back_to_expression ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_ignores_empty_string ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_ignores_unknown ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_no_license_found ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_prefers_license_field ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_apache_license_variants ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_bsd_license_variants ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_case_insensitive_matching ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_gpl_license_variants ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_other_licenses ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_mit_license_variants ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_unknown_license_returns_none ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_whitespace_trimming ... ok
[INFO] [stdout] test sbom_generation::services::dependency_analyzer::tests::test_analyze_empty_project ... ok
[INFO] [stdout] test sbom_generation::services::dependency_analyzer::tests::test_analyze_no_transitive_dependencies ... ok
[INFO] [stdout] test sbom_generation::services::dependency_analyzer::tests::test_analyze_multiple_direct_dependencies ... ok
[INFO] [stdout] test sbom_generation::services::dependency_analyzer::tests::test_analyze_simple_dependency_tree ... ok
[INFO] [stdout] test sbom_generation::services::dependency_analyzer::tests::test_collect_transitive_deps_cycle_detection ... ok
[INFO] [stdout] test sbom_generation::services::dependency_analyzer::tests::test_collect_transitive_deps_excludes_direct_deps ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_case_sensitive_matching ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_contains_wildcard ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_empty_pattern_list ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_exact_match ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_filter_dependency_map ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_filter_packages ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_filter_packages_multiple_patterns ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_filter_packages_with_wildcard ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_multiple_wildcards ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_count_boundary_63_patterns ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_count_boundary_64_patterns ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_count_boundary_65_patterns ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_length_boundary_254_chars ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_length_boundary_255_chars ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_length_boundary_256_chars ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_validation_empty ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_validation_invalid_chars ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_validation_only_wildcards ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_validation_too_long ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_validation_too_many_patterns ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_with_brackets ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_with_dots ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_prefix_wildcard ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_suffix_wildcard ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_unmatched_patterns_all_matched ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_unmatched_patterns_none_matched ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_unmatched_patterns_partial_match ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_unmatched_patterns_wildcard ... ok
[INFO] [stdout] test sbom_generation::services::sbom_generator::tests::test_generate_default_metadata ... ok
[INFO] [stdout] test sbom_generation::services::sbom_generator::tests::test_generate_metadata ... ok
[INFO] [stdout] test sbom_generation::services::sbom_generator::tests::test_generate_metadata_unique_serial_numbers ... ok
[INFO] [stdout] test sbom_generation::services::sbom_generator::tests::test_generate_metadata_uuid_format ... ok
[INFO] [stdout] test shared::error::tests::test_exit_code_clone ... ok
[INFO] [stdout] test shared::error::tests::test_exit_code_display ... ok
[INFO] [stdout] test shared::error::tests::test_exit_code_equality ... ok
[INFO] [stdout] test shared::error::tests::test_exit_code_values ... ok
[INFO] [stdout] test shared::error::tests::test_file_read_error_display ... ok
[INFO] [stdout] test shared::error::tests::test_file_write_error_display ... ok
[INFO] [stdout] test shared::error::tests::test_invalid_project_path_display ... ok
[INFO] [stdout] test shared::error::tests::test_lockfile_not_found_display ... ok
[INFO] [stdout] test shared::error::tests::test_lockfile_parse_error_display ... ok
[INFO] [stdout] test shared::error::tests::test_security_error_display ... ok
[INFO] [stdout] test shared::security::tests::test_max_file_size_constant ... ok
[INFO] [stdout] test shared::security::tests::test_read_file_with_security_directory ... ok
[INFO] [stdout] test shared::security::tests::test_read_file_with_security_file_not_found ... ok
[INFO] [stdout] test shared::security::tests::test_read_file_with_security_success ... ok
[INFO] [stdout] test shared::security::tests::test_validate_and_get_metadata_directory ... ok
[INFO] [stdout] test shared::security::tests::test_validate_and_get_metadata_file_too_large ... ok
[INFO] [stdout] test shared::security::tests::test_validate_and_get_metadata_nonexistent ... ok
[INFO] [stdout] test shared::security::tests::test_validate_and_get_metadata_success ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_severity_ordering ... ok
[INFO] [stdout] test shared::security::tests::test_validate_directory_path_nonexistent ... ok
[INFO] [stdout] test shared::security::tests::test_validate_directory_path_success ... ok
[INFO] [stdout] test shared::security::tests::test_validate_not_symlink_nonexistent ... ok
[INFO] [stdout] test shared::security::tests::test_validate_not_symlink_regular_file ... ok
[INFO] [stdout] test sbom_generation::services::sbom_generator::tests::test_generate_metadata_timestamp_format ... ok
[INFO] [stdout] test shared::security::tests::test_validate_directory_path_is_file ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_fetch_license_info ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_without_dependencies ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_multiple_packages ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_suffix_match ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_threshold_severity_high ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_exclude_non_root_preserves_dependency_classification ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_without_root_excluded_baseline ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_with_cve_check_enabled ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_with_dependencies ... ok
[INFO] [stdout] test adapters::outbound::network::pypi_client::tests::test_verify_packages_empty_list ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_osv_client_creation ... ok
[INFO] [stdout] test adapters::outbound::network::pypi_client::tests::test_pypi_client_creation ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_with_root_excluded_preserves_dependency_classification ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 389 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/uv_sbom-51cb666e314a41c9)
[INFO] [stdout] 
[INFO] [stdout] running 406 tests
[INFO] [stdout] test output
[INFO] [stdout] test adapters::outbound::console::progress_reporter::tests::test_progress_reporter_creation ... ok
[INFO] [stdout] test adapters::outbound::console::progress_reporter::tests::test_progress_reporter_default ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_reader::tests::test_read_lockfile_not_found ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_reader::tests::test_read_project_name_file_not_found ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_reader::tests::test_read_lockfile_success ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_reader::tests::test_read_project_name_missing_name_field ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_writer::tests::test_file_writer_parent_directory_not_found ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_reader::tests::test_read_project_name_success ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_writer::tests::test_stdout_presenter_success ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_bom_ref_field ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_basic ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_dependencies ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_license_spdx_id ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_count_unique_packages ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_without_hashes_omits_field ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_vulnerabilities ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_without_metadata_component ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_basic ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_writer::tests::test_file_writer_success ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_vulnerability_no_resolution_guide ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_output_section_ordering ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_metadata_component ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_resolution_guide_properties ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_resolution_guide_multiple_introduced_by ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_basic_contains_pypi_links ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_package_name_with_none_verified ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_group_field ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_license_fallback_to_name ... ok
[INFO] [stdout] test adapters::outbound::formatters::cyclonedx_formatter::tests::test_format_with_hashes ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_normalize_for_pypi_underscore ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_without_verified_packages_all_get_links ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_normalize_for_pypi_already_normalized ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_vulnerability_section_ordering ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_package_name_with_verified_present ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_vulnerability_with_verified_packages ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_with_informational_vulnerabilities ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_with_verified_packages_only_verified_get_links ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_escape_markdown_table_cell ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_normalize_for_pypi_uppercase ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_package_to_pypi_link_with_underscore ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_package_to_pypi_link_simple ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_package_to_pypi_link_with_uppercase ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_actionable_vulnerabilities_multiple_packages ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_actionable_vulnerabilities ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_informational_vulnerabilities ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_vulnerability_summary ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_resolution_guide_with_entries ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_with_dependencies ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_with_vulnerabilities ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_with_empty_verified_set_no_links ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_vulnerability_summary_singular ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_resolution_guide_ghsa_link ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_resolution_guide_omitted_when_empty ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_vulnerability_id_to_link_ghsa ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_resolution_guide_omitted_when_none ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_vulnerability_id_to_link_pysec ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_vulnerability_id_to_link_rustsec ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_vulnerability_table_contains_pypi_links ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_osv_batch_query_serialize ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_osv_result_deserialize_empty ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_osv_vulnerability_without_database_specific ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_osv_vulnerability_with_database_specific ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_osv_result_deserialize_with_vulns ... ok
[INFO] [stdout] test adapters::outbound::network::caching_pypi_client::tests::test_caching_repository_different_versions_cached_separately ... ok
[INFO] [stdout] test adapters::outbound::network::caching_pypi_client::tests::test_caching_repository_returns_cached_value ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_cvss_score_critical ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_cvss_score_medium ... ok
[INFO] [stdout] test adapters::outbound::network::caching_pypi_client::tests::test_cache_key_equality ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_cvss_score_low ... ok
[INFO] [stdout] test adapters::outbound::network::caching_pypi_client::tests::test_caching_repository_different_packages_cached_separately ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_cvss_score_none ... ok
[INFO] [stdout] test adapters::outbound::network::pypi_client::tests::test_pypi_url_deserialization_with_digests ... ok
[INFO] [stdout] test adapters::outbound::network::pypi_client::tests::test_pypi_url_deserialization_without_urls ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_clone ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_empty ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_equality ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_json ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_json_case_insensitive ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_vulnerability_id_to_link_cve ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_markdown ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_markdown_case_insensitive ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_md ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_add_exclude_pattern_accumulates ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_builder_default_trait ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_cvss_score_high ... ok
[INFO] [stdout] test adapters::outbound::network::pypi_client::tests::test_pypi_url_deserialization_empty_digests ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_cvss_score_invalid ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_from_str_invalid ... ok
[INFO] [stdout] test application::dto::output_format::tests::test_output_format_display ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_builder_with_all_options ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_builder_with_only_project_path ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_cvss_threshold_opt_with_none ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_exclude_patterns_replaces_previous ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_project_path_accepts_pathbuf ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_package_name_with_verified_absent ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_cvss_threshold_opt_with_some ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_builder_without_project_path_fails ... ok
[INFO] [stdout] test adapters::outbound::filesystem::file_reader::tests::test_read_project_name_invalid_toml ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_severity_threshold_opt_with_some ... ok
[INFO] [stdout] test application::dto::sbom_response::tests::test_builder_default ... ok
[INFO] [stdout] test application::dto::sbom_response::tests::test_builder_with_enriched_packages ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_severity_threshold_opt_with_none ... ok
[INFO] [stdout] test application::dto::sbom_response::tests::test_builder_with_vulnerability_flags ... ok
[INFO] [stdout] test application::dto::sbom_response::tests::test_builder_fails_without_metadata ... ok
[INFO] [stdout] test application::dto::sbom_response::tests::test_builder_with_metadata_only ... ok
[INFO] [stdout] test application::factories::formatter_factory::tests::test_create_json_formatter ... ok
[INFO] [stdout] test application::factories::formatter_factory::tests::test_create_json_ignores_verified_packages ... ok
[INFO] [stdout] test application::dto::sbom_response::tests::test_builder_enriched_packages_bulk ... ok
[INFO] [stdout] test application::factories::formatter_factory::tests::test_progress_message_json ... ok
[INFO] [stdout] test application::factories::formatter_factory::tests::test_create_with_verified_packages ... ok
[INFO] [stdout] test application::factories::formatter_factory::tests::test_create_markdown_formatter ... ok
[INFO] [stdout] test application::factories::presenter_factory::tests::test_presenter_type_equality ... ok
[INFO] [stdout] test application::factories::presenter_factory::tests::test_presenter_type_clone ... ok
[INFO] [stdout] test application::read_models::resolution_guide_view::tests::test_resolution_entry_view_without_fixed_version ... ok
[INFO] [stdout] test application::read_models::resolution_guide_view::tests::test_resolution_entry_view_creation ... ok
[INFO] [stdout] test application::read_models::resolution_guide_view::tests::test_introduced_by_view_creation ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_generates_bom_ref ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_generates_purl ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_is_direct_dependency_without_graph ... ok
[INFO] [stdout] test application::read_models::resolution_guide_view::tests::test_resolution_guide_view_default ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_with_sha256_hash ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_without_license ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_with_license ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_without_sha256_hash ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_dependencies_maps_direct_to_bom_refs ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_full_model_resolution_guide_none_when_no_transitive_vulns ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_full_model_resolution_guide_none_without_graph ... ok
[INFO] [stdout] test application::factories::formatter_factory::tests::test_progress_message_markdown ... ok
[INFO] [stdout] test application::factories::presenter_factory::tests::test_create_stdout_presenter ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_dependencies_filters_unknown_packages ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_dependencies_empty_graph ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_full_read_model ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_full_model_resolution_guide_when_both_graph_and_vulns ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_full_read_model_with_vulnerabilities ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_full_model_resolution_guide_none_without_vulns ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_dependencies_builds_transitive_map ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_with_description ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_metadata_without_project_component ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_format_with_dependencies_contains_pypi_links ... ok
[INFO] [stdout] test adapters::outbound::formatters::markdown_formatter::tests::test_render_resolution_guide_multiple_introduced_by ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_metadata_with_project_component ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_parse_severity_string ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_metadata ... ok
[INFO] [stdout] test application::dto::sbom_request::tests::test_project_path_accepts_string ... ok
[INFO] [stdout] test application::factories::presenter_factory::tests::test_create_file_presenter ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_components_is_direct_dependency_with_graph ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_resolution_guide_converts_entries ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_resolution_guide_multiple_introduced_by ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_with_project_includes_metadata_component ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_map_severity_all_levels ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_resolution_guide_without_fixed_version ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerabilities_actionable_and_informational ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerabilities_empty_result ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerabilities_multiple_vulns_per_package ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerability_view_basic ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerability_view_component_not_found ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerability_view_with_fixed_version ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_with_empty_packages ... ok
[INFO] [stdout] test application::read_models::vulnerability_view::tests::test_severity_view_default ... ok
[INFO] [stdout] test application::read_models::vulnerability_view::tests::test_severity_view_is_actionable ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerability_view_without_cvss ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_summarize_multiple_packages ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_summarize_empty ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_summarize_single_package_multiple_vulns ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_analyze_dependencies_disabled ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_analyze_dependencies_enabled ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_summarize_single_package_single_vuln ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_apply_exclusion_filters_all_excluded_error ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_check_with_progress_with_vulnerabilities ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_check_with_progress_multiple_packages ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_apply_exclusion_filters_empty_patterns ... ok
[INFO] [stdout] test application::read_models::vulnerability_view::tests::test_severity_view_as_str ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_apply_exclusion_filters_with_patterns ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_build_threshold_config_cvss ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_build_response ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_build_response_with_threshold_not_exceeded ... ok
[INFO] [stdout] test application::read_models::vulnerability_view::tests::test_severity_view_ordering ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_build_threshold_config_none ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_build_response_with_threshold_exceeded ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_build_threshold_config_severity ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_check_vulnerabilities_if_requested_disabled ... ok
[INFO] [stdout] test application::use_cases::check_vulnerabilities::tests::test_check_with_progress_no_vulnerabilities ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_check_vulnerabilities_if_requested_enabled ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_with_cve_check_in_dry_run_mode ... ok
[INFO] [stdout] test cli::tests::test_parse_cvss_threshold_valid ... ok
[INFO] [stdout] test application::read_models::sbom_read_model_builder::tests::test_build_vulnerabilities_summary_statistics ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_with_cve_check_but_no_repository ... ok
[INFO] [stdout] test cli::tests::test_parse_severity_threshold_case_insensitive ... ok
[INFO] [stdout] test cli::tests::test_parse_severity_threshold_invalid ... ok
[INFO] [stdout] test sbom_generation::domain::dependency_graph::tests::test_dependency_graph_new ... ok
[INFO] [stdout] test cli::tests::test_parse_cvss_threshold_invalid_format ... ok
[INFO] [stdout] test cli::tests::test_parse_cvss_threshold_invalid_range ... ok
[INFO] [stdout] test sbom_generation::domain::dependency_graph::tests::test_dependency_graph_empty ... ok
[INFO] [stdout] test sbom_generation::domain::license_info::tests::test_license_info_empty ... ok
[INFO] [stdout] test sbom_generation::domain::license_info::tests::test_license_info_without_sha256_hash ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_contains_match ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_empty_pattern_rejected ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_exact_match_case_insensitive ... ok
[INFO] [stdout] test cli::tests::test_parse_severity_threshold_valid ... ok
[INFO] [stdout] test sbom_generation::domain::license_info::tests::test_license_info_new ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_policy_skips_invalid_patterns ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_prefix_match ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_multiple_wildcards ... ok
[INFO] [stdout] test sbom_generation::domain::license_info::tests::test_license_info_no_license ... ok
[INFO] [stdout] test sbom_generation::domain::license_info::tests::test_license_info_with_sha256_hash ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_suffix_match ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_violation_reason_as_str ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_name_display ... ok
[INFO] [stdout] test sbom_generation::domain::license_policy::tests::test_wildcard_only_rejected ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_name_new_empty ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_equality ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_name_new_valid ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_new_empty_version ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_new_valid ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_package_new_empty_name ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_version_new_empty ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_version_display ... ok
[INFO] [stdout] test sbom_generation::domain::package::tests::test_version_new_valid ... ok
[INFO] [stdout] test sbom_generation::domain::resolution_guide::tests::test_introduced_by_new ... ok
[INFO] [stdout] test sbom_generation::domain::resolution_guide::tests::test_resolution_entry_empty_introduced_by ... ok
[INFO] [stdout] test sbom_generation::domain::resolution_guide::tests::test_resolution_entry_without_fixed_version ... ok
[INFO] [stdout] test sbom_generation::domain::resolution_guide::tests::test_resolution_entry_new ... ok
[INFO] [stdout] test sbom_generation::domain::sbom_metadata::tests::test_sbom_metadata_new ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_allow_only ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_deny_only ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_case_insensitive_matching ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_deny_overrides_allow ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_empty_policy_no_violations ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_unknown_license_deny ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_multiple_violations ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_unknown_license_allow ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_unknown_license_warn ... ok
[INFO] [stdout] test sbom_generation::domain::services::license_compliance_checker::tests::test_wildcard_deny_pattern ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_direct_dependency_vulnerability_is_skipped ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_empty_dependency_graph_returns_empty ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_empty_vulnerabilities_returns_empty ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_transitive_vulnerability_produces_entry ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_multiple_direct_deps_introduce_same_vulnerable_package ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_multiple_vulnerabilities_in_same_package ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_package_not_found_in_transitive_list_is_omitted ... ok
[INFO] [stdout] test sbom_generation::domain::services::resolution_analyzer::tests::test_unknown_version_when_package_not_in_enriched_list ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_actionable_count_empty ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_actionable_count_multiple_packages ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_actionable_count_single_package ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_actionable_package_count ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_actionable_package_count_empty ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_empty_input ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_has_actionable_vulnerabilities_false ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_has_actionable_vulnerabilities_true ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_has_informational_vulnerabilities_false ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_has_informational_vulnerabilities_true ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_cve_across_multiple_packages ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_all_cves_in_package_removes_package ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_cve_case_sensitive ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_cve_no_match ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_cve_does_not_trigger_threshold ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_cve_with_reason ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_cves_empty_list ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_multiple_cves ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_ignore_single_cve ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_informational_count_multiple_packages ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_informational_count_single_package ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_multiple_packages ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_no_vulnerabilities_above_threshold ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_semantic_methods_with_mixed_result ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_informational_package_count ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_empty_input ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_includes_none_severity ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_handles_cvss_display ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_handles_fixed_version ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_multiple_packages ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_orders_critical_first ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_threshold_cvss ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_threshold_none_all_above ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_threshold_cvss_boundary ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_threshold_cvss_na_excluded ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_sort_by_severity_preserves_package_info ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_cvss_score_invalid_nan ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_cvss_score_invalid_too_high ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_threshold_severity_high ... ok
[INFO] [stdout] test sbom_generation::domain::services::vulnerability_checker::tests::test_threshold_severity_critical_only ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_cvss_score_invalid_negative ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_package_vulnerabilities_new ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_severity_emoji ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_vulnerability_empty_id ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_severity_from_cvss_score ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_vulnerability_new_valid ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_severity_ordering ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_cvss_score_new_valid ... ok
[INFO] [stdout] test sbom_generation::domain::vulnerability::tests::test_vulnerability_without_optional_fields ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_create_license_info ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_create_license_info_no_license ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_extract_license_from_classifiers_not_found ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_complex_priority ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_falls_back_to_classifiers ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_falls_back_to_expression ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_ignores_empty_string ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_ignores_unknown ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_no_license_found ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_select_license_prefers_license_field ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_apache_license_variants ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_bsd_license_variants ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_case_insensitive_matching ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_extract_license_from_classifiers ... ok
[INFO] [stdout] test sbom_generation::policies::license_priority::tests::test_extract_license_from_classifiers_empty ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_gpl_license_variants ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_mit_license_variants ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_other_licenses ... ok
[INFO] [stdout] test sbom_generation::services::dependency_analyzer::tests::test_analyze_multiple_direct_dependencies ... ok
[INFO] [stdout] test sbom_generation::services::dependency_analyzer::tests::test_analyze_no_transitive_dependencies ... ok
[INFO] [stdout] test sbom_generation::services::dependency_analyzer::tests::test_analyze_simple_dependency_tree ... ok
[INFO] [stdout] test sbom_generation::services::dependency_analyzer::tests::test_collect_transitive_deps_cycle_detection ... ok
[INFO] [stdout] test sbom_generation::services::dependency_analyzer::tests::test_collect_transitive_deps_excludes_direct_deps ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_case_sensitive_matching ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_contains_wildcard ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_empty_pattern_list ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_exact_match ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_filter_dependency_map ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_filter_packages ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_filter_packages_multiple_patterns ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_filter_packages_with_wildcard ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_multiple_wildcards ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_unknown_license_returns_none ... ok
[INFO] [stdout] test sbom_generation::policies::spdx_license_map::tests::test_whitespace_trimming ... ok
[INFO] [stdout] test sbom_generation::services::dependency_analyzer::tests::test_analyze_empty_project ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_length_boundary_254_chars ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_length_boundary_255_chars ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_count_boundary_64_patterns ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_count_boundary_63_patterns ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_count_boundary_65_patterns ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_length_boundary_256_chars ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_validation_too_long ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_validation_empty ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_validation_invalid_chars ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_validation_only_wildcards ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_prefix_wildcard ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_validation_too_many_patterns ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_with_brackets ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_pattern_with_dots ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_suffix_wildcard ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_unmatched_patterns_all_matched ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_unmatched_patterns_none_matched ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_unmatched_patterns_partial_match ... ok
[INFO] [stdout] test sbom_generation::services::package_filter::tests::test_unmatched_patterns_wildcard ... ok
[INFO] [stdout] test sbom_generation::services::sbom_generator::tests::test_generate_metadata_unique_serial_numbers ... ok
[INFO] [stdout] test sbom_generation::services::sbom_generator::tests::test_generate_default_metadata ... ok
[INFO] [stdout] test sbom_generation::services::sbom_generator::tests::test_generate_metadata ... ok
[INFO] [stdout] test sbom_generation::services::sbom_generator::tests::test_generate_metadata_timestamp_format ... ok
[INFO] [stdout] test shared::error::tests::test_exit_code_display ... ok
[INFO] [stdout] test sbom_generation::services::sbom_generator::tests::test_generate_metadata_uuid_format ... ok
[INFO] [stdout] test shared::error::tests::test_exit_code_values ... ok
[INFO] [stdout] test shared::error::tests::test_exit_code_clone ... ok
[INFO] [stdout] test shared::error::tests::test_exit_code_equality ... ok
[INFO] [stdout] test shared::error::tests::test_lockfile_not_found_display ... ok
[INFO] [stdout] test shared::error::tests::test_file_read_error_display ... ok
[INFO] [stdout] test shared::error::tests::test_lockfile_parse_error_display ... ok
[INFO] [stdout] test shared::error::tests::test_file_write_error_display ... ok
[INFO] [stdout] test shared::security::tests::test_max_file_size_constant ... ok
[INFO] [stdout] test shared::error::tests::test_security_error_display ... ok
[INFO] [stdout] test shared::security::tests::test_read_file_with_security_directory ... ok
[INFO] [stdout] test shared::security::tests::test_read_file_with_security_success ... ok
[INFO] [stdout] test shared::security::tests::test_read_file_with_security_file_not_found ... ok
[INFO] [stdout] test shared::error::tests::test_invalid_project_path_display ... ok
[INFO] [stdout] test shared::security::tests::test_validate_and_get_metadata_nonexistent ... ok
[INFO] [stdout] test shared::security::tests::test_validate_and_get_metadata_directory ... ok
[INFO] [stdout] test shared::security::tests::test_validate_and_get_metadata_success ... ok
[INFO] [stdout] test shared::security::tests::test_validate_and_get_metadata_file_too_large ... ok
[INFO] [stdout] test shared::security::tests::test_validate_directory_path_nonexistent ... ok
[INFO] [stdout] test shared::security::tests::test_validate_directory_path_is_file ... ok
[INFO] [stdout] test shared::security::tests::test_validate_not_symlink_regular_file ... ok
[INFO] [stdout] test shared::security::tests::test_validate_directory_path_success ... ok
[INFO] [stdout] test tests::test_merge_config_check_cve_from_config ... ok
[INFO] [stdout] test tests::test_merge_config_cli_overrides_format ... ok
[INFO] [stdout] test tests::test_merge_config_config_provides_defaults ... ok
[INFO] [stdout] test tests::test_merge_config_check_cve_cli_flag ... ok
[INFO] [stdout] test tests::test_merge_config_cvss_threshold_cli_wins ... ok
[INFO] [stdout] test tests::test_merge_config_exclude_patterns_merged ... ok
[INFO] [stdout] test tests::test_merge_config_cvss_threshold_from_config ... ok
[INFO] [stdout] test tests::test_merge_config_no_config_file ... ok
[INFO] [stdout] test tests::test_merge_config_ignore_cves_merged ... ok
[INFO] [stdout] test shared::security::tests::test_validate_not_symlink_nonexistent ... ok
[INFO] [stdout] test tests::test_merge_config_severity_threshold_from_config ... ok
[INFO] [stdout] test tests::test_merge_ignore_cves_config_only ... ok
[INFO] [stdout] test tests::test_merge_ignore_cves_deduplication_cli_wins ... ok
[INFO] [stdout] test tests::test_merge_string_lists_cli_only ... ok
[INFO] [stdout] test tests::test_merge_string_lists_config_only ... ok
[INFO] [stdout] test tests::test_merge_string_lists_deduplication ... ok
[INFO] [stdout] test tests::test_merge_config_severity_threshold_cli_wins ... ok
[INFO] [stdout] test tests::test_validate_project_path_current_directory ... ok
[INFO] [stdout] test tests::test_merge_ignore_cves_both_empty ... ok
[INFO] [stdout] test tests::test_validate_project_path_file_not_directory ... ok
[INFO] [stdout] test tests::test_merge_ignore_cves_cli_only ... ok
[INFO] [stdout] test tests::test_validate_project_path_nonexistent ... ok
[INFO] [stdout] test tests::test_merge_string_lists_both_empty ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_with_cve_check_disabled ... ok
[INFO] [stdout] test tests::test_validate_project_path_valid_directory ... ok
[INFO] [stdout] test adapters::outbound::network::osv_client::tests::test_osv_client_creation ... ok
[INFO] [stdout] test adapters::outbound::network::pypi_client::tests::test_pypi_client_creation ... ok
[INFO] [stdout] test adapters::outbound::network::pypi_client::tests::test_verify_packages_empty_list ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_with_cve_check_enabled ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_without_dependencies ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_fetch_license_info ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_with_dependencies ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_exclude_non_root_preserves_dependency_classification ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_without_root_excluded_baseline ... ok
[INFO] [stdout] test application::use_cases::generate_sbom::tests::test_execute_with_root_excluded_preserves_dependency_classification ... ok
[INFO] [stderr]      Running tests/e2e_config_file.rs (/opt/rustwide/target/debug/deps/e2e_config_file-f3ece68fc8216f99)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 406 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test cve_ignore_cli_tests::test_ignore_cve_cli_and_config_merged ... ignored, requires network access to OSV API
[INFO] [stdout] test cve_ignore_cli_tests::test_ignore_cve_via_cli_flag ... ignored, requires network access to OSV API
[INFO] [stdout] test cve_ignore_cli_tests::test_without_ignore_cve_detects_vulnerability ... ignored, requires network access to OSV API
[INFO] [stdout] test cve_ignore_config_tests::test_ignore_cve_via_config_file ... ignored, requires network access to OSV API
[INFO] [stdout] test cve_ignore_config_tests::test_ignore_cve_via_config_with_check_cve_flag ... ignored, requires network access to OSV API
[INFO] [stdout] test explicit_config_tests::test_explicit_config_nonexistent_file_error ... ok
[INFO] [stdout] test error_tests::test_explicit_config_not_found_error ... ok
[INFO] [stdout] test error_tests::test_invalid_yaml_via_explicit_config_error ... ok
[INFO] [stdout] test error_tests::test_invalid_yaml_syntax_error ... ok
[INFO] [stdout] test error_tests::test_empty_cve_id_validation_error ... ok
[INFO] [stdout] test error_tests::test_whitespace_only_cve_id_error ... ok
[INFO] [stdout] test merge_tests::test_cli_and_config_exclude_patterns_merged ... FAILED
[INFO] [stdout] test explicit_config_tests::test_explicit_config_path_loads_successfully ... ok
[INFO] [stdout] test auto_discovery_tests::test_auto_discovery_applies_exclude_packages ... ok
[INFO] [stdout] test auto_discovery_tests::test_auto_discovery_applies_format ... ok
[INFO] [stdout] test merge_tests::test_cli_format_overrides_config ... ok
[INFO] [stdout] test auto_discovery_tests::test_no_config_file_runs_normally ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- merge_tests::test_cli_and_config_exclude_patterns_merged stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'merge_tests::test_cli_and_config_exclude_patterns_merged' (901) panicked at tests/e2e_config_file.rs:209:78:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b362a6fd7fa - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b362a6fd7fa - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b362a6fd7fa - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b362a6fd7fa - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b362a71358a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b362a71358a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x5b362a703542 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5b362a703542 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5b362a6da26f - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b362a6da26f - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b362a6f48c9 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b362a6493cc - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x5b362a6493cc - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5b362a6f4a82 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x5b362a6f4a82 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b362a6da328 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5b362a6d1be9 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b362a6db03d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b362a713ebc - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b362a713c32 - core[10b6fa85044e1869]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5b362a634ab2 - core::result::Result<T,E>::unwrap::hfe522244d2b7c331
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5b362a634ab2 - e2e_config_file::merge_tests::test_cli_and_config_exclude_patterns_merged::h8f900a9d82864055
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/e2e_config_file.rs:209:78
[INFO] [stdout]   22:     0x5b362a635347 - e2e_config_file::merge_tests::test_cli_and_config_exclude_patterns_merged::{{closure}}::h282b21e9f9047a4c
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/e2e_config_file.rs:204:53
[INFO] [stdout]   23:     0x5b362a63b286 - core::ops::function::FnOnce::call_once::hf17a9386d687edde
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5b362a63d4ab - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5b362a63d4ab - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5b362a649e9b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5b362a649e9b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x5b362a649e9b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5b362a649e9b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5b362a649e9b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5b362a649e9b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5b362a649e9b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5b362a6455b4 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stderr] error: test failed, to rerun pass `--test e2e_config_file`
[INFO] [stdout]   34:     0x5b362a6455b4 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5b362a64caa2 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5b362a64caa2 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x5b362a64caa2 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5b362a64caa2 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5b362a64caa2 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5b362a64caa2 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5b362a64caa2 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5b362a6fce0f - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   43:     0x5b362a6fce0f - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x77f83da04aa4 - <unknown>
[INFO] [stdout]   45:     0x77f83da91a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     merge_tests::test_cli_and_config_exclude_patterns_merged
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 11 passed; 1 failed; 5 ignored; 0 measured; 0 filtered out; finished in 1.09s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "0dc97d6bd195c1958c05b0a52bc15f9e46ca81883aec43e326d421ad64289259", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0dc97d6bd195c1958c05b0a52bc15f9e46ca81883aec43e326d421ad64289259", kill_on_drop: false }`
[INFO] [stdout] 0dc97d6bd195c1958c05b0a52bc15f9e46ca81883aec43e326d421ad64289259
