[INFO] fetching crate stateset-policy 0.8.1... [INFO] testing stateset-policy-0.8.1 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate stateset-policy 0.8.1 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate stateset-policy 0.8.1 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate stateset-policy 0.8.1 [INFO] tweaked toml for crates.io crate stateset-policy 0.8.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate stateset-policy 0.8.1 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate stateset-policy 0.8.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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded toml_datetime v1.0.1+spec-1.1.0 [INFO] [stderr] Downloaded toml_parser v1.0.10+spec-1.1.0 [INFO] [stderr] Downloaded insta v1.46.3 [INFO] [stderr] Downloaded toml_edit v0.25.5+spec-1.1.0 [INFO] [stderr] Downloaded rust_decimal v1.40.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c61a619d6ee8e8f76dc4c077b983f84ff39b3ce6b469c495641e2d2f2c2d418e [INFO] running `Command { std: "docker" "start" "-a" "c61a619d6ee8e8f76dc4c077b983f84ff39b3ce6b469c495641e2d2f2c2d418e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c61a619d6ee8e8f76dc4c077b983f84ff39b3ce6b469c495641e2d2f2c2d418e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c61a619d6ee8e8f76dc4c077b983f84ff39b3ce6b469c495641e2d2f2c2d418e", kill_on_drop: false }` [INFO] [stdout] c61a619d6ee8e8f76dc4c077b983f84ff39b3ce6b469c495641e2d2f2c2d418e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 37fdb56040bb573d9e89cc4e33d5a6f547e9a177ab1f837399e18885c12640a0 [INFO] running `Command { std: "docker" "start" "-a" "37fdb56040bb573d9e89cc4e33d5a6f547e9a177ab1f837399e18885c12640a0", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling rust_decimal v1.40.0 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling stateset-policy v0.8.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.22s [INFO] running `Command { std: "docker" "inspect" "37fdb56040bb573d9e89cc4e33d5a6f547e9a177ab1f837399e18885c12640a0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "37fdb56040bb573d9e89cc4e33d5a6f547e9a177ab1f837399e18885c12640a0", kill_on_drop: false }` [INFO] [stdout] 37fdb56040bb573d9e89cc4e33d5a6f547e9a177ab1f837399e18885c12640a0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 76e410950ef0808f584a4f82496516b9b18737035dcad9c44af672c1b4369ce9 [INFO] running `Command { std: "docker" "start" "-a" "76e410950ef0808f584a4f82496516b9b18737035dcad9c44af672c1b4369ce9", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling stateset-policy v0.8.1 (/opt/rustwide/workdir) [INFO] [stderr] Compiling insta v1.46.3 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 17.65s [INFO] running `Command { std: "docker" "inspect" "76e410950ef0808f584a4f82496516b9b18737035dcad9c44af672c1b4369ce9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "76e410950ef0808f584a4f82496516b9b18737035dcad9c44af672c1b4369ce9", kill_on_drop: false }` [INFO] [stdout] 76e410950ef0808f584a4f82496516b9b18737035dcad9c44af672c1b4369ce9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 7bd7f6232812b270dcbf4ca0c66378c9375bb6523f5d34b0d7b07a46df903629 [INFO] running `Command { std: "docker" "start" "-a" "7bd7f6232812b270dcbf4ca0c66378c9375bb6523f5d34b0d7b07a46df903629", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.18s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/stateset_policy-eeccddb381987a32) [INFO] [stdout] running 154 tests [INFO] [stdout] test action::tests::action_type_display ... ok [INFO] [stdout] test action::tests::action_type_serde ... ok [INFO] [stdout] test action::tests::agent_action ... ok [INFO] [stdout] test action::tests::builder_chain ... ok [INFO] [stdout] test action::tests::deny_action ... ok [INFO] [stdout] test action::tests::serde_roundtrip ... ok [INFO] [stdout] test action::tests::allow_action ... ok [INFO] [stdout] test action::tests::workflow_action_with_metadata ... ok [INFO] [stdout] test condition::tests::condition_missing_field ... ok [INFO] [stdout] test condition::tests::condition_simple_match ... ok [INFO] [stdout] test condition::tests::condition_unary_is_null ... ok [INFO] [stdout] test condition::tests::group_and_one_fails ... ok [INFO] [stdout] test condition::tests::condition_dynamic_ref ... ok [INFO] [stdout] test condition::tests::condition_dynamic_ref_missing_returns_false ... ok [INFO] [stdout] test condition::tests::condition_negate ... ok [INFO] [stdout] test condition::tests::condition_unary_is_true ... ok [INFO] [stdout] test condition::tests::group_empty_returns_true ... ok [INFO] [stdout] test condition::tests::group_evaluate_full ... ok [INFO] [stdout] test condition::tests::group_evaluate_full_preserves_nested_logic ... ok [INFO] [stdout] test condition::tests::group_or_none_match ... ok [INFO] [stdout] test condition::tests::group_or_one_matches ... ok [INFO] [stdout] test condition::tests::group_nested ... ok [INFO] [stdout] test condition::tests::serde_logic_values ... ok [INFO] [stdout] test context::tests::array_access_on_non_array ... ok [INFO] [stdout] test context::tests::array_access ... ok [INFO] [stdout] test context::tests::array_access_out_of_bounds ... ok [INFO] [stdout] test context::tests::dynamic_ref_resolved ... ok [INFO] [stdout] test context::tests::dynamic_ref_with_whitespace ... ok [INFO] [stdout] test context::tests::empty_path_returns_root ... ok [INFO] [stdout] test condition::tests::condition_with_detail ... ok [INFO] [stdout] test context::tests::missing_key ... ok [INFO] [stdout] test context::tests::missing_nested ... ok [INFO] [stdout] test context::tests::non_dynamic_string ... ok [INFO] [stdout] test context::tests::nested_path ... ok [INFO] [stdout] test context::tests::null_intermediate ... ok [INFO] [stdout] test context::tests::parse_array_access_valid ... ok [INFO] [stdout] test context::tests::root_level ... ok [INFO] [stdout] test context::tests::simple_path ... ok [INFO] [stdout] test engine::tests::engine_basic_allow ... ok [INFO] [stdout] test engine::tests::engine_basic_deny ... ok [INFO] [stdout] test engine::tests::engine_clear_history ... ok [INFO] [stdout] test context::tests::parse_array_access_invalid ... ok [INFO] [stdout] test engine::tests::engine_default_action_when_no_match ... ok [INFO] [stdout] test engine::tests::engine_deny_overrides_across_sets ... ok [INFO] [stdout] test engine::tests::engine_dry_run_no_history ... ok [INFO] [stdout] test engine::tests::engine_history_by_domain ... ok [INFO] [stdout] test engine::tests::engine_evaluate_records_history ... ok [INFO] [stdout] test engine::tests::engine_multiple_sets_same_domain ... ok [INFO] [stdout] test engine::tests::engine_no_policy_sets ... ok [INFO] [stdout] test context::tests::non_string_value ... ok [INFO] [stdout] test engine::tests::engine_re_register_same_id_updates_domain_index ... ok [INFO] [stdout] test condition::tests::serde_condition_roundtrip ... ok [INFO] [stdout] test context::tests::dynamic_ref_nested_path ... ok [INFO] [stdout] test engine::tests::engine_status ... ok [INFO] [stdout] test engine::tests::engine_register_and_unregister ... ok [INFO] [stdout] test engine::tests::engine_unknown_domain_can_allow_when_configured ... ok [INFO] [stdout] test condition::tests::group_and_all_match ... ok [INFO] [stdout] test engine::tests::engine_unknown_domain_denies_by_default ... ok [INFO] [stdout] test condition::tests::serde_condition_group_roundtrip ... ok [INFO] [stdout] test context::tests::dynamic_ref_missing_path ... ok [INFO] [stdout] test engine::tests::evaluation_serializable ... ok [INFO] [stdout] test explanation::tests::explanation_display ... ok [INFO] [stdout] test explanation::tests::explanation_serde_roundtrip ... ok [INFO] [stdout] test explanation::tests::matched_rule_serde ... ok [INFO] [stdout] test loader::tests::load_json_invalid ... ok [INFO] [stdout] test explanation::tests::transform_audit_entry ... ok [INFO] [stdout] test loader::tests::load_json_minimal ... ok [INFO] [stdout] test loader::tests::load_json_with_rules ... ok [INFO] [stdout] test loader::tests::load_from_nonexistent_dir ... ok [INFO] [stdout] test loader::tests::load_json_sorts_rules_by_priority ... ok [INFO] [stdout] test loader::tests::load_yaml_invalid ... ok [INFO] [stdout] test loader::tests::load_from_dir_strict_rejects_bad_files ... ok [INFO] [stdout] test loader::tests::load_from_dir_mixed_files ... ok [INFO] [stdout] test loader::tests::load_from_dir_permissive_skips_bad_files ... ok [INFO] [stdout] test loader::tests::load_yaml_minimal ... ok [INFO] [stdout] test loader::tests::load_yaml_sorts_rules_by_priority ... ok [INFO] [stdout] test loader::tests::load_yaml_with_rules ... ok [INFO] [stdout] test operator::tests::between_inclusive ... ok [INFO] [stdout] test operator::tests::contains_coerces_numbers_to_string ... ok [INFO] [stdout] test operator::tests::between_with_floats ... ok [INFO] [stdout] test operator::tests::contains_string ... ok [INFO] [stdout] test operator::tests::between_wrong_shape ... ok [INFO] [stdout] test operator::tests::divisible_by_zero ... ok [INFO] [stdout] test operator::tests::ends_with_string ... ok [INFO] [stdout] test operator::tests::eq_bool ... ok [INFO] [stdout] test operator::tests::eq_different_numbers ... ok [INFO] [stdout] test operator::tests::display_format ... ok [INFO] [stdout] test operator::tests::eq_null ... ok [INFO] [stdout] test operator::tests::divisible_by ... ok [INFO] [stdout] test operator::tests::eq_large_integer_preserves_precision ... ok [INFO] [stdout] test operator::tests::eq_float_comparison ... ok [INFO] [stdout] test operator::tests::eq_number_vs_numeric_string ... ok [INFO] [stdout] test operator::tests::eq_same_number ... ok [INFO] [stdout] test operator::tests::eq_string ... ok [INFO] [stdout] test operator::tests::gt_non_numeric_returns_false ... ok [INFO] [stdout] test operator::tests::gt_numbers ... ok [INFO] [stdout] test operator::tests::gte_numbers ... ok [INFO] [stdout] test operator::tests::in_array ... ok [INFO] [stdout] test operator::tests::in_non_array ... ok [INFO] [stdout] test operator::tests::in_numeric_array ... ok [INFO] [stdout] test operator::tests::is_empty_cases ... ok [INFO] [stdout] test operator::tests::is_false ... ok [INFO] [stdout] test operator::tests::eq_string_mismatch ... ok [INFO] [stdout] test operator::tests::gt_large_integer_preserves_precision ... ok [INFO] [stdout] test operator::tests::is_not_null ... ok [INFO] [stdout] test operator::tests::is_null ... ok [INFO] [stdout] test operator::tests::lte_numbers ... ok [INFO] [stdout] test operator::tests::is_true ... ok [INFO] [stdout] test operator::tests::matches_invalid_regex ... ok [INFO] [stdout] test operator::tests::lt_numbers ... ok [INFO] [stdout] test operator::tests::neq_different ... ok [INFO] [stdout] test operator::tests::neq_same ... ok [INFO] [stdout] test operator::tests::serde_all_variants ... ok [INFO] [stdout] test operator::tests::not_in_array ... ok [INFO] [stdout] test operator::tests::not_in_non_array ... ok [INFO] [stdout] test operator::tests::serde_round_trip ... ok [INFO] [stdout] test operator::tests::unary_operators ... ok [INFO] [stdout] test operator::tests::starts_with_string ... ok [INFO] [stdout] test policy_set::tests::deny_overrides_allow ... ok [INFO] [stdout] test policy_set::tests::deserialize_sorts_rules_by_priority ... ok [INFO] [stdout] test policy_set::tests::explanations_contain_condition_details ... ok [INFO] [stdout] test policy_set::tests::no_match_uses_default_deny_for_reporting ... ok [INFO] [stdout] test policy_set::tests::no_rules_returns_default ... ok [INFO] [stdout] test policy_set::tests::priority_order_is_descending ... ok [INFO] [stdout] test policy_set::tests::single_deny_rule_does_not_match ... ok [INFO] [stdout] test policy_set::tests::serde_roundtrip ... ok [INFO] [stdout] test rule::tests::disabled_rule_never_matches ... ok [INFO] [stdout] test policy_set::tests::stop_on_match_stops_evaluation ... ok [INFO] [stdout] test policy_set::tests::single_deny_rule_matches ... ok [INFO] [stdout] test rule::tests::disabled_rule_with_detail_returns_empty ... ok [INFO] [stdout] test rule::tests::rule_priority_and_stop ... ok [INFO] [stdout] test rule::tests::rule_with_detail ... ok [INFO] [stdout] test rule::tests::rule_matches ... ok [INFO] [stdout] test rule::tests::serde_roundtrip ... ok [INFO] [stdout] test templates::tests::auto_approve_returns_high_value_flagged ... ok [INFO] [stdout] test templates::tests::auto_approve_returns_normal_no_match ... ok [INFO] [stdout] test templates::tests::auto_approve_returns_vip_small ... ok [INFO] [stdout] test templates::tests::fraud_address_mismatch ... ok [INFO] [stdout] test templates::tests::fraud_high_value_new_customer ... ok [INFO] [stdout] test operator::tests::matches_rejects_long_pattern ... ok [INFO] [stdout] test templates::tests::inventory_critical_stock ... ok [INFO] [stdout] test templates::tests::fraud_no_flags_normal_order ... ok [INFO] [stdout] test templates::tests::fraud_velocity_check ... ok [INFO] [stdout] test templates::tests::inventory_low_stock_with_dynamic_ref ... ok [INFO] [stdout] test templates::tests::subscription_auto_cancel ... ok [INFO] [stdout] test templates::tests::promotion_no_stacking ... ok [INFO] [stdout] test templates::tests::subscription_retention_offer ... ok [INFO] [stdout] test operator::tests::matches_regex ... ok [INFO] [stdout] test templates::tests::template_rule_counts ... ok [INFO] [stdout] test templates::tests::template_domains ... ok [INFO] [stdout] test templates::tests::promotion_vip_allowed ... ok [INFO] [stdout] test templates::tests::promotion_vip_blocked_for_regular ... ok [INFO] [stdout] test operator::tests::is_not_empty_cases ... ok [INFO] [stdout] test engine::tests::engine_history_capped ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 154 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stderr] Running tests/policy_integration.rs (/opt/rustwide/target/debug/deps/policy_integration-73ecdc76cf6e24b4) [INFO] [stdout] [INFO] [stdout] running 49 tests [INFO] [stdout] test and_group_all_must_match ... ok [INFO] [stdout] test denial_includes_explanation_with_condition_breakdown ... ok [INFO] [stdout] test deny_in_same_policy_set_overrides_allow ... ok [INFO] [stdout] test deny_overrides_multiple_allows ... ok [INFO] [stdout] test deny_overrides_single_allow ... ok [INFO] [stdout] test disabled_rule_is_skipped ... ok [INFO] [stdout] test empty_or_group_evaluates_to_false ... ok [INFO] [stdout] test empty_policy_engine_denies_by_default ... ok [INFO] [stdout] test dry_run_does_not_record_history ... ok [INFO] [stdout] test evaluate_sets_dry_run_to_false ... ok [INFO] [stdout] test explanation_display_format_is_human_readable ... ok [INFO] [stdout] test explanation_has_field_operator_expected_actual ... ok [INFO] [stdout] test higher_priority_rules_evaluated_first ... ok [INFO] [stdout] test multiple_conditions_each_produce_explanation_detail ... ok [INFO] [stdout] test negated_condition_inverts_result ... ok [INFO] [stdout] test history_records_evaluations_correctly ... ok [INFO] [stdout] test nested_and_inside_or ... ok [INFO] [stdout] test operator_between_and_divisible_by ... ok [INFO] [stdout] test only_allow_rules_results_in_allow ... ok [INFO] [stdout] test nested_dot_notation_field_paths ... ok [INFO] [stdout] test nested_or_inside_and ... ok [INFO] [stdout] test operator_eq_ne ... ok [INFO] [stdout] test operator_contains_starts_with_ends_with ... ok [INFO] [stdout] test dry_run_flag_is_set ... ok [INFO] [stdout] test operator_in_with_numeric_values ... ok [INFO] [stdout] test empty_and_group_evaluates_to_true ... ok [INFO] [stdout] test operator_gt_gte_lt_lte ... ok [INFO] [stdout] test operator_is_null_and_is_not_null ... ok [INFO] [stdout] test evaluation_across_different_domains_is_isolated ... ok [INFO] [stdout] test operator_is_empty_is_not_empty ... ok [INFO] [stdout] test operator_in_and_not_in ... ok [INFO] [stdout] test or_group_any_can_match ... ok [INFO] [stdout] test policy_set_evaluation_serializable_as_json ... ok [INFO] [stdout] test operator_matches_regex ... ok [INFO] [stdout] test dry_run_returns_same_result_as_evaluate ... ok [INFO] [stdout] test rule_with_no_conditions_always_matches ... ok [INFO] [stdout] test single_deny_rule_denies ... ok [INFO] [stdout] test stop_on_match_prevents_lower_priority_rules ... ok [INFO] [stdout] test stop_on_match_does_not_stop_if_not_matched ... ok [INFO] [stdout] test transform_action_appears_in_evaluation_result ... ok [INFO] [stdout] test rules_with_same_priority_both_evaluated ... ok [INFO] [stderr] Doc-tests stateset_policy [INFO] [stdout] test single_allow_rule_permits ... ok [INFO] [stdout] test transform_audit_entry_with_rule_context ... ok [INFO] [stdout] test unmatched_rule_falls_through_to_default_action ... ok [INFO] [stdout] test transform_alongside_allow ... ok [INFO] [stdout] test transform_audit_entry_captures_before_after ... ok [INFO] [stdout] test template_returns_policy_is_functional ... ok [INFO] [stdout] test unknown_domain_can_be_configured_to_allow ... ok [INFO] [stdout] test transform_audit_entry_serializes ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 49 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test src/lib.rs - (line 67) ... ok [INFO] [stdout] test src/lib.rs - (line 31) ... ok [INFO] [stdout] test src/lib.rs - (line 77) - compile ... ok [INFO] [stdout] test src/loader.rs - loader::load_policy_set_from_json (line 11) ... ok [INFO] [stdout] test src/rule.rs - rule::PolicyRule (line 16) ... ok [INFO] [stdout] test src/policy_set.rs - policy_set::PolicySet (line 17) ... ok [INFO] [stdout] test src/engine.rs - engine::PolicyEngine (line 46) ... ok [INFO] [stdout] test src/condition.rs - condition::ConditionGroup (line 209) ... ok [INFO] [stdout] test src/context.rs - context::get_nested_value (line 13) ... ok [INFO] [stdout] test src/condition.rs - condition::Condition (line 11) ... ok [INFO] [stdout] test src/context.rs - context::resolve_dynamic_ref (line 81) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.86s; merged doctests compilation took 0.80s [INFO] running `Command { std: "docker" "inspect" "7bd7f6232812b270dcbf4ca0c66378c9375bb6523f5d34b0d7b07a46df903629", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7bd7f6232812b270dcbf4ca0c66378c9375bb6523f5d34b0d7b07a46df903629", kill_on_drop: false }` [INFO] [stdout] 7bd7f6232812b270dcbf4ca0c66378c9375bb6523f5d34b0d7b07a46df903629