[INFO] fetching crate dgaard-engine 0.2.0...
[INFO] testing dgaard-engine-0.2.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate dgaard-engine 0.2.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate dgaard-engine 0.2.0
[INFO] finished tweaking crates.io crate dgaard-engine 0.2.0
[INFO] tweaked toml for crates.io crate dgaard-engine 0.2.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate dgaard-engine 0.2.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 dgaard-engine 0.2.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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 80d1de9353751b4503ff2c4e05258f350cb9517ee0252468b6cf20180ba5f1e1
[INFO] running `Command { std: "docker" "start" "80d1de9353751b4503ff2c4e05258f350cb9517ee0252468b6cf20180ba5f1e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "80d1de9353751b4503ff2c4e05258f350cb9517ee0252468b6cf20180ba5f1e1", 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" "80d1de9353751b4503ff2c4e05258f350cb9517ee0252468b6cf20180ba5f1e1" "/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" "80d1de9353751b4503ff2c4e05258f350cb9517ee0252468b6cf20180ba5f1e1", 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" "80d1de9353751b4503ff2c4e05258f350cb9517ee0252468b6cf20180ba5f1e1" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling zerocopy v0.8.50
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling data-encoding v2.11.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling tagptr v0.2.0
[INFO] [stderr]    Compiling ipnetwork v0.21.1
[INFO] [stderr]    Compiling resolv-conf v0.7.6
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling toml-span v0.7.1
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling prefix-trie v0.8.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling uuid v1.23.2
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling memmap2 v0.9.10
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling moka v0.12.15
[INFO] [stderr]    Compiling maxminddb v0.28.1
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[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 regex v1.12.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling hickory-proto v0.26.1
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling twox-hash v2.1.2
[INFO] [stderr]    Compiling hickory-net v0.26.1
[INFO] [stderr]    Compiling hickory-resolver v0.26.1
[INFO] [stderr]    Compiling dgaard-engine v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 04s
[INFO] running `Command { std: "docker" "inspect" "80d1de9353751b4503ff2c4e05258f350cb9517ee0252468b6cf20180ba5f1e1", 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" "80d1de9353751b4503ff2c4e05258f350cb9517ee0252468b6cf20180ba5f1e1" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling dgaard-engine v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stdout] warning: use of deprecated constant `std::f32::EPSILON`: replaced by the `EPSILON` associated constant on `f32`
[INFO] [stdout]     --> src/config/parser.rs:1641:82
[INFO] [stdout]      |
[INFO] [stdout] 1641 |         assert!((cfg.security.intelligence.entropy_threshold - 3.5).abs() < f32::EPSILON);
[INFO] [stdout]      |                                                                                  ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f32::EPSILON`: replaced by the `EPSILON` associated constant on `f32`
[INFO] [stdout]     --> src/config/parser.rs:1644:90
[INFO] [stdout]      |
[INFO] [stdout] 1644 |         assert!((cfg.security.intelligence.consonant_ratio_threshold - 0.7).abs() < f32::EPSILON);
[INFO] [stdout]      |                                                                                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f32::EPSILON`: replaced by the `EPSILON` associated constant on `f32`
[INFO] [stdout]     --> src/config/parser.rs:1657:91
[INFO] [stdout]      |
[INFO] [stdout] 1657 |             (cfg.security.intelligence.ngram_probability_threshold - (-5.0)).abs() < f32::EPSILON
[INFO] [stdout]      |                                                                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f32::EPSILON`: replaced by the `EPSILON` associated constant on `f32`
[INFO] [stdout]     --> src/config/parser.rs:2515:82
[INFO] [stdout]      |
[INFO] [stdout] 2515 |         assert!((cfg.security.intelligence.entropy_threshold - 4.0).abs() < f32::EPSILON);
[INFO] [stdout]      |                                                                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f32::EPSILON`: replaced by the `EPSILON` associated constant on `f32`
[INFO] [stdout]     --> src/config/parser.rs:2645:49
[INFO] [stdout]      |
[INFO] [stdout] 2645 |             assert!((v - 3.25_f32).abs() < f32::EPSILON);
[INFO] [stdout]      |                                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f32::EPSILON`: replaced by the `EPSILON` associated constant on `f32`
[INFO] [stdout]     --> src/config/parser.rs:2653:44
[INFO] [stdout]      |
[INFO] [stdout] 2653 |             assert!((v - 4.0).abs() < f32::EPSILON);
[INFO] [stdout]      |                                            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 20.66s
[INFO] running `Command { std: "docker" "inspect" "80d1de9353751b4503ff2c4e05258f350cb9517ee0252468b6cf20180ba5f1e1", 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" "80d1de9353751b4503ff2c4e05258f350cb9517ee0252468b6cf20180ba5f1e1" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated constant `std::f32::EPSILON`: replaced by the `EPSILON` associated constant on `f32`
[INFO] [stderr]     --> src/config/parser.rs:1641:82
[INFO] [stderr]      |
[INFO] [stderr] 1641 |         assert!((cfg.security.intelligence.entropy_threshold - 3.5).abs() < f32::EPSILON);
[INFO] [stderr]      |                                                                                  ^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f32::EPSILON`: replaced by the `EPSILON` associated constant on `f32`
[INFO] [stderr]     --> src/config/parser.rs:1644:90
[INFO] [stderr]      |
[INFO] [stderr] 1644 |         assert!((cfg.security.intelligence.consonant_ratio_threshold - 0.7).abs() < f32::EPSILON);
[INFO] [stderr]      |                                                                                          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f32::EPSILON`: replaced by the `EPSILON` associated constant on `f32`
[INFO] [stderr]     --> src/config/parser.rs:1657:91
[INFO] [stderr]      |
[INFO] [stderr] 1657 |             (cfg.security.intelligence.ngram_probability_threshold - (-5.0)).abs() < f32::EPSILON
[INFO] [stderr]      |                                                                                           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f32::EPSILON`: replaced by the `EPSILON` associated constant on `f32`
[INFO] [stderr]     --> src/config/parser.rs:2515:82
[INFO] [stderr]      |
[INFO] [stderr] 2515 |         assert!((cfg.security.intelligence.entropy_threshold - 4.0).abs() < f32::EPSILON);
[INFO] [stderr]      |                                                                                  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f32::EPSILON`: replaced by the `EPSILON` associated constant on `f32`
[INFO] [stderr]     --> src/config/parser.rs:2645:49
[INFO] [stderr]      |
[INFO] [stderr] 2645 |             assert!((v - 3.25_f32).abs() < f32::EPSILON);
[INFO] [stderr]      |                                                 ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::f32::EPSILON`: replaced by the `EPSILON` associated constant on `f32`
[INFO] [stderr]     --> src/config/parser.rs:2653:44
[INFO] [stderr]      |
[INFO] [stderr] 2653 |             assert!((v - 4.0).abs() < f32::EPSILON);
[INFO] [stderr]      |                                            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `dgaard-engine` (lib test) generated 6 warnings
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.18s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/dgaard-engine/d051395256c3bda3/out/dgaard_engine-d051395256c3bda3)
[INFO] [stdout] 
[INFO] [stdout] running 453 tests
[INFO] [stdout] test config::model::tests::apply_floor_does_not_reduce_ttl_above_floor ... ok
[INFO] [stdout] test config::model::tests::apply_floor_no_floor_returns_ttl_unchanged ... ok
[INFO] [stdout] test config::model::tests::forwarder_config_defaults_match_example_toml ... ok
[INFO] [stdout] test config::model::tests::idn_mode_default_is_smart ... ok
[INFO] [stdout] test config::model::tests::geo_ip_config_default_is_disabled ... ok
[INFO] [stdout] test config::model::tests::idn_config_defaults ... ok
[INFO] [stdout] test config::model::tests::default_pipeline_has_six_steps_in_order ... ok
[INFO] [stdout] test config::model::tests::abp_config_defaults_match_example_toml ... ok
[INFO] [stdout] test config::model::tests::behavior_config_defaults_match_example_toml ... ok
[INFO] [stdout] test config::model::tests::apply_floor_clamps_ttl_below_floor ... ok
[INFO] [stdout] test config::model::tests::config_default_server_listen_addr_is_loopback ... ok
[INFO] [stdout] test config::model::tests::cache_config_defaults_match_example_toml ... ok
[INFO] [stdout] test config::model::tests::idn_mode_variants_are_distinct ... ok
[INFO] [stdout] test config::model::tests::rebinding_shield_config_block_ptr_leak_can_be_disabled ... ok
[INFO] [stdout] test config::model::tests::low_ttl_config_default_has_no_floor ... ok
[INFO] [stdout] test config::model::tests::memory_config_defaults_match_example_toml ... ok
[INFO] [stdout] test config::model::tests::sources_config_defaults_match_example_toml ... ok
[INFO] [stdout] test config::model::tests::special_use_config_default_is_enabled_with_no_extras ... ok
[INFO] [stdout] test config::model::tests::resolution_mode_default_is_forwarder ... ok
[INFO] [stdout] test config::model::tests::structure_config_defaults_match_example_toml ... ok
[INFO] [stdout] test config::model::tests::runtime_config_defaults ... ok
[INFO] [stdout] test config::model::tests::tunneling_detection_defaults_match_example_toml ... ok
[INFO] [stdout] test config::model::tests::special_use_config_extra_tlds_can_be_set ... ok
[INFO] [stdout] test config::parser::tests::get_bool_returns_error_for_wrong_type ... ok
[INFO] [stdout] test config::model::tests::nxdomain_action_default_is_log ... ok
[INFO] [stdout] test config::model::tests::intelligence_config_defaults_match_example_toml ... ok
[INFO] [stdout] test config::model::tests::lexical_config_defaults ... ok
[INFO] [stdout] test config::model::tests::rebinding_shield_config_default_is_enabled_with_ptr_leak_blocked ... ok
[INFO] [stdout] test config::model::tests::server_config_default_mode_is_forwarder ... ok
[INFO] [stdout] test config::parser::tests::get_bool_returns_none_for_missing_key ... ok
[INFO] [stdout] test config::parser::tests::get_float_returns_float_value ... ok
[INFO] [stdout] test config::parser::tests::get_float_coerces_integer ... ok
[INFO] [stdout] test config::parser::tests::get_float_returns_none_for_missing_key ... ok
[INFO] [stdout] test config::parser::tests::get_integer_returns_error_for_wrong_type ... ok
[INFO] [stdout] test config::parser::tests::get_integer_returns_negative_value ... ok
[INFO] [stdout] test config::parser::tests::get_integer_returns_none_for_missing_key ... ok
[INFO] [stdout] test config::parser::tests::get_integer_returns_value ... ok
[INFO] [stdout] test config::parser::tests::get_str_returns_error_for_wrong_type ... ok
[INFO] [stdout] test config::parser::tests::get_str_returns_none_for_missing_key ... ok
[INFO] [stdout] test config::model::tests::security_config_composes_sub_configs ... ok
[INFO] [stdout] test config::parser::tests::get_str_returns_value_for_existing_key ... ok
[INFO] [stdout] test config::parser::tests::get_string_array_returns_empty_vec ... ok
[INFO] [stdout] test config::parser::tests::get_string_array_returns_error_for_non_array ... ok
[INFO] [stdout] test config::parser::tests::get_string_array_returns_none_for_missing_key ... ok
[INFO] [stdout] test config::parser::tests::get_string_array_returns_error_for_non_string_element ... ok
[INFO] [stdout] test config::parser::tests::get_string_array_returns_vec ... ok
[INFO] [stdout] test config::parser::tests::load_nonexistent_file_returns_io_error ... ok
[INFO] [stdout] test config::parser::tests::parse_abp ... ok
[INFO] [stdout] test config::parser::tests::parse_cache ... ok
[INFO] [stdout] test config::model::tests::recursive_config_defaults_match_roadmap ... ok
[INFO] [stdout] test config::model::tests::worker_threads_count_variant ... ok
[INFO] [stdout] test config::model::tests::tld_config_default_allows_all_no_exclusions ... ok
[INFO] [stdout] test config::parser::tests::parse_custom_flags_17_entries_rejected ... ok
[INFO] [stdout] test config::parser::tests::parse_custom_flags_bit_above_31_is_rejected ... ok
[INFO] [stdout] test config::parser::tests::parse_custom_flags_max_16_entries_accepted ... ok
[INFO] [stdout] test config::parser::tests::parse_custom_flags_empty_when_absent ... ok
[INFO] [stdout] test config::parser::tests::parse_custom_flags_missing_bit_is_rejected ... ok
[INFO] [stdout] test config::parser::tests::parse_custom_flags_missing_code_is_rejected ... ok
[INFO] [stdout] test config::parser::tests::parse_custom_flags_multiple_entries ... ok
[INFO] [stdout] test config::parser::tests::parse_custom_flags_optional_fields_default ... ok
[INFO] [stdout] test config::parser::tests::get_bool_returns_false ... ok
[INFO] [stdout] test config::parser::tests::parse_empty_config_returns_defaults ... ok
[INFO] [stdout] test config::parser::tests::get_bool_returns_true ... ok
[INFO] [stdout] test config::parser::tests::get_float_returns_error_for_wrong_type ... ok
[INFO] [stdout] test config::parser::tests::get_table_returns_error_for_non_table ... ok
[INFO] [stdout] test config::parser::tests::get_table_returns_nested_table ... ok
[INFO] [stdout] test config::parser::tests::parse_custom_flags_single_entry ... ok
[INFO] [stdout] test config::parser::tests::parse_legacy_upstream_section_is_rejected_with_pointer_to_forwarder ... ok
[INFO] [stdout] test config::parser::tests::parse_example_config_file ... ok
[INFO] [stdout] test config::parser::tests::parse_memory ... ok
[INFO] [stdout] test config::parser::tests::parse_integer_as_float ... ok
[INFO] [stdout] test config::parser::tests::parse_metrics_listen_sets_address ... ok
[INFO] [stdout] test config::parser::tests::parse_forwarder ... ok
[INFO] [stdout] test config::parser::tests::parse_invalid_pipeline_step_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_forwarder_0x20_defaults_true ... ok
[INFO] [stdout] test config::parser::tests::parse_invalid_toml_syntax ... ok
[INFO] [stdout] test config::parser::tests::parse_invalid_worker_threads_string_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_metrics_listen_absent_yields_none ... ok
[INFO] [stdout] test config::parser::tests::parse_negative_max_answers_per_query_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_negative_max_domain_length_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_negative_min_word_length_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_negative_threshold_secs_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_negative_timeout_ms_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_negative_update_interval_hours_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_negative_worker_threads_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_negative_max_label_length_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_negative_max_subdomain_depth_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_nxdomain_hunting_log ... ok
[INFO] [stdout] test config::parser::tests::parse_overflow_blocked_type_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_overflow_max_subdomain_depth_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_overrides_empty_when_absent ... ok
[INFO] [stdout] test config::parser::tests::parse_minimal_server_config ... ok
[INFO] [stdout] test config::parser::tests::parse_negative_blocked_type_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_negative_blocking_threshold_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_negative_cache_size_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_overrides_exact_ipv4 ... ok
[INFO] [stdout] test config::parser::tests::parse_negative_stack_size_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_overrides_missing_domain_is_error ... ok
[INFO] [stdout] test config::parser::tests::parse_overrides_multiple_entries ... ok
[INFO] [stdout] test config::parser::tests::parse_overrides_wildcard_ipv6 ... ok
[INFO] [stdout] test config::parser::tests::parse_nxdomain_hunting_block ... ok
[INFO] [stdout] test config::parser::tests::parse_nxdomain_hunting_invalid_action ... ok
[INFO] [stdout] test config::parser::tests::parse_recursive_ns_concurrency_invalid_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_overrides_invalid_ip_is_error ... ok
[INFO] [stdout] test config::parser::tests::parse_security_asn_filter_all_fields ... ok
[INFO] [stdout] test config::parser::tests::parse_security_idn_invalid_mode ... ok
[INFO] [stdout] test config::parser::tests::parse_security_asn_filter_defaults ... ok
[INFO] [stdout] test config::parser::tests::parse_security_asn_filter_disabled_empty_ranges ... ok
[INFO] [stdout] test config::parser::tests::parse_security_idn_modes ... ok
[INFO] [stdout] test config::model::tests::nxdomain_hunting_defaults_match_example_toml ... ok
[INFO] [stdout] test config::parser::tests::parse_recursive_section_round_trip ... ok
[INFO] [stdout] test config::parser::tests::parse_security_low_ttl_all_fields ... ok
[INFO] [stdout] test config::parser::tests::parse_security_low_ttl_defaults ... ok
[INFO] [stdout] test config::parser::tests::parse_security_low_ttl_no_floor ... ok
[INFO] [stdout] test config::parser::tests::parse_security_rebinding_shield_all_fields ... ok
[INFO] [stdout] test config::parser::tests::parse_security_behavior ... ok
[INFO] [stdout] test config::parser::tests::parse_security_geo_ip_all_fields ... ok
[INFO] [stdout] test config::parser::tests::parse_security_geo_ip_defaults ... ok
[INFO] [stdout] test config::parser::tests::parse_security_intelligence_entropy_fast_explicit_true ... ok
[INFO] [stdout] test config::parser::tests::parse_security_lexical_all_fields ... ok
[INFO] [stdout] test config::parser::tests::parse_security_lexical_defaults ... ok
[INFO] [stdout] test config::parser::tests::parse_security_rebinding_shield_defaults ... ok
[INFO] [stdout] test config::parser::tests::parse_security_special_use_defaults ... ok
[INFO] [stdout] test config::parser::tests::parse_security_special_use_all_fields ... ok
[INFO] [stdout] test config::parser::tests::parse_security_special_use_disabled ... ok
[INFO] [stdout] test config::parser::tests::parse_server_all_fields ... ok
[INFO] [stdout] test config::parser::tests::parse_security_structure ... ok
[INFO] [stdout] test config::parser::tests::parse_server_mode_forwarder ... ok
[INFO] [stdout] test config::parser::tests::parse_security_structure_defaults ... ok
[INFO] [stdout] test config::parser::tests::parse_server_mode_default_is_forwarder ... ok
[INFO] [stdout] test config::parser::tests::parse_server_mode_invalid_returns_error ... ok
[INFO] [stdout] test config::parser::tests::parse_sources ... ok
[INFO] [stdout] test config::parser::tests::parse_server_mode_recursive ... ok
[INFO] [stdout] test config::parser::tests::parse_server_runtime_auto ... ok
[INFO] [stdout] test config::parser::tests::parse_server_runtime_count ... ok
[INFO] [stdout] test config::parser::tests::parse_sources_browser_rules_disabled ... ok
[INFO] [stdout] test config::parser::tests::parse_wrong_type_for_bool ... ok
[INFO] [stdout] test config::parser::tests::parse_sources_host_index_disabled ... ok
[INFO] [stdout] test config::parser::tests::parse_tld ... ok
[INFO] [stdout] test config::parser::tests::parse_wrong_type_for_array ... ok
[INFO] [stdout] test config::parser::tests::parse_sources_reload_timeout_default ... ok
[INFO] [stdout] test config::parser::tests::parse_sources_reload_timeout_zero_disables ... ok
[INFO] [stdout] test config::parser::tests::parse_tunneling_detection ... ok
[INFO] [stdout] test config::parser::tests::parse_wrong_type_for_integer ... ok
[INFO] [stdout] test config::parser::tests::parse_wrong_type_for_string ... ok
[INFO] [stdout] test config::parser::tests::require_str_returns_value_for_existing_key ... ok
[INFO] [stdout] test config::parser::tests::parse_zero_worker_threads_returns_error ... ok
[INFO] [stdout] test config::parser::tests::require_str_returns_missing_key_error ... ok
[INFO] [stdout] test config::parser::tests::validate_accepts_recursive_mode_combined_with_dnssec ... ok
[INFO] [stdout] test config::parser::tests::validate_accepts_recursive_mode_without_dnssec ... ok
[INFO] [stdout] test config::parser::tests::validate_accepts_empty_forwarder_servers ... ok
[INFO] [stdout] test config::model::tests::config_default_cache_and_memory_enabled ... ok
[INFO] [stdout] test config::parser::tests::validate_accepts_valid_ipv6_asn_cidr ... ok
[INFO] [stdout] test config::model::tests::config_default_constructs_without_panic ... ok
[INFO] [stdout] test config::parser::tests::validate_accepts_valid_metrics_listen ... ok
[INFO] [stdout] test config::model::tests::config_default_security_intelligence_enabled ... ok
[INFO] [stdout] test config::model::tests::worker_threads_default_is_auto ... ok
[INFO] [stdout] test config::parser::tests::get_table_returns_none_for_missing_key ... ok
[INFO] [stdout] test config::parser::tests::validate_rejects_garbage_server_address ... ok
[INFO] [stdout] test config::parser::tests::validate_rejects_invalid_metrics_listen ... ok
[INFO] [stdout] test config::parser::tests::validate_ignores_invalid_asn_cidr_when_disabled ... ok
[INFO] [stdout] test config::parser::tests::validate_accepts_valid_ipv4_forwarder_servers ... ok
[INFO] [stdout] test config::parser::tests::validate_accepts_valid_ipv6_forwarder_server ... ok
[INFO] [stdout] test config::parser::tests::validate_rejects_invalid_asn_cidr_when_enabled ... ok
[INFO] [stdout] test dga::entropy::tests::entropy_fast_empty_string_returns_zero ... ok
[INFO] [stdout] test dga::entropy::tests::entropy_fast_normal_domain_below_threshold ... ok
[INFO] [stdout] test dga::entropy::tests::entropy_fast_dga_domain_above_threshold ... ok
[INFO] [stdout] test dga::entropy::tests::entropy_empty_string_returns_zero ... ok
[INFO] [stdout] test config::parser::tests::parse_security_intelligence ... ok
[INFO] [stdout] test config::parser::tests::parse_security_intelligence_entropy_fast_default_is_true ... ok
[INFO] [stdout] test config::parser::tests::validate_rejects_server_without_port ... ok
[INFO] [stdout] test config::parser::tests::parse_custom_flags_bit_below_16_is_rejected ... ok
[INFO] [stdout] test dga::entropy::tests::entropy_increases_with_randomness ... ok
[INFO] [stdout] test dga::entropy::tests::entropy_normal_domain_below_threshold ... ok
[INFO] [stdout] test config::parser::tests::validate_accepts_valid_asn_cidr_when_enabled ... ok
[INFO] [stdout] test config::parser::tests::parse_custom_flags_duplicate_bit_is_rejected ... ok
[INFO] [stdout] test dga::entropy::tests::entropy_repeated_char_returns_zero ... ok
[INFO] [stdout] test dga::entropy::tests::entropy_single_char_returns_zero ... ok
[INFO] [stdout] test dga::entropy::tests::entropy_dga_domain_above_threshold ... ok
[INFO] [stdout] test config::parser::tests::validate_accepts_forwarder_mode_with_dnssec ... ok
[INFO] [stdout] test dga::entropy::tests::is_consonant_suspicious_normal_domains_pass ... ok
[INFO] [stdout] test dga::ngram::tests::external_ngram_check_empty_models_passes ... ok
[INFO] [stdout] test dga::ngram::tests::external_ngram_check_with_loaded_model_passes_likely_domain ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_check_known_dga_patterns ... ok
[INFO] [stdout] test dga::ngram::tests::external_ngram_model_load_valid_file ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_check_or_logic_multilingual ... ok
[INFO] [stdout] test dga::ngram::tests::external_ngram_model_load_wrong_magic_returns_none ... ok
[INFO] [stdout] test dga::entropy::tests::entropy_two_chars_equal_distribution ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_check_or_logic_english_only ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_char_to_index_non_letter ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_check_empty_languages_passes ... ok
[INFO] [stdout] test dga::ngram::tests::external_ngram_check_with_loaded_model_fails_unlikely_domain ... ok
[INFO] [stdout] test dga::ngram::tests::external_ngram_model_score_unknown_ngram_uses_default ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_char_to_index_lowercase ... ok
[INFO] [stdout] test dga::ngram::tests::external_ngram_model_load_truncated_file_returns_none ... ok
[INFO] [stdout] test dga::entropy::tests::is_consonant_suspicious_dga_domains_flagged ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_check_real_world_domains ... ok
[INFO] [stdout] test dga::ngram::tests::external_ngram_model_score_known_ngram ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_check_threshold_sensitivity ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_language_from_str ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_score_french_words ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_score_normal_domains ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_score_single_char ... ok
[INFO] [stdout] test filter::abp::tests::test_parse_abp_empty_pattern ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_score_dga_domains ... ok
[INFO] [stdout] test filter::abp::tests::test_parse_abp_regex_rule ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_score_german_words ... ok
[INFO] [stdout] test filter::abp::tests::test_parse_abp_subdomain_depth ... ok
[INFO] [stdout] test filter::abp::tests::test_parse_abp_wildcard_rule ... ok
[INFO] [stdout] test filter::abp::tests::test_parse_abp_with_options ... ok
[INFO] [stdout] test filter::engine::tests::test_geoip_suspicious_with_no_reader ... ok
[INFO] [stdout] test filter::engine::tests::test_load_asn_filters_parses_ranges ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_score_handles_hyphens ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_score_empty_string ... ok
[INFO] [stdout] test filter::abp::tests::test_parse_abp_block_rule ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_score_handles_digits ... ok
[INFO] [stdout] test dga::ngram::tests::ngram_score_normal_english_words ... ok
[INFO] [stdout] test filter::engine::tests::test_load_custom_flags_from_file ... ok
[INFO] [stdout] test filter::engine::tests::test_load_custom_flags_multiple_list_paths_merged ... ok
[INFO] [stdout] test filter::engine::tests::test_load_geoip_filter_disabled ... ok
[INFO] [stdout] test filter::engine::tests::test_load_geoip_filter_missing_db ... ok
[INFO] [stdout] test filter::engine::tests::test_parse_cidr_v4_valid ... ok
[INFO] [stdout] test filter::engine::tests::test_load_tld_filters_adds_entries ... ok
[INFO] [stdout] test filter::engine::tests::test_parse_cidr_v6_valid ... ok
[INFO] [stdout] test filter::engine::tests::test_load_tld_filters_strips_leading_dot ... ok
[INFO] [stdout] test filter::engine::tests::test_parse_cidr_v4_invalid ... ok
[INFO] [stdout] test filter::host_index::tests::empty_path_is_noop ... ok
[INFO] [stdout] test filter::host_index::tests::empty_index_writes_valid_header ... ok
[INFO] [stdout] test filter::io::tests::test_load_comments_only_file ... ok
[INFO] [stdout] test filter::io::tests::test_load_empty_file ... ok
[INFO] [stdout] test filter::host_index::tests::write_and_read_roundtrip ... ok
[INFO] [stdout] test filter::host_index::tests::creates_parent_directories ... ok
[INFO] [stdout] test filter::abp::tests::test_parse_abp_whitelist_rule ... ok
[INFO] [stdout] test filter::io::tests::test_load_list_file_not_found ... ok
[INFO] [stdout] test filter::engine::tests::test_is_asn_blocked_v4_in_range ... ok
[INFO] [stdout] test filter::engine::tests::test_tld_is_in_scope_with_empty_set ... ok
[INFO] [stdout] test filter::parser::tests::test_detect_format_abp_block ... ok
[INFO] [stdout] test filter::engine::tests::test_load_custom_flags_missing_file_logs_warning_not_panic ... ok
[INFO] [stdout] test filter::parser::tests::test_parse_dnsmasq_line_simple ... ok
[INFO] [stdout] test filter::parser::tests::test_detect_format_dnsmasq ... ok
[INFO] [stdout] test filter::parser::tests::test_detect_format_hosts ... ok
[INFO] [stdout] test filter::parser::tests::test_parse_host_line_ipv6 ... ok
[INFO] [stdout] test filter::parser::tests::test_parse_dnsmasq_line_address_format ... ok
[INFO] [stdout] test filter::io::tests::test_load_whitelist_file ... ok
[INFO] [stdout] test filter::io::tests::test_load_hosts_format_list ... ok
[INFO] [stdout] test filter::io::tests::test_load_abp_format_list ... ok
[INFO] [stdout] test filter::io::tests::test_load_plain_domain_list ... ok
[INFO] [stdout] test filter::parser::tests::test_parse_dnsmasq_invalid_format ... ok
[INFO] [stdout] test filter::engine::tests::test_load_custom_flags_empty_when_no_config ... ok
[INFO] [stdout] test filter::parser::tests::test_detect_format_plain ... ok
[INFO] [stdout] test filter::tests::process_line_keeps_punycode_when_skip_idn_disabled ... ok
[INFO] [stdout] test filter::tests::process_line_keeps_wildcard_regardless_of_length ... ok
[INFO] [stdout] test filter::parser::tests::test_parse_dnsmasq_empty_domain ... ok
[INFO] [stdout] test filter::tests::process_line_skips_punycode_when_skip_idn_enabled ... ok
[INFO] [stdout] test filter::tests::process_line_skips_when_depth_exceeds_max ... ok
[INFO] [stdout] test filter::tests::process_line_skips_when_tld_in_exclude ... ok
[INFO] [stdout] test filter::tests::process_line_keeps_whitelist_regardless_of_filter ... ok
[INFO] [stdout] test filter::parser::tests::test_parse_host_line_simple ... ok
[INFO] [stdout] test filter::parser::tests::test_parse_plain_domain_subdomain ... ok
[INFO] [stdout] test filter::parser::tests::test_parse_plain_domain_empty ... ok
[INFO] [stdout] test filter::tests::process_line_skips_when_entropy_high_and_flag_enabled ... ok
[INFO] [stdout] test filter::parser::tests::test_parse_plain_domain_simple ... ok
[INFO] [stdout] test filter::tests::process_line_skips_when_length_exceeds_max ... ok
[INFO] [stdout] test filter::tests::test_is_redundant_not_redundant ... ok
[INFO] [stdout] test filter::tests::test_is_redundant_parent_blocked ... ok
[INFO] [stdout] test filter::tests::test_load_list_content_empty ... ok
[INFO] [stdout] test filter::tests::test_load_list_content_mixed_formats ... ok
[INFO] [stdout] test filter::tests::test_load_list_content_plain_domains ... ok
[INFO] [stdout] test filter::tests::test_process_line_whitelist_flag ... ok
[INFO] [stdout] test filter::tests::test_process_line_wildcard_pattern_stored ... ok
[INFO] [stdout] test model::action::tests::custom_flag_bit_0_returns_empty ... ok
[INFO] [stdout] test model::action::tests::custom_flag_bit_15_returns_empty ... ok
[INFO] [stdout] test model::action::tests::custom_flag_bit_255_returns_empty ... ok
[INFO] [stdout] test model::action::tests::custom_flag_bit_32_returns_empty ... ok
[INFO] [stdout] test model::action::tests::custom_flag_bit_at_boundary_16_is_accepted ... ok
[INFO] [stdout] test model::action::tests::custom_flag_bit_at_boundary_31_is_accepted ... ok
[INFO] [stdout] test model::action::tests::test_custom_flag_bit_16_maps_to_correct_mask ... ok
[INFO] [stdout] test filter::tests::test_parse_line_returns_browser_rule ... ok
[INFO] [stdout] test filter::tests::test_parse_line_skips_comment ... ok
[INFO] [stdout] test filter::tests::test_parse_line_skips_empty ... ok
[INFO] [stdout] test filter::tests::test_process_line_abp_cosmetic_rule_collected ... ok
[INFO] [stdout] test filter::tests::test_process_line_abp_simple_domain ... ok
[INFO] [stdout] test filter::tests::test_process_line_abp_wildcard_suffix_only ... ok
[INFO] [stdout] test filter::tests::test_process_line_comment_ignored ... ok
[INFO] [stdout] test filter::tests::test_process_line_hosts_format ... ok
[INFO] [stdout] test filter::tests::test_process_line_plain_domain ... ok
[INFO] [stdout] test model::action::tests::test_custom_flag_bit_31_maps_to_correct_mask ... ok
[INFO] [stdout] test model::answer::tests::test_inspect_empty_response ... ok
[INFO] [stdout] test model::answer::tests::test_inspect_txt_record ... ok
[INFO] [stdout] test model::tests::stat_event_new_ipv4_address_is_mapped ... ok
[INFO] [stdout] test model::tests::stat_event_new_ipv6_address_stored_as_is ... ok
[INFO] [stdout] test model::tests::stat_event_new_timestamp_is_nonzero ... ok
[INFO] [stdout] test model::tests::stat_message_blocked_with_custom_bit_round_trip ... ok
[INFO] [stdout] test model::tests::stat_message_custom_and_builtin_bits_combined_round_trip ... ok
[INFO] [stdout] test model::tests::stat_message_deserialize_too_short_returns_none ... ok
[INFO] [stdout] test model::tests::stat_message_deserialize_unknown_type_returns_none ... ok
[INFO] [stdout] test model::tests::stat_message_domain_mapping_empty_domain_round_trip ... ok
[INFO] [stdout] test model::tests::stat_message_domain_mapping_round_trip ... ok
[INFO] [stdout] test model::tests::stat_message_event_allowed_round_trip ... ok
[INFO] [stdout] test model::tests::stat_message_event_allowed_with_override_round_trip ... ok
[INFO] [stdout] test model::tests::stat_message_event_blocked_round_trip ... ok
[INFO] [stdout] test model::tests::stat_message_event_highly_suspicious_round_trip ... ok
[INFO] [stdout] test model::tests::stat_message_event_proxied_round_trip ... ok
[INFO] [stdout] test model::tests::stat_message_event_suspicious_round_trip ... ok
[INFO] [stdout] test model::tests::stat_message_reason_field_is_4_bytes ... ok
[INFO] [stdout] test model::tests::suspicion_score_add_accumulates ... ok
[INFO] [stdout] test model::action::tests::test_custom_flag_does_not_overlap_built_in_bits ... ok
[INFO] [stdout] test model::answer::tests::test_inspect_cname_target ... ok
[INFO] [stdout] test model::action::tests::test_stat_block_reason_bitflags_combine ... ok
[INFO] [stdout] test model::answer::tests::test_inspect_invalid_bytes ... ok
[INFO] [stdout] test model::action::tests::test_stat_block_reason_from_block_reason ... ok
[INFO] [stdout] test model::action::tests::test_stat_block_reason_is_u32 ... ok
[INFO] [stdout] test model::answer::tests::test_inspect_a_record ... ok
[INFO] [stdout] test model::answer::tests::test_inspect_aaaa_record ... ok
[INFO] [stdout] test model::answer::tests::test_inspect_min_ttl_picks_lowest ... ok
[INFO] [stdout] test model::tests::suspicion_score_primary_reason_is_first ... ok
[INFO] [stdout] test resolve::heuristics::tests::test_check_lexical_loose_substring_match ... ok
[INFO] [stdout] test model::tests::suspicion_score_saturates_at_u8_max ... ok
[INFO] [stdout] test resolve::heuristics::tests::test_check_lexical_disabled ... ok
[INFO] [stdout] test resolve::heuristics::tests::test_check_lexical_with_suspicious_tlds ... ok
[INFO] [stdout] test resolve::heuristics::tests::test_check_lexical_strict_exact_label_match ... ok
[INFO] [stdout] test resolve::matcher::tests::test_is_suffix_blocked_by_tld ... ok
[INFO] [stdout] test resolve::matcher::tests::test_is_whitelisted_exact_match ... ok
[INFO] [stdout] test resolve::heuristics::tests::test_check_lexical_strict_no_substring_match ... ok
[INFO] [stdout] test resolve::patterns::tests::test_matches_glob_pattern_simple ... ok
[INFO] [stdout] test resolve::patterns::tests::test_matches_glob_pattern_star_segment ... ok
[INFO] [stdout] test model::tests::suspicion_score_add_multiple_reasons ... ok
[INFO] [stdout] test model::tests::suspicion_score_new_is_zero ... ok
[INFO] [stdout] test resolve::heuristics::tests::test_is_dga_suspicious_high_entropy ... ok
[INFO] [stdout] test resolve::heuristics::tests::test_is_dga_suspicious_short_domain_skipped ... ok
[INFO] [stdout] test resolve::patterns::tests::test_segment_matches_star_only ... ok
[INFO] [stdout] test resolve::heuristics::tests::test_is_illegal_idn_punycode ... ok
[INFO] [stdout] test resolve::patterns::tests::test_is_wildcard_pattern_blocked ... ok
[INFO] [stdout] test resolve::matcher::tests::test_is_suffix_blocked ... ok
[INFO] [stdout] test resolve::matcher::tests::test_whitelist_takes_precedence ... ok
[INFO] [stdout] test resolve::matcher::tests::test_is_blocked_exact_match ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::blocks_cgnat_100_64 ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::blocks_ipv6_unique_local_fc ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::blocks_partial_ptr_10_prefix ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::blocks_rfc1918_192_168_0_0 ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::blocks_ipv6_link_local_fe80 ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::blocks_ipv6_loopback ... ok
[INFO] [stdout] test resolve::patterns::tests::test_segment_matches_prefix_wildcard ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::blocks_link_local_169_254 ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::blocks_loopback_127 ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::blocks_partial_ptr_192_168 ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::case_insensitive ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::decode_ipv4_full ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::decode_ipv4_partial_two_octets ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::decode_ipv6_loopback ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::does_not_block_partial_ptr_public ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::does_not_block_public_ipv4 ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::does_nothing_when_ptr_disabled ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::decode_ipv4_single_octet ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::blocks_rfc1918_10_0_0_0 ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::does_nothing_when_shield_disabled ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::blocks_rfc1918_172_16_0_0 ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::ignores_non_numeric_in_addr_arpa ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::ignores_partial_ipv6_ptr ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::ignores_too_many_labels_in_addr_arpa ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::strips_trailing_dot ... ok
[INFO] [stdout] test resolve::qtype::tests::test_check_qclass_chaos_blocked_by_default ... ok
[INFO] [stdout] test resolve::qtype::tests::test_check_qclass_chaos_disabled ... ok
[INFO] [stdout] test resolve::qtype::tests::test_check_qclass_in_allowed ... ok
[INFO] [stdout] test resolve::qtype::tests::test_check_qclass_unknown_class_allowed ... ok
[INFO] [stdout] test resolve::qtype::tests::test_check_qtype_a_allowed ... ok
[INFO] [stdout] test resolve::qtype::tests::test_check_qtype_carries_type_code ... ok
[INFO] [stdout] test resolve::qtype::tests::test_check_qtype_custom_list ... ok
[INFO] [stdout] test resolve::qtype::tests::test_check_qtype_disabled ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::does_not_block_public_ipv6 ... ok
[INFO] [stdout] test resolve::ptr_leak::tests::does_not_block_regular_domains ... ok
[INFO] [stdout] test resolve::scoring::tests::test_compute_score_deep_subdomain ... ok
[INFO] [stdout] test resolve::scoring::tests::test_compute_score_long_domain ... ok
[INFO] [stdout] test resolve::scoring::tests::test_compute_score_normal_domain ... ok
[INFO] [stdout] test resolve::scoring::tests::test_extract_sld ... ok
[INFO] [stdout] test resolve::scoring::tests::test_compute_score_punycode ... ok
[INFO] [stdout] test resolve::scoring::tests::test_compute_score_custom_flag_miss_adds_nothing ... ok
[INFO] [stdout] test resolve::scoring::tests::test_is_idn_suspicious ... ok
[INFO] [stdout] test resolve::scoring::tests::test_is_private_ipv4_public ... ok
[INFO] [stdout] test resolve::scoring::tests::test_compute_score_high_entropy ... ok
[INFO] [stdout] test resolve::scoring::tests::test_is_private_ipv4_rfc1918 ... ok
[INFO] [stdout] test resolve::scoring::tests::test_is_private_ipv4_rfc5737_test_nets ... ok
[INFO] [stdout] test resolve::scoring::tests::test_is_private_ipv6_loopback ... ok
[INFO] [stdout] test resolve::scoring::tests::test_is_private_ipv6_public ... ok
[INFO] [stdout] test resolve::scoring::tests::test_is_private_ipv6_nat64 ... ok
[INFO] [stdout] test resolve::scoring::tests::test_is_private_ipv6_6to4 ... ok
[INFO] [stdout] test resolve::scoring::tests::test_compute_score_custom_flag_blocks_when_score_reaches_threshold ... ok
[INFO] [stdout] test resolve::scoring::tests::test_score_answer_clean ... ok
[INFO] [stdout] test resolve::scoring::tests::test_is_private_ipv6_unique_local ... ok
[INFO] [stdout] test resolve::scoring::tests::test_score_answer_cname_blocked_exact ... ok
[INFO] [stdout] test resolve::scoring::tests::test_is_private_ipv6_unspecified ... ok
[INFO] [stdout] test resolve::scoring::tests::test_score_answer_excessive_answers ... ok
[INFO] [stdout] test resolve::scoring::tests::test_score_answer_geoip_disabled_no_score ... ok
[INFO] [stdout] test resolve::scoring::tests::test_is_private_ipv6_link_local ... ok
[INFO] [stdout] test resolve::scoring::tests::test_score_answer_low_ttl_below_threshold ... ok
[INFO] [stdout] test resolve::scoring::tests::test_score_answer_geoip_enabled_no_reader_no_score ... ok
[INFO] [stdout] test resolve::scoring::tests::test_score_answer_rebinding_rfc1918_ipv4 ... ok
[INFO] [stdout] test resolve::scoring::tests::test_score_answer_txt_too_long ... ok
[INFO] [stdout] test resolve::special_use::tests::blocks_example ... ok
[INFO] [stdout] test resolve::special_use::tests::blocks_invalid ... ok
[INFO] [stdout] test resolve::special_use::tests::blocks_local ... ok
[INFO] [stdout] test resolve::special_use::tests::blocks_test ... ok
[INFO] [stdout] test resolve::special_use::tests::case_insensitive_tld_matching ... ok
[INFO] [stdout] test resolve::special_use::tests::does_not_block_public_tlds ... ok
[INFO] [stdout] test resolve::special_use::tests::does_nothing_when_disabled ... ok
[INFO] [stdout] test resolve::scoring::tests::test_is_private_ipv6_ipv4_mapped ... ok
[INFO] [stdout] test resolve::special_use::tests::extra_tld_matching_is_case_insensitive ... ok
[INFO] [stdout] test resolve::special_use::tests::blocks_extra_tld_with_dot_prefix ... ok
[INFO] [stdout] test resolve::scoring::tests::test_compute_score_custom_flag_hit_adds_score ... ok
[INFO] [stdout] test resolve::special_use::tests::single_label_local_is_blocked ... ok
[INFO] [stdout] test resolve::scoring::tests::test_score_answer_rebinding_disabled ... ok
[INFO] [stdout] test resolve::special_use::tests::tld_longer_than_64_bytes_is_not_blocked ... ok
[INFO] [stdout] test resolve::special_use::tests::blocks_extra_tld_without_dot_prefix ... ok
[INFO] [stdout] test resolve::special_use::tests::blocks_localhost ... ok
[INFO] [stdout] test resolve::special_use::tests::empty_domain_does_not_panic ... ok
[INFO] [stdout] test resolve::special_use::tests::extra_tld_does_not_block_partial_match ... ok
[INFO] [stdout] test resolve::tests::find_override_empty_list_returns_none ... ok
[INFO] [stdout] test resolve::tests::resolve_override_score_is_zero ... ok
[INFO] [stdout] test resolve::tests::test_is_structure_invalid_depth ... ok
[INFO] [stdout] test resolve::tests::test_is_structure_invalid_length ... ok
[INFO] [stdout] test resolve::tests::find_override_exact_match ... ok
[INFO] [stdout] test resolve::tests::test_resolve_blocked_domain ... ok
[INFO] [stdout] test resolve::tests::find_override_exact_no_match ... ok
[INFO] [stdout] test resolve::tests::test_resolve_idn_blocked ... ok
[INFO] [stdout] test resolve::tests::find_override_wildcard_no_partial_suffix_match ... ok
[INFO] [stdout] test resolve::tests::test_resolve_invalid_structure_blocked ... ok
[INFO] [stdout] test resolve::tests::resolve_override_bypasses_blocklist ... ok
[INFO] [stdout] test resolve::tests::test_resolve_lexical_blocked ... ok
[INFO] [stdout] test resolve::tests::find_override_wildcard_subdomain ... ok
[INFO] [stdout] test resolve::tests::test_resolve_ptr_leak_disabled_passes_through ... ok
[INFO] [stdout] test resolve::tests::test_resolve_special_use_disabled_passes_through ... ok
[INFO] [stdout] test resolve::tests::test_resolve_special_use_domain_blocked ... ok
[INFO] [stdout] test resolve::tests::test_resolve_tld_blocked_domain ... ok
[INFO] [stdout] test resolve::tests::test_resolve_special_use_extra_tld_blocked ... ok
[INFO] [stdout] test resolve::tests::test_resolve_wildcard_pattern_blocked ... ok
[INFO] [stdout] test resolve::tests::test_resolve_ptr_leak_blocked ... ok
[INFO] [stdout] test resolve::tests::test_resolve_ptr_leak_public_ip_not_blocked ... ok
[INFO] [stdout] test resolve::tests::test_resolve_with_score_normal_domain ... ok
[INFO] [stdout] test resolve::tests::test_resolve_ptr_leak_regular_domain_not_blocked ... ok
[INFO] [stdout] test resolve::tests::test_resolve_special_use_public_tld_not_blocked ... ok
[INFO] [stdout] test resolve::tests::test_resolve_with_score_whitelisted ... ok
[INFO] [stdout] test resolve::tests::test_resolve_unknown_domain_proxied ... ok
[INFO] [stdout] test resolve::tests::test_resolve_whitelisted_domain ... ok
[INFO] [stdout] test utils::tests::test_count_dots ... ok
[INFO] [stdout] test resolve::qtype::tests::test_check_qtype_null_blocked_by_default ... ok
[INFO] [stdout] test resolve::tests::find_override_wildcard_does_not_match_parent ... ok
[INFO] [stdout] test config::parser::tests::validate_accepts_none_metrics_listen ... ok
[INFO] [stdout] test config::parser::tests::validate_rejects_first_bad_server_in_mixed_list ... ok
[INFO] [stdout] test dga::ngram::tests::external_ngram_model_load_nonexistent_file ... ok
[INFO] [stdout] test filter::parser::tests::test_parse_host_line_localhost ... ok
[INFO] [stdout] test filter::parser::tests::test_parse_host_line_missing_domain ... ok
[INFO] [stdout] test dga::ngram::tests::external_ngram_model_score_short_domain_returns_neg_infinity ... ok
[INFO] [stdout] test resolve::patterns::tests::test_segment_matches_exact ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 453 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests dgaard_engine
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/lib.rs - (line 9) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.70s; merged doctests compilation took 0.69s
[INFO] running `Command { std: "docker" "inspect" "80d1de9353751b4503ff2c4e05258f350cb9517ee0252468b6cf20180ba5f1e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "80d1de9353751b4503ff2c4e05258f350cb9517ee0252468b6cf20180ba5f1e1", kill_on_drop: false }`
[INFO] [stdout] 80d1de9353751b4503ff2c4e05258f350cb9517ee0252468b6cf20180ba5f1e1
