[INFO] fetching crate deps-npm 2.0.0...
[INFO] testing deps-npm-2.0.0 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate deps-npm 2.0.0 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate deps-npm 2.0.0
[INFO] finished tweaking crates.io crate deps-npm 2.0.0
[INFO] tweaked toml for crates.io crate deps-npm 2.0.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate deps-npm 2.0.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate deps-npm 2.0.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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded yaml-rust2 v0.13.0
[INFO] [stderr]   Downloaded tower-lsp-server v0.23.0
[INFO] [stderr]   Downloaded hashlink v0.12.2
[INFO] [stderr]   Downloaded fluent-uri v0.4.1
[INFO] [stderr]   Downloaded compression-core v0.4.33
[INFO] [stderr]   Downloaded ls-types v0.0.6
[INFO] [stderr]   Downloaded compression-codecs v0.4.43
[INFO] [stderr]   Downloaded async-compression v0.4.48
[INFO] [stderr]   Downloaded node-semver v2.2.0
[INFO] [stderr]   Downloaded miette-derive v7.6.0
[INFO] [stderr]   Downloaded miette v7.6.0
[INFO] [stderr]   Downloaded deps-core-macros v2.0.0
[INFO] [stderr]   Downloaded toml-span v0.7.1
[INFO] [stderr]   Downloaded jsonc-parser v0.33.2
[INFO] [stderr]   Downloaded deps-core v2.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7fcfc599eb4436b289b7c8e897f6b79e0d68a3484e40415626718ce78dee9b96
[INFO] running `Command { std: "docker" "start" "7fcfc599eb4436b289b7c8e897f6b79e0d68a3484e40415626718ce78dee9b96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7fcfc599eb4436b289b7c8e897f6b79e0d68a3484e40415626718ce78dee9b96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7fcfc599eb4436b289b7c8e897f6b79e0d68a3484e40415626718ce78dee9b96" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7fcfc599eb4436b289b7c8e897f6b79e0d68a3484e40415626718ce78dee9b96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7fcfc599eb4436b289b7c8e897f6b79e0d68a3484e40415626718ce78dee9b96" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling smallvec v1.16.1
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling aws-lc-rs v1.18.1
[INFO] [stderr]    Compiling crc32fast v1.5.2
[INFO] [stderr]    Compiling rustls v0.23.45
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling indexmap v2.14.2
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling aws-lc-sys v0.45.0
[INFO] [stderr]    Compiling miniz_oxide v0.9.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling flate2 v1.1.10
[INFO] [stderr]    Compiling compression-core v0.4.33
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling encoding_rs v0.8.41
[INFO] [stderr]    Compiling multiversion-macros v0.9.0
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling ipnet v2.12.2
[INFO] [stderr]    Compiling compression-codecs v0.4.43
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling multiversion v0.9.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling http-body-util v0.1.5
[INFO] [stderr]    Compiling unicode-general-category v1.1.0
[INFO] [stderr]    Compiling simdutf8 v0.1.5
[INFO] [stderr]    Compiling core_detect v1.0.0
[INFO] [stderr]    Compiling multiversion_no_op v1.0.0
[INFO] [stderr]    Compiling bitflags v2.13.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling hashlink v0.12.2
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling miette-derive v7.6.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling time-core v0.1.9
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling yaml-rust2 v0.13.0
[INFO] [stderr]    Compiling miette v7.6.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling async-compression v0.4.48
[INFO] [stderr]    Compiling h2 v0.4.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling time v0.3.55
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling dashmap v6.2.1
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling futures v0.3.34
[INFO] [stderr]    Compiling toml-span v0.7.1
[INFO] [stderr]    Compiling deps-core-macros v2.0.0
[INFO] [stderr]    Compiling jsonc-parser v0.33.2
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling node-semver v2.2.0
[INFO] [stderr]    Compiling dirs v7.0.0
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling tokio-rustls v0.26.5
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.10
[INFO] [stderr]    Compiling reqwest v0.13.5
[INFO] [stderr]    Compiling deps-core v2.0.0
[INFO] [stderr]    Compiling deps-npm v2.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 4m 29s
[INFO] running `Command { std: "docker" "inspect" "7fcfc599eb4436b289b7c8e897f6b79e0d68a3484e40415626718ce78dee9b96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7fcfc599eb4436b289b7c8e897f6b79e0d68a3484e40415626718ce78dee9b96" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling rustix v1.1.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling clap_builder v4.6.7
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling node-semver v2.2.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling clap v4.6.7
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling async-compression v0.4.48
[INFO] [stderr]    Compiling tokio-rustls v0.26.5
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]    Compiling h2 v0.4.19
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.10
[INFO] [stderr]    Compiling mockito v1.7.2
[INFO] [stderr]    Compiling reqwest v0.13.5
[INFO] [stderr]    Compiling deps-core v2.0.0
[INFO] [stderr]    Compiling deps-npm v2.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 3m 53s
[INFO] running `Command { std: "docker" "inspect" "7fcfc599eb4436b289b7c8e897f6b79e0d68a3484e40415626718ce78dee9b96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7fcfc599eb4436b289b7c8e897f6b79e0d68a3484e40415626718ce78dee9b96" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.38s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/deps_npm-5949b9a344b60fa7)
[INFO] [stdout] 
[INFO] [stdout] running 388 tests
[INFO] [stdout] test catalog::tests::test_apply_catalog_wildcard_tilde_range_resolves ... ok
[INFO] [stdout] test catalog::tests::test_apply_gate_is_vacuous_with_no_catalog_dependencies ... ok
[INFO] [stdout] test catalog::tests::test_apply_catalog_default_alias_resolves_like_shorthand ... ok
[INFO] [stdout] test catalog::tests::test_apply_literal_range_dependency_is_untouched ... ok
[INFO] [stdout] test catalog::tests::test_apply_catalogs_default_section_alone_defines_default ... ok
[INFO] [stdout] test catalog::tests::test_apply_default_catalog_resolves ... ok
[INFO] [stdout] test catalog::tests::test_apply_billion_laughs_rejected_by_guards ... ok
[INFO] [stdout] test catalog::tests::test_apply_duplicate_default_catalog_is_workspace_wide ... ok
[INFO] [stdout] test catalog::tests::test_apply_missing_entry ... ok
[INFO] [stdout] test catalog::tests::test_apply_named_catalog_beats_default ... ok
[INFO] [stdout] test catalog::tests::test_apply_nested_roots_nearest_wins ... ok
[INFO] [stdout] test catalog::tests::test_apply_null_top_level_catalog_is_absent_not_malformed_and_not_duplicate ... ok
[INFO] [stdout] test catalog::tests::test_apply_non_mapping_catalogs_sequence_is_malformed ... ok
[INFO] [stdout] test catalog::tests::test_apply_non_string_entry_value_is_malformed_entry ... ok
[INFO] [stdout] test catalog::tests::test_apply_non_semver_entry_is_hover_only_no_diagnostic ... ok
[INFO] [stdout] test catalog::tests::test_apply_no_workspace_file_found_anywhere ... ok
[INFO] [stdout] test catalog::tests::test_apply_malformed_yaml_is_malformed_workspace_file ... ok
[INFO] [stdout] test catalog::tests::test_apply_unknown_catalog ... ok
[INFO] [stdout] test catalog::tests::test_apply_non_mapping_catalog_shape_is_malformed_not_panicking ... ok
[INFO] [stdout] test catalog::tests::test_apply_no_manifest_dir_is_no_workspace_file ... ok
[INFO] [stdout] test catalog::tests::test_catalog_origin_debug_redacts_credentials::debug_redaction_conformance ... ok
[INFO] [stdout] test catalog::tests::test_catalog_outcome_non_semver_entry_debug_redacts_credentials::debug_redaction_conformance ... ok
[INFO] [stdout] test catalog::tests::test_apply_oversized_range_rejected_before_parse ... ok
[INFO] [stdout] test catalog::tests::test_apply_range_at_length_cap_still_reaches_parser ... ok
[INFO] [stdout] test catalog::tests::test_apply_unquoted_numeric_catalog_range_resolves ... ok
[INFO] [stdout] test catalog::tests::test_apply_workspace_path_is_a_directory_degrades_to_malformed ... ok
[INFO] [stdout] test catalog::tests::test_diagnostic_message_sanitizes_bidi_override_in_specifier ... ok
[INFO] [stdout] test catalog::tests::test_catalog_outcome_resolved_debug_redacts_credentials::debug_redaction_conformance ... ok
[INFO] [stdout] test catalog::tests::test_diagnostic_message_does_not_escape_scoped_package_names ... ok
[INFO] [stdout] test catalog::tests::test_diagnostic_message_sanitizes_bidi_override_in_dependency_name ... ok
[INFO] [stdout] test catalog::tests::test_hover_detail_escapes_image_syntax_in_dependency_and_catalog_names ... ok
[INFO] [stdout] test catalog::tests::test_hover_detail_neutralizes_markdown_link_breakout_in_resolved_range ... ok
[INFO] [stdout] test catalog::tests::test_hover_detail_neutralizes_paragraph_break_and_image_beacon_in_non_semver_entry ... ok
[INFO] [stdout] test catalog::tests::test_hover_detail_sanitizes_non_bidi_format_char_in_catalog_name_and_specifier ... ok
[INFO] [stdout] test catalog::tests::test_hover_detail_sanitizes_non_bidi_format_char_in_resolved_range ... ok
[INFO] [stdout] test catalog::tests::test_diagnostic_message_truncates_oversized_dependency_name ... ok
[INFO] [stdout] test catalog::tests::test_hover_detail_sanitizes_non_bidi_format_chars_matching_diagnostic_message ... ok
[INFO] [stdout] test catalog::tests::test_parse_named ... ok
[INFO] [stdout] test catalog::tests::test_apply_workspace_file_with_neither_key_is_missing_entry_not_unknown ... ok
[INFO] [stdout] test catalog::tests::test_apply_valid_range_at_length_cap_resolves ... ok
[INFO] [stdout] test config::tests::test_blocked_class_for_none_when_not_blocked ... ok
[INFO] [stdout] test config::tests::test_blocked_class_for_scoped_entry_blocked_by_policy ... ok
[INFO] [stdout] test catalog::tests::test_hover_detail_truncates_oversized_untrusted_values ... ok
[INFO] [stdout] test catalog::tests::test_parse_non_catalog_value_is_none ... ok
[INFO] [stdout] test catalog::tests::test_parse_shorthand_and_explicit_default_are_the_same ... ok
[INFO] [stdout] test config::tests::test_blocked_class_for_top_level_and_scope_sharing_url_have_distinct_declaration_keys ... ok
[INFO] [stdout] test config::tests::test_blocked_class_for_top_level_override_blocked_by_policy ... ok
[INFO] [stdout] test config::tests::test_new_blocked_host_log_redacts_query_string ... ok
[INFO] [stdout] test config::tests::test_new_for_log_blocked_host_reports_raw_not_expanded ... ok
[INFO] [stdout] test config::tests::test_new_for_log_invalid_url_reports_raw_not_expanded ... ok
[INFO] [stdout] test config::tests::test_npm_registry_index_accepts_http_loopback_under_test_cfg ... ok
[INFO] [stdout] test config::tests::test_npm_registry_index_accepts_query_string ... ok
[INFO] [stdout] test config::tests::test_npm_registry_index_accepts_https ... ok
[INFO] [stdout] test config::tests::test_config_cache_reparses_after_mtime_change ... ok
[INFO] [stdout] test catalog::tests::test_diagnostic_message_sanitizes_bidi_override_in_catalog_name ... ok
[INFO] [stdout] test config::tests::test_npm_registry_index_public_host_allowed_under_public_only ... ok
[INFO] [stdout] test config::tests::test_npm_registry_index_policy_matrix ... ok
[INFO] [stdout] test config::tests::test_npm_registry_index_rejects_invalid_url ... ok
[INFO] [stdout] test config::tests::test_npm_registry_index_rejects_userinfo ... ok
[INFO] [stdout] test config::tests::test_npm_registry_index_rejects_http_near_miss_loopback ... ok
[INFO] [stdout] test config::tests::test_npm_registry_index_rejects_http_non_loopback ... ok
[INFO] [stdout] test config::tests::test_parse_npmrc_raw_comments_and_blank_lines ... ok
[INFO] [stdout] test config::tests::test_npm_registry_index_normalizes_trailing_slash ... ok
[INFO] [stdout] test config::tests::test_parse_npmrc_raw_malformed_line_never_logs_credential_content ... ok
[INFO] [stdout] test config::tests::test_parse_npmrc_raw_registry_and_scoped ... ok
[INFO] [stdout] test config::tests::test_parse_npmrc_raw_malformed_line_skipped_others_still_apply ... ok
[INFO] [stdout] test config::tests::test_parse_npmrc_raw_skips_auth_shaped_keys ... ok
[INFO] [stdout] test config::tests::test_parse_npmrc_raw_scope_key_no_case_folding ... ok
[INFO] [stdout] test config::tests::test_parse_npmrc_raw_spaced_equals ... ok
[INFO] [stdout] test config::tests::test_rejected_reason_for_every_non_blocked_host_reason ... ok
[INFO] [stdout] test catalog::tests::test_find_workspace_file_stats_exactly_once_per_ancestor ... ok
[INFO] [stdout] test config::tests::test_resolve_entry_redacts_literal_query_string_from_raw_and_log ... ok
[INFO] [stdout] test config::tests::test_rejected_reason_for_none_when_valid ... ok
[INFO] [stdout] test config::tests::test_resolve_entry_redacts_literal_userinfo_from_raw_and_log ... ok
[INFO] [stdout] test config::tests::test_resolve_entry_redacts_literal_userinfo_from_unparseable_raw ... ok
[INFO] [stdout] test config::tests::test_resolve_entry_user_tier_still_expands_env_vars ... ok
[INFO] [stdout] test config::tests::test_resolve_entry_undefined_var_is_invalid ... ok
[INFO] [stdout] test config::tests::test_resolve_source_for_invalid_scope_fails_closed ... ok
[INFO] [stdout] test config::tests::test_resolve_source_for_scope_wins_over_top_level ... ok
[INFO] [stdout] test config::tests::test_resolve_source_for_unmatched_scope_falls_back_to_public ... ok
[INFO] [stdout] test config::tests::test_rejected_reason_for_top_level_override_invalid_url ... ok
[INFO] [stdout] test config::tests::test_resolve_entry_project_tier_rejects_env_var_expansion_even_when_defined ... ok
[INFO] [stdout] test config::tests::test_resolve_with_home_empty_npmrc_is_default ... ok
[INFO] [stdout] test config::tests::test_resolve_with_home_dedupes_ancestor_matching_user_tier ... ok
[INFO] [stdout] test config::tests::test_rejected_reason_for_none_when_blocked_host ... ok
[INFO] [stdout] test config::tests::test_rejected_reason_for_scoped_entry ... ok
[INFO] [stdout] test config::tests::test_resolve_entry_undefined_var_with_control_char_logs_sanitized ... ok
[INFO] [stdout] test config::tests::test_resolve_with_home_project_tier_applies ... ok
[INFO] [stdout] test config::tests::test_resolve_source_for_no_config_is_public_registry ... ok
[INFO] [stdout] test config::tests::test_resolve_with_home_user_tier_applies_when_no_project_tier ... ok
[INFO] [stdout] test config::tests::test_resolved_registries_dedups_and_skips_invalid ... ok
[INFO] [stdout] test config::tests::test_resolve_with_home_project_overrides_user ... ok
[INFO] [stdout] test config::tests::test_resolve_with_home_project_tier_rejects_env_var_expansion ... ok
[INFO] [stdout] test config::tests::test_resolve_source_for_top_level_override ... ok
[INFO] [stdout] test config::tests::test_resolve_with_home_no_npmrc_anywhere_is_default ... ok
[INFO] [stdout] test config::tests::test_resolve_with_home_stats_bounded_per_ancestor ... ok
[INFO] [stdout] test ecosystem::tests::npm_ecosystem_conformance::ecosystem_id_matches ... ok
[INFO] [stdout] test ecosystem::tests::npm_ecosystem_conformance::ecosystem_manifest_filenames_match ... ok
[INFO] [stdout] test ecosystem::tests::npm_ecosystem_conformance::ecosystem_non_registry_source_yields_no_fetch ... ok
[INFO] [stdout] test ecosystem::tests::npm_ecosystem_conformance::ecosystem_as_any_downcasts ... ok
[INFO] [stdout] test ecosystem::tests::test_extract_prefix_closed_key_is_suppressed_not_reopened ... ok
[INFO] [stdout] test ecosystem::tests::npm_ecosystem_conformance::ecosystem_lockfile_filenames_match ... ok
[INFO] [stdout] test ecosystem::tests::npm_ecosystem_conformance::ecosystem_display_name_matches ... ok
[INFO] [stdout] test ecosystem::tests::test_extract_prefix_strips_leading_quote ... ok
[INFO] [stdout] test ecosystem::tests::npm_dollar_placeholder_conformance::unresolved_requirement_never_rewritten ... ok
[INFO] [stdout] test ecosystem::tests::test_fallback_edit_excludes_newer_rejects_or_alternation_gap_vacuous_case ... ok
[INFO] [stdout] test ecosystem::tests::npm_unresolved_requirement_conformance::unresolved_requirement_never_rewritten ... ok
[INFO] [stdout] test ecosystem::tests::test_fallback_bare_insert_text_default_is_bare_name ... ok
[INFO] [stdout] test ecosystem::tests::test_completion_insert_text ... ok
[INFO] [stdout] test ecosystem::tests::test_is_in_dependencies_section_basic ... ok
[INFO] [stdout] test ecosystem::tests::test_fallback_edit_excludes_newer_rejects_or_alternation_gap_caret_branches ... ok
[INFO] [stdout] test ecosystem::tests::test_is_in_dependencies_section_dev_deps ... ok
[INFO] [stdout] test ecosystem::tests::npm_ecosystem_conformance::ecosystem_registry_returns_arc ... ok
[INFO] [stdout] test ecosystem::tests::test_generate_diagnostics_no_dependencies ... ok
[INFO] [stdout] test ecosystem::tests::test_ecosystem_watched_config_filenames ... ok
[INFO] [stdout] test formatter::tests::npm_formatter_conformance::formatter_generic_template_placeholders_guarded ... ok
[INFO] [stdout] test formatter::tests::npm_formatter_conformance::formatter_package_url_hostile_input_safe ... ok
[INFO] [stdout] test formatter::tests::npm_formatter_conformance::formatter_package_url_matches ... ok
[INFO] [stdout] test formatter::tests::npm_formatter_conformance::formatter_validate_package_name_accepts ... ok
[INFO] [stdout] test formatter::tests::npm_formatter_conformance::formatter_validate_package_name_rejects ... ok
[INFO] [stdout] test ecosystem::tests::test_lockfile_provider_returns_some ... ok
[INFO] [stdout] test ecosystem::tests::test_fallback_edit_excludes_newer_pins_writable_bare_exact_rendering ... ok
[INFO] [stdout] test formatter::tests::npm_formatter_conformance::formatter_version_satisfies_requirement_matches ... ok
[INFO] [stdout] test formatter::tests::test_can_resolve_source_fr009 ... ok
[INFO] [stdout] test formatter::tests::test_compile_requirement_caret_zero_mistyped_patch_is_unsatisfiable ... ok
[INFO] [stdout] test formatter::tests::test_compile_requirement_combined_wildcard_comparator_resolves_precisely ... ok
[INFO] [stdout] test formatter::tests::test_build_metadata_stays_ignored_for_pins ... ok
[INFO] [stdout] test formatter::tests::test_compile_requirement_matcher_opts_into_strict_prerelease_exclusion ... ok
[INFO] [stdout] test formatter::tests::test_compile_requirement_prerelease_suffix_on_middle_component_is_not_wildcard ... ok
[INFO] [stdout] test formatter::tests::test_compile_requirement_prerelease_suffixed_wildcard_resolves_to_any_version ... ok
[INFO] [stdout] test formatter::tests::test_compile_requirement_tilde_wildcard_patch_or_combinator_does_not_widen_to_any ... ok
[INFO] [stdout] test formatter::tests::test_compile_requirement_tilde_wildcard_patch_resolves_precisely ... ok
[INFO] [stdout] test formatter::tests::test_compile_requirement_comparator_list_satisfiable ... ok
[INFO] [stdout] test formatter::tests::test_compile_requirement_satisfiable ... ok
[INFO] [stdout] test formatter::tests::test_compile_requirement_unparseable_candidate_is_skipped ... ok
[INFO] [stdout] test formatter::tests::test_compile_requirement_unparseable_requirement_returns_none ... ok
[INFO] [stdout] test formatter::tests::test_compile_requirement_wildcard_major_resolves_to_any_version ... ok
[INFO] [stdout] test formatter::tests::test_compile_requirement_tilde_wildcard_patch_with_malformed_patch_is_not_narrowed ... ok
[INFO] [stdout] test formatter::tests::test_deprecated_message_and_label_use_defaults ... ok
[INFO] [stdout] test formatter::tests::test_deprecated_messages ... ok
[INFO] [stdout] test formatter::tests::test_explicitly_excludes_detects_or_alternation_gap ... ok
[INFO] [stdout] test formatter::tests::test_explicitly_excludes_or_gap_caret_branches ... ok
[INFO] [stdout] test formatter::tests::test_explicitly_excludes_or_gap_false_when_covered ... ok
[INFO] [stdout] test formatter::tests::test_explicitly_excludes_or_gap_requires_at_least_two_branches ... ok
[INFO] [stdout] test formatter::tests::test_explicitly_excludes_or_gap_open_ended_halves ... ok
[INFO] [stdout] test formatter::tests::test_format_version_replacing_bare_requirement_stays_bare ... ok
[INFO] [stdout] test formatter::tests::test_format_version_replacing_explicit_caret_and_tilde_dropped ... ok
[INFO] [stdout] test formatter::tests::test_format_version_replacing_space_separated_and_range_collapses_to_bare ... ok
[INFO] [stdout] test formatter::tests::test_is_requirement_up_to_date_admitting_shapes ... ok
[INFO] [stdout] test formatter::tests::test_format_version ... ok
[INFO] [stdout] test formatter::tests::test_is_requirement_up_to_date_caret_floor_ignored ... ok
[INFO] [stdout] test formatter::tests::test_is_requirement_up_to_date_compound_caret_floor_above_latest ... ok
[INFO] [stdout] test formatter::tests::test_is_requirement_up_to_date_degenerate_inputs_do_not_panic ... ok
[INFO] [stdout] test formatter::tests::test_is_requirement_up_to_date_excluding_shapes ... ok
[INFO] [stdout] test formatter::tests::test_is_requirement_up_to_date_oversized_is_true ... ok
[INFO] [stdout] test formatter::tests::test_parse_range_safe_length_cap_boundary ... ok
[INFO] [stdout] test formatter::tests::test_is_requirement_up_to_date_prerelease_latest ... ok
[INFO] [stdout] test formatter::tests::test_parse_range_safe_lowercase_v_prefix_resolves_uppercase_stays_err ... ok
[INFO] [stdout] test formatter::tests::test_parse_range_safe_merges_whitespace_after_bare_operator ... ok
[INFO] [stdout] test formatter::tests::test_parse_range_safe_or_branch_must_independently_parse ... ok
[INFO] [stdout] test formatter::tests::test_parse_range_safe_wildcard_major_resolves_to_any_version ... ok
[INFO] [stdout] test formatter::tests::test_range_parse_error_too_long_display ... ok
[INFO] [stdout] test formatter::tests::test_default_normalize_is_identity ... ok
[INFO] [stdout] test formatter::tests::test_requirement_status_compound_is_up_to_date ... ok
[INFO] [stdout] test formatter::tests::test_supports_package_rename_false ... ok
[INFO] [stdout] test formatter::tests::test_suppress_package_url_fr015 ... ok
[INFO] [stdout] test formatter::tests::test_validate_package_name_length_boundary ... ok
[INFO] [stdout] test formatter::tests::test_yanked_diagnostic_applies_to_always_false ... ok
[INFO] [stdout] test ecosystem::tests::test_generate_diagnostics_reports_missing_catalog_entry ... ok
[INFO] [stdout] test lockfile::tests::test_1505_missing_version_field_logs_sanitized_package_name ... ok
[INFO] [stdout] test lockfile::tests::test_1505_pnpm_missing_version_field_logs_sanitized_key ... ok
[INFO] [stdout] test lockfile::tests::test_1505_pnpm_non_semver_version_logs_sanitized ... ok
[INFO] [stdout] test lockfile::tests::test_extract_package_name_nested ... ok
[INFO] [stdout] test lockfile::tests::test_extract_package_name_scoped ... ok
[INFO] [stdout] test lockfile::tests::test_extract_package_name_simple ... ok
[INFO] [stdout] test ecosystem::tests::test_generate_diagnostics_typosquat_signal_fires_through_npm_override ... ok
[INFO] [stdout] test ecosystem::tests::test_parse_manifest_empty_dependencies ... ok
[INFO] [stdout] test ecosystem::tests::test_parse_manifest_invalid_json ... ok
[INFO] [stdout] test ecosystem::tests::test_parse_manifest_valid_json ... ok
[INFO] [stdout] test lockfile::tests::npm_lockfile_conformance::locate_lockfile_not_found ... ok
[INFO] [stdout] test lockfile::tests::test_locate_lockfile_falls_back_to_pnpm_when_no_package_lock ... ok
[INFO] [stdout] test lockfile::tests::test_parse_git_source_no_hash ... ok
[INFO] [stdout] test lockfile::tests::npm_lockfile_conformance::parse_malformed_lockfile_does_not_panic ... ok
[INFO] [stdout] test lockfile::tests::test_locate_lockfile_prefers_package_lock_json_over_pnpm ... ok
[INFO] [stdout] test lockfile::tests::test_parse_npm_source_link ... ok
[INFO] [stdout] test lockfile::tests::test_parse_npm_source_registry ... ok
[INFO] [stdout] test lockfile::tests::test_parse_git_source_with_hash ... ok
[INFO] [stdout] test lockfile::tests::test_locate_lockfile_workspace_root ... ok
[INFO] [stdout] test lockfile::tests::test_parse_git_source_tarball ... ok
[INFO] [stdout] test lockfile::tests::npm_lockfile_conformance::locate_lockfile_same_directory ... ok
[INFO] [stdout] test lockfile::tests::test_nesting_at_max_depth_accepted ... ok
[INFO] [stdout] test lockfile::tests::test_nesting_over_max_depth_rejected ... ok
[INFO] [stdout] test lockfile::tests::test_parse_empty_package_lock ... ok
[INFO] [stdout] test lockfile::tests::test_parse_package_lock_with_git ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_all_three_sections_in_one_importer ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_empty_importers_is_empty_not_error ... ok
[INFO] [stdout] test lockfile::tests::test_parse_package_lock_with_local ... ok
[INFO] [stdout] test lockfile::tests::test_parse_package_lock_with_npm_alias_resolves_real_name ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_coerces_unquoted_numeric_version_then_semver_gate_skips_it ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_expansion_over_max_bytes_rejected ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_explicit_empty_importers_map_is_empty_not_error ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_malformed_yaml_is_parse_error ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_monorepo_multi_importer_aggregation ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_non_scalar_lockfile_version_is_parse_error ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_non_scalar_version_field_is_skipped_without_panic ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_nesting_over_max_depth_rejected ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_npm_alias_resolves_real_name ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_yaml_duplicate_key_error_benign_name_unchanged ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_yaml_duplicate_key_error_redacts_credential ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_skips_link_entries ... ok
[INFO] [stdout] test parser::tests::test_bare_https_git_host_url_classifies_as_git_with_split_committish ... ok
[INFO] [stdout] test parser::tests::test_bare_https_non_git_host_url_still_classifies_as_url ... ok
[INFO] [stdout] test parser::tests::test_dependencies_section_not_matched_by_run_dependencies_script_key ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_npm_alias_resolves_scoped_real_name ... ok
[INFO] [stdout] test parser::tests::test_dependency_with_file_path ... ok
[INFO] [stdout] test parser::tests::test_dependency_with_git_url ... ok
[INFO] [stdout] test parser::tests::test_dependency_with_git_url_committish ... ok
[INFO] [stdout] test parser::tests::test_dependency_with_bare_github_shorthand ... ok
[INFO] [stdout] test parser::tests::test_dependency_with_github_shorthand ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_single_importer ... ok
[INFO] [stdout] test parser::tests::test_dependency_with_gitlab_bitbucket_and_gist_protocols ... ok
[INFO] [stdout] test parser::tests::test_dependency_with_tarball_url_and_bare_local_path ... ok
[INFO] [stdout] test parser::tests::test_dependency_with_link_and_portal_protocols ... ok
[INFO] [stdout] test parser::tests::test_dependency_with_workspace_protocol ... ok
[INFO] [stdout] test parser::tests::test_dependency_with_home_relative_and_windows_drive_paths ... ok
[INFO] [stdout] test parser::tests::test_duplicate_name_across_two_sections_with_intervening_entries ... ok
[INFO] [stdout] test parser::tests::test_duplicate_top_level_section_key_resolves_to_last_occurrence ... ok
[INFO] [stdout] test parser::tests::test_duplicate_name_across_three_sections ... ok
[INFO] [stdout] test parser::tests::test_empty_remainder_after_git_shorthand_prefix_falls_back_to_registry ... ok
[INFO] [stdout] test parser::tests::test_line_offset_table ... ok
[INFO] [stdout] test parser::tests::test_line_offset_table_emoji ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_optional_dependencies ... ok
[INFO] [stdout] test parser::tests::test_line_offset_table_utf16 ... ok
[INFO] [stdout] test parser::tests::test_multiple_packages_same_version ... ok
[INFO] [stdout] test parser::tests::test_non_string_dependency_value_is_skipped ... ok
[INFO] [stdout] test parser::tests::test_nested_object_value_with_colliding_key_resolves_to_top_level_position ... ok
[INFO] [stdout] test parser::tests::test_non_string_dependency_value_of_another_kind_is_skipped_end_to_end ... ok
[INFO] [stdout] test parser::tests::test_parse_deeply_nested_json_rejected_before_parse ... ok
[INFO] [stdout] test parser::tests::test_ordinary_semver_specifiers_are_not_misclassified ... ok
[INFO] [stdout] test parser::tests::test_parse_dependency_section_with_no_ast_positions_falls_back_to_default_range ... ok
[INFO] [stdout] test parser::tests::test_parse_invalid_json ... ok
[INFO] [stdout] test parser::tests::test_parse_empty_dependencies ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_skips_non_semver_versions ... ok
[INFO] [stdout] test parser::tests::test_parse_dev_dependencies ... ok
[INFO] [stdout] test parser::tests::test_parse_npm_alias_catalog_combination_form_left_unresolved ... ok
[INFO] [stdout] test parser::tests::test_package_name_in_scripts_not_confused ... ok
[INFO] [stdout] test parser::tests::test_parse_nesting_at_max_depth_accepted ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_strips_peer_suffix ... ok
[INFO] [stdout] test parser::tests::test_parse_no_dependencies ... ok
[INFO] [stdout] test parser::tests::test_parse_multiple_sections ... ok
[INFO] [stdout] test parser::tests::test_parse_npm_alias_lone_at_sign_is_rejected ... ok
[INFO] [stdout] test parser::tests::test_parse_npm_alias_trims_whitespace ... ok
[INFO] [stdout] test parser::tests::test_parse_npm_alias_dist_tag_falls_back_to_wildcard ... ok
[INFO] [stdout] test parser::tests::test_parse_npm_alias_resolves_real_package_name ... ok
[INFO] [stdout] test parser::tests::test_parse_npm_alias_oversized_version_kept_verbatim ... ok
[INFO] [stdout] test parser::tests::test_parse_npm_alias_resolves_scoped_real_package_name ... ok
[INFO] [stdout] test parser::tests::test_parse_npm_alias_wildcard_tilde_kept_verbatim ... ok
[INFO] [stdout] test parser::tests::test_parse_optional_dependencies ... ok
[INFO] [stdout] test parser::tests::test_parse_peer_dependencies ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_authority_less_file_uri_never_resolves_against_process_cwd ... ok
[INFO] [stdout] test parser::tests::test_parse_npm_alias_version_at_length_cap_reaches_parser ... ok
[INFO] [stdout] test parser::tests::test_parse_npm_alias_without_version_falls_back_to_wildcard ... ok
[INFO] [stdout] test parser::tests::test_parse_simple_dependencies ... ok
[INFO] [stdout] test parser::tests::test_parse_npm_alias_malformed_scope_is_rejected ... ok
[INFO] [stdout] test lockfile::tests::test_parse_simple_package_lock ... ok
[INFO] [stdout] test lockfile::tests::test_parse_pnpm_lock_unsupported_lockfile_version_is_parse_error ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_file_scheme_remote_host_is_rejected ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_default_catalog_resolves_end_to_end ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_no_catalog_dependency_skips_workspace_lookup ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_npm_alias_routes_by_real_package_name ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_invalid_scope_registry_fails_closed ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_no_npmrc_resolves_to_public_registry ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_policy_blocked_registry_fails_closed ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_untitled_scheme_relative_path_does_not_probe_process_cwd ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_virtual_fs_uri_scheme_guard_skips_filesystem_probe_entirely ... ok
[INFO] [stdout] test parser::tests::test_scoped_package ... ok
[INFO] [stdout] test parser::tests::test_section_key_nested_under_overrides_not_mistaken_for_top_level ... ok
[INFO] [stdout] test parser::tests::test_section_key_nested_under_package_extensions_not_mistaken_for_top_level ... ok
[INFO] [stdout] test parser::tests::test_section_range_unaffected_by_unbalanced_brace_inside_version_string ... ok
[INFO] [stdout] test registry::tests::npm_json_depth_conformance::json_nesting_at_max_depth_accepted ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_untitled_scheme_hierarchical_path_blocked_by_scheme_guard ... ok
[INFO] [stdout] test parser::tests::test_position_calculation ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_rejected_registry_entry_userinfo_present ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_uri_with_no_file_path_catalog_dep_has_no_requirement ... ok
[INFO] [stdout] test registry::tests::test_attach_publish_times_matches_by_version_string ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_top_level_override_and_scope_override_coexist ... ok
[INFO] [stdout] test registry::tests::test_attach_publish_times_empty_map_leaves_all_none ... ok
[INFO] [stdout] test parser::tests::test_parse_with_context_rejected_registry_entry_fails_closed ... ok
[INFO] [stdout] test registry::tests::test_fetch_real_express_versions ... ignored, requires network access
[INFO] [stdout] test registry::tests::npm_json_depth_conformance::json_nesting_over_max_depth_rejected ... ok
[INFO] [stdout] test registry::tests::test_get_latest_matching_from_unregistered_alternate_never_falls_back_to_public ... ok
[INFO] [stdout] test registry::tests::test_evict_publish_times_clears_all_when_still_at_capacity_after_ttl_sweep ... ok
[INFO] [stdout] test registry::tests::test_get_latest_matching_real ... ignored, requires network access
[INFO] [stdout] test registry::tests::test_clone_shares_alternates_map ... ok
[INFO] [stdout] test registry::tests::test_evict_publish_times_drops_only_expired_entries ... ok
[INFO] [stdout] test registry::tests::test_get_latest_matching_malformed_req_makes_no_request ... ok
[INFO] [stdout] test registry::tests::test_clone_shares_publish_times_cache_avoiding_duplicate_full_packument_fetch ... ok
[INFO] [stdout] test registry::tests::npm_registry_conformance::select_latest_matching_not_default_none ... ok
[INFO] [stdout] test registry::tests::test_get_latest_matching_oversized_req_rejected_before_parse ... ok
[INFO] [stdout] test registry::tests::test_get_latest_matching_req_at_length_cap_still_parses ... ok
[INFO] [stdout] test registry::tests::test_get_latest_matching_wildcard_all_prerelease_none_deprecated_returns_newest ... ok
[INFO] [stdout] test registry::tests::test_alternate_registry_fetch_uses_workspace_cache_key_namespace ... ok
[INFO] [stdout] test registry::tests::test_get_latest_matching_wildcard_skips_prerelease_at_front ... ok
[INFO] [stdout] test registry::tests::test_get_latest_matching_wildcard_all_deprecated_returns_newest ... ok
[INFO] [stdout] test registry::tests::test_get_latest_matching_wildcard_major_resolves_to_any_version ... ok
[INFO] [stdout] test registry::tests::test_get_latest_matching_wildcard_prefers_non_deprecated_when_available ... ok
[INFO] [stdout] test registry::tests::test_get_versions_from_unregistered_alternate_never_falls_back_to_public ... ok
[INFO] [stdout] test registry::tests::test_get_versions_offline_issues_zero_network_requests ... ok
[INFO] [stdout] test registry::tests::test_get_versions_rejects_bare_dot_dot_as_not_found ... ok
[INFO] [stdout] test registry::tests::test_get_versions_from_registry_source_uses_public_client ... ok
[INFO] [stdout] test registry::tests::test_live_npm_get_versions_with_attaches_publish_times ... ignored, requires network access
[INFO] [stdout] test registry::tests::test_live_npm_publish_times_ttl_cache_avoids_second_fetch ... ignored, requires network access
[INFO] [stdout] test registry::tests::test_not_found_or_maps_404_to_package_not_found ... ok
[INFO] [stdout] test registry::tests::test_not_found_or_passes_through_non_404 ... ok
[INFO] [stdout] test registry::tests::test_package_url_empty_name ... ok
[INFO] [stdout] test registry::tests::test_package_url_encodes_malicious_name ... ok
[INFO] [stdout] test registry::tests::test_package_url_plain ... ok
[INFO] [stdout] test registry::tests::test_package_url_scoped_encodes_newline_and_percent ... ok
[INFO] [stdout] test registry::tests::test_package_url_scoped_encodes_malicious_segments ... ok
[INFO] [stdout] test registry::tests::test_package_url_scoped_preserves_structure ... ok
[INFO] [stdout] test registry::tests::test_parse_abbreviated_packument ... ok
[INFO] [stdout] test registry::tests::test_parse_abbreviated_packument_all_deprecated ... ok
[INFO] [stdout] test registry::tests::test_parse_abbreviated_packument_empty_string_deprecated_has_no_payload ... ok
[INFO] [stdout] test registry::tests::test_parse_abbreviated_packument_unusual_version_strings_skipped ... ok
[INFO] [stdout] test registry::tests::test_parse_abbreviated_packument_zero_versions ... ok
[INFO] [stdout] test registry::tests::test_parse_package_metadata ... ok
[INFO] [stdout] test registry::tests::test_parse_package_metadata_nesting_at_max_depth_accepted ... ok
[INFO] [stdout] test registry::tests::test_parse_package_metadata_nesting_over_max_depth_rejected ... ok
[INFO] [stdout] test registry::tests::test_get_versions_rejects_scoped_dot_package_as_not_found ... ok
[INFO] [stdout] test registry::tests::test_parse_package_times_happy_path ... ok
[INFO] [stdout] test registry::tests::test_parse_package_times_deeply_nested_json_rejected_before_parse ... ok
[INFO] [stdout] test registry::tests::test_parse_package_times_missing_time_field_is_empty_map ... ok
[INFO] [stdout] test registry::tests::test_parse_package_times_filters_to_known_versions ... ok
[INFO] [stdout] test registry::tests::test_parse_search_response ... ok
[INFO] [stdout] test registry::tests::test_parse_search_response_minimal ... ok
[INFO] [stdout] test registry::tests::test_parse_package_times_object_valued_unpublished_does_not_error ... ok
[INFO] [stdout] test registry::tests::test_parse_package_times_invalid_json_errors ... ok
[INFO] [stdout] test registry::tests::test_get_versions_with_covers_version_outside_top8_window ... ok
[INFO] [stdout] test registry::tests::test_publish_times_fetch_timeout_is_tighter_than_default_outer_fetch_timeout ... ok
[INFO] [stdout] test registry::tests::test_publish_times_stale_fresh_and_unchanged_top8_is_not_stale ... ok
[INFO] [stdout] test registry::tests::test_publish_times_stale_never_reads_map_contents ... ok
[INFO] [stdout] test registry::tests::test_publish_times_cache_hit_returns_same_arc_without_refetch ... ok
[INFO] [stdout] test registry::tests::test_get_versions_with_disabled_issues_only_abbreviated_request ... ok
[INFO] [stdout] test registry::tests::test_publish_times_stale_top8_changed_is_stale_even_within_ttl ... ok
[INFO] [stdout] test registry::tests::test_publish_times_stale_ttl_expired_is_stale ... ok
[INFO] [stdout] test registry::tests::test_get_versions_rejects_scoped_dot_dot_package_as_not_found ... ok
[INFO] [stdout] test registry::tests::test_get_versions_with_enabled_issues_both_requests_and_attaches_times ... ok
[INFO] [stdout] test registry::tests::test_safe_name_segments_accepts_normal_names ... ok
[INFO] [stdout] test registry::tests::test_safe_name_segments_rejects_bare_dot_dot ... ok
[INFO] [stdout] test registry::tests::test_safe_name_segments_rejects_scoped_dot_dot_package ... ok
[INFO] [stdout] test registry::tests::test_safe_name_segments_rejects_scoped_dot_package ... ok
[INFO] [stdout] test registry::tests::test_publish_times_end_to_end_missing_version_causes_exactly_one_fetch_across_repeated_calls ... ok
[INFO] [stdout] test registry::tests::test_search_real ... ignored, requires network access
[INFO] [stdout] test registry::tests::test_get_versions_from_routes_alternate_registry_never_public ... ok
[INFO] [stdout] test registry::tests::test_publish_times_end_to_end_top8_change_triggers_exactly_one_refetch_then_stable ... ok
[INFO] [stdout] test registry::tests::test_register_alternate_is_idempotent ... ok
[INFO] [stdout] test registry::tests::test_search_on_alternate_tier_returns_empty_without_request ... ok
[INFO] [stdout] test registry::tests::test_registry_reports_yanked_true ... ok
[INFO] [stdout] test registry::tests::test_register_alternate_capacity_cap ... ok
[INFO] [stdout] test registry::tests::test_select_latest_matching_empty_req_all_deprecated_returns_newest ... ok
[INFO] [stdout] test registry::tests::test_top_n_fewer_than_n_returns_all ... ok
[INFO] [stdout] test registry::tests::test_top_n_takes_front_of_already_sorted_list ... ok
[INFO] [stdout] test registry::tests::test_versions_url_dot_segment_sweep ... ok
[INFO] [stdout] test registry::tests::test_select_latest_matching_req_at_length_cap_still_parses ... ok
[INFO] [stdout] test registry::tests::test_select_latest_matching_oversized_req_returns_none ... ok
[INFO] [stdout] test registry::tests::test_versions_url_scoped_encodes_malicious_segments ... ok
[INFO] [stdout] test registry::tests::test_versions_url_scoped_preserves_structure ... ok
[INFO] [stdout] test registry::tests::test_versions_url_encodes_malicious_name ... ok
[INFO] [stdout] test registry::tests::test_versions_url_plain ... ok
[INFO] [stdout] test registry::tests::test_register_alternate_redacts_query_credential_on_cap_reached ... ok
[INFO] [stdout] test registry::tests::test_select_latest_matching_wildcard_all_prerelease_falls_back_to_newest ... ok
[INFO] [stdout] test registry::tests::test_select_latest_matching_wildcard_major_resolves_to_any_version ... ok
[INFO] [stdout] test types::tests::test_dependency_section_variants ... ok
[INFO] [stdout] test types::tests::test_npm_dependency_creation ... ok
[INFO] [stdout] test types::tests::test_npm_deprecation_from_registry_field_trims_and_rejects_empty ... ok
[INFO] [stdout] test types::tests::test_npm_package_creation ... ok
[INFO] [stdout] test types::tests::test_npm_package_metadata_trait ... ok
[INFO] [stdout] test types::tests::test_npm_version_creation ... ok
[INFO] [stdout] test types::tests::test_npm_version_deprecation_accessor ... ok
[INFO] [stdout] test types::tests::test_npm_version_is_prerelease ... ok
[INFO] [stdout] test registry::tests::test_select_latest_matching_wildcard_all_deprecated_returns_newest ... ok
[INFO] [stdout] test types::tests::test_npm_version_trait ... ok
[INFO] [stdout] test registry::tests::test_wildcard_agreement_newest_deprecated_beats_older_clean_prerelease ... ok
[INFO] [stdout] test registry::tests::test_wildcard_agreement_all_deprecated ... ok
[INFO] [stdout] test registry::tests::test_select_latest_matching_wildcard_skips_prerelease_at_front ... ok
[INFO] [stdout] test registry::tests::test_with_base_sets_workspace_declared_tier_and_empty_alternates ... ok
[INFO] [stdout] test registry::tests::test_wildcard_agreement_all_prerelease_none_deprecated ... ok
[INFO] [stdout] test registry::tests::test_wildcard_agreement_mixed_prerelease_and_stable ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 383 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 2.32s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests deps_npm
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test src/config.rs - config::NpmRegistryIndex (line 156) ... ok
[INFO] [stdout] test src/formatter.rs - formatter::compile_node_semver_range (line 435) ... ok
[INFO] [stdout] test src/lockfile.rs - lockfile::NpmLockParser (line 53) - compile ... ok
[INFO] [stdout] test src/config.rs - config::NpmParseContext::new (line 527) ... ok
[INFO] [stdout] test src/registry.rs - registry::NpmRegistry::get_versions (line 337) - compile ... ok
[INFO] [stdout] test src/config.rs - config::resolve (line 559) ... ok
[INFO] [stdout] test src/catalog.rs - catalog::load (line 634) ... ok
[INFO] [stdout] test src/parser.rs - parser::parse_package_json (line 82) - compile ... ok
[INFO] [stdout] test src/types.rs - types::NpmDependency (line 13) - compile ... ok
[INFO] [stdout] test src/registry.rs - registry::NpmRegistry::search (line 588) - compile ... ok
[INFO] [stdout] test src/types.rs - types::NpmDeprecation (line 134) ... ok
[INFO] [stdout] test src/types.rs - types::NpmDeprecation::from_registry_field (line 174) ... ok
[INFO] [stdout] test src/types.rs - types::NpmDependencySection (line 103) ... ok
[INFO] [stdout] test src/types.rs - types::NpmPackage (line 315) ... ok
[INFO] [stdout] test src/types.rs - types::NpmDeprecation::payload (line 212) ... ok
[INFO] [stdout] test src/types.rs - types::NpmDeprecation::is_deprecated (line 196) ... ok
[INFO] [stdout] test src/types.rs - types::NpmPackage::new (line 350) ... ok
[INFO] [stdout] test src/types.rs - types::NpmVersion (line 233) ... ok
[INFO] [stdout] test src/registry.rs - registry::NpmRegistry::get_latest_matching (line 536) - compile ... ok
[INFO] [stdout] test src/types.rs - types::NpmVersion::new (line 272) ... ok
[INFO] [stdout] test src/formatter.rs - formatter::parse_range_safe (line 230) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.30s; merged doctests compilation took 1.24s
[INFO] running `Command { std: "docker" "inspect" "7fcfc599eb4436b289b7c8e897f6b79e0d68a3484e40415626718ce78dee9b96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7fcfc599eb4436b289b7c8e897f6b79e0d68a3484e40415626718ce78dee9b96", kill_on_drop: false }`
[INFO] [stdout] 7fcfc599eb4436b289b7c8e897f6b79e0d68a3484e40415626718ce78dee9b96
