[INFO] fetching crate skill-veil-core 0.3.0...
[INFO] testing skill-veil-core-0.3.0 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate skill-veil-core 0.3.0 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate skill-veil-core 0.3.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate skill-veil-core 0.3.0
[INFO] tweaked toml for crates.io crate skill-veil-core 0.3.0 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate skill-veil-core 0.3.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 skill-veil-core 0.3.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 ascii_tree v0.1.1
[INFO] [stderr]   Downloaded yara-x-proto v1.17.0
[INFO] [stderr]   Downloaded zip v8.2.0
[INFO] [stderr]   Downloaded yara-x-macros v1.19.0
[INFO] [stderr]   Downloaded wasmtime-internal-versioned-export-macros v43.0.2
[INFO] [stderr]   Downloaded yara-x-parser v1.16.0
[INFO] [stderr]   Downloaded pulley-macros v43.0.2
[INFO] [stderr]   Downloaded cranelift-codegen-shared v0.130.2
[INFO] [stderr]   Downloaded cranelift-srcgen v0.130.2
[INFO] [stderr]   Downloaded wasmtime-internal-jit-icache-coherence v43.0.2
[INFO] [stderr]   Downloaded wasmtime-internal-jit-debug v43.0.2
[INFO] [stderr]   Downloaded cranelift-native v0.130.2
[INFO] [stderr]   Downloaded walrus-macro v0.26.0
[INFO] [stderr]   Downloaded wasmtime-internal-unwinder v43.0.2
[INFO] [stderr]   Downloaded wasmprinter v0.245.1
[INFO] [stderr]   Downloaded cranelift-bitset v0.130.2
[INFO] [stderr]   Downloaded cranelift-control v0.130.2
[INFO] [stderr]   Downloaded cranelift-assembler-x64 v0.130.2
[INFO] [stderr]   Downloaded cranelift-assembler-x64-meta v0.130.2
[INFO] [stderr]   Downloaded wasmtime-internal-fiber v43.0.2
[INFO] [stderr]   Downloaded wasmtime-internal-core v43.0.2
[INFO] [stderr]   Downloaded cranelift-entity v0.130.2
[INFO] [stderr]   Downloaded cranelift-bforest v0.130.2
[INFO] [stderr]   Downloaded pulley-interpreter v43.0.2
[INFO] [stderr]   Downloaded cranelift-frontend v0.130.2
[INFO] [stderr]   Downloaded wasm-encoder v0.245.1
[INFO] [stderr]   Downloaded cranelift-isle v0.130.2
[INFO] [stderr]   Downloaded cranelift-codegen-meta v0.130.2
[INFO] [stderr]   Downloaded regalloc2 v0.15.1
[INFO] [stderr]   Downloaded wasmtime-internal-cranelift v43.0.2
[INFO] [stderr]   Downloaded walrus v0.26.1
[INFO] [stderr]   Downloaded wasmtime-environ v43.0.2
[INFO] [stderr]   Downloaded wasmparser v0.245.1
[INFO] [stderr]   Downloaded psl v2.1.203
[INFO] [stderr]   Downloaded object v0.38.1
[INFO] [stderr]   Downloaded yara-x v1.16.0
[INFO] [stderr]   Downloaded wasmtime v43.0.2
[INFO] [stderr]   Downloaded dsa v0.6.3
[INFO] [stderr]   Downloaded cranelift-codegen v0.130.2
[INFO] [stderr]   Downloaded daachorse v3.0.2
[INFO] [stderr]   Downloaded md2 v0.10.2
[INFO] [stderr]   Downloaded intaglio v1.13.3
[INFO] [stderr]   Downloaded annotate-snippets v0.12.15
[INFO] [stderr]   Downloaded pulldown-cmark-escape v0.10.1
[INFO] [stderr]   Downloaded pulldown-cmark v0.10.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 919f230db84b60432ec0e5cbbda49749c651e6e45a3c9202410d40f9dd9dd344
[INFO] running `Command { std: "docker" "start" "919f230db84b60432ec0e5cbbda49749c651e6e45a3c9202410d40f9dd9dd344", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "919f230db84b60432ec0e5cbbda49749c651e6e45a3c9202410d40f9dd9dd344", 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" "919f230db84b60432ec0e5cbbda49749c651e6e45a3c9202410d40f9dd9dd344" "/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" "919f230db84b60432ec0e5cbbda49749c651e6e45a3c9202410d40f9dd9dd344", 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" "919f230db84b60432ec0e5cbbda49749c651e6e45a3c9202410d40f9dd9dd344" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.23
[INFO] [stderr]    Compiling tree-sitter-language v0.1.7
[INFO] [stderr]    Compiling zmij v1.0.20
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling pulldown-cmark v0.10.3
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling pulldown-cmark-escape v0.10.1
[INFO] [stderr]    Compiling streaming-iterator v0.1.9
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling tree-sitter-javascript v0.25.0
[INFO] [stderr]    Compiling tree-sitter-python v0.25.0
[INFO] [stderr]    Compiling tree-sitter-typescript v0.23.2
[INFO] [stderr]    Compiling tree-sitter v0.26.9
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling serde_yaml_ng v0.10.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling skill-veil-core v0.3.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 51s
[INFO] running `Command { std: "docker" "inspect" "919f230db84b60432ec0e5cbbda49749c651e6e45a3c9202410d40f9dd9dd344", 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" "919f230db84b60432ec0e5cbbda49749c651e6e45a3c9202410d40f9dd9dd344" "/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 libc v0.2.185
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling pulldown-cmark v0.10.3
[INFO] [stderr]    Compiling skill-veil-core v0.3.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 18s
[INFO] running `Command { std: "docker" "inspect" "919f230db84b60432ec0e5cbbda49749c651e6e45a3c9202410d40f9dd9dd344", 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" "919f230db84b60432ec0e5cbbda49749c651e6e45a3c9202410d40f9dd9dd344" "/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.23s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/skill_veil_core-89a49fc6fdf91be2)
[INFO] [stdout] 
[INFO] [stdout] running 1300 tests
[INFO] [stdout] test adapters::pattern_helpers::tests::default_matcher_returns_stable_singleton ... ok
[INFO] [stdout] test adapters::pulldown_parser::tests::parse_sections_lowercases_screaming_fence_language ... ok
[INFO] [stdout] test adapters::pattern_helpers::tests::try_compile_returns_pattern_error_for_invalid_input ... ok
[INFO] [stdout] test adapters::pulldown_parser::tests::adjacent_list_items_are_separated_in_section_content ... ok
[INFO] [stdout] test adapters::pulldown_parser::tests::adjacent_paragraphs_are_separated_in_section_content ... ok
[INFO] [stdout] test adapters::pulldown_parser::tests::parse_sections_lowercases_uppercase_fence_language ... ok
[INFO] [stdout] test adapters::pulldown_parser::tests::parse_sections_extracts_language_token_from_attributed_fence ... ok
[INFO] [stdout] test adapters::pulldown_parser::tests::parse_sections_preserves_lowercase_fence_language ... ok
[INFO] [stdout] test adapters::pulldown_parser::tests::parse_sections_preserves_punctuated_language_token ... ok
[INFO] [stdout] test adapters::pulldown_parser::tests::code_blocks_do_not_leak_into_section_content ... ok
[INFO] [stdout] test adapters::pulldown_parser::tests::parse_sections_emits_lowercased_sections_with_code_blocks ... ok
[INFO] [stdout] test adapters::pattern_helpers::tests::compile_patterns_compiles_every_input_in_order ... ok
[INFO] [stdout] test adapters::regex_matcher::tests::compile_returns_err_for_invalid_regex_syntax ... ok
[INFO] [stdout] test adapters::pattern_helpers::tests::lazy_pattern_macro_drives_all_three_operations ... ok
[INFO] [stdout] test adapters::pulldown_parser::tests::parse_sections_returns_empty_vec_for_empty_input ... ok
[INFO] [stdout] test adapters::regex_matcher::tests::repeated_calls_with_same_pattern_use_cached_regex ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_non_recursive_filters_by_glob_and_stays_in_dir ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_non_recursive_matches_non_utf8_filename_via_lossy_conversion ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::exists_returns_true_only_for_real_paths ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_non_recursive_returns_sorted_paths ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_recursive_descends_into_subdirectories ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_recursive_matches_non_utf8_filename_via_lossy_conversion ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_recursive_returns_sorted_paths ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_returns_utf8_filenames_unchanged ... ok
[INFO] [stdout] test adapters::regex_matcher::tests::is_match_and_captures_agree_with_find_matches ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_skips_hardlinks_in_both_listing_modes ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_skips_symlinks_in_non_recursive_walk ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_still_returns_path_not_found_for_missing_directory ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::matches_pattern_handles_canonical_glob_shapes ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::matches_pattern_returns_false_for_invalid_glob_silently ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::matches_pattern_supports_brace_alternation ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::matches_pattern_supports_middle_wildcard ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::metadata_and_is_file_reject_hardlinked_file ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::read_file_bytes_accepts_files_at_max_size ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::read_file_bytes_distinguishes_permission_denied_from_path_not_found ... FAILED
[INFO] [stdout] test adapters::std_filesystem::tests::read_file_bytes_refuses_files_larger_than_max ... ok
[INFO] [stdout] test adapters::regex_matcher::tests::find_matches_returns_every_hit_in_source_order ... ok
[INFO] [stdout] test adapters::regex_matcher::tests::cache_keys_each_unique_pattern_separately ... ok
[INFO] [stdout] test adapters::regex_matcher::tests::find_matches_returns_empty_when_pattern_absent ... ok
[INFO] [stdout] test adapters::regex_matcher::tests::compile_shares_state_across_three_operations ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_skips_symlinks_in_recursive_walk ... ok
[INFO] [stdout] test adapters::pulldown_parser::tests::parse_sections_preserves_empty_fence_as_none ... ok
[INFO] [stdout] test adapters::pattern_helpers::tests::try_compile_returns_compiled_pattern_for_valid_input ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::read_file_bytes_rejects_hardlinked_file ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::read_file_bytes_still_returns_path_not_found_for_missing_file ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::read_file_bytes_rejects_symlink_to_regular_file ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::js_bracket_member_spawn_fires ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::js_child_process_spawn_fires ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::js_dynamic_require_fires ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::read_file_bytes_returns_raw_contents_through_port ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::walk_files_returns_sorted_paths ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::read_file_bytes_returns_path_not_found_for_missing_path ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::walk_files_skips_hardlinked_entries ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::js_computed_variable_index_does_not_fire ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::js_global_scope_indirect_eval_fires ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::js_new_vm_script_fires ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::js_static_require_does_not_fire ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::js_new_function_fires ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::js_regexp_exec_does_not_fire_process_execution ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::python_arithmetic_into_eval_is_not_a_string_flow ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::python_dynamic_import_fires ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::python_benign_code_produces_nothing ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::python_os_system_fires_process_execution ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::python_mentions_in_string_do_not_fire ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::python_obfuscated_builtin_access_fires_where_regex_cannot ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::python_plain_eval_fires ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::python_subprocess_run_fires_process_execution ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::unparseable_input_fails_open ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::python_string_with_variable_into_eval_flags_flow ... ok
[INFO] [stdout] test adapters::walk_helpers::tests::is_skipped_dir_matches_skip_list_entries_case_insensitively ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::python_string_concat_into_eval_flags_flow ... ok
[INFO] [stdout] test adapters::walk_helpers::tests::is_skipped_dir_still_prunes_nested_skip_dir ... ok
[INFO] [stdout] test analyzer::binary_magic::tests::detect_binary_disguise_kind_flags_pe_with_nonclassic_dos_stub ... ok
[INFO] [stdout] test adapters::walk_helpers::tests::is_skipped_dir_does_not_prune_unrelated_directories ... ok
[INFO] [stdout] test analyzer::binary_magic::tests::detect_binary_disguise_kind_covers_all_magics ... ok
[INFO] [stdout] test analyzer::binary_magic::tests::detect_binary_disguise_kind_ignores_honest_zip_extension ... ok
[INFO] [stdout] test analyzer::assessment::tests::operational_section_detection_is_parse_path_independent ... ok
[INFO] [stdout] test analyzer::binary_magic::tests::detect_binary_disguise_kind_recognizes_markdown_extension_variants ... ok
[INFO] [stdout] test analyzer::binary_magic::tests::detect_binary_disguise_kind_returns_none_for_real_markdown ... ok
[INFO] [stdout] test analyzer::document::tests::has_code_language_returns_false_for_unknown_lang ... ok
[INFO] [stdout] test adapters::walk_helpers::tests::is_skipped_dir_never_prunes_the_walk_root ... ok
[INFO] [stdout] test analyzer::binary_magic::tests::detect_binary_disguise_kind_flags_zip_named_md ... ok
[INFO] [stdout] test analyzer::document::tests::has_code_language_matches_uppercase_fence_when_caller_uses_lowercase ... ok
[INFO] [stdout] test analyzer::references::tests::extract_references_accepts_legitimate_relative_paths ... ok
[INFO] [stdout] test analyzer::references::tests::extract_references_command_directive_does_not_truncate_compound_extension ... ok
[INFO] [stdout] test analyzer::references::tests::extract_references_command_directive_resolves_real_scripts ... ok
[INFO] [stdout] test analyzer::references::tests::extract_references_caps_and_dedups ... ok
[INFO] [stdout] test analyzer::references::tests::extract_references_rejects_parent_traversal ... ok
[INFO] [stdout] test adapters::pattern_helpers::tests::compile_patterns_panics_on_invalid_literal - should panic ... ok
[INFO] [stdout] test analyzer::references::tests::extract_references_handles_link_titles_brackets_and_query ... ok
[INFO] [stdout] test analyzer::references::tests::extract_references_rejects_url_link_targets ... ok
[INFO] [stdout] test analyzer::references::tests::extract_references_strips_trailing_punctuation_and_normalises_dot_slash ... ok
[INFO] [stdout] test adapters::regex_matcher::tests::cached_recovers_from_poisoned_mutex ... ok
[INFO] [stdout] test analyzer::references::tests::has_url_scheme_classifies_canonical_inputs ... ok
[INFO] [stdout] test analyzer::tests::test_assess_artifact_confirms_named_skill_with_structure ... ok
[INFO] [stdout] test analyzer::tests::test_assess_artifact_detects_heuristic_instruction_without_standard_name ... ok
[INFO] [stdout] test analyzer::references::tests::extract_references_rejects_absolute_link_targets ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_recursive_continues_past_unreadable_child ... FAILED
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_recursive_distinguishes_permission_denied_from_path_not_found ... FAILED
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_non_recursive_distinguishes_permission_denied_from_path_not_found ... FAILED
[INFO] [stdout] test analyzer::tests::test_infer_extension_kind_covers_phase8_targets ... ok
[INFO] [stdout] test analyzer::tests::test_extract_code_blocks ... ok
[INFO] [stdout] test artifact_graph::tests::add_edge_dedupes_on_triple_and_upgrades_endpoint_annotation ... ok
[INFO] [stdout] test artifact_graph::tests::add_node_does_not_demote_kind ... ok
[INFO] [stdout] test artifact_graph::tests::add_node_promotes_to_more_specific_kind ... ok
[INFO] [stdout] test artifact_taint::patterns::tests::local_endpoint_matching_uses_authority_host ... ok
[INFO] [stdout] test artifact_graph::tests::add_node_is_idempotent_for_same_kind ... ok
[INFO] [stdout] test artifact_graph::tests::add_node_keeps_first_within_same_specificity_tier ... ok
[INFO] [stdout] test artifact_taint::patterns::tests::looks_like_secret_target_ignores_generic_and_lookalike_keys ... ok
[INFO] [stdout] test artifact_taint::patterns::tests::looks_like_secret_target_matches_llm_provider_keys ... ok
[INFO] [stdout] test artifact_taint::patterns::tests::registry_matching_uses_authority_host ... ok
[INFO] [stdout] test artifact_taint::patterns::tests::software_distribution_urls_are_not_exfil_sinks ... ok
[INFO] [stdout] test artifact_taint::patterns::tests::has_word_boundary_rejects_adjacent_non_ascii_letter ... ok
[INFO] [stdout] test artifact_graph::tests::add_edge_keeps_different_relations_distinct ... ok
[INFO] [stdout] test artifact_taint::patterns::tests::distribution_carveout_preserves_exfil_recall ... ok
[INFO] [stdout] test artifact_taint::summarization::tests::is_external_download_edge_filters_registry_and_documentation_endpoints ... ok
[INFO] [stdout] test artifact_taint::summarization::tests::source_summary_skips_registry_endpoint_when_choosing_match_value ... ok
[INFO] [stdout] test artifact_taint::tests::corroborated_malice_suppresses_taint_downgrade ... ok
[INFO] [stdout] test artifact_taint::patterns::tests::has_word_boundary_rejects_ascii_alphanumeric_flanks ... ok
[INFO] [stdout] test artifact_taint::patterns::tests::looks_like_external_sink_rejects_webhook_documentation_urls ... ok
[INFO] [stdout] test artifact_taint::tests::credential_family_does_not_corroborate_taint ... ok
[INFO] [stdout] test analyzer::tests::test_parse_simple_skill ... ok
[INFO] [stdout] test artifact_taint::taint_rules::tests::default_rules_yaml_parses_cleanly ... ok
[INFO] [stdout] test artifact_taint::taint_rules::tests::group_rules_preserves_every_default_rule ... ok
[INFO] [stdout] test artifact_graph::tests::add_edge_endpoint_priority_order_preserves_highest ... ok
[INFO] [stdout] test artifact_taint::tests::cross_node_unrelated_host_keeps_block ... ok
[INFO] [stdout] test artifact_taint::tests::documentation_only_network_sink_does_not_trigger_secret_taint ... ok
[INFO] [stdout] test artifact_taint::tests::mixed_trusted_and_untrusted_sinks_keep_block ... ok
[INFO] [stdout] test artifact_taint::tests::taint_flags_unreserved_download_to_exec ... ok
[INFO] [stdout] test artifact_taint::tests::secret_to_trusted_api_host_is_downgraded ... ok
[INFO] [stdout] test artifact_taint::tests::documentation_sink_does_not_defeat_trust_downgrade ... ok
[INFO] [stdout] test artifact_taint::tests::taint_detects_parent_child_secret_to_network ... ok
[INFO] [stdout] test artifact_taint::tests::taint_flags_transient_identity_to_network ... ok
[INFO] [stdout] test artifact_taint::tests::taint_ignores_registry_download_to_exec ... ok
[INFO] [stdout] test artifact_taint::tests::trusted_host_in_path_keeps_secret_taint_blocking ... ok
[INFO] [stdout] test artifact_taint::tests::taint_requires_observed_external_network_sink ... ok
[INFO] [stdout] test artifact_taint::patterns::tests::has_word_boundary_accepts_ascii_separators_and_bare_keyword ... ok
[INFO] [stdout] test artifact_taint::tests::cross_node_taint_finding_attributes_artifact_and_match_to_source ... ok
[INFO] [stdout] test artifact_taint::tests::cross_node_first_party_credential_is_downgraded ... ok
[INFO] [stdout] test artifact_taint::tests::unreserved_network_sink_still_triggers_secret_taint ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::allowlist_includes_categorical_non_exfil_destinations ... ok
[INFO] [stdout] test artifact_taint::tests::taint_ignores_documentation_download_to_exec ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::host_matches_secret_owner_accepts_first_party_credential ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::documentation_hosts_recognised_as_reserved ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::host_matches_secret_owner_rejects_cross_party_exfil ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::host_matches_secret_owner_rejects_known_host_in_path_userinfo_shape ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::ipv4_literal_never_trusted ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::malformed_input_never_matches ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::registrable_label_extracts_owning_label ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::literal_entry_matches_exact_host_only ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::matching_is_case_insensitive ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::schemeless_and_port_forms_parse ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::js_eval_fires ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::substring_attack_does_not_match ... ok
[INFO] [stdout] test artifact_taint::utils::tests::build_sibling_clusters_excludes_non_structural_edges ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::trusted_host_check_rejects_known_host_in_path_userinfo_shape ... ok
[INFO] [stdout] test artifact_taint::utils::tests::build_sibling_clusters_includes_loads_and_mounts ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::allowlist_includes_major_llm_providers ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::wildcard_subdomain_match_requires_dot_separator ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::documentation_host_check_does_not_overmatch ... ok
[INFO] [stdout] test artifact_taint::tests::identity_to_trusted_api_host_is_downgraded ... ok
[INFO] [stdout] test adapters::regex_matcher::tests::concurrent_matchers_share_one_compile_across_threads ... ok
[INFO] [stdout] test benchmark::calibration::tests::calibrate_confidence_value_returns_nan_for_empty_bucket ... ok
[INFO] [stdout] test artifact_taint::utils::tests::merge_overlapping_clusters_merges_transitively ... ok
[INFO] [stdout] test benchmark::calibration::tests::calibrate_confidence_value_finite_for_non_empty_bucket ... ok
[INFO] [stdout] test artifact_taint::trusted_hosts::tests::host_matches_secret_owner_ignores_spoofed_subdomain_label ... ok
[INFO] [stdout] test benchmark::evaluation::tests::compute_metrics_returns_nan_accuracy_for_empty_corpus ... ok
[INFO] [stdout] test benchmark::evaluation::tests::compute_metrics_keeps_zero_for_per_class_rates_on_empty_corpus ... ok
[INFO] [stdout] test benchmark::evaluation::tests::compute_metrics_unchanged_for_non_empty_input ... ok
[INFO] [stdout] test benchmark::calibration::tests::test_calibrate_confidence_groups_by_evidence ... ok
[INFO] [stdout] test adapters::regex_matcher::tests::compile_rejects_oversized_patterns ... ok
[INFO] [stdout] test artifact_taint::utils::tests::merge_overlapping_clusters_preserves_disjoint ... ok
[INFO] [stdout] test benchmark::thresholds::tests::test_recommend_thresholds_can_reduce_false_positive_rate ... ok
[INFO] [stdout] test benchmark::gold::tests::minimal_manifest_deserialises_additively ... ok
[INFO] [stdout] test benchmark::evaluation::tests::evaluate_corpus_does_not_call_path_is_dir_directly ... ok
[INFO] [stdout] test benchmark::gold::tests::derive_disputed_from_provenance ... ok
[INFO] [stdout] test benchmark::gold::tests::disputed_sample_excluded_until_reviewed ... ok
[INFO] [stdout] test benchmark::gold::tests::reviewed_dispute_is_admitted ... ok
[INFO] [stdout] test benchmark::gold::tests::undisputed_sample_is_admitted ... ok
[INFO] [stdout] test deceptive_docs::compile_time_pattern_tests::all_claim_patterns_compile ... ok
[INFO] [stdout] test deceptive_docs::tests::contradiction_in_markdown_only_is_ignored ... ok
[INFO] [stdout] test deceptive_docs::tests::finding_keeps_artifact_path_and_line_anchored_to_supporting_artifact ... ok
[INFO] [stdout] test deceptive_docs::tests::encrypted_only_fires_on_plaintext_write_without_crypto ... ok
[INFO] [stdout] test deceptive_docs::tests::encrypted_only_contradiction_on_same_line_matches ... ok
[INFO] [stdout] test deceptive_docs::tests::encrypted_only_suppressed_when_code_encrypts ... ok
[INFO] [stdout] test deceptive_docs::tests::encrypted_only_contradiction_does_not_cross_newlines ... ok
[INFO] [stdout] test deceptive_docs::tests::audited_safe_amplifies_other_contradictions_to_critical ... ok
[INFO] [stdout] test deceptive_docs::tests::no_network_contradiction_fires_on_real_socket_connect_call ... ok
[INFO] [stdout] test deceptive_docs::tests::no_network_claim_with_post_call_emits_finding ... ok
[INFO] [stdout] test deceptive_docs::tests::no_network_claim_with_clean_script_emits_nothing ... ok
[INFO] [stdout] test deceptive_docs::tests::no_network_contradiction_skips_prose_mention_of_requests_post ... ok
[INFO] [stdout] test deceptive_docs::tests::no_claim_means_no_finding_even_with_network ... ok
[INFO] [stdout] test dependency_inventory::tests::cargo_collects_string_and_table_specs ... ok
[INFO] [stdout] test dependency_inventory::tests::dispatch_by_file_name_is_case_insensitive ... ok
[INFO] [stdout] test dependency_inventory::tests::malformed_manifest_does_not_panic ... ok
[INFO] [stdout] test deceptive_docs::tests::no_subprocess_claim_with_real_call_fires ... ok
[INFO] [stdout] test deceptive_docs::tests::no_network_contradiction_still_fires_on_real_call ... ok
[INFO] [stdout] test deceptive_docs::tests::no_subprocess_claim_skips_prose_mention ... ok
[INFO] [stdout] test dependency_inventory::tests::cargo_package_rename_inventories_real_crate_not_local_key ... ok
[INFO] [stdout] test dependency_inventory::tests::npm_wildcard_and_partial_specs_are_not_exact_pins ... ok
[INFO] [stdout] test dependency_inventory::tests::osv_ecosystem_names_match_api ... ok
[INFO] [stdout] test deceptive_docs::tests::no_subprocess_claim_with_subprocess_run_emits_finding ... ok
[INFO] [stdout] test dependency_inventory::tests::requirements_collects_pinned_and_unpinned ... ok
[INFO] [stdout] test dependency_inventory::tests::package_json_resolves_npm_alias_to_installed_target ... ok
[INFO] [stdout] test dependency_inventory::tests::pypi_double_equals_partial_is_exact_but_wildcard_is_not ... ok
[INFO] [stdout] test dependency_inventory::tests::pyproject_collects_pep621_and_poetry ... ok
[INFO] [stdout] test dependency_inventory::tests::package_json_collects_all_dependency_sections ... ok
[INFO] [stdout] test dependency_inventory::tests::unknown_manifest_yields_nothing ... ok
[INFO] [stdout] test detectors::bytecode::tests::marker_in_header_region_is_not_scanned ... ok
[INFO] [stdout] test dependency_inventory::tests::npm_alias_target_parses_scoped_and_versionless ... ok
[INFO] [stdout] test detectors::bytecode::tests::sourceless_and_suspicious_stack ... ok
[INFO] [stdout] test detectors::bytecode::tests::suspicious_body_marker_fires_even_with_source ... ok
[INFO] [stdout] test dependency_inventory::tests::requirements_handles_extras_and_markers ... ok
[INFO] [stdout] test dependency_inventory::tests::requirements_url_and_egg_forms_still_inventory_the_name ... ok
[INFO] [stdout] test detectors::bytecode::tests::invalid_header_fires_and_short_circuits ... ok
[INFO] [stdout] test detectors::bytecode::tests::is_python_bytecode_matches_extensions ... ok
[INFO] [stdout] test detectors::bytecode::tests::realistic_bare_markers_fire_in_marshalled_body ... ok
[INFO] [stdout] test detectors::bytecode::tests::too_short_is_invalid_header ... ok
[INFO] [stdout] test detectors::instructions::composite::tests::composite_families_have_unique_rule_ids ... ok
[INFO] [stdout] test detectors::bytecode::tests::valid_header_without_source_is_sourceless ... ok
[INFO] [stdout] test detectors::instructions::composite::tests::composite_family_count_is_pinned ... ok
[INFO] [stdout] test detectors::instructions::composite::tests::every_family_min_signals_between_two_and_n ... ok
[INFO] [stdout] test detectors::bytecode::tests::valid_header_with_source_and_benign_body_is_clean ... ok
[INFO] [stdout] test dependency_inventory::tests::cargo_partial_version_is_not_an_exact_pin ... ok
[INFO] [stdout] test deceptive_docs::tests::no_network_contradiction_skips_prose_mention_of_socket_connect ... ok
[INFO] [stdout] test detectors::instructions::dropper_delivery::tests::dropper_match_value_is_byte_identical_to_pre_refactor ... ok
[INFO] [stdout] test detectors::instructions::composite_families::tests::c2_fires_on_ipport_plus_cadence ... ok
[INFO] [stdout] test detectors::instructions::composite_families::tests::c2_single_signal_does_not_fire ... ok
[INFO] [stdout] test detectors::instructions::dropper_delivery::tests::fires_on_fake_prereq_plus_paste_site ... ok
[INFO] [stdout] test detectors::instructions::dropper_delivery::tests::fires_on_fake_prereq_plus_password_archive ... ok
[INFO] [stdout] test detectors::instructions::dropper_delivery::tests::unrelated_document_does_not_fire ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::documentation_url_helper_does_not_overmatch ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::doc_host_does_not_mask_real_fetch_target ... ok
[INFO] [stdout] test detectors::instructions::composite_families::tests::drainer_fires_on_seed_plus_approve_sink ... ok
[INFO] [stdout] test detectors::instructions::composite_families::tests::drainer_single_signal_does_not_fire ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::does_not_fire_on_execute_only ... ok
[INFO] [stdout] test detectors::instructions::dropper_delivery::tests::single_signal_does_not_fire ... ok
[INFO] [stdout] test detectors::instructions::composite_families::tests::drainer_fires_on_seed_plus_connect ... ok
[INFO] [stdout] test detectors::instructions::composite_families::tests::unrelated_document_does_not_fire ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::fires_on_elytro_style_fetch_then_follow_instructions ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::fires_on_case_variant_fetch_url_scheme ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::documentation_url_helper_recognises_rfc_reserved_and_loopback ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::fires_on_ollama_seo_auditor_split_sections ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::first_fetch_with_url_does_not_panic_on_non_ascii_boundaries ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::does_not_fire_on_non_http_scheme_lookalike ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::does_not_fire_on_same_line_fetch_and_exec ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::setup_endpoints_downgrade_strict_to_loose ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::strict_bait_still_emits_critical_block ... ok
[INFO] [stdout] test detectors::instructions::composite_families::tests::c2_fires_on_ipport_plus_fetch_exec ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::strict_preempts_loose_when_both_present ... ok
[INFO] [stdout] test detectors::instructions::signals::tests::re_oauth_does_not_match_scope_in_prose ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::loose_bait_alone_without_cross_section_does_not_fire ... ok
[INFO] [stdout] test detectors::instructions::signals::tests::re_oauth_still_matches_genuine_oauth_signals ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::setup_fetch_with_runtime_execute_keeps_strict_tier ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::loose_bait_with_json_url_emits_medium_severity ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::does_not_fire_when_url_is_not_instruction_bait ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_package_lock_rejects_resolved_key_substrings ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_cargo_lock_detects_git_ssh_sources ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_package_lock_detects_known_registry_host_in_path ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_cargo_lock_keeps_https_git_source_match_value ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_cargo_lock_skips_local_git_file_sources ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_pipfile_lock_detects_git_ssh_package_source ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_pipfile_lock_detects_scp_like_git_package_source ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_pipfile_lock_skips_default_pypi_source ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_uv_lock_detects_case_variant_inline_table_git_sources ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_poetry_lock_skips_local_file_source_table ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_pipfile_lock_skips_local_git_package_source ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_poetry_lock_detects_git_ssh_source_table ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_pipfile_lock_detects_nonstandard_index_source ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_uv_lock_skips_registry_sources_without_git_key ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_uv_lock_detects_inline_table_git_sources ... ok
[INFO] [stdout] test detectors::lockfiles::tests::lockfile_graph_inference_accepts_cargo_git_ssh_sources ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_uv_lock_skips_local_git_file_sources ... ok
[INFO] [stdout] test detectors::lockfiles::tests::lockfile_analyzers_reject_non_http_scheme_lookalikes ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_uv_lock_detects_ssh_inline_table_git_sources ... ok
[INFO] [stdout] test detectors::lockfiles::tests::lockfile_analyzers_detect_case_variant_remote_url_sources ... ok
[INFO] [stdout] test detectors::lockfiles::tests::lockfile_graph_inference_rejects_local_cargo_git_file_sources ... ok
[INFO] [stdout] test detectors::lockfiles::tests::lockfile_graph_inference_accepts_dotless_host_git_path ... ok
[INFO] [stdout] test detectors::lockfiles::tests::lockfile_graph_inference_accepts_remote_urls ... ok
[INFO] [stdout] test detectors::lockfiles::tests::lockfile_graph_inference_accepts_scp_like_git_sources ... ok
[INFO] [stdout] test detectors::lockfiles::tests::lockfile_graph_inference_rejects_local_tarball_entries ... ok
[INFO] [stdout] test detectors::lockfiles::tests::lockfile_graph_inference_rejects_email_like_metadata ... ok
[INFO] [stdout] test detectors::manifests::build::tests::analyze_makefile_detects_alternate_downloaders ... ok
[INFO] [stdout] test detectors::manifests::build::tests::analyze_makefile_detects_pipe_joined_curl ... ok
[INFO] [stdout] test detectors::manifests::build::tests::analyze_makefile_detects_curl_with_trailing_comment ... ok
[INFO] [stdout] test detectors::lockfiles::tests::lockfile_graph_inference_rejects_yarn_berry_resolution_descriptors ... ok
[INFO] [stdout] test adapters::std_filesystem::tests::list_files_non_recursive_star_handles_many_siblings ... ok
[INFO] [stdout] test detectors::manifests::build::tests::analyze_makefile_rejects_remote_download_substrings ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_capabilities_detects_sh_recipe ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_capabilities_rejects_echoed_interpreter_argument ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_capabilities_skips_bash_in_inline_comment ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_capabilities_skips_finish_step ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_capabilities_skips_publish_recipe ... ok
[INFO] [stdout] test detectors::manifests::build::tests::analyze_makefile_rejects_fetch_subtarget_without_url ... ok
[INFO] [stdout] test detectors::manifests::build::tests::analyze_makefile_ignores_curl_in_inline_comment ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_capabilities_detects_prefixed_and_absolute_download_commands ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_relations_detects_pipe_joined_download_command ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_relations_detects_sh_recipe ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_relations_rejects_echoed_interpreter_argument ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_capabilities_skips_wget_in_inline_comment ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_relations_skips_curl_in_inline_comment ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_capabilities_detects_bash_recipe ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_relations_skips_publish_recipe ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_capabilities_detects_prefixed_bash_recipe ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_relations_detects_prefixed_bash_recipe ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::analyze_docker_compose_flags_untagged_image_as_latest ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::analyze_docker_compose_detects_exact_host_alias_destination ... ok
[INFO] [stdout] test detectors::manifests::build::tests::makefile_capabilities_skips_pure_comment_lines ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::analyze_docker_compose_keeps_digest_pinned_image_clean ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::analyze_docker_compose_emits_parse_failure_finding_for_invalid_yaml ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_cap_add_does_not_fire_on_benign_capabilities ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::analyze_docker_compose_skips_host_alias_lookalike_destinations ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_capabilities_detect_long_syntax_etc_mount ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_capabilities_skip_long_syntax_named_volume ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_env_file_finding_skips_null_value ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_env_file_finding_uses_clean_match_value_for_sequence ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_env_file_finding_uses_clean_match_value_for_string ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_host_device_fires_for_raw_disk_and_memory ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::analyze_docker_compose_does_not_emit_parse_failure_for_valid_yaml ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_host_device_skips_benign_gpu ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_host_filesystem_capability_fires_for_etc_mount ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_host_filesystem_capability_skips_relative_project_volume ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_host_mount_finding_skips_relative_project_volume ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_host_namespace_fires_finding_and_capability ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_host_namespace_skips_service_target ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_network_surface_accepts_port_mapping ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_network_surface_detects_host_network_mode ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_cap_add_sys_admin_fires_finding_and_capability ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_env_file_finding_skips_empty_sequence ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_relations_mount_sensitive_host_volume ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_network_surface_skips_empty_ports ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_relations_skip_relative_project_volume ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_security_opt_hardening_does_not_fire ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_unconfined_security_opt_fires ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_host_filesystem_capability_fires_for_docker_socket ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::analyze_docker_compose_detects_long_syntax_docker_socket_mount ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::analyze_dockerfile_keeps_scratch_and_digest_pins_clean ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_relations_accept_real_env_file ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_cap_add_accepts_cap_prefixed_form ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_capabilities_detects_python_urllib_download ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_capabilities_accepts_tab_after_instruction_keyword ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_capabilities_detects_fetch_and_netcat ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_capabilities_detects_quoted_and_absolute_download_commands ... ok
[INFO] [stdout] test detectors::manifests::container::compose::tests::docker_compose_relations_skip_empty_env_file ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_capabilities_detects_tab_separated_multitoken_downloads ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_capabilities_detects_real_curl_with_trailing_comment ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::analyze_dockerfile_flags_untagged_base_image ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_capabilities_does_not_overmatch_substrings_of_nc ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_capabilities_rejects_multitoken_command_substrings ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_capabilities_rejects_remote_add_instruction_substrings ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_capabilities_skips_curl_in_inline_comment ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_detects_real_curl_with_trailing_comment ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_does_not_overmatch_substrings ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_records_download_edge_for_python_urllib ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_records_download_edge_for_quoted_and_absolute_commands ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_records_download_edge_for_remote_add_url ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_records_download_edge_for_tab_separated_multitoken_downloads ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_records_download_edge_for_tab_separated_remote_add_url ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_rejects_copy_url_lookalike ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_rejects_iwr_substrings ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_rejects_remote_add_instruction_substrings ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_skips_curl_in_inline_comment ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_capabilities_detects_remote_add_url ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_extracts_from_image_token ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_capabilities_rejects_iwr_substrings ... ok
[INFO] [stdout] test detectors::manifests::container::tests::image_uses_mutable_latest_accepts_implicit_latest ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_records_download_edge_for_alternate_tools ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_capabilities_detects_tab_separated_remote_add_url ... ok
[INFO] [stdout] test detectors::manifests::container::volumes::tests::is_sensitive_host_volume_flags_bare_anonymous_docker_socket_mount ... ok
[INFO] [stdout] test detectors::manifests::container::volumes::tests::is_sensitive_host_volume_rejects_host_alias_lookalikes ... ok
[INFO] [stdout] test detectors::manifests::container::volumes::tests::is_sensitive_host_volume_rejects_root_stem_lookalikes_bare ... ok
[INFO] [stdout] test detectors::manifests::container::dockerfile::tests::dockerfile_relations_still_records_curl_and_wget ... ok
[INFO] [stdout] test detectors::manifests::container::volumes::tests::long_syntax_bind_mount_of_docker_socket_is_classified_as_sensitive ... ok
[INFO] [stdout] test detectors::manifests::container::volumes::tests::matches_root_path_anchors_at_path_or_colon_boundary ... ok
[INFO] [stdout] test detectors::manifests::container::tests::image_uses_mutable_latest_distinguishes_tags_and_digests ... ok
[INFO] [stdout] test detectors::manifests::container::volumes::tests::volume_entry_string_returns_string_form_for_short_syntax ... ok
[INFO] [stdout] test detectors::manifests::container::volumes::tests::volume_entry_string_accepts_long_syntax_without_explicit_type ... ok
[INFO] [stdout] test detectors::manifests::container::volumes::tests::destination_is_host_alias_requires_exact_or_subpath_boundary ... ok
[INFO] [stdout] test detectors::manifests::container::volumes::tests::normalise_volume_for_classification_only_rewrites_absolute_source ... ok
[INFO] [stdout] test detectors::manifests::container::volumes::tests::is_sensitive_host_volume_flags_lexically_aliased_anonymous_socket_mount ... ok
[INFO] [stdout] test detectors::manifests::javascript::npmrc::tests::analyze_npmrc_detects_legacy_basic_auth_credentials ... ok
[INFO] [stdout] test detectors::manifests::container::volumes::tests::volume_entry_string_synthesises_source_target_for_long_bind_syntax ... ok
[INFO] [stdout] test detectors::manifests::javascript::npmrc::tests::analyze_npmrc_ignores_non_credential_auth_keys ... ok
[INFO] [stdout] test detectors::manifests::javascript::npmrc::tests::analyze_npmrc_redacts_token_value_in_match_value ... ok
[INFO] [stdout] test detectors::manifests::container::volumes::tests::volume_entry_string_skips_non_bind_long_syntax ... ok
[INFO] [stdout] test detectors::manifests::javascript::npmrc::tests::npmrc_capabilities_skip_authtoken_in_semicolon_comment ... ok
[INFO] [stdout] test detectors::manifests::javascript::npmrc::tests::npmrc_registry_parsing_ignores_default_registry ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_package_lock_ignores_unrelated_urls_when_resolved_is_local ... ok
[INFO] [stdout] test detectors::lockfiles::tests::analyze_pipfile_lock_rejects_git_value_without_scp_path ... ok
[INFO] [stdout] test detectors::manifests::javascript::npmrc::tests::npmrc_detects_scoped_registry_with_spacing ... ok
[INFO] [stdout] test detectors::manifests::javascript::npmrc::tests::npmrc_registry_parsing_rejects_default_registry_lookalikes ... ok
[INFO] [stdout] test detectors::manifests::javascript::npmrc::tests::npmrc_registry_parsing_rejects_lookalike_keys_and_schemes ... ok
[INFO] [stdout] test detectors::manifests::javascript::npmrc::tests::redact_npmrc_auth_token_preserves_registry_prefix ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::analyze_package_json_detects_prepare_hook_with_curl ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::analyze_package_json_does_not_emit_parse_failure_for_valid_json ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::analyze_package_json_emits_parse_failure_finding_for_invalid_json ... ok
[INFO] [stdout] test detectors::manifests::javascript::npmrc::tests::analyze_npmrc_strips_inline_semicolon_comment_in_match_value ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::analyze_package_json_flags_dist_tag_as_unpinned ... ok
[INFO] [stdout] test detectors::manifests::javascript::npmrc::tests::analyze_npmrc_treats_semicolon_lines_as_comments ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::analyze_package_json_flags_empty_version_as_unpinned ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::analyze_package_json_keeps_exact_semver_pin_clean ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::analyze_package_json_marks_boundary_download_hook_risky ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::analyze_package_json_marks_tab_separated_exec_hook_risky ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::analyze_package_json_rejects_exec_hook_argument_mentions ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::analyze_package_json_rejects_exec_hook_command_substrings ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_bin_capability_skips_empty_object ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::is_unpinned_npm_version_classifies_all_floating_shapes ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_bin_capability_skips_null_value ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_bin_capability_fires_for_non_empty_object ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_bin_capability_skips_empty_string ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_bin_finding_skips_empty_object_and_fires_for_real_value ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_capabilities_accepts_real_bin_path ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_capabilities_adds_network_for_fetching_install_hook ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_capabilities_fires_for_prepare_and_prepublish_hooks ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_capabilities_rejects_download_command_substrings ... ok
[INFO] [stdout] test detectors::instructions::intent_policy::tests::does_not_fire_when_fetch_url_is_documentation_host ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_capabilities_rejects_whitespace_only_bin ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_capabilities_skips_network_for_plain_install_hook ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_relations_records_download_urls_for_fetching_install_hook ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::is_unpinned_npm_version_does_not_classify_exact_pins ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_relations_records_remote_resource_for_boundary_download_hook ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_bin_capability_fires_for_string_path ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_relations_skips_download_for_plain_install_hook ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_capabilities_adds_network_for_boundary_download_hook ... ok
[INFO] [stdout] test detectors::manifests::javascript::package_json::tests::package_json_relations_rejects_download_command_substrings ... ok
[INFO] [stdout] test detectors::manifests::python::pip_conf::tests::pip_conf_accepts_exact_directive_keys ... ok
[INFO] [stdout] test detectors::manifests::python::pip_conf::tests::pip_conf_capabilities_ignores_client_cert_inside_comment ... ok
[INFO] [stdout] test detectors::manifests::python::pip_conf::tests::pip_conf_flags_index_url_replacement ... ok
[INFO] [stdout] test detectors::manifests::python::pip_conf::tests::pip_conf_index_url_lookalike_does_not_fire ... ok
[INFO] [stdout] test detectors::manifests::python::pip_conf::tests::pip_conf_rejects_lookalike_directive_keys ... ok
[INFO] [stdout] test detectors::manifests::python::pip_conf::tests::analyze_pip_conf_ignores_trusted_host_inside_comment ... ok
[INFO] [stdout] test detectors::manifests::python::pip_conf::tests::pip_conf_capabilities_fires_for_uncommented_extra_index_url ... ok
[INFO] [stdout] test detectors::manifests::python::pip_conf::tests::analyze_pip_conf_strips_inline_semicolon_comment_in_match_value ... ok
[INFO] [stdout] test detectors::manifests::python::pip_conf::tests::analyze_pip_conf_treats_semicolon_comments_as_comments ... ok
[INFO] [stdout] test detectors::manifests::python::pyproject::tests::analyze_pyproject_does_not_emit_parse_failure_for_valid_toml ... ok
[INFO] [stdout] test detectors::manifests::python::pip_conf::tests::pip_conf_capabilities_ignores_extra_index_url_inside_comment ... ok
[INFO] [stdout] test detectors::manifests::python::pyproject::tests::analyze_pyproject_flags_poetry_unpinned_dependencies ... ok
[INFO] [stdout] test detectors::manifests::python::pyproject::tests::analyze_pyproject_flags_unpinned_pep621_dep_with_env_marker ... ok
[INFO] [stdout] test detectors::manifests::python::pyproject::tests::analyze_pyproject_keeps_exact_poetry_versions_clean ... ok
[INFO] [stdout] test detectors::manifests::python::pip_conf::tests::pip_conf_relations_ignores_commented_index_url ... ok
[INFO] [stdout] test detectors::manifests::python::pyproject::tests::analyze_pyproject_emits_parse_failure_finding_for_invalid_toml ... ok
[INFO] [stdout] test detectors::manifests::python::pip_conf::tests::analyze_pip_conf_ignores_extra_index_url_inside_comment ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::analyze_requirements_txt_directive_filter_keeps_unpinned_dependency ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::analyze_requirements_txt_does_not_treat_comment_pin_as_pin ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::analyze_requirements_txt_flags_httpx_as_unpinned ... ok
[INFO] [stdout] test detectors::manifests::python::pyproject::tests::pyproject_toml_capabilities_collapses_interleaved_capabilities ... ok
[INFO] [stdout] test detectors::manifests::python::pyproject::tests::pyproject_toml_capabilities_detects_compact_direct_reference_with_extras ... ok
[INFO] [stdout] test detectors::manifests::python::pyproject::tests::pyproject_toml_capabilities_detects_pep508_direct_reference ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::analyze_requirements_txt_respects_real_pin ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::analyze_requirements_txt_skips_case_variant_direct_http_url ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::analyze_requirements_txt_flags_not_equal_as_unpinned ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::analyze_requirements_txt_skips_tab_separated_include_and_constraint_directives ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::analyze_requirements_txt_keeps_compound_pin_with_exclusion ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::requirements_txt_capabilities_handles_inline_hash_comment ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::requirements_txt_capabilities_keeps_pep508_env_marker_as_splitter ... ok
[INFO] [stdout] test detectors::manifests::python::tests::parse_python_dep_name_rejects_vcs_userinfo_without_egg ... ok
[INFO] [stdout] test detectors::manifests::python::tests::parse_python_dep_name_removes_direct_reference_extras ... ok
[INFO] [stdout] test detectors::manifests::rust_cargo::tests::analyze_cargo_toml_does_not_emit_parse_failure_for_valid_toml ... ok
[INFO] [stdout] test detectors::manifests::rust_cargo::tests::analyze_cargo_toml_emits_parse_failure_finding_for_invalid_toml ... ok
[INFO] [stdout] test detectors::manifests::rust_cargo::tests::analyze_cargo_toml_flags_bare_version_as_unpinned ... ok
[INFO] [stdout] test detectors::manifests::rust_cargo::tests::analyze_cargo_toml_respects_strict_equal_pin ... ok
[INFO] [stdout] test detectors::manifests::rust_cargo::tests::analyze_cargo_toml_still_flags_caret_tilde_wildcard ... ok
[INFO] [stdout] test detectors::manifests::rust_cargo::tests::cargo_toml_capabilities_collapses_interleaved_capabilities ... ok
[INFO] [stdout] test detectors::manifests::rust_cargo::tests::is_strict_cargo_pin_only_accepts_equals_prefix ... ok
[INFO] [stdout] test detectors::manifests::rust_cargo::tests::test_analyze_cargo_toml_flags_all_unlocked_dependency_tables ... ok
[INFO] [stdout] test detectors::manifests::rust_cargo::tests::test_analyze_cargo_toml_flags_git_dependency_without_rev ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::requirements_txt_capabilities_detects_case_variant_vcs_egg_fragment ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::requirements_txt_capabilities_detects_compact_direct_reference_with_extras ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::requirements_txt_capabilities_detects_pep508_direct_reference ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::requirements_txt_capabilities_detects_vcs_egg_fragment ... ok
[INFO] [stdout] test detectors::manifests::rust_cargo::tests::test_analyze_cargo_toml_keeps_git_rev_dependency_clean ... ok
[INFO] [stdout] test detectors::manifests::python::tests::parse_python_dep_name_accepts_case_variant_vcs_prefix ... ok
[INFO] [stdout] test detectors::manifests::version_pin::tests::accepts_exact_triples_with_optional_metadata ... ok
[INFO] [stdout] test detectors::manifests::python::tests::parse_python_dep_name_accepts_compact_direct_reference ... ok
[INFO] [stdout] test detectors::manifests::rust_cargo::tests::test_cargo_toml_capabilities_include_workspace_and_target_dependencies ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::requirements_txt_capabilities_skips_vcs_without_name ... ok
[INFO] [stdout] test detectors::manifests::python::requirements::tests::requirements_txt_capabilities_collapses_interleaved_capabilities ... ok
[INFO] [stdout] test detectors::manifests::rust_cargo::tests::test_analyze_cargo_toml_keeps_path_dependency_without_version_clean ... ok
[INFO] [stdout] test detectors::manifests::rust_cargo::tests::test_analyze_cargo_toml_suppresses_all_unpinned_tables_when_lockfile_exists ... ok
[INFO] [stdout] test detectors::manifests::version_pin::tests::rejects_ranges_partials_and_bad_identifiers ... ok
[INFO] [stdout] test detectors::manifests::version_pin::tests::split_once_optional_reports_presence ... ok
[INFO] [stdout] test detectors::mcp::tests::instruction_phrase_outside_description_does_not_fire ... ok
[INFO] [stdout] test detectors::mcp::tests::exfiltration_directive_in_description_fires ... ok
[INFO] [stdout] test detectors::mcp::tests::explicit_capability_list_does_not_fire_wildcard ... ok
[INFO] [stdout] test detectors::mcp::tests::hidden_instruction_in_tool_description_fires ... ok
[INFO] [stdout] test detectors::mcp::tests::no_capability_block_does_not_fire_underdeclared ... ok
[INFO] [stdout] test detectors::mcp::tests::ordinary_tool_description_does_not_fire ... ok
[INFO] [stdout] test detectors::mcp::tests::underdeclared_capability_fires_for_nested_mcpservers_manifest ... ok
[INFO] [stdout] test detectors::mcp::tests::yaml_manifest_does_not_panic_on_underdeclared_check ... ok
[INFO] [stdout] test detectors::native_ids::tests::native_id_registry_is_frozen ... ok
[INFO] [stdout] test detectors::native_ids::tests::native_ids_are_unique ... ok
[INFO] [stdout] test detectors::mcp::tests::wildcard_capability_grant_fires ... ok
[INFO] [stdout] test detectors::mcp::tests::underdeclared_capability_fires_for_network_tool ... ok
[INFO] [stdout] test detectors::mcp::tests::underdeclared_capability_fires_when_allowlist_omits_implied_cap ... ok
[INFO] [stdout] test detectors::network::targets::classify::tests::classify_accepts_legitimate_mdns_hostnames ... ok
[INFO] [stdout] test detectors::network::targets::classify::tests::classify_does_not_treat_dot_local_filesystem_paths_as_local_domain ... ok
[INFO] [stdout] test detectors::network::targets::classify::tests::classify_does_not_misclassify_rfc1918_10_as_bind_all ... ok
[INFO] [stdout] test detectors::network::targets::classify::tests::classify_metadata_service_as_special_target ... ok
[INFO] [stdout] test detectors::network::targets::classify::tests::classify_does_not_treat_identifier_substrings_as_ipv6_loopback ... ok
[INFO] [stdout] test detectors::network::targets::classify::tests::classify_bind_all_ip ... ok
[INFO] [stdout] test detectors::network::targets::classify::tests::classify_recognises_ipv6_loopback_forms ... ok
[INFO] [stdout] test detectors::network::targets::classify::tests::looks_like_bind_all_distinguishes_standalone_from_substring ... ok
[INFO] [stdout] test detectors::network::targets::classify::tests::classify_uses_url_authority_not_path_or_userinfo ... ok
[INFO] [stdout] test detectors::network::targets::classify::tests::classify_preserves_authority_and_bare_internal_targets ... ok
[INFO] [stdout] test detectors::network::findings::tests::network_findings_use_url_authority_for_internal_targets ... ok
[INFO] [stdout] test detectors::network::targets::classify::tests::classify_rfc1918_and_local_domains ... ok
[INFO] [stdout] test detectors::network::findings::tests::network_findings_preserve_internal_authority_targets ... ok
[INFO] [stdout] test detectors::network::targets::model::tests::metadata_service_target_maps_to_stronger_policy_defaults ... ok
[INFO] [stdout] test detectors::network::targets::signals::tests::detect_local_control_plane_and_dev_reference ... ok
[INFO] [stdout] test detectors::network::targets::model::tests::localhost_like_targets_keep_review_semantics ... ok
[INFO] [stdout] test detectors::network::targets::signals::tests::detect_ssrf_like_fetch_line_includes_localhost_and_loopback ... ok
[INFO] [stdout] test detectors::network::targets::signals::tests::detect_ssrf_like_fetches_covers_ipv6_loopback_and_ipv4_mapped ... ok
[INFO] [stdout] test detectors::mcp::tests::benign_env_block_does_not_fire_process_injection ... ok
[INFO] [stdout] test detectors::mcp::tests::env_process_injection_loaders_fire ... ok
[INFO] [stdout] test detectors::mcp::tests::declared_capability_covering_implied_does_not_fire ... ok
[INFO] [stdout] test detectors::network::webhook::tests::webhook_docs_do_not_trigger_public_exposure ... ok
[INFO] [stdout] test detectors::network::webhook::tests::generic_doc_words_do_not_suppress_public_webhook_exposure ... ok
[INFO] [stdout] test detectors::network::targets::signals::tests::detect_internal_actions_and_ssrf_fetches_reject_alias_substrings ... ok
[INFO] [stdout] test detectors::network::targets::signals::tests::detect_internal_actions_and_ssrf_fetches ... ok
[INFO] [stdout] test detectors::network::targets::signals::tests::detect_internal_actions_and_ssrf_fetches_cover_powershell_aliases ... ok
[INFO] [stdout] test detectors::patterns::tests::line_contains_command_token_accepts_tabs_and_operators ... ok
[INFO] [stdout] test detectors::patterns::tests::line_contains_command_token_accepts_array_and_windows_paths ... ok
[INFO] [stdout] test detectors::patterns::tests::line_contains_command_token_rejects_substrings ... ok
[INFO] [stdout] test detectors::network::webhook::tests::auth_bypass_phrase_without_webhook_context_does_not_fire ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_powershell_expression_alias_rejects_substrings ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_command_with_arg_rejects_argument_mentions ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_detects_absolute_interpreter_path ... ok
[INFO] [stdout] test detectors::network::webhook::tests::example_webhook_auth_bypass_is_suppressed ... ok
[INFO] [stdout] test detectors::network::webhook::tests::unsigned_public_webhook_is_detected ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_command_with_arg_accepts_command_position_tokens ... ok
[INFO] [stdout] test detectors::network::targets::signals::tests::detect_internal_actions_covers_ipv6_loopback_and_ipv4_mapped ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_powershell_expression_alias_accepts_tabs_and_parentheses ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::deeply_nested_source_does_not_abort_js ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_detects_bash_at_column_zero ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_detects_alternative_shells ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_detects_extended_interpreter_set ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_handles_windows_backslash_path ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_rejects_argument_mentions ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_detects_wrapped_commands ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_rejects_empty_line ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_strips_exe_suffix_case_insensitive ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_detects_sh_at_column_zero ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_strips_mixed_case_exe ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_strips_exe_suffix ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_rejects_finish_word ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_handles_make_recipe_prefixes ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_rejects_publish_word ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_handles_tab_indented_makefile_recipe ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_rejects_python3_basename ... ok
[INFO] [stdout] test detectors::patterns::tests::line_invokes_shell_or_interpreter_detects_separator_joined_commands ... ok
[INFO] [stdout] test detectors::permissions::tests::contains_word_respects_boundaries ... ok
[INFO] [stdout] test detectors::patterns::tests::re_mcp_inline_secret_matches_real_credentials ... ok
[INFO] [stdout] test detectors::patterns::tests::re_opaque_mcp_endpoint_matches_domain_boundaries ... ok
[INFO] [stdout] test detectors::patterns::tests::re_mcp_inline_secret_rejects_keyword_only_mentions ... ok
[INFO] [stdout] test detectors::permissions::tests::explicit_declared_permission_rules_does_not_misclassify_benign_prose ... ok
[INFO] [stdout] test detectors::permissions::tests::file_write_signal_does_not_fire_on_delete_work_prose ... ok
[INFO] [stdout] test detectors::permissions::tests::file_write_signal_fires_on_genuine_file_deletion_declarations ... ok
[INFO] [stdout] test detectors::permissions::tests::oauth_scope_signal_does_not_fire_on_word_substrings ... ok
[INFO] [stdout] test detectors::permissions::tests::permission_context_does_not_double_count_overlapping_window_lines ... ok
[INFO] [stdout] test detectors::permissions::tests::permission_context_does_not_duplicate_window_for_multi_match_line ... ok
[INFO] [stdout] test detectors::permissions::tests::permission_context_emits_distinct_windows_for_different_anchors ... ok
[INFO] [stdout] test detectors::permissions::tests::permission_context_falls_back_to_full_content_when_no_anchor ... ok
[INFO] [stdout] test detectors::permissions::tests::shell_exec_signal_fires_on_genuine_declarations ... ok
[INFO] [stdout] test detectors::permissions::tests::oauth_scope_signal_does_not_fire_on_prose_lookalikes ... ok
[INFO] [stdout] test detectors::permissions::tests::shell_exec_signal_does_not_fire_on_prose_lookalikes ... ok
[INFO] [stdout] test detectors::scripts::dotenv::tests::fires_on_dotenv_followed_by_shell_operator ... ok
[INFO] [stdout] test detectors::permissions::tests::infer_intent_ignores_substring_matches ... ok
[INFO] [stdout] test detectors::scripts::dotenv::tests::rejects_placeholder_env_templates ... ok
[INFO] [stdout] test detectors::permissions::tests::oauth_scope_signal_fires_on_genuine_declarations ... ok
[INFO] [stdout] test detectors::scripts::dotenv::tests::fires_on_dotenv_variant_files ... ok
[INFO] [stdout] test detectors::scripts::dotenv::tests::fires_on_genuine_dotenv_references ... ok
[INFO] [stdout] test detectors::scripts::dotenv::tests::rejects_lookalike_filenames ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_node_process_exec_escalates_for_quoted_arg_array_spawn ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_node_process_exec_escalates_for_quoted_shell_invocation ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_node_process_exec_escalates_for_tab_separated_curl_invocation ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_node_process_exec_keeps_block_for_runtime_path ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_node_process_exec_downgrades_for_build_config_path ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_node_process_exec_keeps_severity_low_for_sh_substring_identifiers ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_node_process_exec_keeps_severity_low_for_bare_bash_identifier ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_node_process_exec_rejects_download_command_substrings ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_injection_patterns_node_covers_sync_variants ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_injection_patterns_routes_psm1_to_powershell_patterns ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_injection_patterns_powershell_does_not_overmatch_substrings ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_injection_patterns_powershell_accepts_paren_quote_and_alias ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_node_process_exec_escalates_for_real_bash_invocation ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_powershell_dynamic_exec_fires_for_psm1_and_psd1 ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_powershell_dynamic_exec_fires_for_encoded_command_any_language ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_injection_patterns_routes_ksh_and_fish_to_shell_patterns ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_powershell_dynamic_exec_ignores_benign_switches ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_powershell_dynamic_exec_accepts_tab_separated_iex_alias ... ok
[INFO] [stdout] test detectors::rule_refinement::tests::curl_bash_downgraded_only_in_warning_context ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_shell_side_effects_rejects_chmod_substrings ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_shell_side_effects_rejects_nohup_substrings ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::is_node_build_config_path_accepts_known_names ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_shell_side_effects_accepts_tab_separated_chmod_exec_bit ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_shell_side_effects_accepts_tab_separated_nohup ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_python_exec_network_covers_full_exec_family ... ok
[INFO] [stdout] test detectors::rule_refinement::tests::mcp_remote_bridge_dropped_only_when_every_url_is_local ... ok
[INFO] [stdout] test detectors::scripts::looks_like_script_tests::looks_like_script_covers_all_script_extensions ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_powershell_dynamic_exec_rejects_iex_substrings ... ok
[INFO] [stdout] test detectors::scripts::match_helpers::tests::original_match_str_falls_back_safely_on_nonascii_breakage ... ok
[INFO] [stdout] test detectors::scripts::install::tests::detect_typosquatted_install_fires_on_flagless_npx ... ok
[INFO] [stdout] test detectors::scripts::install::tests::detect_typosquatted_install_does_not_fire_on_typescript ... ok
[INFO] [stdout] test detectors::scripts::network::tests::detect_file_secret_to_network_flow_accepts_tab_separated_curl ... ok
[INFO] [stdout] test detectors::scripts::network::tests::detect_file_secret_to_network_flow_accepts_modern_python_http_clients ... ok
[INFO] [stdout] test detectors::scripts::network::tests::detect_file_secret_to_network_flow_accepts_webhook_api_call ... ok
[INFO] [stdout] test detectors::scripts::install::tests::detect_typosquatted_install_fires_on_all_flagless_launchers ... ok
[INFO] [stdout] test detectors::scripts::install::tests::detect_typosquatted_install_fires_on_shersh ... ok
[INFO] [stdout] test detectors::scripts::install::tests::detect_typosquatted_install_accepts_tab_separated_command_phrase ... ok
[INFO] [stdout] test detectors::scripts::looks_like_script_tests::looks_like_script_rejects_non_script_extensions ... ok
[INFO] [stdout] test detectors::scripts::network::tests::detect_file_secret_to_network_flow_accepts_tab_separated_secret_read ... ok
[INFO] [stdout] test detectors::scripts::network::tests::detect_file_secret_to_network_flow_rejects_read_command_substrings ... ok
[INFO] [stdout] test detectors::scripts::network::tests::detect_file_secret_to_network_flow_rejects_download_command_substrings ... ok
[INFO] [stdout] test detectors::scripts::network::tests::detect_file_secret_to_network_flow_ignores_http_client_without_secret_read ... ok
[INFO] [stdout] test detectors::scripts::network::tests::detect_file_secret_to_network_flow_rejects_bare_webhook_variable ... ok
[INFO] [stdout] test detectors::scripts::network::tests::detect_file_secret_to_network_flow_fires_on_env_then_curl ... ok
[INFO] [stdout] test detectors::scripts::network::tests::network_verbs_nc_matches_at_line_start ... ok
[INFO] [stdout] test detectors::scripts::network::tests::network_verbs_nc_matches_mid_line ... ok
[INFO] [stdout] test detectors::scripts::network::tests::network_verbs_nc_does_not_match_substrings ... ok
[INFO] [stdout] test detectors::scripts::network::tests::detect_file_secret_to_network_flow_fires_on_quoted_dotenv ... ok
[INFO] [stdout] test detectors::scripts::network::tests::detect_file_secret_to_network_flow_ignores_envrc_lookalikes ... ok
[INFO] [stdout] test detectors::scripts::patterns::tests::persistence_autostart_matches_home_env_var_forms ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_shell_side_effects_does_not_fire_for_non_shell ... ok
[INFO] [stdout] test detectors::scripts::patterns::tests::persistence_matches_windows_autostart_forms ... ok
[INFO] [stdout] test detectors::scripts::patterns::tests::persistence_rejects_windows_lookalikes ... ok
[INFO] [stdout] test detectors::scripts::patterns::tests::deferred_execution_at_clause_rejects_prose_digit_runs ... ok
[INFO] [stdout] test detectors::scripts::patterns::tests::remote_binary_download_requires_word_boundary ... ok
[INFO] [stdout] test detectors::scripts::patterns::tests::shell_command_injection_requires_word_boundary ... ok
[INFO] [stdout] test detectors::scripts::persistence::tests::detect_powershell_persistence_fires_for_psm1 ... ok
[INFO] [stdout] test detectors::scripts::network::tests::detect_remote_binary_downloads_preserves_original_casing ... ok
[INFO] [stdout] test detectors::scripts::patterns::tests::lolbin_remote_download_matches_cradles ... ok
[INFO] [stdout] test detectors::scripts::patterns::tests::lolbin_remote_download_rejects_benign_uses ... ok
[INFO] [stdout] test detectors::scripts::persistence::tests::detect_shell_persistence_write_accepts_spaceless_and_single_redirect ... ok
[INFO] [stdout] test detectors::scripts::persistence::tests::detect_shell_persistence_write_fires_for_ksh_and_fish ... ok
[INFO] [stdout] test detectors::scripts::persistence::tests::detect_shell_persistence_write_accepts_tab_separated_dotfile_write ... ok
[INFO] [stdout] test detectors::scripts::patterns::tests::powershell_remote_download_rejects_alias_substrings ... ok
[INFO] [stdout] test detectors::scripts::persistence::tests::detect_shell_persistence_write_accepts_tee_startup_targets ... ok
[INFO] [stdout] test detectors::scripts::persistence::tests::detect_shell_persistence_write_fires_on_home_env_var_dotfiles ... ok
[INFO] [stdout] test detectors::scripts::persistence::tests::detect_shell_persistence_write_ignores_non_startup_redirects ... ok
[INFO] [stdout] test detectors::scripts::persistence::tests::detect_shell_persistence_write_rejects_command_substrings ... ok
[INFO] [stdout] test detectors::scripts::pipeline::tests::dotenv_lookalike_piped_to_network_does_not_fire ... ok
[INFO] [stdout] test detectors::scripts::pipeline::tests::dotenv_piped_to_network_fires ... ok
[INFO] [stdout] test detectors::scripts::network::tests::network_verbs_nc_matches_tab_separated ... ok
[INFO] [stdout] test detectors::scripts::pipeline::tests::non_shell_language_is_skipped ... ok
[INFO] [stdout] test detectors::scripts::pipeline::tests::fetch_piped_to_jq_with_hash_field_does_not_fire ... ok
[INFO] [stdout] test detectors::scripts::pipeline::tests::fetch_piped_to_shell_fires ... ok
[INFO] [stdout] test detectors::scripts::pipeline::tests::fetch_to_file_does_not_fire ... ok
[INFO] [stdout] test detectors::scripts::exec::tests::detect_shell_side_effects_fires_for_ksh_and_fish ... ok
[INFO] [stdout] test detectors::scripts::pipeline::tests::logical_or_is_not_a_data_pipe ... ok
[INFO] [stdout] test detectors::scripts::patterns::tests::deferred_execution_at_clause_requires_real_time_spec ... ok
[INFO] [stdout] test detectors::scripts::network::tests::detect_file_secret_to_network_flow_respects_window ... ok
[INFO] [stdout] test detectors::scripts::secrets::tests::detect_python_secret_system_access_does_not_fire_for_non_python ... ok
[INFO] [stdout] test detectors::typosquat::tests::distant_name_does_not_fire ... ok
[INFO] [stdout] test detectors::typosquat::tests::exact_popular_name_does_not_fire ... ok
[INFO] [stdout] test detectors::scripts::secrets::tests::detect_python_secret_system_access_matches_path_home_idiom ... ok
[INFO] [stdout] test detectors::scripts::pipeline::tests::secret_to_local_grep_does_not_fire ... ok
[INFO] [stdout] test detectors::typosquat::tests::known_legitimate_neighbors_do_not_fire ... ok
[INFO] [stdout] test detectors::typosquat::tests::ecosystem_is_isolated ... ok
[INFO] [stdout] test detectors::typosquat::tests::edit_distance_one_detects_each_single_edit ... ok
[INFO] [stdout] test detectors::typosquat::tests::near_miss_of_popular_name_fires ... ok
[INFO] [stdout] test detectors::scripts::pipeline::tests::secret_piped_to_network_fires ... ok
[INFO] [stdout] test detectors::typosquat::tests::typosquat_target_absent_when_no_match ... ok
[INFO] [stdout] test findings::builder::tests::conclusive_remote_exec_evidence_accepts_tab_separated_command_indicators ... ok
[INFO] [stdout] test detectors::typosquat::tests::short_names_are_skipped ... ok
[INFO] [stdout] test detectors::scripts::pipeline::tests::sink_upstream_of_source_does_not_fire ... ok
[INFO] [stdout] test detectors::scripts::secrets::tests::detect_node_secret_fs_access_does_not_emit_block_action ... ok
[INFO] [stdout] test findings::builder::tests::confidence_nan_does_not_overwrite_prior_valid_value ... ok
[INFO] [stdout] test detectors::scripts::patterns::tests::powershell_remote_download_matches_cmdlets_and_aliases ... ok
[INFO] [stdout] test detectors::scripts::secrets::tests::detect_node_secret_fs_access_still_fires_on_known_patterns ... ok
[INFO] [stdout] test findings::builder::tests::confidence_positive_infinity_clamps_to_one ... ok
[INFO] [stdout] test detectors::typosquat::tests::pypi_separator_equivalent_is_not_a_typosquat ... ok
[INFO] [stdout] test findings::builder::tests::confidence_in_range_is_preserved_in_raw_confidence ... ok
[INFO] [stdout] test detectors::typosquat::tests::typosquat_target_selection_is_deterministic ... ok
[INFO] [stdout] test findings::builder::tests::confidence_clamps_above_one_to_one ... ok
[INFO] [stdout] test findings::calibration::tests::calibrate_confidence_never_exceeds_ceiling ... ok
[INFO] [stdout] test findings::calibration::tests::default_operational_contexts_returns_stable_canonical_order ... ok
[INFO] [stdout] test findings::calibration::tests::default_remediation_is_non_empty_for_every_category ... ok
[INFO] [stdout] test findings::calibration::tests::default_remediation_joins_contexts_with_comma_space ... ok
[INFO] [stdout] test findings::calibration::tests::default_remediation_uses_singular_hint_when_no_contexts ... ok
[INFO] [stdout] test findings::calibration::tests::calibrate_confidence_clamps_to_floor ... ok
[INFO] [stdout] test findings::calibration::tests::default_operational_contexts_for_generic_is_empty ... ok
[INFO] [stdout] test findings::calibration::tests::calibrate_confidence_rationale_mentions_raw_and_both_baselines ... ok
[INFO] [stdout] test findings::calibration::tests::calibrate_confidence_uses_documented_blend_formula ... ok
[INFO] [stdout] test findings::calibration::tests::default_operational_contexts_for_data_exfiltration_includes_network_secrets_external ... ok
[INFO] [stdout] test findings::capability_scoring::tests::graph_risk_context_does_not_fire_combo_when_only_one_capability_present ... ok
[INFO] [stdout] test findings::consensus::tests::conflicting_duplicate_provider_votes_are_ambiguous ... ok
[INFO] [stdout] test findings::builder::tests::confidence_nan_is_silently_ignored_and_preserves_default ... ok
[INFO] [stdout] test findings::capability_scoring::tests::graph_risk_context_does_not_double_count_combo_bonus ... ok
[INFO] [stdout] test findings::consensus::tests::duplicate_benign_provider_does_not_create_llm_fp ... ok
[INFO] [stdout] test findings::consensus::tests::duplicate_non_benign_provider_does_not_create_flip ... ok
[INFO] [stdout] test findings::consensus::tests::single_provider_benign_flip_detected ... ok
[INFO] [stdout] test findings::consensus::tests::error_masked_flip_is_not_flagged ... ok
[INFO] [stdout] test findings::dedup::tests::deduplicate_findings_is_deterministic_on_equal_strength_ties ... ok
[INFO] [stdout] test findings::consensus::tests::two_benign_is_not_a_flip ... ok
[INFO] [stdout] test findings::builder::tests::confidence_clamps_below_zero_to_zero ... ok
[INFO] [stdout] test findings::builder::tests::conclusive_remote_exec_evidence_rejects_command_indicator_substrings ... ok
[INFO] [stdout] test findings::dedup::tests::deduplicate_findings_merges_case_variant_match_values ... ok
[INFO] [stdout] test findings::consensus::tests::unanimous_is_agree ... ok
[INFO] [stdout] test findings::dedup::tests::primary_path_matches_artifact_suffix_of_primary ... ok
[INFO] [stdout] test findings::dedup::tests::primary_path_matches_rejects_two_component_relative_in_either_direction ... ok
[INFO] [stdout] test findings::summary::tests::graph_references_executable_script_matches_scripts_only ... ok
[INFO] [stdout] test findings::summary::tests::normalize_score_finite_input_clamps_and_rounds ... ok
[INFO] [stdout] test findings::dedup::tests::primary_path_matches_one_component_filename_still_matches ... ok
[INFO] [stdout] test findings::dedup::tests::primary_path_matches_primary_suffix_of_artifact ... ok
[INFO] [stdout] test findings::summary::tests::executable_script_amplifies_risk_score ... ok
[INFO] [stdout] test findings::summary::tests::no_executable_script_leaves_score_unamplified ... ok
[INFO] [stdout] test findings::summary::tests::score_breakdown_and_action_triggers_use_factor_tie_breaker ... ok
[INFO] [stdout] test findings::summary::tests::with_risk_adjustment_never_upgrades_action ... ok
[INFO] [stdout] test findings::tests::confidence_builder_clamps_below_zero ... ok
[INFO] [stdout] test findings::tests::confidence_builder_handles_negative_infinity ... ok
[INFO] [stdout] test findings::tests::confidence_builder_rejects_nan_keeps_previous_value ... ok
[INFO] [stdout] test findings::summary::tests::with_risk_adjustment_clamps_score ... ok
[INFO] [stdout] test findings::summary::tests::with_risk_adjustment_drops_to_log_below_approval_threshold ... ok
[INFO] [stdout] test findings::summary::tests::with_risk_adjustment_downgrades_action_when_score_crosses_threshold ... ok
[INFO] [stdout] test findings::tests::confidence_builder_clamps_above_one ... ok
[INFO] [stdout] test findings::tests::confidence_builder_handles_positive_infinity ... ok
[INFO] [stdout] test findings::taxonomy::tests::taxonomy_registry_is_frozen ... ok
[INFO] [stdout] test findings::taxonomy::tests::taxonomy_tags_serialize_snake_case ... ok
[INFO] [stdout] test findings::summary::tests::normalize_score_non_finite_input_falls_back_to_block ... ok
[INFO] [stdout] test findings::tests::confidence_builder_rejects_nan_with_no_prior_value ... ok
[INFO] [stdout] test findings::tests::deduplicate_findings_keeps_strongest_action_when_severities_tie ... ok
[INFO] [stdout] test findings::tests::deduplicate_findings_aligns_raw_confidence_with_strength_winner ... ok
[INFO] [stdout] test findings::tests::deduplicate_findings_prefers_longer_reason_on_total_tuple_tie ... ok
[INFO] [stdout] test findings::tests::test_compound_verdict_escalates_broad_permissions_plus_autonomy ... ok
[INFO] [stdout] test findings::tests::split_findings_by_scope_rejects_two_component_cross_package_suffix ... ok
[INFO] [stdout] test findings::tests::deduplicate_findings_aligns_signal_class_with_action_winner ... ok
[INFO] [stdout] test findings::tests::split_findings_by_scope_accepts_three_component_qualified_suffix ... ok
[INFO] [stdout] test findings::tests::test_compound_verdict_escalates_remote_fetch_plus_install_hook ... ok
[INFO] [stdout] test findings::tests::split_findings_by_scope_rejects_empty_artifact_path ... ok
[INFO] [stdout] test findings::tests::test_finding_builder_defaults ... ok
[INFO] [stdout] test findings::tests::deduplicate_findings_keeps_strongest_severity_when_actions_tie ... ok
[INFO] [stdout] test findings::tests::test_confidence_calibration_prefers_behavior_over_intent ... ok
[INFO] [stdout] test findings::tests::test_compound_verdict_escalates_prompt_override_plus_exec ... ok
[INFO] [stdout] test findings::tests::test_empty_findings_produce_benign_healthy_verdict ... ok
[INFO] [stdout] test findings::tests::test_compound_verdict_escalates_mcp_remote_endpoint_plus_exec_surface ... ok
[INFO] [stdout] test findings::tests::split_findings_by_scope_rejects_absolute_artifact_path_against_relative_primary ... ok
[INFO] [stdout] test findings::tests::test_finding_builder_with_line ... ok
[INFO] [stdout] test findings::tests::test_finding_weighted_score ... ok
[INFO] [stdout] test findings::tests::test_hygiene_only_agent_entrypoint_signal_stays_benign ... ok
[INFO] [stdout] test findings::tests::test_hygiene_with_non_log_action_prevents_isolated_weak_downgrade ... ok
[INFO] [stdout] test findings::tests::test_finding_builder_with_evidence_and_artifact ... ok
[INFO] [stdout] test findings::tests::test_deduplicate_findings_keeps_strongest_variant ... ok
[INFO] [stdout] test findings::tests::test_finding_summary ... ok
[INFO] [stdout] test findings::tests::test_severity_ordering ... ok
[INFO] [stdout] test findings::tests::test_split_findings_by_scope_accepts_short_artifact_path ... ok
[INFO] [stdout] test findings::tests::test_summary_respects_highest_recommended_action ... ok
[INFO] [stdout] test findings::tests::test_severity_weights ... ok
[INFO] [stdout] test findings::tests::test_summary_escalates_for_high_risk_capability_combo ... ok
[INFO] [stdout] test findings::tests::test_operational_contexts_capture_phase2_categories ... ok
[INFO] [stdout] test findings::tests::test_oauth_without_high_risk_autonomy_does_not_escalate_to_malicious ... ok
[INFO] [stdout] test inline_suppressions::tests::inline_suppression_unrelated_rule_id_does_not_match ... ok
[INFO] [stdout] test inline_suppressions::tests::json_suppression_accepts_valid_expires_at ... ok
[INFO] [stdout] test findings::tests::test_isolated_weak_package_root_signal_downgrades_to_benign ... ok
[INFO] [stdout] test inline_suppressions::tests::json_suppression_reason_is_capped_at_max_chars ... ok
[INFO] [stdout] test findings::tests::test_severe_hygiene_only_produces_needs_review ... ok
[INFO] [stdout] test findings::tests::test_split_findings_by_scope_rejects_subdirectory_path ... ok
[INFO] [stdout] test inline_suppressions::tests::inline_suppression_rule_id_is_case_insensitive ... ok
[INFO] [stdout] test inline_suppressions::tests::json_suppression_rejects_malformed_expires_at ... ok
[INFO] [stdout] test inline_suppressions::tests::inline_suppression_wildcard_still_matches ... ok
[INFO] [stdout] test findings::tests::deduplicate_findings_does_not_split_on_signal_class_mismatch ... ok
[INFO] [stdout] test findings::capability_scoring::tests::graph_risk_context_detects_split_manifest_privileged_host_combo ... ok
[INFO] [stdout] test inline_suppressions::tests::star_directive_with_namespace_prefix_is_recognised ... ok
[INFO] [stdout] test inline_suppressions::tests::standalone_directive_captures_reason_payload ... ok
[INFO] [stdout] test inline_suppressions::tests::standalone_namespaced_directive_with_space_after_colon_is_recognised ... ok
[INFO] [stdout] test inline_suppressions::tests::bare_markdown_bullet_does_not_suppress ... ok
[INFO] [stdout] test inline_suppressions::tests::inline_suppression_reason_is_capped_at_max_chars ... ok
[INFO] [stdout] test ioc_extraction::tests::does_not_flag_programming_identifiers_as_domains ... ok
[INFO] [stdout] test ioc_extraction::tests::extracts_case_variant_url_schemes ... ok
[INFO] [stdout] test ioc_extraction::tests::filters_loopback_and_private_ips ... ok
[INFO] [stdout] test ioc_extraction::tests::hashes_artifact_content ... ok
[INFO] [stdout] test ioc_extraction::tests::extracts_urls_and_domains_from_script ... ok
[INFO] [stdout] test ioc_extraction::tests::extract_filters_full_rfc1918_172_12_block_e2e ... ok
[INFO] [stdout] test ioc_extraction::tests::deduplicates_and_sorts ... ok
[INFO] [stdout] test ioc_extraction::tests::extracts_url_domain_from_authority_not_path_userinfo_shape ... ok
[INFO] [stdout] test ioc_extraction::tests::ipv6_basic_extraction ... ok
[INFO] [stdout] test ioc_extraction::tests::ipv6_extraction_keeps_valid_addresses ... ok
[INFO] [stdout] test ioc_extraction::tests::ipv6_extraction_does_not_emit_truncated_embedded_ipv4 ... ok
[INFO] [stdout] test ioc_extraction::tests::ipv6_extraction_rejects_unbounded_hex_runs_in_identifiers ... ok
[INFO] [stdout] test ioc_extraction::tests::is_plausible_ipv6_accepts_compressed_form ... ok
[INFO] [stdout] test ioc_extraction::tests::is_plausible_ipv6_accepts_full_8_group_form ... ok
[INFO] [stdout] test ioc_extraction::tests::is_noise_ipv4_covers_full_rfc1918_172_12_block ... ok
[INFO] [stdout] test ioc_extraction::tests::is_plausible_ipv6_rejects_overlong_groups ... ok
[INFO] [stdout] test ioc_extraction::tests::ipv6_extraction_rejects_short_hex_token_lacking_double_colon ... ok
[INFO] [stdout] test ioc_extraction::tests::merge_combines_disjoint_lists ... ok
[INFO] [stdout] test ioc_extraction::tests::rejects_non_http_scheme_lookalikes ... ok
[INFO] [stdout] test net_util::tests::ipv6_loopback_recognises_bare_and_mapped ... ok
[INFO] [stdout] test nova::condition::tests::all_of_section_requires_every_hit_and_nonempty ... ok
[INFO] [stdout] test nova::condition::tests::at_least_n_quantifier_counts_matches ... ok
[INFO] [stdout] test nova::condition::tests::wildcard_keywords_any_match_is_true ... ok
[INFO] [stdout] test net_util::tests::normalize_host_strips_root_dot_and_lowercases ... ok
[INFO] [stdout] test nova::engine::tests::and_blocks_match_when_required_section_skipped ... ok
[INFO] [stdout] test ioc_extraction::tests::extract_from_text_caps_url_count_per_artifact ... ok
[INFO] [stdout] test nova::condition::tests::boolean_combinators_short_circuit_correctly ... ok
[INFO] [stdout] test nova::condition::tests::unknown_reference_returns_named_error ... ok
[INFO] [stdout] test net_util::tests::host_is_localhost_matches_loopback_names_only ... ok
[INFO] [stdout] test nova::engine::tests::keyword_only_rule_fires_on_match ... ok
[INFO] [stdout] test nova::engine::tests::keyword_only_rule_does_not_fire_on_miss ... ok
[INFO] [stdout] test nova::engine::tests::bare_regex_keyword_matches_case_insensitively ... ok
[INFO] [stdout] test nova::engine::tests::semantic_score_is_plumbed_into_match ... ok
[INFO] [stdout] test nova::engine::tests::two_sided_semantics_rule_is_inert_when_skipped ... ok
[INFO] [stdout] test nova::engine::tests::negation_only_semantics_rule_stays_inert_when_skipped ... ok
[INFO] [stdout] test nova::engine::tests::non_firing_semantic_contributes_no_score ... ok
[INFO] [stdout] test nova::engine::tests::or_with_keyword_hit_fires_despite_semantics_skip ... ok
[INFO] [stdout] test nova::evaluators::tests::case_insensitive_regex_with_leading_group_folds_case ... ok
[INFO] [stdout] test nova::engine::tests::semantics_required_rule_skips_with_capability_label ... ok
[INFO] [stdout] test nova::engine::tests::shipped_vendor_host_fixture_is_inert_when_semantics_skipped ... ok
[INFO] [stdout] test nova::evaluators::tests::case_sensitive_regex_with_leading_group_stays_exact ... ok
[INFO] [stdout] test nova::evaluators::tests::invalid_regex_returns_nomatch_not_panic ... ok
[INFO] [stdout] test nova::evaluators::tests::literal_keyword_is_case_insensitive_by_default ... ok
[INFO] [stdout] test nova::evaluators::tests::literal_keyword_respects_case_sensitive ... ok
[INFO] [stdout] test nova::evaluators::tests::stub_evaluators_return_skipped ... ok
[INFO] [stdout] test nova::mapping::tests::artifact_metadata_flows_from_caller ... ok
[INFO] [stdout] test nova::mapping::tests::nova_findings_are_review_signal_require_approval ... ok
[INFO] [stdout] test nova::mapping::tests::severity_mapping_matches_nova_labels ... ok
[INFO] [stdout] test nova::evaluators::tests::regex_keyword_matches_with_inline_flags ... ok
[INFO] [stdout] test nova::mapping::tests::semantic_finding_confidence_falls_back_to_threshold_without_score ... ok
[INFO] [stdout] test nova::mapping::tests::nonmatch_yields_no_findings ... ok
[INFO] [stdout] test nova::mapping::tests::category_mapping_for_real_nova_buckets ... ok
[INFO] [stdout] test nova::mapping::tests::each_matching_keyword_gets_its_own_finding ... ok
[INFO] [stdout] test nova::mapping::tests::semantic_finding_confidence_uses_real_score_not_threshold ... ok
[INFO] [stdout] test nova::model::tests::meta_accessors_return_none_for_missing_keys ... ok
[INFO] [stdout] test nova::parser::tests::brace_inside_single_quoted_keyword_literal_is_not_rule_close ... ok
[INFO] [stdout] test nova::model::tests::meta_accessors_round_trip_present_keys ... ok
[INFO] [stdout] test nova::condition::tests::any_of_wildcard_equivalent_to_bare_wildcard ... ok
[INFO] [stdout] test nova::parser::tests::condition_nesting_beyond_max_depth_is_rejected_not_overflow ... ok
[INFO] [stdout] test nova::parser::tests::body_less_regex_in_rule_is_error_not_panic ... ok
[INFO] [stdout] test nova::parser::tests::boolean_precedence_matches_nova ... ok
[INFO] [stdout] test nova::parser::tests::apostrophe_in_unquoted_meta_does_not_open_string_mode ... ok
[INFO] [stdout] test nova::parser::tests::line_comments_do_not_eat_regex_literals ... ok
[INFO] [stdout] test nova::parser::tests::keyword_regex_with_body_parses_case_insensitive ... ok
[INFO] [stdout] test nova::parser::tests::keyword_regex_without_body_is_malformed_not_panic ... ok
[INFO] [stdout] test nova::parser::tests::parses_minimal_keywords_only_rule ... ok
[INFO] [stdout] test nova::parser::tests::parses_multiple_rules_in_source_order ... ok
[INFO] [stdout] test nova::parser::tests::parses_semantics_threshold_default_and_custom ... ok
[INFO] [stdout] test nova::parser::tests::parses_real_inject_dynamic_context_rule ... ok
[INFO] [stdout] test nova::parser::tests::rejects_dangling_condition_reference ... ok
[INFO] [stdout] test nova::parser::tests::rejects_quantified_wildcard_over_empty_section ... ok
[INFO] [stdout] test nova::parser::tests::wide_shallow_condition_parses ... ok
[INFO] [stdout] test nova::parser::tests::parser_accepts_real_nova_rule_pack_subset ... ok
[INFO] [stdout] test nova::parser::tests::wildcard_over_populated_section_validates ... ok
[INFO] [stdout] test path_safety::tests::rejects_absolute_root_inside_suffix ... ok
[INFO] [stdout] test path_safety::tests::accepts_curdir_components ... ok
[INFO] [stdout] test path_safety::tests::allows_internal_parent_traversal_within_base ... ok
[INFO] [stdout] test nova::parser::tests::parses_both_bare_wildcard_and_any_of_wildcard ... ok
[INFO] [stdout] test path_safety::tests::rejects_parent_traversal_escape ... ok
[INFO] [stdout] test policy::baseline::serde_default_tests::baseline_file_deserializes_without_entries_key ... ok
[INFO] [stdout] test policy::baseline::serde_default_tests::baseline_file_rejects_unknown_top_level_fields ... ok
[INFO] [stdout] test nova::parser::tests::line_comments_do_not_eat_single_quoted_keyword_literals ... ok
[INFO] [stdout] test policy::baseline::serde_default_tests::baseline_file_still_loads_explicit_entries ... ok
[INFO] [stdout] test policy::baseline::serde_default_tests::waiver_file_deserializes_without_waivers_key ... ok
[INFO] [stdout] test policy::baseline::serde_default_tests::waiver_file_rejects_unknown_top_level_fields ... ok
[INFO] [stdout] test policy::disposition::tests::allowlist_requires_distinct_finding_fingerprints ... ok
[INFO] [stdout] test policy::baseline::serde_default_tests::waiver_entry_rejects_unknown_fields ... ok
[INFO] [stdout] test policy::disposition::tests::allowlist_requires_min_samples_and_low_tp_rate ... ok
[INFO] [stdout] test path_safety::tests::resolved_containment_accepts_regular_child ... ok
[INFO] [stdout] test ioc_extraction::tests::domain_cap_does_not_spam_repeated_warns ... ok
[INFO] [stdout] test policy::disposition::tests::empty_overlay_is_identity ... ok
[INFO] [stdout] test policy::baseline::serde_default_tests::baseline_entry_rejects_unknown_fields ... ok
[INFO] [stdout] test path_safety::tests::accepts_simple_relative_descendant ... ok
[INFO] [stdout] test path_safety::tests::resolved_containment_rejects_symlinked_intermediate_escape ... ok
[INFO] [stdout] test policy::disposition::tests::confidence_delta_is_monotone_in_tp_ratio ... ok
[INFO] [stdout] test nova::parser::tests::rejects_negated_wildcard_over_empty_section ... ok
[INFO] [stdout] test policy::disposition::tests::overlay_deserialises_additively ... ok
[INFO] [stdout] test policy::fingerprint::baseline_matches_tests::baseline_matches_finding_rejects_different_rule_id ... ok
[INFO] [stdout] test policy::fingerprint::baseline_matches_tests::baseline_matches_finding_requires_fingerprint_equality ... ok
[INFO] [stdout] test policy::fingerprint::fingerprint_tests::finding_fingerprint_excludes_reason ... ok
[INFO] [stdout] test policy::fingerprint::fingerprint_tests::finding_fingerprint_includes_match_value ... ok
[INFO] [stdout] test policy::fingerprint::baseline_matches_tests::baseline_matches_finding_does_not_apply_paths_match_suffix ... ok
[INFO] [stdout] test policy::fingerprint::fingerprint_tests::finding_fingerprint_handles_missing_artifact_path ... ok
[INFO] [stdout] test policy::fingerprint::fingerprint_tests::finding_fingerprint_includes_artifact_path ... ok
[INFO] [stdout] test policy::disposition::tests::latest_disposition_for_same_finding_replaces_prior_label ... ok
[INFO] [stdout] test policy::fingerprint::fingerprint_tests::finding_fingerprint_is_deterministic ... ok
[INFO] [stdout] test policy::fingerprint::fingerprint_tests::finding_fingerprint_normalizes_match_value_case ... ok
[INFO] [stdout] test policy::fingerprint::fingerprint_tests::finding_fingerprint_includes_rule_id ... ok
[INFO] [stdout] test policy::fingerprint::fingerprint_tests::finding_fingerprint_returns_lowercase_64_hex ... ok
[INFO] [stdout] test policy::fingerprint::paths_match_tests::paths_match_rejects_two_component_cross_package_match ... ok
[INFO] [stdout] test policy::fingerprint::paths_match_tests::paths_match_rejects_absolute_suffix_match ... ok
[INFO] [stdout] test policy::fingerprint::paths_match_tests::paths_match_accepts_three_component_specific_suffix ... ok
[INFO] [stdout] test adapters::tree_sitter_ast::tests::deeply_nested_source_does_not_abort_python ... ok
[INFO] [stdout] test policy::fingerprint::paths_match_tests::paths_match_bare_filename_never_matches_across_dirs ... ok
[INFO] [stdout] test policy::fingerprint::paths_match_tests::paths_match_exact_equality ... ok
[INFO] [stdout] test policy::serializers::sarif_location_tests::sarif_location_json_omits_physical_location_when_none ... ok
[INFO] [stdout] test policy::serializers::sarif_location_tests::sarif_locations_for_finding_emits_physical_location_when_path_present ... ok
[INFO] [stdout] test policy::serializers::sarif_location_tests::sarif_locations_for_finding_returns_empty_when_no_artifact_path ... ok
[INFO] [stdout] test policy::serializers::sarif_location_tests::sarif_rules_are_sorted_by_id_for_deterministic_output ... ok
[INFO] [stdout] test policy::state::loaders::load_baseline_tests::load_baseline_rejects_entry_with_empty_fingerprint ... ok
[INFO] [stdout] test policy::state::loaders::load_baseline_tests::load_baseline_accepts_well_formed_file ... ok
[INFO] [stdout] test policy::state::loaders::load_baseline_tests::load_baseline_rejects_invalid_schema_version ... ok
[INFO] [stdout] test policy::state::loaders::load_disposition_tests::load_disposition_overlay_reads_json_through_port ... ok
[INFO] [stdout] test policy::state::loaders::load_baseline_tests::load_baseline_rejects_entry_with_empty_reason ... ok
[INFO] [stdout] test policy::state::loaders::load_disposition_tests::load_disposition_overlay_rejects_unknown_fields ... ok
[INFO] [stdout] test policy::state::loaders::load_waivers_tests::load_waivers_rejects_invalid_schema_version ... ok
[INFO] [stdout] test policy::state::loaders::parser_error_selection_tests::parse_error_for_yaml_shaped_content_surfaces_yaml_diagnostic ... ok
[INFO] [stdout] test policy::state::loaders::load_waivers_tests::load_waivers_accepts_well_formed_file ... ok
[INFO] [stdout] test policy::state::matchers::tests::expired_policy_override_never_matches ... ok
[INFO] [stdout] test policy::state::loaders::load_waivers_tests::load_waivers_rejects_empty_or_whitespace_file ... ok
[INFO] [stdout] test policy::state::loaders::load_waivers_tests::load_waivers_rejects_waiver_without_selectors ... ok
[INFO] [stdout] test policy::state::loaders::parser_error_selection_tests::parse_error_for_indented_json_still_reports_json ... ok
[INFO] [stdout] test policy::state::loaders::parser_error_selection_tests::parse_error_for_json_shaped_content_surfaces_json_diagnostic ... ok
[INFO] [stdout] test policy::fingerprint::fingerprint_tests::finding_fingerprint_includes_matched_on ... ok
[INFO] [stdout] test policy::state::matchers::tests::policy_override_artifact_path_selector_rejects_pathless_finding ... ok
[INFO] [stdout] test policy::state::matchers::tests::waiver_none_rule_id_matches_any_finding ... ok
[INFO] [stdout] test policy::state::matchers::tests::expired_waiver_never_matches ... ok
[INFO] [stdout] test policy::state::validators::baseline_matches_tests::baseline_matches_finding_requires_fingerprint_equality ... ok
[INFO] [stdout] test policy::state::validators::baseline_matches_tests::baseline_matches_finding_rejects_different_rule_id ... ok
[INFO] [stdout] test policy::state::validators::baseline_matches_tests::baseline_matches_finding_does_not_apply_paths_match_suffix ... ok
[INFO] [stdout] test policy::state::validators::validate_policy_tests::validate_policy_detects_duplicate_overrides_with_different_ids ... ok
[INFO] [stdout] test policy::state::validators::validate_policy_tests::validate_policy_rejects_conflicting_actions_for_same_selectors ... ok
[INFO] [stdout] test policy::state::validators::validate_policy_tests::validate_policy_rejects_conflicting_case_variant_rule_ids ... ok
[INFO] [stdout] test policy::state::validators::validate_waivers_tests::validate_waivers_accepts_non_empty_reason ... ok
[INFO] [stdout] test policy::state::validators::validate_waivers_tests::validate_waivers_rejects_case_variant_duplicate_rule_ids ... ok
[INFO] [stdout] test policy::state::matchers::tests::waiver_artifact_path_selector_rejects_pathless_finding ... ok
[INFO] [stdout] test policy::state::validators::validate_policy_tests::validate_policy_accepts_different_actions_for_different_expirations ... ok
[INFO] [stdout] test policy::state::validators::validate_waivers_tests::validate_waivers_rejects_empty_reason ... ok
[INFO] [stdout] test policy::tests_filtering::sarif_output_conforms_to_2_1_0_schema ... ok
[INFO] [stdout] test policy::tests_filtering::test_apply_baseline_filters_known_findings ... ok
[INFO] [stdout] test policy::tests_filtering::test_apply_policy_overrides_keeps_pathless_finding_for_path_selector ... ok
[INFO] [stdout] test policy::tests_filtering::test_apply_policy_overrides_uses_most_specific_match ... ok
[INFO] [stdout] test policy::tests_filtering::test_apply_waivers_filters_matching_context ... ok
[INFO] [stdout] test policy::tests_filtering::test_apply_waivers_filters_matching_findings ... ok
[INFO] [stdout] test policy::tests_filtering::test_apply_waivers_keeps_pathless_finding_for_path_selector ... ok
[INFO] [stdout] test policy::tests_filtering::test_diff_reports_classifies_waived_and_baselined_findings ... ok
[INFO] [stdout] test policy::tests_filtering::test_diff_reports_detects_new_and_resolved_findings ... ok
[INFO] [stdout] test policy::state::matchers::tests::waiver_rule_id_does_not_match_different_rule ... ok
[INFO] [stdout] test policy::state::matchers::tests::waiver_rule_id_matches_case_insensitively ... ok
[INFO] [stdout] test policy::tests_filtering::test_diff_reports_waived_finding_with_changed_text_is_not_also_resolved ... ok
[INFO] [stdout] test policy::tests_filtering::test_apply_policy_overrides_with_audit_records_override ... ok
[INFO] [stdout] test policy::tests_filtering::test_policy_file_can_override_profile_context_action ... ok
[INFO] [stdout] test policy::tests_filtering::test_validate_policy_rejects_selectorless_override ... ok
[INFO] [stdout] test policy::tests_generation::test_generate_json ... ok
[INFO] [stdout] test policy::tests_generation::test_generate_json_escalates_summary_from_graph_capabilities ... ok
[INFO] [stdout] test policy::tests_generation::test_generate_json_includes_context_policies_from_profile ... ok
[INFO] [stdout] test policy::tests_generation::test_generate_policies_uses_strongest_recommended_action ... ok
[INFO] [stdout] test policy::tests_generation::test_generate_sarif ... ok
[INFO] [stdout] test policy::tests_generation::test_generate_sarif_includes_action_trigger_results ... ok
[INFO] [stdout] test policy::tests_generation::test_generate_shield_md ... ok
[INFO] [stdout] test policy::types::deny_unknown_fields_tests::policy_file_rejects_unknown_fields ... ok
[INFO] [stdout] test policy::types::deny_unknown_fields_tests::shield_policy_rejects_unknown_fields ... ok
[INFO] [stdout] test policy::state::matchers::tests::policy_override_rule_id_matches_case_insensitively ... ok
[INFO] [stdout] test policy::types::deny_unknown_fields_tests::policy_override_rejects_unknown_fields ... ok
[INFO] [stdout] test policy::tests_filtering::test_diff_reports_waived_finding_with_fuzzy_path_is_not_resolved ... ok
[INFO] [stdout] test policy::tests_filtering::test_validate_policy_accepts_override_with_rule_id_selector ... ok
[INFO] [stdout] test regex_bounds::tests::build_bounded_regex_accepts_ordinary_pattern ... ok
[INFO] [stdout] test policy::state::matchers::tests::policy_override_none_rule_id_matches_any_finding ... ok
[INFO] [stdout] test rules::compiled::tests::case_fold_folds_sharp_s_to_ss_in_both_cases ... ok
[INFO] [stdout] test rules::ioc::tests::ioc_feed_drops_empty_entries ... ok
[INFO] [stdout] test rules::compiled::tests::folded_char_count_matches_pushed_length ... ok
[INFO] [stdout] test rules::ioc::tests::normalized_pack_name_folds_punctuation_to_underscore ... ok
[INFO] [stdout] test rules::schema::deny_unknown_fields_tests::ioc_feed_file_rejects_unknown_fields ... ok
[INFO] [stdout] test rules::schema::deny_unknown_fields_tests::rule_pack_file_rejects_unknown_fields ... ok
[INFO] [stdout] test rules::schema::deny_unknown_fields_tests::rule_pack_metadata_rejects_unknown_fields ... ok
[INFO] [stdout] test rules::ioc::tests::ioc_feed_with_only_empty_entries_emits_no_rule ... ok
[INFO] [stdout] test rules::schema::deny_unknown_fields_tests::shield_hint_rejects_unknown_fields ... ok
[INFO] [stdout] test rules::schema::deny_unknown_fields_tests::rule_rejects_unknown_fields ... ok
[INFO] [stdout] test rules::ioc::tests::ioc_feed_rejects_more_than_max_items_per_kind ... ok
[INFO] [stdout] test rules::ioc::tests::ioc_feed_accepts_exactly_max_items_per_kind ... ok
[INFO] [stdout] test nova::parser::tests::oversized_keyword_regex_is_rejected ... ok
[INFO] [stdout] test rules::tests::compiled_rule_match_does_not_recompile_via_pattern_matcher ... ok
[INFO] [stdout] test rules::tests::compiled_rule_compile_rejects_invalid_regex_syntax_atomically ... ok
[INFO] [stdout] test rules::tests::default_strict_mode_promotes_duplicate_user_rule_to_error ... ok
[INFO] [stdout] test rules::tests::explicit_lenient_mode_skips_duplicate_user_rule_silently ... ok
[INFO] [stdout] test rules::tests::load_from_dir_loads_rule_packs_in_sorted_path_order ... ok
[INFO] [stdout] test rules::builtin::tests::builtin_rules_have_no_internal_duplicate_ids ... ok
[INFO] [stdout] test policy::disposition::tests::confidence_delta_is_hard_bounded ... ok
[INFO] [stdout] test regex_bounds::tests::build_bounded_regex_rejects_oversized_pattern ... ok
[INFO] [stdout] test regex_bounds::tests::bounded_regex_builder_rejects_oversized_pattern ... ok
[INFO] [stdout] test rules::tests::builtin_rules_with_blocking_action_declare_shield_scope ... ok
[INFO] [stdout] test ioc_extraction::tests::extract_from_text_bounds_scan_span ... ok
[INFO] [stdout] test benchmark::evaluation::tests::evaluate_corpus_rejects_suppression_honoring_scanner ... ok
[INFO] [stdout] test rules::tests::official_persist_config_global_write_does_not_fire_on_read_reference ... ok
[INFO] [stdout] test benchmark::evaluation::tests::evaluate_corpus_rejects_absolute_sample_path ... ok
[INFO] [stdout] test rules::tests::chinese_sysinfo_collect_requires_collection_verb_for_generic_terms ... ok
[INFO] [stdout] test rules::tests::chinese_auto_trigger_requires_confirmation_context_for_wuxushoudong ... ok
[INFO] [stdout] test rules::tests::official_persist_config_global_write_matches_openclaw_config_append ... ok
[INFO] [stdout] test rules::tests::official_exfil_file_read_to_network_matches_env_to_webhook ... ok
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/release/deps/skill_veil_core-89a49fc6fdf91be2` (signal: 9, SIGKILL: kill)
[INFO] running `Command { std: "docker" "inspect" "919f230db84b60432ec0e5cbbda49749c651e6e45a3c9202410d40f9dd9dd344", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "919f230db84b60432ec0e5cbbda49749c651e6e45a3c9202410d40f9dd9dd344", kill_on_drop: false }`
[INFO] [stdout] 919f230db84b60432ec0e5cbbda49749c651e6e45a3c9202410d40f9dd9dd344
