[INFO] fetching crate rastray 0.19.0...
[INFO] testing rastray-0.19.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate rastray 0.19.0 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate rastray 0.19.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate rastray 0.19.0
[INFO] tweaked toml for crates.io crate rastray 0.19.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rastray 0.19.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rastray 0.19.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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:99:12
[INFO] [stderr]     |
[INFO] [stderr]  99 | homepage = "https://github.com/balangyaoejuspher/rastray"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 104 | repository = "https://github.com/balangyaoejuspher/rastray"
[INFO] [stderr]     |              ----------------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `rastray` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 97d0397af5c6426737fcc03226165c03dc4e40c1a39596a509b5f76ffba76da7
[INFO] running `Command { std: "docker" "start" "97d0397af5c6426737fcc03226165c03dc4e40c1a39596a509b5f76ffba76da7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "97d0397af5c6426737fcc03226165c03dc4e40c1a39596a509b5f76ffba76da7", 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" "97d0397af5c6426737fcc03226165c03dc4e40c1a39596a509b5f76ffba76da7" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "97d0397af5c6426737fcc03226165c03dc4e40c1a39596a509b5f76ffba76da7", 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" "97d0397af5c6426737fcc03226165c03dc4e40c1a39596a509b5f76ffba76da7" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:99:12
[INFO] [stderr]     |
[INFO] [stderr]  99 | homepage = "https://github.com/balangyaoejuspher/rastray"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 104 | repository = "https://github.com/balangyaoejuspher/rastray"
[INFO] [stderr]     |              ----------------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `rastray` (manifest) generated 1 warning
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling tree-sitter-language v0.1.7
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling gimli v0.32.3
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling owo-colors v4.3.0
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling rustc-demangle v0.1.27
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling tree-sitter-rust v0.24.2
[INFO] [stderr]    Compiling tree-sitter-typescript v0.23.2
[INFO] [stderr]    Compiling tree-sitter-python v0.25.0
[INFO] [stderr]    Compiling tree-sitter-go v0.25.0
[INFO] [stderr]    Compiling tree-sitter-javascript v0.25.0
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling is_ci v1.2.0
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling terminal_size v0.4.4
[INFO] [stderr]    Compiling supports-color v3.0.2
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling dashmap v5.5.3
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling filetime v0.2.29
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling supports-hyperlinks v3.2.0
[INFO] [stderr]    Compiling streaming-iterator v0.1.9
[INFO] [stderr]    Compiling supports-unicode v3.0.0
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling addr2line v0.25.1
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling tar v0.4.46
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling tree-sitter v0.25.10
[INFO] [stderr]    Compiling backtrace-ext v0.2.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling auto_impl v1.3.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling miette-derive v7.6.0
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling pin-project v1.1.13
[INFO] [stderr]    Compiling tower-lsp-macros v0.9.0
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling ignore v0.4.26
[INFO] [stderr]    Compiling miette v7.6.0
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling clap v4.6.1
[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 tower v0.4.13
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling lsp-types v0.94.1
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling tower-lsp v0.20.0
[INFO] [stderr]    Compiling rastray v0.19.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused dependency `semver`
[INFO] [stderr]   --> Cargo.toml:32:15
[INFO] [stderr]    |
[INFO] [stderr] 32 | [dependencies.semver]
[INFO] [stderr]    |               ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `semver`
[INFO] [stderr] warning: `rastray` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 33s
[INFO] running `Command { std: "docker" "inspect" "97d0397af5c6426737fcc03226165c03dc4e40c1a39596a509b5f76ffba76da7", 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" "97d0397af5c6426737fcc03226165c03dc4e40c1a39596a509b5f76ffba76da7" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:99:12
[INFO] [stderr]     |
[INFO] [stderr]  99 | homepage = "https://github.com/balangyaoejuspher/rastray"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 104 | repository = "https://github.com/balangyaoejuspher/rastray"
[INFO] [stderr]     |              ----------------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `rastray` (manifest) generated 1 warning
[INFO] [stderr]    Compiling rastray v0.19.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 17.38s
[INFO] running `Command { std: "docker" "inspect" "97d0397af5c6426737fcc03226165c03dc4e40c1a39596a509b5f76ffba76da7", 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" "97d0397af5c6426737fcc03226165c03dc4e40c1a39596a509b5f76ffba76da7" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:99:12
[INFO] [stderr]     |
[INFO] [stderr]  99 | homepage = "https://github.com/balangyaoejuspher/rastray"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 104 | repository = "https://github.com/balangyaoejuspher/rastray"
[INFO] [stderr]     |              ----------------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `rastray` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/rastray/5f37d6b2bee3ad51/out/rastray-5f37d6b2bee3ad51)
[INFO] [stdout] 
[INFO] [stdout] running 689 tests
[INFO] [stdout] test autofix::tests::rewrites_hashlib_sha1_to_sha256 ... ok
[INFO] [stdout] test autofix::tests::rewrites_java_md5_message_digest ... ok
[INFO] [stdout] test autofix::tests::rewrites_node_create_hash_md5_to_sha256 ... ok
[INFO] [stdout] test autofix::tests::rewrites_yaml_load_to_safe_load ... ok
[INFO] [stdout] test baseline::tests::apply_drops_findings_present_in_baseline ... ok
[INFO] [stdout] test baseline::tests::apply_keeps_findings_with_changed_line_numbers ... ok
[INFO] [stdout] test baseline::tests::empty_baseline_drops_nothing ... ok
[INFO] [stdout] test baseline::tests::fingerprint_distinguishes_lines ... ok
[INFO] [stdout] test autofix::tests::lookup_returns_some_for_supported_codes ... ok
[INFO] [stdout] test autofix::tests::plan_and_apply_skips_findings_without_location ... ok
[INFO] [stdout] test autofix::tests::rewrites_hashlib_md5_to_sha256 ... ok
[INFO] [stdout] test baseline::tests::from_findings_deduplicates_identical_entries ... ok
[INFO] [stdout] test autofix::tests::returns_none_when_no_match_in_line ... ok
[INFO] [stdout] test config::tests::apply_drops_disabled_rules ... ok
[INFO] [stdout] test baseline::tests::fingerprint_includes_code_path_line_and_message ... ok
[INFO] [stdout] test config::tests::apply_overrides_severity ... ok
[INFO] [stdout] test baseline::tests::fingerprint_normalises_windows_paths ... ok
[INFO] [stdout] test autofix::tests::returns_none_for_unknown_code ... ok
[INFO] [stdout] test autofix::tests::plan_and_apply_dry_run_does_not_modify_file ... ok
[INFO] [stdout] test autofix::tests::plan_and_apply_skips_unsupported_rule_codes ... ok
[INFO] [stdout] test config::tests::load_defaults_suppress_rules_to_wildcard ... ok
[INFO] [stdout] test config::tests::load_parses_fail_on ... ok
[INFO] [stdout] test config::tests::load_parses_fail_on_never ... ok
[INFO] [stdout] test config::tests::load_parses_fail_on_none ... ok
[INFO] [stdout] test config::tests::apply_drops_findings_under_ignored_paths ... ok
[INFO] [stdout] test config::tests::apply_suppress_does_not_drop_non_matching_code ... ok
[INFO] [stdout] test config::tests::apply_suppress_drops_matching_path_and_code ... ok
[INFO] [stdout] test config::tests::apply_suppress_wildcard_code_drops_all_codes_at_path ... ok
[INFO] [stdout] test config::tests::default_config_enables_all_rules ... ok
[INFO] [stdout] test autofix::tests::plan_and_apply_handles_multiple_findings_per_file ... ok
[INFO] [stdout] test crawler::tests::classify_does_not_flag_production_paths_as_test ... ok
[INFO] [stdout] test crawler::tests::classify_recognises_cargo_manifest ... ok
[INFO] [stdout] test config::tests::apply_suppress_glob_path_matches_subtree ... ok
[INFO] [stdout] test config::tests::load_parses_suppress_block ... ok
[INFO] [stdout] test config::tests::discover_returns_none_when_no_config_in_ancestors ... ok
[INFO] [stdout] test crawler::tests::classify_recognises_config_extensions ... ok
[INFO] [stdout] test crawler::tests::classify_recognises_dotfile_env_variants_as_config ... ok
[INFO] [stdout] test crawler::tests::classify_recognises_polyglot_manifests ... ok
[INFO] [stdout] test crawler::tests::classify_recognises_source_extensions ... ok
[INFO] [stdout] test autofix::tests::plan_and_apply_with_apply_true_writes_file ... ok
[INFO] [stdout] test config::tests::load_parses_rule_detailed ... ok
[INFO] [stdout] test baseline::tests::load_rejects_malformed_json ... ok
[INFO] [stdout] test crawler::tests::classify_recognises_test_filenames ... ok
[INFO] [stdout] test config::tests::discover_walks_up_to_find_config ... ok
[INFO] [stdout] test config::tests::load_parses_ignore_paths ... ok
[INFO] [stdout] test config::tests::load_parses_minimal_config ... ok
[INFO] [stdout] test crawler::tests::classify_test_check_does_not_override_manifest ... ok
[INFO] [stdout] test config::tests::load_rejects_invalid_rule_severity ... ok
[INFO] [stdout] test baseline::tests::write_then_load_round_trips ... ok
[INFO] [stdout] test crawler::tests::classify_unknown_falls_through_to_other ... ok
[INFO] [stdout] test config::tests::load_rejects_suppress_with_empty_path ... ok
[INFO] [stdout] test crawler::tests::classify_recognises_test_directories ... ok
[INFO] [stdout] test crawler::tests::crawl_summary_count_of_filters_kinds ... ok
[INFO] [stdout] test config::tests::load_rejects_invalid_severity_in_fail_on ... ok
[INFO] [stdout] test crawler::tests::file_kind_as_str_round_trip ... ok
[INFO] [stdout] test crawler::tests::has_minified_name_recognises_common_patterns ... ok
[INFO] [stdout] test config::tests::load_parses_rule_toggle ... ok
[INFO] [stdout] test crawler::tests::is_textual_extension_only_targets_web_assets ... ok
[INFO] [stdout] test crawler::tests::looks_minified_by_content_ignores_too_small_files ... ok
[INFO] [stdout] test default_skip_tests::sec_007_in_repo_root_is_not_skipped ... ok
[INFO] [stdout] test crawler::tests::looks_minified_by_content_flags_long_single_line_js ... ok
[INFO] [stdout] test default_skip_tests::finding_without_location_is_not_skipped ... ok
[INFO] [stdout] test fingerprint::tests::cargo_toml_detects_rust_with_axum ... ok
[INFO] [stdout] test default_skip_tests::sec_007_in_fixtures_is_skipped ... ok
[INFO] [stdout] test default_skip_tests::sec_007_in_unittests_is_skipped ... ok
[INFO] [stdout] test fingerprint::tests::empty_crawl_produces_empty_fingerprint ... ok
[INFO] [stdout] test crawler::tests::is_dotfile_config_boundary_cases ... ok
[INFO] [stdout] test default_skip_tests::unrelated_rule_is_never_skipped ... ok
[INFO] [stdout] test fingerprint::tests::go_mod_detects_go_and_gin ... ok
[INFO] [stdout] test fingerprint::tests::package_json_detects_typescript_and_nestjs ... ok
[INFO] [stdout] test fingerprint::tests::missing_manifest_file_yields_no_project ... ok
[INFO] [stdout] test fingerprint::tests::pyproject_detects_python_and_django ... ok
[INFO] [stdout] test git_changes::tests::resolve_reference_defaults_to_head_minus_one_for_changed_only ... ok
[INFO] [stdout] test git_changes::tests::resolve_reference_is_none_when_nothing_set ... ok
[INFO] [stdout] test git_changes::tests::resolve_reference_passes_through_short_refs ... ok
[INFO] [stdout] test git_changes::tests::resolve_reference_prefers_explicit_since ... ok
[INFO] [stdout] test history::tests::short_sha_keeps_short_input_intact ... ok
[INFO] [stdout] test history::tests::short_sha_truncates_to_seven_chars ... ok
[INFO] [stdout] test history::tests::synthetic_history_path_includes_short_sha ... ok
[INFO] [stdout] test image::tests::decompress_if_gz_passes_through_plain_bytes ... ok
[INFO] [stdout] test image::tests::looks_binary_flags_zero_heavy_buffers ... ok
[INFO] [stdout] test image::tests::looks_binary_passes_text_buffers ... ok
[INFO] [stdout] test image::tests::looks_like_inner_tar_recognises_oci_layer_paths ... ok
[INFO] [stdout] test install_hooks::tests::hook_body_falls_back_with_clear_message_when_rastray_missing ... ok
[INFO] [stdout] test fingerprint::tests::monorepo_detects_multiple_projects_in_subdirectories ... ok
[INFO] [stdout] test install_hooks::tests::hook_body_invokes_rastray_with_correct_flags ... ok
[INFO] [stdout] test install_hooks::tests::hook_body_starts_with_shebang ... ok
[INFO] [stdout] test lsp::tests::classify_path_recognises_cargo_manifest ... ok
[INFO] [stdout] test lsp::tests::classify_path_recognises_rust_source ... ok
[INFO] [stdout] test lsp::tests::classify_path_returns_other_for_unknown ... ok
[INFO] [stdout] test lsp::tests::default_cli_for_lsp_is_quiet_and_offline ... ok
[INFO] [stdout] test lsp::tests::finding_to_diagnostic_uses_zero_based_position ... ok
[INFO] [stdout] test fingerprint::tests::unknown_manifest_name_is_ignored ... ok
[INFO] [stdout] test lsp::tests::findings_filtered_by_path_match ... ok
[INFO] [stdout] test lsp::tests::maps_severity_to_lsp_severity ... ok
[INFO] [stdout] test modules::axum::tests::wants_returns_false_when_no_axum_framework_detected ... ok
[INFO] [stdout] test modules::axum::tests::wants_returns_true_when_axum_detected ... ok
[INFO] [stdout] test modules::crypto::tests::byte_offset_to_line_col_handles_newlines ... ok
[INFO] [stdout] test modules::custom_rules::tests::default_severity_is_medium ... ok
[INFO] [stdout] test crawler::tests::looks_minified_by_content_keeps_normal_source_files ... ok
[INFO] [stdout] test modules::custom_rules::tests::explicit_severity_overrides_default ... ok
[INFO] [stdout] test modules::custom_rules::tests::extensions_strip_leading_dot ... ok
[INFO] [stdout] test modules::custom_rules::tests::invalid_regex_is_silently_dropped_in_constructor ... ok
[INFO] [stdout] test modules::axum::tests::cors_any_without_credentials_is_silent ... ok
[INFO] [stdout] test modules::custom_rules::tests::help_text_propagates_to_finding ... ok
[INFO] [stdout] test modules::custom_rules::tests::empty_rules_returns_no_findings ... ok
[INFO] [stdout] test modules::custom_rules::tests::extensions_filter_restricts_match ... ok
[INFO] [stdout] test modules::axum::tests::cors_explicit_origin_with_credentials_is_silent ... ok
[INFO] [stdout] test modules::custom_rules::tests::matches_simple_regex ... ok
[INFO] [stdout] test modules::axum::tests::cors_any_with_credentials_is_flagged ... ok
[INFO] [stdout] test modules::axum::tests::cors_qualified_any_with_credentials_is_flagged ... ok
[INFO] [stdout] test modules::dependencies::tests::extract_cvss_score_reads_bare_number ... ok
[INFO] [stdout] test modules::dependencies::tests::extract_cvss_score_reads_base_score_from_vector ... ok
[INFO] [stdout] test modules::dependencies::tests::extract_cvss_score_returns_none_for_unparseable ... ok
[INFO] [stdout] test modules::dependencies::tests::extract_quoted_strings_handles_escapes ... ok
[INFO] [stdout] test modules::dependencies::tests::normalize_swift_location_strips_protocol_and_git_suffix ... ok
[INFO] [stdout] test modules::dependencies::tests::advisory_url_routes_known_prefixes ... ok
[INFO] [stdout] test modules::dependencies::tests::cache_key_uniquely_identifies_packages ... ok
[INFO] [stdout] test modules::dependencies::tests::derive_npm_name_handles_root_and_scoped_paths ... ok
[INFO] [stdout] test modules::axum::tests::analyze_emits_finding_only_inside_axum_project_root ... ok
[INFO] [stdout] test modules::custom_rules::tests::finding_location_carries_line_and_column ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_python_requirement_line_rejects_directives_and_blanks ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_python_requirement_line_rejects_non_pinned_specifiers ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_python_requirement_line_strips_extras_and_environment_markers ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_go_sum_line_rejects_invalid_versions ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_python_requirement_line_strips_inline_comment ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_yarn_header_extracts_name_from_compound_spec ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_yarn_header_extracts_name_from_single_spec ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_gemfile_spec_line_handles_name_and_version ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_go_sum_line_strips_go_mod_suffix ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_python_requirement_line_accepts_pinned_version ... ok
[INFO] [stdout] test modules::dependencies::tests::osv_cache_round_trip_via_temp_dir ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_gemfile_spec_line_rejects_malformed_lines ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_yarn_version_line_rejects_other_keys ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_go_sum_line_accepts_module_version ... ok
[INFO] [stdout] test modules::dependencies::tests::cache_dir_uses_override_env_when_set ... ok
[INFO] [stdout] test modules::dependencies::tests::pick_severity_falls_back_to_medium_when_no_score ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_yarn_header_handles_scoped_packages ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_yarn_header_strips_yarn_berry_npm_protocol ... ok
[INFO] [stdout] test modules::dependencies::tests::pick_severity_maps_github_moderate_rating ... ok
[INFO] [stdout] test modules::dependencies::tests::parse_yarn_version_line_handles_quoted_and_unquoted ... ok
[INFO] [stdout] test modules::dependencies::tests::build_finding_uses_dependency_category_and_id_in_code ... ok
[INFO] [stdout] test modules::dependencies::tests::pick_severity_maps_critical_band ... ok
[INFO] [stdout] test modules::dependencies::tests::pick_severity_maps_github_low_rating ... ok
[INFO] [stdout] test modules::dependencies::tests::pick_severity_maps_medium_band ... ok
[INFO] [stdout] test modules::dependencies::tests::pnpm_packages_key_extracts_v6_style_slash_prefix ... ok
[INFO] [stdout] test modules::dependencies::tests::read_composer_lock_skips_entries_without_name_or_version ... ok
[INFO] [stdout] test modules::dependencies::tests::pnpm_packages_key_ignores_non_two_space_indent ... ok
[INFO] [stdout] test modules::dependencies::tests::pick_severity_uses_database_specific_rating_when_no_cvss_score ... ok
[INFO] [stdout] test modules::dependencies::tests::read_go_sum_deduplicates_pkg_and_go_mod_pairs ... ok
[INFO] [stdout] test modules::dependencies::tests::read_gemfile_lock_extracts_top_level_specs_only ... ok
[INFO] [stdout] test modules::dependencies::tests::read_gradle_lockfile_parses_group_name_version_lines ... ok
[INFO] [stdout] test modules::dependencies::tests::read_gradle_lockfile_skips_malformed_lines ... ok
[INFO] [stdout] test modules::dependencies::tests::pnpm_packages_key_extracts_v9_style_no_prefix ... ok
[INFO] [stdout] test modules::dependencies::tests::read_mix_lock_skips_non_hex_sources ... ok
[INFO] [stdout] test modules::dependencies::tests::read_mix_lock_extracts_hex_packages ... ok
[INFO] [stdout] test modules::dependencies::tests::read_npm_lock_returns_empty_for_missing_packages_and_dependencies ... ok
[INFO] [stdout] test modules::dependencies::tests::read_cargo_lock_extracts_registry_packages ... ok
[INFO] [stdout] test modules::dependencies::tests::read_composer_lock_extracts_packages_and_packages_dev ... ok
[INFO] [stdout] test modules::dependencies::tests::read_nuget_lock_extracts_resolved_versions_across_tfms ... ok
[INFO] [stdout] test modules::dependencies::tests::pick_severity_maps_high_band ... ok
[INFO] [stdout] test modules::dependencies::tests::pick_severity_maps_low_band ... ok
[INFO] [stdout] test modules::dependencies::tests::read_pipfile_lock_skips_entries_without_version ... ok
[INFO] [stdout] test modules::dependencies::tests::read_pnpm_lock_dedupes_repeated_packages ... ok
[INFO] [stdout] test modules::dependencies::tests::read_poetry_lock_extracts_packages ... ok
[INFO] [stdout] test modules::dependencies::tests::read_nuget_lock_skips_entries_without_resolved ... ok
[INFO] [stdout] test modules::dependencies::tests::read_pom_xml_extracts_direct_dependencies_only ... ok
[INFO] [stdout] test modules::dependencies::tests::read_pnpm_lock_parses_minimal_v9_lockfile ... ok
[INFO] [stdout] test modules::dependencies::tests::read_npm_lock_v1_falls_back_to_dependencies_field ... ok
[INFO] [stdout] test modules::dependencies::tests::read_swift_resolved_handles_v1_pins ... ok
[INFO] [stdout] test modules::dependencies::tests::read_pom_xml_skips_property_substituted_versions ... ok
[INFO] [stdout] test modules::dependencies::tests::read_pipfile_lock_extracts_default_and_develop ... ok
[INFO] [stdout] test modules::dependencies::tests::read_npm_lock_v3_parses_packages_field ... ok
[INFO] [stdout] test modules::dependencies::tests::read_cargo_lock_returns_empty_when_no_packages ... ok
[INFO] [stdout] test modules::dependencies::tests::read_swift_resolved_skips_pins_without_version ... ok
[INFO] [stdout] test modules::dependencies::tests::read_pubspec_lock_extracts_packages_with_versions ... ok
[INFO] [stdout] test modules::dependencies::tests::read_pubspec_lock_ignores_non_packages_sections ... ok
[INFO] [stdout] test modules::dependencies::tests::read_uv_lock_extracts_packages ... ok
[INFO] [stdout] test modules::dependencies::tests::read_yarn_lock_parses_berry_v2_format ... ok
[INFO] [stdout] test modules::dependencies::tests::read_swift_resolved_handles_v2_pins ... ok
[INFO] [stdout] test modules::dependencies::tests::read_python_requirements_collects_all_pinned_lines ... ok
[INFO] [stdout] test modules::dependencies::tests::split_npm_spec_strips_pnpm_peer_suffix ... ok
[INFO] [stdout] test modules::dependencies::tests::split_npm_spec_parses_plain_and_scoped ... ok
[INFO] [stdout] test modules::dependencies::tests::split_npm_spec_rejects_invalid_inputs ... ok
[INFO] [stdout] test modules::dependencies::tests::strip_xml_comments_removes_comment_blocks ... ok
[INFO] [stdout] test modules::dependencies::tests::read_yarn_lock_parses_v1_classic_format ... ok
[INFO] [stdout] test modules::django::tests::debug_true_in_settings_is_flagged ... ok
[INFO] [stdout] test modules::django::tests::debug_false_is_silent ... ok
[INFO] [stdout] test modules::deserialization::tests::pickle_loads_python_matches ... ok
[INFO] [stdout] test modules::django::tests::debug_from_env_is_silent ... ok
[INFO] [stdout] test modules::deserialization::tests::php_unserialize_matches ... ok
[INFO] [stdout] test modules::django::tests::explicit_hosts_are_silent ... ok
[INFO] [stdout] test modules::django::tests::is_django_settings_file_rejects_random_python_file ... ok
[INFO] [stdout] test modules::deserialization::tests::yaml_load_python_matches ... ok
[INFO] [stdout] test modules::django::tests::is_django_settings_file_recognises_settings_dir_layout ... ok
[INFO] [stdout] test modules::deserialization::tests::marshal_ruby_matches ... ok
[INFO] [stdout] test modules::deserialization::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::django::tests::is_django_settings_file_recognises_basename_settings_py ... ok
[INFO] [stdout] test modules::deserialization::tests::java_readobject_matches ... ok
[INFO] [stdout] test modules::django::tests::wants_returns_true_when_django_detected ... ok
[INFO] [stdout] test modules::django::tests::is_django_settings_file_rejects_settings_py_without_django_markers ... ok
[INFO] [stdout] test modules::django::tests::wants_returns_false_when_no_django_framework_detected ... ok
[INFO] [stdout] test modules::django::tests::wildcard_allowed_hosts_is_flagged ... ok
[INFO] [stdout] test modules::django::tests::analyze_emits_findings_only_for_django_settings_files_inside_project_root ... ok
[INFO] [stdout] test modules::django::tests::wildcard_allowed_hosts_double_quoted_is_flagged ... ok
[INFO] [stdout] test modules::crypto::tests::python_random_module_matches ... ok
[INFO] [stdout] test modules::crypto::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::crypto::tests::md5_python_call_matches ... ok
[INFO] [stdout] test modules::crypto::tests::sha1_js_create_hash_matches ... ok
[INFO] [stdout] test modules::crypto::tests::ecb_mode_java_matches ... ok
[INFO] [stdout] test modules::crypto::tests::math_random_js_matches ... ok
[INFO] [stdout] test modules::flask::tests::config_debug_false_is_silent ... ok
[INFO] [stdout] test modules::flask::tests::app_run_no_debug_kwarg_is_silent ... ok
[INFO] [stdout] test modules::flask::tests::config_debug_true_is_flagged ... ok
[INFO] [stdout] test modules::flask::tests::wants_returns_true_when_flask_detected ... ok
[INFO] [stdout] test modules::flask::tests::wants_returns_false_when_no_flask_framework_detected ... ok
[INFO] [stdout] test modules::flask::tests::is_flask_app_file_requires_flask_import ... ok
[INFO] [stdout] test modules::flask::tests::secret_key_from_secrets_module_is_silent ... ok
[INFO] [stdout] test modules::flask::tests::app_run_debug_false_is_silent ... ok
[INFO] [stdout] test modules::flask::tests::hardcoded_secret_key_attr_is_flagged ... ok
[INFO] [stdout] test modules::gha::tests::is_workflow_path_accepts_yml_under_github_workflows ... ok
[INFO] [stdout] test modules::gha::tests::wants_returns_false_without_workflow_files ... ok
[INFO] [stdout] test modules::flask::tests::debug_from_env_is_silent ... ok
[INFO] [stdout] test modules::gha::tests::wants_returns_true_with_workflow_file ... ok
[INFO] [stdout] test modules::flask::tests::config_debug_double_quoted_is_flagged ... ok
[INFO] [stdout] test modules::flask::tests::secret_key_from_env_is_silent ... ok
[INFO] [stdout] test modules::flask::tests::app_run_debug_true_with_host_is_flagged ... ok
[INFO] [stdout] test modules::flask::tests::app_run_debug_true_is_flagged ... ok
[INFO] [stdout] test modules::flask::tests::hardcoded_secret_key_config_is_flagged ... ok
[INFO] [stdout] test modules::flask::tests::attr_debug_true_is_flagged ... ok
[INFO] [stdout] test modules::flask::tests::secret_key_from_fstring_is_silent ... ok
[INFO] [stdout] test modules::iac::tests::chmod_777_matches ... ok
[INFO] [stdout] test modules::iac::tests::add_remote_url_matches ... ok
[INFO] [stdout] test modules::iac::tests::curl_pipe_sh_matches ... ok
[INFO] [stdout] test modules::iac::tests::is_dockerfile_recognises_canonical_and_variant_names ... ok
[INFO] [stdout] test modules::iac::tests::is_terraform_file_recognises_tf_and_tfvars ... ok
[INFO] [stdout] test modules::iac::tests::from_latest_matches ... ok
[INFO] [stdout] test modules::flask::tests::secret_key_from_env_get_is_silent ... ok
[INFO] [stdout] test modules::iac::tests::k8s_privileged_true_matches ... ok
[INFO] [stdout] test modules::iac::tests::wants_returns_false_without_iac_files ... ok
[INFO] [stdout] test modules::iac::tests::k8s_host_namespace_matches ... ok
[INFO] [stdout] test modules::iac::tests::wants_returns_true_for_terraform ... ok
[INFO] [stdout] test modules::iac::tests::wants_returns_true_for_yaml ... ok
[INFO] [stdout] test modules::iac::tests::wants_returns_true_for_dockerfile ... ok
[INFO] [stdout] test modules::iac::tests::user_root_matches ... ok
[INFO] [stdout] test modules::iac::tests::is_kubernetes_manifest_requires_apiversion_and_kind ... ok
[INFO] [stdout] test modules::gha::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::gha::tests::pull_request_target_matches ... ok
[INFO] [stdout] test modules::gha::tests::github_event_interpolation_in_run_matches ... ok
[INFO] [stdout] test modules::flask::tests::analyze_emits_findings_only_inside_flask_project_roots ... ok
[INFO] [stdout] test modules::gha::tests::floating_tag_pin_matches ... ok
[INFO] [stdout] test modules::gha::tests::is_workflow_path_rejects_other_yaml ... ok
[INFO] [stdout] test modules::iac::tests::tf_open_cidr_matches ... ok
[INFO] [stdout] test modules::iac::tests::tf_public_acl_matches ... ok
[INFO] [stdout] test modules::iac::tests::tf_publicly_accessible_matches ... ok
[INFO] [stdout] test modules::iac::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::injection::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::injection::tests::rails_where_interpolation_matches ... ok
[INFO] [stdout] test modules::injection::tests::sql_fstring_python_matches ... ok
[INFO] [stdout] test modules::injection::tests::rails_inj_009_silenced_without_rails_fingerprint ... ok
[INFO] [stdout] test modules::injection::tests::shell_true_python_matches ... ok
[INFO] [stdout] test modules::injection::tests::php_cmd_exec_matches ... ok
[INFO] [stdout] test modules::injection::tests::rails_render_inline_with_params_matches ... ok
[INFO] [stdout] test modules::injection::tests::php_sqli_mysqli_query_matches ... ok
[INFO] [stdout] test modules::injection::tests::rails_constantize_on_params_matches ... ok
[INFO] [stdout] test modules::injection::tests::rails_inj_rules_silenced_without_rails_fingerprint ... ok
[INFO] [stdout] test modules::injection::tests::eval_python_matches ... ok
[INFO] [stdout] test modules::injection::tests::go_sh_dash_c_matches ... ok
[INFO] [stdout] test modules::injection::tests::child_process_template_literal_matches ... ok
[INFO] [stdout] test modules::injection::tests::non_rails_inj_rules_unaffected_by_rails_gate ... ok
[INFO] [stdout] test modules::injection::tests::java_runtime_exec_with_concat_matches ... ok
[INFO] [stdout] test modules::injection::tests::rails_inj_rules_fire_when_rails_fingerprint_present ... ok
[INFO] [stdout] test modules::jwt::tests::js_sign_with_env_var_secret_is_not_flagged ... ok
[INFO] [stdout] test modules::jwt::tests::py_decode_with_algorithms_is_not_flagged ... ok
[INFO] [stdout] test modules::jwt::tests::js_alg_none_is_flagged_as_critical ... ok
[INFO] [stdout] test modules::jwt::tests::js_hardcoded_secret_in_sign_is_flagged ... ok
[INFO] [stdout] test modules::jwt::tests::py_decode_without_algorithms_is_flagged ... ok
[INFO] [stdout] test modules::jwt::tests::messages_for_same_rule_differ_by_captured_call_site ... ok
[INFO] [stdout] test modules::jwt::tests::trim_match_balances_parens ... ok
[INFO] [stdout] test modules::jwt::tests::js_alg_wildcard_is_flagged ... ok
[INFO] [stdout] test modules::jwt::tests::py_verify_false_keyword_is_flagged ... ok
[INFO] [stdout] test modules::jwt::tests::js_verify_with_algorithms_is_not_flagged ... ok
[INFO] [stdout] test modules::jwt::tests::py_alg_none_is_flagged ... ok
[INFO] [stdout] test modules::jwt::tests::js_verify_without_algorithms_is_flagged ... ok
[INFO] [stdout] test modules::jwt::tests::js_verify_false_is_flagged ... ok
[INFO] [stdout] test modules::jwt::tests::py_hardcoded_secret_in_encode_is_flagged ... ok
[INFO] [stdout] test modules::ldap::tests::non_js_extension_is_skipped_for_js_pattern ... ok
[INFO] [stdout] test modules::ldap::tests::python_search_with_literal_filter_is_not_flagged ... ok
[INFO] [stdout] test modules::jwt::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::ldap::tests::ldap_search_with_literal_filter_is_not_flagged ... ok
[INFO] [stdout] test modules::jwt::tests::non_js_extension_is_skipped_for_js_pattern ... ok
[INFO] [stdout] test modules::ldap::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::ldap::tests::trim_match_balances_parens ... ok
[INFO] [stdout] test modules::ldap::tests::python_ldap3_search_fstring_is_flagged ... ok
[INFO] [stdout] test modules::ldap::tests::ldap_search_with_escaped_value_is_not_flagged ... ok
[INFO] [stdout] test modules::jwt::tests::py_verify_signature_false_is_flagged ... ok
[INFO] [stdout] test modules::ldap::tests::python_ldap_search_s_fstring_is_flagged ... ok
[INFO] [stdout] test modules::ldap::tests::ldap_search_positional_template_literal_is_flagged ... ok
[INFO] [stdout] test modules::ldap::tests::help_text_includes_remediation_idiom ... ok
[INFO] [stdout] test modules::jwt::tests::go_jwt_parse_without_alg_check_is_flagged ... ok
[INFO] [stdout] test modules::memory::tests::trim_match_caps_long_snippets ... ok
[INFO] [stdout] test modules::memory::tests::wants_returns_false_when_c_extension_is_not_source_kind ... ok
[INFO] [stdout] test modules::memory::tests::wants_returns_false_when_no_c_or_cpp_source ... ok
[INFO] [stdout] test modules::memory::tests::wants_returns_true_for_c_or_cpp_source ... ok
[INFO] [stdout] test modules::jwt::tests::help_text_includes_remediation_idiom ... ok
[INFO] [stdout] test modules::memory::tests::mem_005_uses_low_confidence ... ok
[INFO] [stdout] test modules::memory::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::ldap::tests::ldapjs_search_filter_template_literal_is_flagged ... ok
[INFO] [stdout] test modules::memory::tests::inj_011_flags_system_with_identifier_argument ... ok
[INFO] [stdout] test modules::memory::tests::mem_004_flags_memcpy_with_strlen ... ok
[INFO] [stdout] test modules::memory::tests::mem_002_flags_unbounded_scanf_percent_s ... ok
[INFO] [stdout] test modules::memory::tests::mem_005_flags_raw_new_with_typename ... ok
[INFO] [stdout] test modules::nestjs::tests::wants_returns_false_when_no_nestjs_framework_detected ... ok
[INFO] [stdout] test modules::nestjs::tests::scan_unguarded_controller_silent_for_read_only_controller ... ok
[INFO] [stdout] test modules::memory::tests::mem_001_flags_strcpy_and_friends ... ok
[INFO] [stdout] test modules::memory::tests::mem_003_flags_alloca ... ok
[INFO] [stdout] test modules::nestjs::tests::wants_returns_true_when_nestjs_detected ... ok
[INFO] [stdout] test modules::nestjs::tests::detect_globally_guarded_projects_empty_when_no_app_guard ... ok
[INFO] [stdout] test modules::nestjs::tests::detect_globally_guarded_projects_finds_app_guard_in_module ... ok
[INFO] [stdout] test modules::nestjs::tests::scan_unguarded_controller_silent_when_guard_present ... ok
[INFO] [stdout] test modules::nextjs::tests::is_app_router_route_file_recognises_app_route_paths ... ok
[INFO] [stdout] test modules::nestjs::tests::scan_unguarded_controller_silent_when_public_marker_used ... ok
[INFO] [stdout] test modules::nextjs::tests::is_app_router_route_file_rejects_non_route_files ... ok
[INFO] [stdout] test modules::nestjs::tests::scan_unguarded_controller_flags_post_handler_without_guard ... ok
[INFO] [stdout] test modules::nestjs::tests::nest_001_ignores_safe_reads ... ok
[INFO] [stdout] test modules::nestjs::tests::nest_001_ignores_coerced_or_qualified_ids ... ok
[INFO] [stdout] test modules::nestjs::tests::nest_001_flags_bare_identifier_in_prisma_delete ... ok
[INFO] [stdout] test modules::network::tests::insecure_skip_verify_go_matches ... ok
[INFO] [stdout] test modules::network::tests::verify_false_python_matches ... ok
[INFO] [stdout] test modules::network::tests::reject_unauthorized_false_js_matches ... ok
[INFO] [stdout] test modules::network::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::network::tests::cors_wildcard_with_credentials_matches ... ok
[INFO] [stdout] test modules::nestjs::tests::analyze_silences_nest_002_for_project_with_app_guard ... ok
[INFO] [stdout] test modules::nestjs::tests::analyze_still_fires_nest_002_for_project_without_app_guard ... ok
[INFO] [stdout] test modules::network::tests::java_hostname_verifier_lambda_returns_true_matches ... ok
[INFO] [stdout] test modules::nextjs::tests::wants_returns_false_when_no_nextjs_framework_detected ... ok
[INFO] [stdout] test modules::nextjs::tests::wants_returns_true_when_nextjs_detected ... ok
[INFO] [stdout] test modules::nextjs::tests::next_001_ignores_coerced_or_qualified_ids ... ok
[INFO] [stdout] test modules::nestjs::tests::analyze_emits_findings_only_for_files_inside_nestjs_project_root ... ok
[INFO] [stdout] test modules::nextjs::tests::next_001_flags_bare_identifier_in_prisma_destructive ... ok
[INFO] [stdout] test modules::nosqli::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::nosqli::tests::intermediate_variable_is_not_flagged ... ok
[INFO] [stdout] test modules::nosqli::tests::mongo_deleteone_with_req_params_value_is_flagged ... ok
[INFO] [stdout] test modules::nosqli::tests::messages_for_same_rule_differ_by_captured_call_site ... ok
[INFO] [stdout] test modules::nosqli::tests::mongo_find_with_coerced_string_is_not_flagged ... ok
[INFO] [stdout] test modules::nosqli::tests::help_text_includes_remediation_idiom_for_language ... ok
[INFO] [stdout] test modules::nosqli::tests::mongo_find_with_literal_filter_is_not_flagged ... ok
[INFO] [stdout] test modules::nosqli::tests::mongo_find_with_req_body_value_is_flagged ... ok
[INFO] [stdout] test modules::nosqli::tests::mongo_findone_with_req_query_value_is_flagged ... ok
[INFO] [stdout] test modules::nosqli::tests::mongo_updateone_with_req_body_value_is_flagged ... ok
[INFO] [stdout] test modules::nosqli::tests::non_js_extension_is_skipped_for_js_pattern ... ok
[INFO] [stdout] test modules::nosqli::tests::mongo_where_with_template_literal_is_flagged ... ok
[INFO] [stdout] test modules::nosqli::tests::mongo_where_with_direct_req_value_is_flagged ... ok
[INFO] [stdout] test modules::nosqli::tests::pymongo_find_one_with_request_args_get_is_flagged ... ok
[INFO] [stdout] test modules::nextjs::tests::next_003_silent_when_verify_session_helper_called ... ok
[INFO] [stdout] test modules::nextjs::tests::next_002_silent_when_no_use_server_directive ... ok
[INFO] [stdout] test modules::nextjs::tests::next_003_silent_for_read_only_route ... ok
[INFO] [stdout] test modules::nextjs::tests::next_003_flags_post_export_without_auth_marker ... ok
[INFO] [stdout] test modules::nextjs::tests::next_002_flags_use_server_with_destructive_call_and_no_validation ... ok
[INFO] [stdout] test modules::nextjs::tests::next_003_silent_when_request_cookies_get_is_used ... ok
[INFO] [stdout] test modules::nextjs::tests::next_003_silent_when_req_headers_authorization_is_used ... ok
[INFO] [stdout] test modules::nextjs::tests::next_003_silent_when_req_cookies_get_is_used ... ok
[INFO] [stdout] test modules::nextjs::tests::next_003_silent_when_auth_helper_called ... ok
[INFO] [stdout] test modules::nosqli::tests::pymongo_find_with_str_coercion_is_not_flagged ... ok
[INFO] [stdout] test modules::nosqli::tests::pymongo_find_with_request_json_value_is_flagged ... ok
[INFO] [stdout] test modules::nextjs::tests::next_002_silent_when_no_destructive_call ... ok
[INFO] [stdout] test modules::nextjs::tests::next_002_silent_when_validation_library_is_used ... ok
[INFO] [stdout] test modules::nextjs::tests::analyze_emits_findings_only_for_files_inside_nextjs_project_root ... ok
[INFO] [stdout] test modules::nosqli::tests::trim_match_balances_parens ... ok
[INFO] [stdout] test modules::nosqli::tests::where_rule_does_not_double_fire_as_object_injection ... ok
[INFO] [stdout] test modules::nosqli::tests::where_rule_severity_is_critical ... ok
[INFO] [stdout] test modules::open_redirect::tests::trim_match_balances_parens ... ok
[INFO] [stdout] test modules::open_redirect::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::open_redirect::tests::rails_redirect_to_named_route_not_flagged ... ok
[INFO] [stdout] test modules::open_redirect::tests::literal_redirect_target_is_not_flagged ... ok
[INFO] [stdout] test modules::open_redirect::tests::non_js_extension_is_skipped_for_js_pattern ... ok
[INFO] [stdout] test modules::open_redirect::tests::messages_for_same_rule_differ_by_captured_call_site ... ok
[INFO] [stdout] test modules::open_redirect::tests::rails_redirect_to_params_matches ... ok
[INFO] [stdout] test modules::open_redirect::tests::intermediate_variable_is_not_flagged ... ok
[INFO] [stdout] test modules::open_redirect::tests::url_for_redirect_target_is_not_flagged ... ok
[INFO] [stdout] test modules::open_redirect::tests::flask_redirect_with_request_args_get_is_flagged ... ok
[INFO] [stdout] test modules::open_redirect::tests::express_res_redirect_with_status_and_req_body_is_flagged ... ok
[INFO] [stdout] test modules::open_redirect::tests::express_res_redirect_with_req_query_is_flagged ... ok
[INFO] [stdout] test modules::open_redirect::tests::go_http_redirect_with_query_get_is_flagged ... ok
[INFO] [stdout] test modules::open_redirect::tests::go_http_redirect_with_form_value_is_flagged ... ok
[INFO] [stdout] test modules::open_redirect::tests::django_httpresponseredirect_with_request_get_is_flagged ... ok
[INFO] [stdout] test modules::open_redirect::tests::help_text_includes_remediation_idiom_for_language ... ok
[INFO] [stdout] test modules::orm::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::orm::tests::knex_with_parameter_binding_is_not_flagged ... ok
[INFO] [stdout] test modules::orm::tests::non_js_extension_is_skipped_for_js_pattern ... ok
[INFO] [stdout] test modules::orm::tests::rails_open_permit_matches ... ok
[INFO] [stdout] test modules::orm::tests::django_create_with_explicit_kwargs_is_not_flagged ... ok
[INFO] [stdout] test modules::orm::tests::prisma_create_with_data_req_body_is_flagged ... ok
[INFO] [stdout] test modules::orm::tests::sequelize_model_update_with_req_body_is_flagged ... ok
[INFO] [stdout] test modules::orm::tests::trim_match_balances_parens ... ok
[INFO] [stdout] test modules::orm::tests::rails_explicit_permit_not_flagged_as_open ... ok
[INFO] [stdout] test modules::orm::tests::node_create_with_lodash_pick_is_not_flagged ... ok
[INFO] [stdout] test modules::orm::tests::rails_open_permit_silenced_when_rails_fingerprint_absent ... ok
[INFO] [stdout] test modules::orm::tests::rails_update_with_strong_params_is_not_flagged ... ok
[INFO] [stdout] test modules::orm::tests::django_filter_kwargs_request_data_is_flagged ... ok
[INFO] [stdout] test modules::orm::tests::messages_for_same_rule_differ_by_captured_call_site ... ok
[INFO] [stdout] test modules::orm::tests::help_text_includes_remediation_idiom ... ok
[INFO] [stdout] test modules::orm::tests::django_objects_create_kwargs_request_post_is_flagged ... ok
[INFO] [stdout] test modules::orm::tests::mongoose_model_create_with_req_body_is_flagged ... ok
[INFO] [stdout] test modules::orm::tests::rails_update_with_params_section_is_flagged ... ok
[INFO] [stdout] test modules::orm::tests::prisma_query_raw_unsafe_template_literal_is_flagged ... ok
[INFO] [stdout] test modules::orm::tests::rails_orm_rules_silenced_when_rails_fingerprint_absent ... ok
[INFO] [stdout] test modules::orm::tests::knex_raw_literal_template_without_interpolation_is_not_flagged ... ok
[INFO] [stdout] test modules::path_traversal::tests::line_containing_returns_full_line ... ok
[INFO] [stdout] test modules::path_traversal::tests::module_specifier_lines_are_recognized ... ok
[INFO] [stdout] test modules::orm::tests::knex_raw_with_template_literal_is_flagged_as_critical ... ok
[INFO] [stdout] test modules::orm::tests::sequelize_query_with_template_literal_is_flagged ... ok
[INFO] [stdout] test modules::path_traversal::tests::literal_double_traversal_matches ... ok
[INFO] [stdout] test modules::path_traversal::tests::pth_004_is_info_severity ... ok
[INFO] [stdout] test modules::path_traversal::tests::fs_with_req_input_matches ... ok
[INFO] [stdout] test modules::performance::go::tests::sprintf_outside_loop_is_not_flagged ... ok
[INFO] [stdout] test modules::path_traversal::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::path_traversal::tests::flask_send_file_with_request_matches ... ok
[INFO] [stdout] test modules::path_traversal::tests::php_include_with_request_superglobal_matches ... ok
[INFO] [stdout] test modules::path_traversal::tests::php_file_get_contents_with_request_superglobal_matches ... ok
[INFO] [stdout] test modules::path_traversal::tests::express_send_file_with_req_params_matches ... ok
[INFO] [stdout] test modules::performance::go::tests::defer_inside_for_loop_is_flagged ... ok
[INFO] [stdout] test modules::performance::go::tests::defer_inside_for_loop_with_classic_form_is_flagged ... ok
[INFO] [stdout] test modules::performance::go::tests::unrelated_selector_in_loop_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::go::tests::defer_inside_func_literal_inside_loop_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::go::tests::defer_outside_loop_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::go::tests::empty_source_produces_no_findings ... ok
[INFO] [stdout] test modules::performance::go::tests::invalid_go_syntax_does_not_panic ... ok
[INFO] [stdout] test modules::performance::python::tests::asyncio_sleep_in_async_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::python::tests::integer_plus_assign_inside_loop_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::python::tests::string_plus_assign_outside_loop_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::python::tests::invalid_python_syntax_does_not_panic ... ok
[INFO] [stdout] test modules::performance::go::tests::sprintf_inside_for_loop_is_flagged ... ok
[INFO] [stdout] test modules::performance::python::tests::empty_source_produces_no_findings ... ok
[INFO] [stdout] test modules::performance::python::tests::string_plus_assign_inside_for_loop_is_flagged ... ok
[INFO] [stdout] test modules::performance::python::tests::string_plus_assign_inside_while_loop_is_flagged ... ok
[INFO] [stdout] test modules::performance::python::tests::string_plus_assign_with_concat_expression_is_flagged ... ok
[INFO] [stdout] test modules::performance::python::tests::time_sleep_in_nested_sync_function_inside_async_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::python::tests::time_sleep_in_async_function_is_flagged ... ok
[INFO] [stdout] test modules::performance::shared::tests::byte_offset_to_line_col_handles_multiline_offsets ... ok
[INFO] [stdout] test modules::performance::rust::tests::for_loop_with_iter_method_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::python::tests::time_sleep_in_sync_function_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::typescript::tests::await_inside_for_loop_is_flagged ... ok
[INFO] [stdout] test modules::performance::typescript::tests::await_in_for_of_iterable_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::rust::tests::format_inside_closure_inside_loop_does_not_cross_fn_boundary ... ok
[INFO] [stdout] test modules::performance::rust::tests::format_inside_loop_as_function_argument_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::rust::tests::format_inside_loop_as_struct_field_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::typescript::tests::await_outside_loop_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::rust::tests::format_inside_loop_with_compound_add_assign_is_flagged ... ok
[INFO] [stdout] test modules::performance::rust::tests::for_loop_with_clone_iterable_is_flagged ... ok
[INFO] [stdout] test modules::performance::typescript::tests::await_inside_nested_function_does_not_count_outer_loop ... ok
[INFO] [stdout] test modules::performance::rust::tests::format_inside_for_loop_is_flagged ... ok
[INFO] [stdout] test modules::performance::typescript::tests::await_inside_while_loop_is_flagged ... ok
[INFO] [stdout] test modules::performance::rust::tests::empty_source_produces_no_findings ... ok
[INFO] [stdout] test modules::performance::typescript::tests::new_date_outside_loop_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::rust::tests::invalid_syntax_does_not_panic ... ok
[INFO] [stdout] test modules::redos::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::redos::tests::js_new_regexp_string_nested_quantifier_is_flagged ... ok
[INFO] [stdout] test modules::redos::tests::js_regex_literal_anchored_charclass_is_not_flagged ... ok
[INFO] [stdout] test modules::redos::tests::help_text_includes_remediation_idiom ... ok
[INFO] [stdout] test modules::performance::typescript::tests::new_date_in_for_of_iterable_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::typescript::tests::new_date_in_while_condition_is_flagged ... ok
[INFO] [stdout] test modules::performance::typescript::tests::new_date_inside_loop_is_flagged ... ok
[INFO] [stdout] test modules::performance::typescript::tests::new_date_in_for_initializer_is_not_flagged ... ok
[INFO] [stdout] test modules::redos::tests::js_regex_literal_nested_quantifier_is_flagged ... ok
[INFO] [stdout] test modules::redos::tests::js_regex_literal_simple_plus_is_not_flagged ... ok
[INFO] [stdout] test modules::redos::tests::js_regex_literal_star_inside_plus_is_flagged ... ok
[INFO] [stdout] test modules::performance::rust::tests::format_inside_while_loop_with_push_str_is_flagged ... ok
[INFO] [stdout] test modules::performance::typescript::tests::invalid_js_syntax_does_not_panic ... ok
[INFO] [stdout] test modules::secrets::tests::byte_offset_at_start_is_line_1_col_1 ... ok
[INFO] [stdout] test modules::secrets::tests::byte_offset_after_newline_advances_line_resets_column ... ok
[INFO] [stdout] test modules::secrets::tests::byte_offset_advances_column_within_line ... ok
[INFO] [stdout] test modules::secrets::tests::is_example_value_is_scoped_per_rule_code ... ok
[INFO] [stdout] test modules::redos::tests::python_re_compile_simple_pattern_is_not_flagged ... ok
[INFO] [stdout] test modules::performance::rust::tests::format_inside_loop_keyword_with_push_str_is_flagged ... ok
[INFO] [stdout] test modules::redos::tests::trim_match_balances_parens ... ok
[INFO] [stdout] test modules::secrets::tests::is_scannable_includes_manifest_source_config ... ok
[INFO] [stdout] test modules::secrets::tests::is_scannable_excludes_test_files_by_default ... ok
[INFO] [stdout] test modules::secrets::tests::is_example_value_rejects_real_looking_aws_key ... ok
[INFO] [stdout] test modules::redos::tests::non_js_extension_is_skipped_for_js_pattern ... ok
[INFO] [stdout] test modules::secrets::tests::is_example_value_matches_canonical_aws_docs_examples ... ok
[INFO] [stdout] test modules::redos::tests::python_re_compile_nested_quantifier_is_flagged ... ok
[INFO] [stdout] test modules::secrets::tests::shannon_entropy_of_empty_string_is_zero ... ok
[INFO] [stdout] test modules::secrets::tests::shannon_entropy_of_low_entropy_aws_placeholder_is_below_threshold ... ok
[INFO] [stdout] test modules::secrets::tests::shannon_entropy_of_uniform_string_is_zero ... ok
[INFO] [stdout] test modules::secrets::tests::shannon_entropy_of_two_balanced_chars_is_one_bit ... ok
[INFO] [stdout] test modules::secrets::tests::shannon_entropy_of_canonical_aws_example_clears_default_threshold ... ok
[INFO] [stdout] test modules::performance::rust::tests::format_macro_outside_loop_is_not_flagged ... ok
[INFO] [stdout] test modules::secrets::tests::byte_offset_handles_multiple_newlines ... ok
[INFO] [stdout] test modules::spring_boot::tests::api_wildcard_permit_all_is_flagged ... ok
[INFO] [stdout] test modules::spring_boot::tests::broad_has_role_is_silent ... ok
[INFO] [stdout] test modules::spring_boot::tests::api_versioned_wildcard_permit_all_is_flagged ... ok
[INFO] [stdout] test modules::performance::rust::tests::for_loop_over_borrow_is_not_flagged ... ok
[INFO] [stdout] test modules::spring_boot::tests::is_spring_security_file_recognises_enable_web_security ... ok
[INFO] [stdout] test modules::spring_boot::tests::broad_slash_star_permit_all_is_flagged ... ok
[INFO] [stdout] test modules::spring_boot::tests::is_spring_security_file_recognises_security_filter_chain_symbol ... ok
[INFO] [stdout] test modules::spring_boot::tests::is_spring_security_file_rejects_plain_pojo ... ok
[INFO] [stdout] test modules::spring_boot::tests::is_spring_security_file_recognises_import ... ok
[INFO] [stdout] test modules::spring_boot::tests::broad_authenticated_is_silent ... ok
[INFO] [stdout] test modules::spring_boot::tests::sibling_permit_all_for_other_matcher_is_not_falsely_attributed ... ok
[INFO] [stdout] test modules::spring_boot::tests::wants_returns_false_when_no_spring_boot_framework_detected ... ok
[INFO] [stdout] test modules::spring_boot::tests::analyze_emits_findings_only_inside_spring_boot_project_roots ... ok
[INFO] [stdout] test modules::spring_boot::tests::legacy_ant_matchers_is_flagged ... ok
[INFO] [stdout] test modules::spring_boot::tests::specific_endpoint_permit_all_is_silent ... ok
[INFO] [stdout] test modules::performance::rust::tests::format_inside_loop_as_let_binding_is_not_flagged ... ok
[INFO] [stdout] test modules::spring_boot::tests::wants_returns_true_when_spring_boot_detected ... ok
[INFO] [stdout] test modules::secrets::tests::entropy_filter_rejects_uniform_aws_match ... ok
[INFO] [stdout] test modules::secrets::tests::pem_private_key_marker_has_no_entropy_threshold ... ok
[INFO] [stdout] test modules::secrets::tests::scan_text_skips_canonical_aws_example_end_to_end ... ok
[INFO] [stdout] test modules::secrets::tests::aws_pattern_matches_canonical_example ... ok
[INFO] [stdout] test modules::secrets::tests::token_patterns_have_default_entropy_threshold ... ok
[INFO] [stdout] test modules::secrets::tests::pem_private_key_marker_matches_common_variants ... ok
[INFO] [stdout] test modules::secrets::tests::all_builtin_patterns_compile ... ok
[INFO] [stdout] test modules::ssrf::tests::trim_match_preserves_balanced_parens ... ok
[INFO] [stdout] test modules::secrets::tests::github_pat_pattern_distinguishes_classic_and_fine_grained ... ok
[INFO] [stdout] test modules::performance::typescript::tests::empty_source_produces_no_findings ... ok
[INFO] [stdout] test modules::ssrf::tests::non_js_extension_is_skipped_for_js_pattern ... ok
[INFO] [stdout] test modules::ssrf::tests::http_get_with_req_params_is_flagged ... ok
[INFO] [stdout] test modules::ssrf::tests::literal_url_is_not_flagged ... ok
[INFO] [stdout] test modules::ssrf::tests::fetch_with_validated_local_variable_is_not_flagged ... ok
[INFO] [stdout] test modules::ssrf::tests::go_http_get_with_form_value_is_flagged ... ok
[INFO] [stdout] test modules::ssrf::tests::axios_get_with_req_query_is_flagged ... ok
[INFO] [stdout] test modules::ssrf::tests::requests_get_with_flask_args_get_is_flagged ... ok
[INFO] [stdout] test modules::ssrf::tests::urlopen_with_flask_args_is_flagged ... ok
[INFO] [stdout] test modules::ssrf::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::ssrf::tests::fetch_with_req_body_url_is_flagged ... ok
[INFO] [stdout] test modules::ssrf::tests::help_text_includes_remediation_idiom_for_language ... ok
[INFO] [stdout] test modules::ssrf::tests::messages_for_same_rule_differ_by_captured_call_site ... ok
[INFO] [stdout] test modules::ssti::tests::intermediate_variable_is_not_flagged ... ok
[INFO] [stdout] test modules::ssti::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::ssti::tests::handlebars_compile_with_req_query_is_flagged ... ok
[INFO] [stdout] test modules::ssti::tests::jinja2_template_with_request_args_get_is_flagged ... ok
[INFO] [stdout] test modules::ssti::tests::messages_for_same_rule_differ_by_captured_call_site ... ok
[INFO] [stdout] test modules::ssrf::tests::go_new_request_with_url_query_is_flagged ... ok
[INFO] [stdout] test modules::ssti::tests::help_text_includes_remediation_idiom_for_language ... ok
[INFO] [stdout] test modules::performance::typescript::tests::await_inside_for_of_in_typescript_is_flagged ... ok
[INFO] [stdout] test modules::ssti::tests::ejs_render_with_req_body_is_flagged ... ok
[INFO] [stdout] test modules::ssti::tests::jinja_environment_from_string_is_flagged ... ok
[INFO] [stdout] test modules::ssti::tests::trim_match_balances_parens ... ok
[INFO] [stdout] test modules::ssti::tests::static_template_file_render_is_not_flagged ... ok
[INFO] [stdout] test modules::ssti::tests::pug_render_with_req_body_is_flagged ... ok
[INFO] [stdout] test modules::ssti::tests::nunjucks_renderstring_with_req_params_is_flagged ... ok
[INFO] [stdout] test modules::ssti::tests::non_py_extension_is_skipped_for_py_pattern ... ok
[INFO] [stdout] test modules::ssti::tests::literal_template_string_is_not_flagged ... ok
[INFO] [stdout] test modules::ssti::tests::render_template_string_with_request_form_is_flagged ... ok
[INFO] [stdout] test modules::ssti::tests::pug_render_with_named_file_path_is_not_flagged ... ok
[INFO] [stdout] test modules::webapp_config::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::webapp_config::tests::django_csrf_exempt_decorator_is_flagged ... ok
[INFO] [stdout] test modules::webapp_config::tests::cors_wildcard_without_credentials_is_not_flagged ... ok
[INFO] [stdout] test modules::webapp_config::tests::samesite_strict_string_is_not_flagged ... ok
[INFO] [stdout] test modules::webapp_config::tests::express_session_cookie_secure_false_is_flagged ... ok
[INFO] [stdout] test modules::webapp_config::tests::cors_with_explicit_origin_allowlist_is_not_flagged ... ok
[INFO] [stdout] test modules::webapp_config::tests::hardened_session_cookie_is_not_flagged ... ok
[INFO] [stdout] test modules::webapp_config::tests::cors_header_wildcard_is_flagged ... ok
[INFO] [stdout] test modules::webapp_config::tests::flask_csrf_enabled_explicitly_is_not_flagged ... ok
[INFO] [stdout] test modules::webapp_config::tests::flask_csrf_disabled_globally_is_flagged ... ok
[INFO] [stdout] test modules::webapp_config::tests::samesite_none_string_is_flagged ... ok
[INFO] [stdout] test modules::webapp_config::tests::express_session_cookie_httponly_false_is_flagged ... ok
[INFO] [stdout] test modules::webapp_config::tests::cors_origin_true_with_credentials_is_flagged ... ok
[INFO] [stdout] test modules::webapp_config::tests::trim_match_balances_parens ... ok
[INFO] [stdout] test modules::webapp_config::tests::non_js_extension_is_skipped_for_js_pattern ... ok
[INFO] [stdout] test modules::webapp_config::tests::help_text_includes_remediation_idiom ... ok
[INFO] [stdout] test modules::webapp_config::tests::messages_for_same_rule_differ_by_captured_call_site ... ok
[INFO] [stdout] test modules::webapp_config::tests::cors_credentials_then_origin_wildcard_is_flagged ... ok
[INFO] [stdout] test modules::xss::tests::non_js_extension_is_skipped_for_js_pattern ... ok
[INFO] [stdout] test modules::xss::tests::php_echo_with_htmlspecialchars_not_flagged ... ok
[INFO] [stdout] test modules::xss::tests::go_io_writestring_with_query_get_is_flagged ... ok
[INFO] [stdout] test modules::xss::tests::php_echo_request_input_matches ... ok
[INFO] [stdout] test modules::xss::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::xss::tests::go_fprintf_with_form_value_is_flagged ... ok
[INFO] [stdout] test modules::xss::tests::outer_html_assigned_from_document_cookie_is_flagged ... ok
[INFO] [stdout] test modules::xss::tests::document_write_with_location_is_flagged ... ok
[INFO] [stdout] test modules::xss::tests::messages_for_same_rule_differ_by_captured_call_site ... ok
[INFO] [stdout] test modules::xss::tests::inner_html_with_constant_string_is_not_flagged ... ok
[INFO] [stdout] test modules::xss::tests::express_res_end_with_req_query_is_flagged ... ok
[INFO] [stdout] test modules::xss::tests::intermediate_variable_is_not_flagged ... ok
[INFO] [stdout] test modules::xss::tests::python_return_request_args_get_is_flagged ... ok
[INFO] [stdout] test modules::xss::tests::php_short_echo_request_input_matches ... ok
[INFO] [stdout] test modules::xss::tests::php_print_request_input_matches ... ok
[INFO] [stdout] test modules::xss::tests::trim_match_balances_parens ... ok
[INFO] [stdout] test modules::xss::tests::express_res_send_with_req_body_is_flagged ... ok
[INFO] [stdout] test modules::xss::tests::python_markup_wrap_of_request_is_flagged ... ok
[INFO] [stdout] test modules::xss::tests::inner_html_assigned_from_location_is_flagged ... ok
[INFO] [stdout] test modules::xss_ts::tests::inner_html_assigned_from_window_name_is_flagged ... ok
[INFO] [stdout] test modules::xss::tests::literal_html_response_is_not_flagged ... ok
[INFO] [stdout] test modules::xss_ts::tests::empty_source_produces_no_findings ... ok
[INFO] [stdout] test modules::xss::tests::help_text_includes_remediation_idiom_for_language ... ok
[INFO] [stdout] test modules::xss_ts::tests::inner_html_assigned_from_location_chain_is_flagged ... ok
[INFO] [stdout] test modules::xss_ts::tests::inner_html_in_template_literal_is_silent ... ok
[INFO] [stdout] test modules::xss_ts::tests::inner_html_in_string_literal_is_silent ... ok
[INFO] [stdout] test modules::xss_ts::tests::inner_html_assigned_from_bare_location_is_flagged ... ok
[INFO] [stdout] test modules::xss_ts::tests::inner_html_assigned_from_document_referrer_is_flagged ... ok
[INFO] [stdout] test modules::xss_ts::tests::inner_html_assigned_from_user_state_is_silent ... ok
[INFO] [stdout] test modules::xss_ts::tests::inner_html_with_sanitised_value_is_silent ... ok
[INFO] [stdout] test modules::xss_ts::tests::inner_html_via_window_dot_location_is_silent_by_design ... ok
[INFO] [stdout] test modules::xss_ts::tests::inner_html_in_comment_is_silent ... ok
[INFO] [stdout] test modules::xss_ts::tests::inner_html_assigned_from_location_hash_is_flagged ... ok
[INFO] [stdout] test modules::xss_ts::tests::inner_html_with_constant_string_is_silent ... ok
[INFO] [stdout] test modules::xss_ts::tests::inner_html_with_template_literal_is_silent ... ok
[INFO] [stdout] test modules::xss_ts::tests::outer_html_assigned_from_document_cookie_is_flagged ... ok
[INFO] [stdout] test modules::xss_ts::tests::multiple_assignments_each_produce_one_finding ... ok
[INFO] [stdout] test modules::xss_ts::tests::message_includes_inner_html_substring ... ok
[INFO] [stdout] test modules::xxe::tests::trim_match_balances_parens ... ok
[INFO] [stdout] test modules::xxe::tests::compiled_patterns_compile_cleanly ... ok
[INFO] [stdout] test modules::xxe::tests::defusedxml_fromstring_is_not_flagged ... ok
[INFO] [stdout] test modules::xxe::tests::libxmljs_parsexml_without_noent_is_not_flagged ... ok
[INFO] [stdout] test modules::xxe::tests::libxmljs_parsexml_with_noent_true_is_flagged ... ok
[INFO] [stdout] test modules::xxe::tests::non_xml_extension_is_skipped_for_py_pattern ... ok
[INFO] [stdout] test modules::xxe::tests::java_document_builder_factory_is_flagged ... ok
[INFO] [stdout] test modules::xxe::tests::xml2js_parser_parsestring_is_flagged ... ok
[INFO] [stdout] test modules::xxe::tests::lxml_xmlparser_with_resolve_entities_false_is_not_flagged ... ok
[INFO] [stdout] test modules::xxe::tests::xml_dom_minidom_parsestring_is_flagged ... ok
[INFO] [stdout] test modules::xxe::tests::lxml_xmlparser_with_resolve_entities_true_is_flagged ... ok
[INFO] [stdout] test modules::xxe::tests::java_sax_parser_factory_is_flagged ... ok
[INFO] [stdout] test reporter::tests::category_counts_covers_every_category_variant ... ok
[INFO] [stdout] test reporter::tests::category_counts_handles_internal_category_without_panic ... ok
[INFO] [stdout] test reporter::tests::confidence_ordering_is_low_less_than_high ... ok
[INFO] [stdout] test reporter::tests::escape_gh_data_keeps_colons_and_commas_but_encodes_newlines ... ok
[INFO] [stdout] test reporter::tests::apply_min_confidence_default_low_keeps_everything ... ok
[INFO] [stdout] test modules::xxe::tests::xml_etree_parse_is_flagged ... ok
[INFO] [stdout] test reporter::tests::apply_min_confidence_drops_below_threshold ... ok
[INFO] [stdout] test reporter::tests::apply_min_severity_drops_below_threshold ... ok
[INFO] [stdout] test modules::xxe::tests::xml_sax_parsestring_is_flagged ... ok
[INFO] [stdout] test reporter::tests::escape_html_attr_also_escapes_quotes ... ok
[INFO] [stdout] test reporter::tests::escape_html_text_escapes_lt_gt_amp ... ok
[INFO] [stdout] test reporter::tests::format_markdown_location_strips_windows_extended_prefix ... ok
[INFO] [stdout] test reporter::tests::format_rate_handles_zero_ms_without_panic ... ok
[INFO] [stdout] test reporter::tests::gh_actions_line_escapes_messages_with_newlines ... ok
[INFO] [stdout] test reporter::tests::gh_actions_line_omits_location_when_none ... ok
[INFO] [stdout] test reporter::tests::gh_actions_line_uses_error_for_critical_and_high ... ok
[INFO] [stdout] test reporter::tests::gh_actions_line_uses_notice_for_low_and_info ... ok
[INFO] [stdout] test reporter::tests::gh_actions_line_uses_warning_for_medium ... ok
[INFO] [stdout] test reporter::tests::has_at_or_above_recognises_threshold ... ok
[INFO] [stdout] test reporter::tests::category_counts_label_to_count_pairing_is_correct ... ok
[INFO] [stdout] test reporter::tests::html_document_renders_empty_findings_with_placeholder ... ok
[INFO] [stdout] test reporter::tests::html_document_includes_required_sections ... ok
[INFO] [stdout] test reporter::tests::finding_with_confidence_overrides_default ... ok
[INFO] [stdout] test reporter::tests::format_bytes_handles_all_buckets ... ok
[INFO] [stdout] test reporter::tests::html_render_requires_output_path ... ok
[INFO] [stdout] test reporter::tests::markdown_document_caps_high_at_ten_and_notes_omission ... ok
[INFO] [stdout] test reporter::tests::markdown_document_shows_all_critical_without_cap ... ok
[INFO] [stdout] test reporter::tests::markdown_document_skips_info_bucket_entirely ... ok
[INFO] [stdout] test reporter::tests::markdown_document_includes_header_and_tables ... ok
[INFO] [stdout] test reporter::tests::render_bar_full_when_count_equals_max ... ok
[INFO] [stdout] test reporter::tests::markdown_document_reports_empty_findings_cleanly ... ok
[INFO] [stdout] test reporter::tests::escape_markdown_cell_escapes_pipes_and_collapses_newlines ... ok
[INFO] [stdout] test reporter::tests::finding_default_confidence_is_high ... ok
[INFO] [stdout] test reporter::tests::render_bar_returns_only_empty_blocks_when_max_zero ... ok
[INFO] [stdout] test reporter::tests::gh_actions_line_emits_title_with_finding_code ... ok
[INFO] [stdout] test reporter::tests::render_finding_row_uses_title_attr_for_help_text ... ok
[INFO] [stdout] test reporter::tests::render_bar_proportional_partial ... ok
[INFO] [stdout] test reporter::tests::sarif_document_has_required_top_level_fields ... ok
[INFO] [stdout] test reporter::tests::sarif_result_contains_location_when_finding_has_one ... ok
[INFO] [stdout] test reporter::tests::sarif_document_lists_tool_driver_metadata ... ok
[INFO] [stdout] test reporter::tests::sarif_level_maps_severities ... ok
[INFO] [stdout] test reporter::tests::sarif_result_omits_locations_when_finding_has_none ... ok
[INFO] [stdout] test reporter::tests::html_donut_includes_segment_per_nonzero_severity ... ok
[INFO] [stdout] test reporter::tests::escape_gh_property_encodes_separators_and_control_chars ... ok
[INFO] [stdout] test reporter::tests::gh_actions_line_includes_file_line_col_when_present ... ok
[INFO] [stdout] test modules::xxe::tests::xml_etree_fromstring_is_flagged ... ok
[INFO] [stdout] test sbom::tests::cyclonedx_component_has_purl ... ok
[INFO] [stdout] test reporter::tests::severity_counts_empty_report_is_all_zero ... ok
[INFO] [stdout] test reporter::tests::severity_counts_buckets_findings_correctly ... ok
[INFO] [stdout] test sbom::tests::package_url_pypi_translates_ecosystem ... ok
[INFO] [stdout] test reporter::tests::format_rate_scales_units ... ok
[INFO] [stdout] test sbom::tests::spdx_package_has_purl_external_ref ... ok
[INFO] [stdout] test sbom::tests::spdx_has_required_top_level_fields ... ok
[INFO] [stdout] test modules::xxe::tests::messages_for_same_rule_differ_by_captured_call_site ... ok
[INFO] [stdout] test suppression::tests::is_valid_code_token_rejects_lowercase_and_short ... ok
[INFO] [stdout] test sbom::tests::cyclonedx_has_required_top_level_fields ... ok
[INFO] [stdout] test suppression::tests::finding_without_location_is_never_suppressed ... ok
[INFO] [stdout] test suppression::tests::parse_codes_keeps_valid_tokens_only ... ok
[INFO] [stdout] test suppression::tests::python_hash_comments_are_supported ... ok
[INFO] [stdout] test suppression::tests::directive_for_other_code_does_not_suppress ... ok
[INFO] [stdout] test sbom::tests::package_url_npm_translates_ecosystem ... ok
[INFO] [stdout] test suppression::tests::parse_codes_accepts_wildcard ... ok
[INFO] [stdout] test suppression::tests::missing_file_silently_keeps_findings ... ok
[INFO] [stdout] test suppression::tests::line_directive_suppresses_same_line ... ok
[INFO] [stdout] test reporter::tests::sarif_document_deduplicates_rules_by_code ... ok
[INFO] [stdout] test suppression::tests::next_line_directive_suppresses_following_line ... ok
[INFO] [stdout] test suppression::tests::wildcard_suppresses_any_code ... ok
[INFO] [stdout] test modules::xss_ts::tests::syntax_error_returns_no_findings_safely ... ok
[INFO] [stdout] test suppression::tests::comma_separated_codes_all_suppress ... ok
[INFO] [stdout] test suppression::tests::file_directive_suppresses_all_matching_in_file ... ok
[INFO] [stdout] test modules::xxe::tests::help_text_includes_remediation_idiom_for_language ... ok
[INFO] [stdout] test suppression::tests::directives_in_one_file_do_not_affect_another ... ok
[INFO] [stdout] test sbom::tests::package_url_go_translates_ecosystem ... ok
[INFO] [stdout] test modules::xss_ts::tests::react_dangerously_set_inner_html_prop_is_silent ... ok
[INFO] [stdout] test modules::xss_ts::tests::typescript_typed_assignment_is_flagged ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 689 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.56s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/build/rastray/89f48ae2fe663130/out/integration-89f48ae2fe663130)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test image_scan_detects_secret_in_layer_tarball ... ok
[INFO] [stdout] test secrets_history_detects_blob_purged_from_working_tree ... ok
[INFO] [stdout] test install_hooks_writes_pre_commit_hook_and_sets_core_hookspath ... ok
[INFO] [stdout] test lsp_subcommand_responds_to_initialize ... ok
[INFO] [stdout] test scan_emits_valid_json_schema_keys ... ok
[INFO] [stdout] test rastray_format_markdown_produces_pr_ready_output ... ok
[INFO] [stdout] test scan_with_no_secrets_produces_zero_findings ... ok
[INFO] [stdout] test rastray_toml_suppress_block_drops_matching_findings ... ok
[INFO] [stdout] test fail_on_high_returns_zero_when_only_medium_findings_exist ... ok
[INFO] [stdout] test scan_detects_secret_in_dotenv_with_hidden_flag ... ok
[INFO] [stdout] test rastray_format_html_errors_without_output_path ... ok
[INFO] [stdout] test fail_on_never_returns_zero_even_with_findings ... ok
[INFO] [stdout] test rastray_format_html_writes_self_contained_report ... ok
[INFO] [stdout] test fail_on_medium_returns_one_when_medium_findings_exist ... ok
[INFO] [stdout] test scan_detects_aws_key_in_source_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.72s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "97d0397af5c6426737fcc03226165c03dc4e40c1a39596a509b5f76ffba76da7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "97d0397af5c6426737fcc03226165c03dc4e40c1a39596a509b5f76ffba76da7", kill_on_drop: false }`
[INFO] [stdout] 97d0397af5c6426737fcc03226165c03dc4e40c1a39596a509b5f76ffba76da7
