[INFO] fetching crate szrsql-security 1.0.0-rc.1...
[INFO] testing szrsql-security-1.0.0-rc.1 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate szrsql-security 1.0.0-rc.1 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate szrsql-security 1.0.0-rc.1
[INFO] finished tweaking crates.io crate szrsql-security 1.0.0-rc.1
[INFO] tweaked toml for crates.io crate szrsql-security 1.0.0-rc.1 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate szrsql-security 1.0.0-rc.1 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 szrsql-security 1.0.0-rc.1 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:52:12
[INFO] [stderr]    |
[INFO] [stderr] 52 | homepage = "https://github.com/szrsql/szrsql"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 | repository = "https://github.com/szrsql/szrsql"
[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: `szrsql-security` (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] 5d14ef6f6fd4a8bc30d91bfbbd275bf92ed76ff8da39fa59006ae93ca1b31fb3
[INFO] running `Command { std: "docker" "start" "5d14ef6f6fd4a8bc30d91bfbbd275bf92ed76ff8da39fa59006ae93ca1b31fb3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5d14ef6f6fd4a8bc30d91bfbbd275bf92ed76ff8da39fa59006ae93ca1b31fb3", 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" "5d14ef6f6fd4a8bc30d91bfbbd275bf92ed76ff8da39fa59006ae93ca1b31fb3" "/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" "5d14ef6f6fd4a8bc30d91bfbbd275bf92ed76ff8da39fa59006ae93ca1b31fb3", 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" "5d14ef6f6fd4a8bc30d91bfbbd275bf92ed76ff8da39fa59006ae93ca1b31fb3" "/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:52:12
[INFO] [stderr]    |
[INFO] [stderr] 52 | homepage = "https://github.com/szrsql/szrsql"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 | repository = "https://github.com/szrsql/szrsql"
[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: `szrsql-security` (manifest) generated 1 warning
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling zerocopy v0.8.54
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling arrow-schema v59.1.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling jobserver v0.1.35
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling lexical-util v1.0.7
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling flatbuffers v25.12.19
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling rustls-pki-types v1.15.0
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling cc v1.2.67
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling lexical-parse-integer v1.0.6
[INFO] [stderr]    Compiling lexical-write-integer v1.0.6
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling rustls v0.23.42
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling lexical-parse-float v1.0.6
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling crc32c v0.6.8
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling lexical-write-float v1.0.6
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling simdutf8 v0.1.5
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling seq-macro v0.3.6
[INFO] [stderr]    Compiling twox-hash v2.1.3
[INFO] [stderr]    Compiling lexical-core v1.0.6
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling num-bigint v0.4.8
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling regex-automata v0.4.16
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling zerocopy-derive v0.8.54
[INFO] [stderr]    Compiling serde_derive v1.0.228
[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 thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.7.1
[INFO] [stderr]    Compiling tokio v1.53.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling zstd v0.13.3
[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 serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling szrsql-types v1.0.0-rc.1
[INFO] [stderr]    Compiling ureq v2.12.1
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling arrow-buffer v59.1.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling arrow-data v59.1.0
[INFO] [stderr]    Compiling arrow-array v59.1.0
[INFO] [stderr]    Compiling arrow-select v59.1.0
[INFO] [stderr]    Compiling arrow-arith v59.1.0
[INFO] [stderr]    Compiling arrow-row v59.1.0
[INFO] [stderr]    Compiling arrow-ord v59.1.0
[INFO] [stderr]    Compiling arrow-ipc v59.1.0
[INFO] [stderr]    Compiling arrow-string v59.1.0
[INFO] [stderr]    Compiling parquet v59.1.0
[INFO] [stderr]    Compiling arrow-cast v59.1.0
[INFO] [stderr]    Compiling arrow-json v59.1.0
[INFO] [stderr]    Compiling arrow-csv v59.1.0
[INFO] [stderr]    Compiling arrow v59.1.0
[INFO] [stderr]    Compiling szrsql-storage v1.0.0-rc.1
[INFO] [stderr]    Compiling szrsql-tx v1.0.0-rc.1
[INFO] [stderr]    Compiling szrsql-security v1.0.0-rc.1 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused dependency `szrsql-tx`
[INFO] [stderr]   --> Cargo.toml:23:15
[INFO] [stderr]    |
[INFO] [stderr] 23 | [dependencies.szrsql-tx]
[INFO] [stderr]    |               ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `szrsql-tx`
[INFO] [stderr] warning: `szrsql-security` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 24s
[INFO] running `Command { std: "docker" "inspect" "5d14ef6f6fd4a8bc30d91bfbbd275bf92ed76ff8da39fa59006ae93ca1b31fb3", 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" "5d14ef6f6fd4a8bc30d91bfbbd275bf92ed76ff8da39fa59006ae93ca1b31fb3" "/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:52:12
[INFO] [stderr]    |
[INFO] [stderr] 52 | homepage = "https://github.com/szrsql/szrsql"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 | repository = "https://github.com/szrsql/szrsql"
[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: `szrsql-security` (manifest) generated 1 warning
[INFO] [stderr]    Compiling szrsql-security v1.0.0-rc.1 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused dependency `szrsql-tx`
[INFO] [stderr]   --> Cargo.toml:23:15
[INFO] [stderr]    |
[INFO] [stderr] 23 | [dependencies.szrsql-tx]
[INFO] [stderr]    |               ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `szrsql-tx`
[INFO] [stderr] warning: `szrsql-security` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 6.44s
[INFO] running `Command { std: "docker" "inspect" "5d14ef6f6fd4a8bc30d91bfbbd275bf92ed76ff8da39fa59006ae93ca1b31fb3", 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" "5d14ef6f6fd4a8bc30d91bfbbd275bf92ed76ff8da39fa59006ae93ca1b31fb3" "/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:52:12
[INFO] [stderr]    |
[INFO] [stderr] 52 | homepage = "https://github.com/szrsql/szrsql"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 | repository = "https://github.com/szrsql/szrsql"
[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: `szrsql-security` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `szrsql-tx`
[INFO] [stderr]   --> Cargo.toml:23:15
[INFO] [stderr]    |
[INFO] [stderr] 23 | [dependencies.szrsql-tx]
[INFO] [stderr]    |               ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `szrsql-tx`
[INFO] [stderr] warning: `szrsql-security` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/szrsql-security/5c3241bfac3a8dbc/out/szrsql_security-5c3241bfac3a8dbc)
[INFO] [stdout] 
[INFO] [stdout] running 540 tests
[INFO] [stdout] test audit::tests::test_7c3_audit_log_get_not_found ... ok
[INFO] [stdout] test audit::tests::test_7c3_command_display ... ok
[INFO] [stdout] test audit::tests::test_7c3_count_by_user ... ok
[INFO] [stdout] test audit::tests::test_7c3_audit_log_creation ... ok
[INFO] [stdout] test audit::tests::test_7c3_audit_log_with_tenant ... ok
[INFO] [stdout] test audit::tests::test_7c3_audit_log_immutability ... ok
[INFO] [stdout] test audit::tests::test_7c3_event_builder_default_command ... ok
[INFO] [stdout] test audit::tests::test_7c3_csv_escape ... ok
[INFO] [stdout] test audit::tests::test_7c3_event_builder_with_tenant ... ok
[INFO] [stdout] test audit::tests::test_7c3_count_by_command ... ok
[INFO] [stdout] test audit::tests::test_7c3_event_compute_hash_different_detail ... ok
[INFO] [stdout] test audit::tests::test_7c3_event_compute_hash_deterministic ... ok
[INFO] [stdout] test audit::tests::test_7c3_command_is_dml ... ok
[INFO] [stdout] test audit::tests::test_7c3_command_is_ddl ... ok
[INFO] [stdout] test audit::tests::test_7c3_audit_log_enable_disable ... ok
[INFO] [stdout] test audit::tests::test_7c3_event_builder ... ok
[INFO] [stdout] test audit::tests::test_7c3_hash_chain_verify_empty ... ok
[INFO] [stdout] test audit::tests::test_7c3_hash_chain_verify_ok ... ok
[INFO] [stdout] test audit::tests::test_7c3_filter_by_object ... ok
[INFO] [stdout] test audit::tests::test_7c3_filter_by_command ... ok
[INFO] [stdout] test audit::tests::test_7c3_hash_chain_append ... ok
[INFO] [stdout] test audit::tests::test_7c3_query_all ... ok
[INFO] [stdout] test audit::tests::test_7c3_events_with_hashes ... ok
[INFO] [stdout] test audit::tests::test_7c3_command_as_str ... ok
[INFO] [stdout] test audit::tests::test_7c3_filter_by_user ... ok
[INFO] [stdout] test audit::tests::test_7c3_hash_chain_independent ... ok
[INFO] [stdout] test audit::tests::test_7c3_filter_matches_all ... ok
[INFO] [stdout] test audit::tests::test_7c3_hex_encode ... ok
[INFO] [stdout] test audit::tests::test_7c3_json_escape ... ok
[INFO] [stdout] test audit::tests::test_7c3_hash_chain_verify_tampered ... ok
[INFO] [stdout] test audit::tests::test_7c3_hash_chain_sequential ... ok
[INFO] [stdout] test audit::tests::test_7c3_query_by_command ... ok
[INFO] [stdout] test audit::tests::test_7c3_full_workflow_with_filter ... ok
[INFO] [stdout] test audit::tests::test_7c3_query_by_user ... ok
[INFO] [stdout] test audit::tests::test_7c3_record_event_id_increment ... ok
[INFO] [stdout] test audit::tests::test_7c3_report_export_csv ... ok
[INFO] [stdout] test audit::tests::test_7c3_query_by_object ... ok
[INFO] [stdout] test audit::tests::test_7c3_report_export_csv_with_comma ... ok
[INFO] [stdout] test audit::tests::test_7c3_report_empty ... ok
[INFO] [stdout] test audit::tests::test_7c3_report_export_json ... ok
[INFO] [stdout] test audit::tests::test_7c3_query_with_limit ... ok
[INFO] [stdout] test audit::tests::test_7c3_record_filtered_out ... ok
[INFO] [stdout] test audit::tests::test_7c3_report_export_by_format ... ok
[INFO] [stdout] test audit::tests::test_7c3_query_by_time_range ... ok
[INFO] [stdout] test audit::tests::test_7c3_record_basic ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_entry_hash_hex ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_entry_prev_hash_hex_first_is_zero ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_new_empty ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_verify_detects_tampered_detail ... ok
[INFO] [stdout] test audit::tests::test_7c3_record_disabled ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_verify_detects_tampered_hash ... ok
[INFO] [stdout] test audit_hash::tests::test_audit_entry_new ... ok
[INFO] [stdout] test audit::tests::test_7c3_query_combined ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_verify_multiple_entries ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_verify_empty ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_with_empty_strings ... ok
[INFO] [stdout] test audit::tests::test_7c3_time_range_empty ... ok
[INFO] [stdout] test audit_hash::tests::test_audit_entry_display ... ok
[INFO] [stdout] test audit_hash::tests::test_audit_entry_to_bytes_stable ... ok
[INFO] [stdout] test audit::tests::test_7c3_report_from_log ... ok
[INFO] [stdout] test audit::tests::test_7c3_time_range ... ok
[INFO] [stdout] test audit_hash::tests::test_audit_entry_to_bytes_distinguishes_different ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_append_increments_length ... ok
[INFO] [stdout] test audit_hash::tests::test_empty_chain_root_hash_is_initial ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_append_multiple ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_clear ... ok
[INFO] [stdout] test audit_hash::tests::test_generate_test_entries_count ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_entries_returns_all ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_root_hash_changes_on_append ... ok
[INFO] [stdout] test audit_hash::tests::test_chain_verify_single_entry ... ok
[INFO] [stdout] test audit_hash::tests::test_current_timestamp_nonzero ... ok
[INFO] [stdout] test audit_hash::tests::test_hash_to_u64_takes_first_8_bytes ... ok
[INFO] [stdout] test audit_hash::tests::test_is_prime_composites ... ok
[INFO] [stdout] test audit_hash::tests::test_is_prime_small_primes ... ok
[INFO] [stdout] test audit_hash::tests::test_mod_inverse_not_coprime ... ok
[INFO] [stdout] test audit_hash::tests::test_mod_pow_zero_exponent ... ok
[INFO] [stdout] test audit_hash::tests::test_hex_encode_empty ... ok
[INFO] [stdout] test audit_hash::tests::test_hex_encode_known ... ok
[INFO] [stdout] test audit_hash::tests::test_report_sign ... ok
[INFO] [stdout] test audit_hash::tests::test_integration_full_workflow ... ok
[INFO] [stdout] test audit_hash::tests::test_mod_inverse_rsa_e_phi ... ok
[INFO] [stdout] test audit_hash::tests::test_report_from_chain_with_entries ... ok
[INFO] [stdout] test audit_hash::tests::test_mod_pow_simple ... ok
[INFO] [stdout] test audit_hash::tests::test_report_from_chain_empty ... ok
[INFO] [stdout] test audit_hash::tests::test_report_to_bytes_signed ... ok
[INFO] [stdout] test audit_hash::tests::test_report_to_bytes_unsigned ... ok
[INFO] [stdout] test audit_hash::tests::test_rsa_key_pair_from_primes ... ok
[INFO] [stdout] test audit_hash::tests::test_mod_inverse_coprime ... ok
[INFO] [stdout] test audit_hash::tests::test_mod_pow_identity ... ok
[INFO] [stdout] test audit_hash::tests::test_report_verify_signature_wrong_key_returns_false ... ok
[INFO] [stdout] test audit_hash::tests::test_mod_pow_modulus_one ... ok
[INFO] [stdout] test audit_hash::tests::test_report_verify_signature_signed ... ok
[INFO] [stdout] test audit_hash::tests::test_report_verify_signature_unsigned_returns_false ... ok
[INFO] [stdout] test audit_hash::tests::test_rsa_key_pair_generate_demo ... ok
[INFO] [stdout] test audit_hash::tests::test_rsa_signer_verify_tampered_signature ... ok
[INFO] [stdout] test audit_hash::tests::test_single_entry_chain_verify ... ok
[INFO] [stdout] test audit_hash::tests::test_system_clear ... ok
[INFO] [stdout] test audit_hash::tests::test_rsa_signature_is_empty ... ok
[INFO] [stdout] test audit_hash::tests::test_sha256_known_value ... ok
[INFO] [stdout] test audit_hash::tests::test_rsa_sign_different_hashes_different_signatures ... ok
[INFO] [stdout] test audit_hash::tests::test_rsa_sign_same_hash_same_signature ... ok
[INFO] [stdout] test audit_hash::tests::test_rsa_signer_sign_and_verify ... ok
[INFO] [stdout] test audit_hash::tests::test_rsa_signer_verify_tampered_hash ... ok
[INFO] [stdout] test audit_hash::tests::test_rsa_signer_verify_with_public_key ... ok
[INFO] [stdout] test audit_hash::tests::test_system_record_increments_seq ... ok
[INFO] [stdout] test audit_hash::tests::test_system_record ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_config_creation ... ok
[INFO] [stdout] test audit_hash::tests::test_system_clear_resets_seq ... ok
[INFO] [stdout] test audit_hash::tests::test_system_with_custom_key_pair ... ok
[INFO] [stdout] test audit_hash::tests::test_system_verify_chain_after_records ... ok
[INFO] [stdout] test audit_hash::tests::test_tamper_first_entry_detected ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_decrypt_column_not_encrypted ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_decrypt_tampered_ciphertext ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_decrypt_wrong_key ... ok
[INFO] [stdout] test audit_hash::tests::test_system_generate_report_signed ... ok
[INFO] [stdout] test audit_hash::tests::test_tamper_last_entry_detected ... ok
[INFO] [stdout] test audit_hash::tests::test_system_new ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_encrypt_column_not_encrypted ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_encrypt_decrypt_roundtrip ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_decrypt_ciphertext_too_short ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_decrypt_tampered_nonce ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_encrypt_ciphertext_differs_from_plaintext ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_encrypt_empty_plaintext ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_encrypt_different_nonce_each_time ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_engine_creation ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_engine_register_column_with_key ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_full_workflow_ssn_encrypted ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_engine_register_key ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_key_debug_no_leak ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_engine_register_column_without_key ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_engine_unregister_key ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_key_from_bytes ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_key_from_bytes_invalid_length ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_registry_duplicate ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_registry_get ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_multiple_columns_different_keys ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_key_generate ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_registry_len_is_empty ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_key_fingerprint ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_no_key_user_sees_encrypted_value ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_registry_register ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_registry_columns_for_table ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_stats_tracking ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_registry_unregister ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_multiple_tables_same_column_name ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_stats_reset ... ok
[INFO] [stdout] test compliance::tests::test_7c7_apply_mode_gdpr ... ok
[INFO] [stdout] test compliance::tests::test_7c7_apply_mode_custom ... ok
[INFO] [stdout] test compliance::tests::test_7c7_apply_mode_hipaa ... ok
[INFO] [stdout] test compliance::tests::test_7c7_apply_mode_pci_dss ... ok
[INFO] [stdout] test compliance::tests::test_7c7_apply_mode_standard ... ok
[INFO] [stdout] test compliance::tests::test_7c7_apply_mode_preserves_existing_rules ... ok
[INFO] [stdout] test compliance::tests::test_7c7_config_clear ... ok
[INFO] [stdout] test compliance::tests::test_7c7_config_default ... ok
[INFO] [stdout] test compliance::tests::test_7c7_config_enabled_rules ... ok
[INFO] [stdout] test compliance::tests::test_7c7_config_disable_not_enabled ... ok
[INFO] [stdout] test compliance::tests::test_7c7_full_workflow_all_modes_satisfied ... ok
[INFO] [stdout] test compliance::tests::test_7c7_full_workflow_gdpr_mode ... ok
[INFO] [stdout] test compliance::tests::test_7c7_full_workflow_hipaa_mode ... ok
[INFO] [stdout] test compliance::tests::test_7c7_full_workflow_pci_dss_mode ... ok
[INFO] [stdout] test compliance::tests::test_7c7_config_enable_rule ... ok
[INFO] [stdout] test compliance::tests::test_7c7_config_new ... ok
[INFO] [stdout] test compliance::tests::test_7c7_full_workflow_standard_mode ... ok
[INFO] [stdout] test compliance::tests::test_7c7_config_disable_rule ... ok
[INFO] [stdout] test compliance::tests::test_7c7_full_workflow_custom_mode ... ok
[INFO] [stdout] test compliance::tests::test_7c7_config_enable_duplicate ... ok
[INFO] [stdout] test compliance::tests::test_7c7_full_workflow_mode_switch ... ok
[INFO] [stdout] test compliance::tests::test_7c7_missing_rules_empty_when_satisfied ... ok
[INFO] [stdout] test compliance::tests::test_7c7_full_workflow_validation_failure_then_fix ... ok
[INFO] [stdout] test compliance::tests::test_7c7_mode_custom_required_rules ... ok
[INFO] [stdout] test compliance::tests::test_7c7_mode_standard_required_rules ... ok
[INFO] [stdout] test compliance::tests::test_7c7_rule_all_count ... ok
[INFO] [stdout] test compliance::tests::test_7c7_mode_hipaa_required_rules ... ok
[INFO] [stdout] test compliance::tests::test_7c7_mode_from_name ... ok
[INFO] [stdout] test compliance::tests::test_7c7_mode_pci_dss_required_rules ... ok
[INFO] [stdout] test compliance::tests::test_7c7_rule_as_str ... ok
[INFO] [stdout] test compliance::tests::test_7c7_mode_name ... ok
[INFO] [stdout] test compliance::tests::test_7c7_rule_display ... ok
[INFO] [stdout] test compliance::tests::test_7c7_rule_from_name_unknown ... ok
[INFO] [stdout] test compliance::tests::test_7c7_rule_roundtrip ... ok
[INFO] [stdout] test compliance::tests::test_7c7_mode_from_name_unknown ... ok
[INFO] [stdout] test compliance::tests::test_7c7_mode_display ... ok
[INFO] [stdout] test compliance::tests::test_7c7_mode_gdpr_required_rules ... ok
[INFO] [stdout] test compliance::tests::test_7c7_satisfies_true ... ok
[INFO] [stdout] test compliance::tests::test_7c7_rule_from_name ... ok
[INFO] [stdout] test compliance::tests::test_7c7_validate_custom_satisfied ... ok
[INFO] [stdout] test compliance::tests::test_7c7_validate_custom_missing ... ok
[INFO] [stdout] test compliance::tests::test_7c7_satisfies_false ... ok
[INFO] [stdout] test compliance::tests::test_7c7_validate_gdpr_missing_rules ... ok
[INFO] [stdout] test compliance::tests::test_7c7_validate_gdpr_satisfied ... ok
[INFO] [stdout] test compliance::tests::test_7c7_validate_hipaa_missing_rules ... ok
[INFO] [stdout] test compliance::tests::test_7c7_validate_hipaa_satisfied ... ok
[INFO] [stdout] test compliance::tests::test_7c7_validate_pci_dss_satisfied ... ok
[INFO] [stdout] test compliance::tests::test_7c7_validate_standard_satisfied ... ok
[INFO] [stdout] test audit_hash::tests::test_large_chain_verify ... ok
[INFO] [stdout] test compliance::tests::test_7c7_validate_pci_dss_missing_rules ... ok
[INFO] [stdout] test compliance::tests::test_7c7_validate_standard_missing_rule ... ok
[INFO] [stdout] test compliance::tests::test_7c7_validate_with_extra_rules ... ok
[INFO] [stdout] test audit_hash::tests::test_rsa_key_pair_non_prime_p_panics - should panic ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_full_workflow_multiple_sensitive_columns ... ok
[INFO] [stdout] test audit_hash::tests::test_rsa_key_pair_non_prime_q_panics - should panic ... ok
[INFO] [stdout] test audit_hash::tests::test_rsa_key_pair_same_primes_panics - should panic ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_empty_sql ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_blocked_command_truncate ... ok
[INFO] [stdout] test firewall::tests::test_7c6_block_command ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_blocked_command_drop ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_injection_blocked_stacked_query ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_injection_blocked_union_select ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_injection_blocked_comment ... ok
[INFO] [stdout] test firewall::tests::test_7c6_add_allowed_pattern_invalid ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_clean_select_allowed ... ok
[INFO] [stdout] test firewall::tests::test_7c6_add_allowed_pattern_valid ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_as_str ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_display ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_injection_blocked_or_1_eq_1 ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_create ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_delete ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_drop ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_empty ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_blocked_command_not_blocked ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_grant ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_injection_priority_over_blocked_command ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_revoke ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_select ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_truncate ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_unknown ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_sql_too_long ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_update ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_encrypt_large_value ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_with_leading_whitespace ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_alter ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_exec ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_insert ... ok
[INFO] [stdout] test firewall::tests::test_7c6_command_from_sql_with_leading_comment ... ok
[INFO] [stdout] test firewall::tests::test_7c6_clear_allowed_patterns ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_whitelist_empty_allows_all ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_whitelist_injection_priority ... ok
[INFO] [stdout] test firewall::tests::test_7c6_firewall_enable_disable ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_whitespace_only_sql ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_whitelist_multiple_patterns ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_whitelist_no_match ... ok
[INFO] [stdout] test firewall::tests::test_7c6_full_workflow_drop_blocked ... ok
[INFO] [stdout] test firewall::tests::test_7c6_check_whitelist_match ... ok
[INFO] [stdout] test firewall::tests::test_7c6_firewall_default ... ok
[INFO] [stdout] test firewall::tests::test_7c6_firewall_disabled_allows_all ... ok
[INFO] [stdout] test firewall::tests::test_7c6_clear_blocked_commands ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_always_true_or_quote ... ok
[INFO] [stdout] test firewall::tests::test_7c6_full_workflow_stats_accuracy ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_always_true_or_true ... ok
[INFO] [stdout] test firewall::tests::test_7c6_full_workflow_multi_layer_protection ... ok
[INFO] [stdout] test firewall::tests::test_7c6_full_workflow_injection_blocked ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_clean_select_with_subquery ... ok
[INFO] [stdout] test firewall::tests::test_7c6_full_workflow_disabled_allows_malicious ... ok
[INFO] [stdout] test firewall::tests::test_7c6_firewall_creation ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_always_true_or_1_eq_1 ... ok
[INFO] [stdout] test firewall::tests::test_7c6_full_workflow_whitelist_blocked_command_injection ... ok
[INFO] [stdout] test firewall::tests::test_7c6_full_workflow_select_with_where_allowed ... ok
[INFO] [stdout] test firewall::tests::test_7c6_full_workflow_massive_scale ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_clean_insert_not_detected ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_clean_update_not_detected ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_clean_sql_not_detected ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_block_comment ... ok
[INFO] [stdout] test column_enc::tests::test_7c4_key_from_passphrase ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_concat_hex ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_stacked_query_drop ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_line_comment_double_dash ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_hex_long ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_stacked_query_delete ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_into_outfile ... ok
[INFO] [stdout] test firewall::tests::test_7c6_stats_reset ... ok
[INFO] [stdout] test firewall::tests::test_7c6_stats_default ... ok
[INFO] [stdout] test firewall::tests::test_7c6_stats_new ... ok
[INFO] [stdout] test firewall::tests::test_7c6_set_max_sql_len ... ok
[INFO] [stdout] test masking::tests::test_7c5_authorized_user_sees_original ... ok
[INFO] [stdout] test masking::tests::test_7c5_context_admin ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_info_leak_information_schema ... ok
[INFO] [stdout] test masking::tests::test_7c5_context_unauthorized ... ok
[INFO] [stdout] test masking::tests::test_7c5_context_new ... ok
[INFO] [stdout] test masking::tests::test_7c5_credit_card_digits_only ... ok
[INFO] [stdout] test masking::tests::test_7c5_credit_card_standard ... ok
[INFO] [stdout] test masking::tests::test_7c5_custom_function ... ok
[INFO] [stdout] test masking::tests::test_7c5_credit_card_too_short ... ok
[INFO] [stdout] test masking::tests::test_7c5_email_empty_local ... ok
[INFO] [stdout] test masking::tests::test_7c5_email_no_at ... ok
[INFO] [stdout] test masking::tests::test_7c5_email_single_char_local ... ok
[INFO] [stdout] test masking::tests::test_7c5_email_standard ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_union_select ... ok
[INFO] [stdout] test masking::tests::test_7c5_engine_register_policy ... ok
[INFO] [stdout] test masking::tests::test_7c5_engine_creation ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_info_leak_load_file ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_union_all_select ... ok
[INFO] [stdout] test masking::tests::test_7c5_fixed_default ... ok
[INFO] [stdout] test masking::tests::test_7c5_engine_unregister_policy ... ok
[INFO] [stdout] test masking::tests::test_7c5_fixed_custom ... ok
[INFO] [stdout] test firewall::tests::test_7c6_matches_whitelist_empty ... ok
[INFO] [stdout] test masking::tests::test_7c5_hash_deterministic ... ok
[INFO] [stdout] test masking::tests::test_7c5_hash_different_inputs ... ok
[INFO] [stdout] test masking::tests::test_7c5_id_card_standard ... ok
[INFO] [stdout] test masking::tests::test_7c5_mask_row_unauthorized ... ok
[INFO] [stdout] test masking::tests::test_7c5_mask_value_authorized_admin ... ok
[INFO] [stdout] test masking::tests::test_7c5_mask_row_admin ... ok
[INFO] [stdout] test masking::tests::test_7c5_mask_value_authorized_role ... ok
[INFO] [stdout] test masking::tests::test_7c5_masking_policy_dynamically_added ... ok
[INFO] [stdout] test masking::tests::test_7c5_full_workflow_masking_policy ... ok
[INFO] [stdout] test masking::tests::test_7c5_mask_value_unauthorized_user ... ok
[INFO] [stdout] test masking::tests::test_7c5_phone_standard ... ok
[INFO] [stdout] test masking::tests::test_7c5_phone_too_short ... ok
[INFO] [stdout] test masking::tests::test_7c5_policy_default_admin_authorized ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_time_based_benchmark ... ok
[INFO] [stdout] test masking::tests::test_7c5_policy_with_roles ... ok
[INFO] [stdout] test masking::tests::test_7c5_policy_creation ... ok
[INFO] [stdout] test masking::tests::test_7c5_registry_duplicate ... ok
[INFO] [stdout] test masking::tests::test_7c5_registry_get ... ok
[INFO] [stdout] test masking::tests::test_7c5_registry_is_masked ... ok
[INFO] [stdout] test masking::tests::test_7c5_registry_masked_columns_for_table ... ok
[INFO] [stdout] test masking::tests::test_7c5_registry_policies ... ok
[INFO] [stdout] test masking::tests::test_7c5_registry_register ... ok
[INFO] [stdout] test masking::tests::test_7c5_registry_unregister ... ok
[INFO] [stdout] test masking::tests::test_7c5_registry_len_is_empty ... ok
[INFO] [stdout] test masking::tests::test_7c5_rule_debug_formats ... ok
[INFO] [stdout] test masking::tests::test_7c5_stats_tracking ... ok
[INFO] [stdout] test masking::tests::test_7c5_id_card_too_short ... ok
[INFO] [stdout] test masking::tests::test_7c5_template_long_value ... ok
[INFO] [stdout] test masking::tests::test_7c5_template_no_wildcard ... ok
[INFO] [stdout] test masking::tests::test_7c5_template_short_value ... ok
[INFO] [stdout] test masking::tests::test_7c5_unauthorized_user_sees_masked ... ok
[INFO] [stdout] test masking::tests::test_7c5_mask_value_column_not_masked ... ok
[INFO] [stdout] test masking::tests::test_7c5_stats_reset ... ok
[INFO] [stdout] test masking::tests::test_7c5_template_basic ... ok
[INFO] [stdout] test masking::tests::test_7c5_registry_unregister_not_found ... ok
[INFO] [stdout] test firewall::tests::test_7c6_injection_time_based_sleep ... ok
[INFO] [stdout] test password_profile::tests::test_bytes_to_hex ... ok
[INFO] [stdout] test masking::tests::test_7c5_phone_boundary_8_chars ... ok
[INFO] [stdout] test masking::tests::test_7c5_full_workflow_multiple_columns ... ok
[INFO] [stdout] test firewall::tests::test_7c6_matches_whitelist_non_empty_no_match ... ok
[INFO] [stdout] test firewall::tests::test_7c6_matches_whitelist_non_empty_match ... ok
[INFO] [stdout] test firewall::tests::test_7c6_unblock_command ... ok
[INFO] [stdout] test firewall::tests::test_7c6_stats_tracking_blocked_command ... ok
[INFO] [stdout] test firewall::tests::test_7c6_stats_tracking_whitelist_block ... ok
[INFO] [stdout] test firewall::tests::test_7c6_stats_tracking_injection ... ok
[INFO] [stdout] test firewall::tests::test_7c6_stats_tracking_allowed ... ok
[INFO] [stdout] test audit::tests::test_7c3_full_workflow_30000_events ... ok
[INFO] [stdout] test password_profile::tests::test_constant_time_eq_equal ... ok
[INFO] [stdout] test password_profile::tests::test_constant_time_eq_not_equal ... ok
[INFO] [stdout] test password_profile::tests::test_e2e_create_password_profile_and_validate ... ok
[INFO] [stdout] test password_profile::tests::test_admin_reset_same_as_current ... ok
[INFO] [stdout] test password_profile::tests::test_change_password_wrong_old ... ok
[INFO] [stdout] test password_profile::tests::test_admin_reset_invalid_password ... ok
[INFO] [stdout] test password_profile::tests::test_change_password_new_invalid ... ok
[INFO] [stdout] test password_profile::tests::test_e2e_stress_1000_password_changes ... ignored, 压力测试：1000 次密码修改耗时较长，使用 --ignored 手动触发
[INFO] [stdout] test password_profile::tests::test_expires_in_secs_already_expired ... ok
[INFO] [stdout] test password_profile::tests::test_expires_in_secs_never ... ok
[INFO] [stdout] test password_profile::tests::test_expires_in_secs_remaining ... ok
[INFO] [stdout] test password_profile::tests::test_change_password_when_locked ... ok
[INFO] [stdout] test password_profile::tests::test_change_password_same_as_old ... ok
[INFO] [stdout] test password_profile::tests::test_hash_display ... ok
[INFO] [stdout] test password_profile::tests::test_hash_from_str_invalid_format ... ok
[INFO] [stdout] test password_profile::tests::test_hash_and_verify_failure ... ok
[INFO] [stdout] test password_profile::tests::test_hash_to_string_format ... ok
[INFO] [stdout] test password_profile::tests::test_hash_to_string_and_from_str_roundtrip ... ok
[INFO] [stdout] test password_profile::tests::test_admin_reset_unlocks_account ... ok
[INFO] [stdout] test password_profile::tests::test_change_password_history_no_reuse_when_zero_count ... ok
[INFO] [stdout] test password_profile::tests::test_hash_with_salt_deterministic ... ok
[INFO] [stdout] test password_profile::tests::test_hash_with_salt_different_iterations ... ok
[INFO] [stdout] test password_profile::tests::test_hex_to_bytes_invalid ... ok
[INFO] [stdout] test password_profile::tests::test_hex_to_bytes_valid ... ok
[INFO] [stdout] test password_profile::tests::test_is_expired_exact_boundary ... ok
[INFO] [stdout] test password_profile::tests::test_is_expired_expired ... ok
[INFO] [stdout] test password_profile::tests::test_is_expired_never ... ok
[INFO] [stdout] test password_profile::tests::test_is_expired_not_yet ... ok
[INFO] [stdout] test password_profile::tests::test_hash_and_verify_success ... ok
[INFO] [stdout] test password_profile::tests::test_admin_reset_success ... ok
[INFO] [stdout] test password_profile::tests::test_admin_reset_when_locked ... ok
[INFO] [stdout] test password_profile::tests::test_hash_verify_empty_password ... ok
[INFO] [stdout] test password_profile::tests::test_change_password_success ... ok
[INFO] [stdout] test password_profile::tests::test_max_consecutive_repeating ... ok
[INFO] [stdout] test password_profile::tests::test_password_error_to_string ... ok
[INFO] [stdout] test password_profile::tests::test_password_profile_builder ... ok
[INFO] [stdout] test password_profile::tests::test_password_profile_default ... ok
[INFO] [stdout] test password_profile::tests::test_password_profile_new_custom_name ... ok
[INFO] [stdout] test password_profile::tests::test_registry_get_mut ... ok
[INFO] [stdout] test password_profile::tests::test_registry_is_empty ... ok
[INFO] [stdout] test password_profile::tests::test_registry_list_sorted ... ok
[INFO] [stdout] test password_profile::tests::test_registry_new_has_default ... ok
[INFO] [stdout] test password_profile::tests::test_registry_register_duplicate ... ok
[INFO] [stdout] test password_profile::tests::test_registry_register_empty_name ... ok
[INFO] [stdout] test password_profile::tests::test_registry_register_success ... ok
[INFO] [stdout] test password_profile::tests::test_registry_remove_default_fails ... ok
[INFO] [stdout] test password_profile::tests::test_registry_remove_not_found ... ok
[INFO] [stdout] test password_profile::tests::test_registry_remove_success ... ok
[INFO] [stdout] test password_profile::tests::test_registry_upsert ... ok
[INFO] [stdout] test password_profile::tests::test_hash_verify_unicode_password ... ok
[INFO] [stdout] test password_profile::tests::test_change_password_resets_failures ... ok
[INFO] [stdout] test password_profile::tests::test_e2e_lockout_after_5_failures ... ok
[INFO] [stdout] test password_profile::tests::test_user_state_is_expired_false ... ok
[INFO] [stdout] test password_profile::tests::test_user_state_new_invalid_password ... ok
[INFO] [stdout] test password_profile::tests::test_hash_unique_salt ... ok
[INFO] [stdout] test password_profile::tests::test_lockout_auto_unlock_after_duration ... ok
[INFO] [stdout] test password_profile::tests::test_user_state_is_expired_never ... ok
[INFO] [stdout] test password_profile::tests::test_user_state_verify_correct ... ok
[INFO] [stdout] test password_profile::tests::test_validate_max_repeating ... ok
[INFO] [stdout] test password_profile::tests::test_validate_missing_digit ... ok
[INFO] [stdout] test password_profile::tests::test_validate_missing_lowercase ... ok
[INFO] [stdout] test password_profile::tests::test_validate_missing_special ... ok
[INFO] [stdout] test password_profile::tests::test_validate_missing_uppercase ... ok
[INFO] [stdout] test password_profile::tests::test_validate_multiple_requirements ... ok
[INFO] [stdout] test password_profile::tests::test_validate_no_max_repeating ... ok
[INFO] [stdout] test password_profile::tests::test_validate_too_long ... ok
[INFO] [stdout] test password_profile::tests::test_validate_too_short ... ok
[INFO] [stdout] test password_profile::tests::test_validate_unicode_treated_as_special ... ok
[INFO] [stdout] test password_profile::tests::test_validate_valid_password ... ok
[INFO] [stdout] test sqli_detector::tests::test_case_insensitive_detection ... ok
[INFO] [stdout] test password_profile::tests::test_lockout_verify_when_locked ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_blind_if ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_blind_substring ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_boolean_and_a_a ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_boolean_or_1_1 ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_comment_double_dash ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_comment_hash ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_encoding_char ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_encoding_hex ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_error_extractvalue ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_error_updatexml ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_literal_double_quote ... ok
[INFO] [stdout] test password_profile::tests::test_remaining_lock_secs ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_os_into_outfile ... ok
[INFO] [stdout] test password_profile::tests::test_manual_unlock ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_os_xp_cmdshell ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_literal_unmatched_quote ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_stacked_insert ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_stacked_drop ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_time_benchmark ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_time_sleep ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_time_waitfor ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_all_multiple_types ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_union_select ... ok
[INFO] [stdout] test sqli_detector::tests::test_detect_union_all_select ... ok
[INFO] [stdout] test sqli_detector::tests::test_detection_rate_blind_100 ... ok
[INFO] [stdout] test sqli_detector::tests::test_detection_rate_comment_100 ... ok
[INFO] [stdout] test sqli_detector::tests::test_detection_rate_error_100 ... ok
[INFO] [stdout] test sqli_detector::tests::test_detection_rate_boolean_100 ... ok
[INFO] [stdout] test sqli_detector::tests::test_detection_rate_encoding_100 ... ok
[INFO] [stdout] test sqli_detector::tests::test_detection_rate_os_100 ... ok
[INFO] [stdout] test sqli_detector::tests::test_detection_rate_literal_100 ... ok
[INFO] [stdout] test sqli_detector::tests::test_detection_rate_stacked_100 ... ok
[INFO] [stdout] test sqli_detector::tests::test_detection_rate_union_100 ... ok
[INFO] [stdout] test sqli_detector::tests::test_detection_rate_time_100 ... ok
[INFO] [stdout] test sqli_detector::tests::test_empty_sql ... ok
[INFO] [stdout] test sqli_detector::tests::test_enable_type ... ok
[INFO] [stdout] test sqli_detector::tests::test_into_dumpfile_detection ... ok
[INFO] [stdout] test sqli_detector::tests::test_disable_type ... ok
[INFO] [stdout] test sqli_detector::tests::test_load_file_detection ... ok
[INFO] [stdout] test sqli_detector::tests::test_no_false_positive_delete ... ok
[INFO] [stdout] test sqli_detector::tests::test_no_false_positive_insert ... ok
[INFO] [stdout] test sqli_detector::tests::test_no_false_positive_join ... ok
[INFO] [stdout] test sqli_detector::tests::test_no_false_positive_simple_select ... ok
[INFO] [stdout] test sqli_detector::tests::test_no_false_positive_update ... ok
[INFO] [stdout] test sqli_detector::tests::test_normal_sql_with_semicolon ... ok
[INFO] [stdout] test sqli_detector::tests::test_normalize_sql ... ok
[INFO] [stdout] test sqli_detector::tests::test_pg_sleep_detection ... ok
[INFO] [stdout] test sqli_detector::tests::test_false_positive_rate_normal_100 ... ok
[INFO] [stdout] test sqli_detector::tests::test_sqli_type_all_has_10 ... ok
[INFO] [stdout] test sqli_detector::tests::test_sqli_type_as_str ... ok
[INFO] [stdout] test sqli_detector::tests::test_sqli_type_display ... ok
[INFO] [stdout] test sqli_detector::tests::test_whitespace_only ... ok
[INFO] [stdout] test sqli_detector::tests::test_no_false_positive_group_by ... ok
[INFO] [stdout] test sqli_detector::tests::test_with_types_empty ... ok
[INFO] [stdout] test tde::tests::test_7c1_ciphertext_differs_from_plaintext ... ok
[INFO] [stdout] test tde::tests::test_7c1_block_aligned_page ... ok
[INFO] [stdout] test tde::tests::test_7c1_decrypt_ciphertext_too_short ... ok
[INFO] [stdout] test tde::tests::test_7c1_decrypt_invalid_magic ... ok
[INFO] [stdout] test tde::tests::test_7c1_decrypt_page_not_enabled ... ok
[INFO] [stdout] test tde::tests::test_7c1_decrypt_with_wrong_key_fails ... ok
[INFO] [stdout] test sqli_detector::tests::test_detection_rate_all_types ... ok
[INFO] [stdout] test tde::tests::test_7c1_different_keys_different_ciphertext ... ok
[INFO] [stdout] test sqli_detector::tests::test_sqli_detection_new ... ok
[INFO] [stdout] test tde::tests::test_7c1_different_pages_different_ciphertext ... ok
[INFO] [stdout] test tde::tests::test_7c1_empty_page ... ok
[INFO] [stdout] test tde::tests::test_7c1_enable_already_enabled ... ok
[INFO] [stdout] test tde::tests::test_7c1_disable_not_enabled ... ok
[INFO] [stdout] test password_profile::tests::test_user_state_is_expired_true ... ok
[INFO] [stdout] test tde::tests::test_7c1_enable_disable ... ok
[INFO] [stdout] test tde::tests::test_7c1_enable_invalid_key_length ... ok
[INFO] [stdout] test tde::tests::test_7c1_enable_with_key_already_enabled ... ok
[INFO] [stdout] test tde::tests::test_7c1_enable_with_master_key ... ok
[INFO] [stdout] test tde::tests::test_7c1_encrypt_page_not_enabled ... ok
[INFO] [stdout] test tde::tests::test_7c1_encrypted_data_unreadable_hexdump ... ok
[INFO] [stdout] test tde::tests::test_7c1_engine_creation ... ok
[INFO] [stdout] test tde::tests::test_7c1_encrypt_decrypt_page_roundtrip ... ok
[INFO] [stdout] test tde::tests::test_7c1_generate_master_key ... ok
[INFO] [stdout] test tde::tests::test_7c1_increment_counter ... ok
[INFO] [stdout] test tde::tests::test_7c1_master_key_debug_no_leak ... ok
[INFO] [stdout] test password_profile::tests::test_user_state_new_success ... ok
[INFO] [stdout] test tde::tests::test_7c1_master_key_from_bytes ... ok
[INFO] [stdout] test tde::tests::test_7c1_encrypt_decrypt_bytes_roundtrip ... ok
[INFO] [stdout] test tde::tests::test_7c1_master_key_fingerprint ... ok
[INFO] [stdout] test tde::tests::test_7c1_master_key_invalid_length ... ok
[INFO] [stdout] test tde::tests::test_7c1_max_page_id ... ok
[INFO] [stdout] test tde::tests::test_7c1_master_key_generate ... ok
[INFO] [stdout] test tde::tests::test_7c1_non_block_aligned_page ... ok
[INFO] [stdout] test tde::tests::test_7c1_reset_stats ... ok
[INFO] [stdout] test tde::tests::test_7c1_rotate_key ... ok
[INFO] [stdout] test tde::tests::test_7c1_rotate_key_bytes ... ok
[INFO] [stdout] test tde::tests::test_7c1_rotate_key_not_enabled ... ok
[INFO] [stdout] test tde::tests::test_7c1_same_page_same_ciphertext ... ok
[INFO] [stdout] test tde::tests::test_7c1_single_byte_page ... ok
[INFO] [stdout] test tde::tests::test_7c1_stats_tracking ... ok
[INFO] [stdout] test tde::tests::test_7c2_disable_clears_rotation_state ... ok
[INFO] [stdout] test tde::tests::test_7c2_finalize_no_active_rotation ... ok
[INFO] [stdout] test tde::tests::test_7c2_finalize_rotation ... ok
[INFO] [stdout] test tde::tests::test_7c2_is_rotating_status ... ok
[INFO] [stdout] test tde::tests::test_7c2_key_version_increment ... ok
[INFO] [stdout] test tde::tests::test_7c2_key_version_overflow ... ok
[INFO] [stdout] test tde::tests::test_7c2_multiple_rotations_coexistence ... ok
[INFO] [stdout] test tde::tests::test_7c2_old_key_versions ... ok
[INFO] [stdout] test tde::tests::test_7c2_reencrypt_all_pages_workflow ... ok
[INFO] [stdout] test tde::tests::test_7c2_reencrypt_already_current_version ... ok
[INFO] [stdout] test tde::tests::test_7c2_reencrypt_page ... ok
[INFO] [stdout] test tde::tests::test_7c2_reencrypt_too_short ... ok
[INFO] [stdout] test tde::tests::test_7c2_rotate_key_lazy_basic ... ok
[INFO] [stdout] test tde::tests::test_7c2_rotate_key_lazy_bytes_invalid_length ... ok
[INFO] [stdout] test tde::tests::test_7c2_rotate_key_lazy_not_enabled ... ok
[INFO] [stdout] test tde::tests::test_7c2_full_rotation_workflow ... ok
[INFO] [stdout] test tde::tests::test_7c2_rotate_key_lazy_old_ciphertext_still_decryptable ... ok
[INFO] [stdout] test tests::version_returns_nonempty ... ok
[INFO] [stdout] test tde::tests::test_7c2_unknown_key_version_after_immediate_rotate ... ok
[INFO] [stdout] test tde::tests::test_7c1_master_key_from_passphrase ... ok
[INFO] [stdout] test tde::tests::test_7c1_derive_master_key_from_passphrase ... ok
[INFO] [stdout] test tde::tests::test_7c1_ctr_large_data ... ok
[INFO] [stdout] test password_profile::tests::test_lockout_after_max_failures ... ok
[INFO] [stdout] test password_profile::tests::test_user_state_verify_wrong ... ok
[INFO] [stdout] test password_profile::tests::test_change_password_history_expired_after_interval ... ok
[INFO] [stdout] test password_profile::tests::test_lockout_not_triggered_when_below_threshold ... ok
[INFO] [stdout] test password_profile::tests::test_user_state_verify_resets_failures_on_success ... ok
[INFO] [stdout] test password_profile::tests::test_e2e_multiple_profiles ... ok
[INFO] [stdout] test password_profile::tests::test_e2e_full_lifecycle ... ok
[INFO] [stdout] test password_profile::tests::test_change_password_history_truncated ... ok
[INFO] [stdout] test password_profile::tests::test_change_password_history_prevents_reuse ... ok
[INFO] [stdout] test tde::tests::test_7c1_full_workflow_large_scale ... ok
[INFO] [stdout] test password_profile::tests::test_e2e_password_history_not_reusable ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 539 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 64.02s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests szrsql_security
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test src/audit.rs - audit::AuditLog (line 600) ... ignored
[INFO] [stdout] test src/column_enc.rs - column_enc::ColumnEncryptionEngine (line 295) ... ignored
[INFO] [stdout] test src/firewall.rs - firewall::SqlFirewall (line 318) ... ignored
[INFO] [stdout] test src/password_profile.rs - password_profile::PasswordHash (line 566) ... ignored
[INFO] [stdout] test src/password_profile.rs - password_profile::PasswordProfile (line 167) ... ignored
[INFO] [stdout] test src/password_profile.rs - password_profile::PasswordProfileRegistry (line 456) ... ignored
[INFO] [stdout] test src/password_profile.rs - password_profile::UserPasswordState (line 689) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 7 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "5d14ef6f6fd4a8bc30d91bfbbd275bf92ed76ff8da39fa59006ae93ca1b31fb3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5d14ef6f6fd4a8bc30d91bfbbd275bf92ed76ff8da39fa59006ae93ca1b31fb3", kill_on_drop: false }`
[INFO] [stdout] 5d14ef6f6fd4a8bc30d91bfbbd275bf92ed76ff8da39fa59006ae93ca1b31fb3
