[INFO] fetching crate fail2ban-rs 1.2.1... [INFO] testing fail2ban-rs-1.2.1 against beta-2026-04-21 for beta-1.96-1 [INFO] extracting crate fail2ban-rs 1.2.1 into /workspace/builds/worker-0-tc2/source [INFO] removed /workspace/builds/worker-0-tc2/source/rust-toolchain.toml [INFO] started tweaking crates.io crate fail2ban-rs 1.2.1 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate fail2ban-rs 1.2.1 [INFO] tweaked toml for crates.io crate fail2ban-rs 1.2.1 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate fail2ban-rs 1.2.1 on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate fail2ban-rs 1.2.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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] bff216ee03436b3ef6236013850458497485edbb783c28de232086fc8439d3ee [INFO] running `Command { std: "docker" "start" "-a" "bff216ee03436b3ef6236013850458497485edbb783c28de232086fc8439d3ee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "bff216ee03436b3ef6236013850458497485edbb783c28de232086fc8439d3ee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bff216ee03436b3ef6236013850458497485edbb783c28de232086fc8439d3ee", kill_on_drop: false }` [INFO] [stdout] bff216ee03436b3ef6236013850458497485edbb783c28de232086fc8439d3ee [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 164d5c5363facde0e73585968b85c68340c8ba9d52f237870fcff047bb6b753d [INFO] running `Command { std: "docker" "start" "-a" "164d5c5363facde0e73585968b85c68340c8ba9d52f237870fcff047bb6b753d", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling hash32 v0.2.1 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling heapless v0.7.17 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling simdutf8 v0.1.5 [INFO] [stderr] Compiling ipnetwork v0.21.1 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling xxhash-rust v0.8.15 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling memmap2 v0.9.10 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling etchdb-derive v0.3.0 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling cobs v0.3.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling maxminddb v0.27.3 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling postcard v1.1.3 [INFO] [stderr] Compiling etchdb v0.3.2 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling fail2ban-rs v1.2.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 43.81s [INFO] running `Command { std: "docker" "inspect" "164d5c5363facde0e73585968b85c68340c8ba9d52f237870fcff047bb6b753d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "164d5c5363facde0e73585968b85c68340c8ba9d52f237870fcff047bb6b753d", kill_on_drop: false }` [INFO] [stdout] 164d5c5363facde0e73585968b85c68340c8ba9d52f237870fcff047bb6b753d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cc7f0af875b6681bbb3c3299ab74db22bbf29a9e72240cb30b87bfc78f31d00b [INFO] running `Command { std: "docker" "start" "-a" "cc7f0af875b6681bbb3c3299ab74db22bbf29a9e72240cb30b87bfc78f31d00b", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling zerocopy v0.8.47 [INFO] [stderr] Compiling zerocopy-derive v0.8.47 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling cast v0.3.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling criterion-plot v0.5.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling fail2ban-rs v1.2.1 (/opt/rustwide/workdir) [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 36.97s [INFO] running `Command { std: "docker" "inspect" "cc7f0af875b6681bbb3c3299ab74db22bbf29a9e72240cb30b87bfc78f31d00b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cc7f0af875b6681bbb3c3299ab74db22bbf29a9e72240cb30b87bfc78f31d00b", kill_on_drop: false }` [INFO] [stdout] cc7f0af875b6681bbb3c3299ab74db22bbf29a9e72240cb30b87bfc78f31d00b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 3f291b6782e3ab47960c3477b1a67e3ff118e1bf232b9648a576c5a7e65ff318 [INFO] running `Command { std: "docker" "start" "-a" "3f291b6782e3ab47960c3477b1a67e3ff118e1bf232b9648a576c5a7e65ff318", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/fail2ban_rs-7cda380b757b3652) [INFO] [stdout] [INFO] [stdout] running 479 tests [INFO] [stdout] test config::tests::defaults_applied ... ok [INFO] [stdout] test config::tests::duration_integers_still_work ... ok [INFO] [stdout] test config::tests::from_file_not_found ... ok [INFO] [stdout] test config::tests::empty_filter_error ... ok [INFO] [stdout] test config::tests::enabled_jails_filter ... ok [INFO] [stdout] test config::tests::config_d_missing_dir_is_fine ... ok [INFO] [stdout] test config::tests::config_d_overlay_overrides_scalar ... ok [INFO] [stdout] test config::tests::config_d_overlay_adds_jail ... ok [INFO] [stdout] test config::tests::ignoreregex_defaults_empty ... ok [INFO] [stdout] test config::tests::logging_defaults_when_omitted ... ok [INFO] [stdout] test config::tests::iptables_backend ... ok [INFO] [stdout] test config::tests::from_file_invalid_toml ... ok [INFO] [stdout] test config::tests::config_d_sorted_order ... ok [INFO] [stdout] test config::tests::multiple_enabled_jails ... ok [INFO] [stdout] test config::tests::ignoreregex_parses ... ok [INFO] [stdout] test config::tests::multiple_filters ... ok [INFO] [stdout] test config::tests::negative_find_time_error ... ok [INFO] [stdout] test config::tests::no_enabled_jails_error ... ok [INFO] [stdout] test config::tests::no_jails_error ... ok [INFO] [stdout] test config::tests::logging_section_parses ... ok [INFO] [stdout] test config::tests::permanent_ban_time_ok ... ok [INFO] [stdout] test config::tests::reban_on_restart_can_be_disabled ... ok [INFO] [stdout] test config::tests::duration_strings_in_config ... ok [INFO] [stdout] test config::tests::missing_host_placeholder_error ... ok [INFO] [stdout] test config::tests::reban_on_restart_defaults_true ... ok [INFO] [stdout] test config::tests::script_backend ... ok [INFO] [stdout] test config::tests::zero_ban_time_error ... ok [INFO] [stdout] test config::tests::parse_valid_config ... ok [INFO] [stdout] test config::tests::zero_max_retry_error ... ok [INFO] [stdout] test config::tests::zero_find_time_error ... ok [INFO] [stdout] test control::tests::list_bans_request_serialization ... ok [INFO] [stdout] test control::tests::connect_to_nonexistent_socket ... ok [INFO] [stdout] test control::tests::ban_request_serialization ... ok [INFO] [stdout] test control::tests::reload_request_serialization ... ok [INFO] [stdout] test control::tests::response_ok_data_has_no_message ... ok [INFO] [stdout] test control::tests::unban_request_serialization ... ok [INFO] [stdout] test detect::date::tests::iso8601_format ... ok [INFO] [stdout] test detect::date::tests::no_match_returns_none ... ok [INFO] [stdout] test detect::date::tests::iso8601_space_separator ... ok [INFO] [stdout] test detect::date::tests::common_invalid_month_returns_none ... ok [INFO] [stdout] test detect::date::tests::invalid_month_returns_none ... ok [INFO] [stdout] test detect::date::tests::all_months_parse ... ok [INFO] [stdout] test detect::date::tests::syslog_invalid_time_returns_none ... ok [INFO] [stdout] test detect::date::tests::epoch_nine_digits_no_match ... ok [INFO] [stdout] test detect::date::tests::common_log_format ... ok [INFO] [stdout] test detect::date::tests::syslog_format ... ok [INFO] [stdout] test detect::date::tests::syslog_single_digit_day ... ok [INFO] [stdout] test detect::filters::apache_auth::tests::user_not_found_apache22 ... ok [INFO] [stdout] test detect::date::tests::epoch_ten_digits_matches ... ok [INFO] [stdout] test detect::date::tests::epoch_format ... ok [INFO] [stdout] test detect::date::tests::wrong_format_returns_none ... ok [INFO] [stdout] test detect::filters::apache_botsearch::tests::phpmyadmin_not_exist ... ok [INFO] [stdout] test control::tests::request_response_roundtrip ... ok [INFO] [stdout] test detect::filters::apache_modsecurity::tests::apache_modsecurity_403 ... ok [INFO] [stdout] test detect::filters::apache_botsearch::tests::dotenv_not_exist ... ok [INFO] [stdout] test detect::filters::apache_nohome::tests::apache_nohome_tilde ... ok [INFO] [stdout] test control::tests::all_request_variants_through_socket ... ok [INFO] [stdout] test detect::filters::apache_botsearch::tests::no_match_unrelated_path ... ok [INFO] [stdout] test detect::filters::apache_overflows::tests::apache_overflows_invalid_uri ... ok [INFO] [stdout] test detect::filters::apache_auth::tests::password_mismatch_apache24 ... ok [INFO] [stdout] test detect::filters::bitwarden::tests::failed_login ... ok [INFO] [stdout] test detect::filters::apache_shellshock::tests::apache_shellshock_exploit ... ok [INFO] [stdout] test detect::filters::apache_noscript::tests::apache_noscript_php_file ... ok [INFO] [stdout] test detect::filters::bitwarden::tests::failed_login_docker ... ok [INFO] [stdout] test detect::filters::apache_noscript::tests::apache_noscript_not_found ... ok [INFO] [stdout] test detect::filters::centreon::tests::centreon_auth_failed ... ok [INFO] [stdout] test detect::filters::apache_auth::tests::password_mismatch_apache22 ... ok [INFO] [stdout] test detect::filters::apache_auth::tests::user_not_found_ipv6 ... ok [INFO] [stdout] test detect::filters::counter_strike::tests::counter_strike_bad_rcon ... ok [INFO] [stdout] test detect::filters::apache_modsecurity::tests::apache_modsecurity_401 ... ok [INFO] [stdout] test detect::filters::courier_auth::tests::courier_imapd_login_failed ... ok [INFO] [stdout] test detect::filters::courier_smtp::tests::courier_smtp_auth_failed_ipv4_mapped ... ok [INFO] [stdout] test detect::filters::courier_auth::tests::courier_pop3_login_method ... ok [INFO] [stdout] test detect::filters::courier_auth::tests::courier_imapd_ssl_login_failed ... ok [INFO] [stdout] test detect::filters::apache_overflows::tests::apache_overflows_uri_too_long ... ok [INFO] [stdout] test detect::filters::apache_modsecurity::tests::apache_modsecurity_dual_client ... ok [INFO] [stdout] test detect::filters::courier_auth::tests::courier_pop3d_login_failed ... ok [INFO] [stdout] test detect::filters::bitwarden::tests::failed_login_2fa_invalid ... ok [INFO] [stdout] test detect::filters::courier_smtp::tests::courier_smtp_user_unknown_ipv4_mapped ... ok [INFO] [stdout] test detect::filters::asterisk::tests::host_failed_to_authenticate_ipv6 ... ok [INFO] [stdout] test detect::filters::cyrus_imap::tests::cyrus_imap_badlogin ... ok [INFO] [stdout] test detect::filters::directadmin::tests::directadmin_failed_login ... ok [INFO] [stdout] test detect::filters::courier_auth::tests::courier_pop3login_legacy ... ok [INFO] [stdout] test detect::filters::asterisk::tests::host_failed_to_authenticate ... ok [INFO] [stdout] test detect::filters::domino_smtp::tests::domino_smtp_auth_failure_brackets ... ok [INFO] [stdout] test detect::filters::domino_smtp::tests::domino_smtp_connecting_host ... ok [INFO] [stdout] test detect::filters::dropbear::tests::dropbear_bad_password_caps ... ok [INFO] [stdout] test detect::filters::cyrus_imap::tests::cyrus_imap_user_not_found ... ok [INFO] [stdout] test detect::filters::exim::tests::exim_auth_failed ... ok [INFO] [stdout] test detect::filters::froxlor_auth::tests::froxlor_auth_unknown_user ... ok [INFO] [stdout] test detect::filters::exim::tests::exim_auth_failed_simple ... ok [INFO] [stdout] test detect::filters::freeswitch::tests::freeswitch_auth_failure ... ok [INFO] [stdout] test detect::filters::dovecot::tests::auth_failed_rip ... ok [INFO] [stdout] test detect::filters::dovecot::tests::aborted_login ... ok [INFO] [stdout] test detect::filters::froxlor_auth::tests::froxlor_auth_wrong_password ... ok [INFO] [stdout] test detect::filters::dropbear::tests::dropbear_nonexistent_user_ipv4_mapped ... ok [INFO] [stdout] test detect::filters::gitlab::tests::failed_login_user_with_space ... ok [INFO] [stdout] test detect::filters::dropbear::tests::dropbear_exit_before_auth ... ok [INFO] [stdout] test detect::filters::gitlab::tests::failed_login_admin ... ok [INFO] [stdout] test detect::filters::grafana::tests::user_not_found ... ok [INFO] [stdout] test detect::filters::guacamole::tests::guacamole_auth_failed ... ok [INFO] [stdout] test detect::filters::dropbear::tests::dropbear_exit_before_auth_angle_brackets ... ok [INFO] [stdout] test detect::filters::haproxy::tests::haproxy_upstream_nosrv_401 ... ok [INFO] [stdout] test detect::filters::kerio::tests::kerio_smtp_spam ... ok [INFO] [stdout] test detect::filters::monit::tests::monit_unknown_user ... ok [INFO] [stdout] test detect::filters::lighttpd_auth::tests::lighttpd_auth_password_mismatch ... ok [INFO] [stdout] test detect::filters::grafana::tests::invalid_username_or_password ... ok [INFO] [stdout] test detect::filters::dovecot::tests::auth_failed_secured ... ok [INFO] [stdout] test detect::filters::monit::tests::monit_wrong_password ... ok [INFO] [stdout] test detect::filters::mssql_auth::tests::mssql_auth_login_failed ... ok [INFO] [stdout] test detect::filters::drupal::tests::drupal_upstream_login_failed ... ok [INFO] [stdout] test detect::filters::lighttpd_auth::tests::lighttpd_auth_digest_failed ... ok [INFO] [stdout] test detect::filters::monitorix::tests::monitorix_notallowed ... ok [INFO] [stdout] test detect::filters::freeswitch::tests::freeswitch_cant_find_user ... ok [INFO] [stdout] test detect::filters::gssftpd::tests::gssftpd_repeated_failures ... ok [INFO] [stdout] test detect::filters::guacamole::tests::guacamole_webapp_format ... ok [INFO] [stdout] test detect::filters::horde::tests::horde_failed_login ... ok [INFO] [stdout] test detect::filters::groupoffice::tests::groupoffice_login_failed ... ok [INFO] [stdout] test detect::filters::nagios::tests::nagios_host_not_allowed ... ok [INFO] [stdout] test detect::filters::mysqld::tests::mysqld_upstream_access_denied ... ok [INFO] [stdout] test detect::filters::named_refused::tests::named_refused_query_denied ... ok [INFO] [stdout] test detect::filters::dropbear::tests::dropbear_extra_pid_timestamp ... ok [INFO] [stdout] test detect::filters::netfilter_portscan::tests::netfilter_portscan_icmp ... ok [INFO] [stdout] test detect::filters::nginx_bad_request::tests::nginx_bad_request_binary ... ok [INFO] [stdout] test detect::filters::netfilter_portscan::tests::netfilter_portscan_iptables_drop_tcp ... ok [INFO] [stdout] test detect::filters::murmur::tests::murmur_invalid_password ... ok [INFO] [stdout] test detect::filters::nginx_bad_request::tests::nginx_bad_request_connect ... ok [INFO] [stdout] test detect::filters::murmur::tests::murmur_wrong_certificate ... ok [INFO] [stdout] test detect::filters::netfilter_portscan::tests::netfilter_portscan_no_match_output_chain ... ok [INFO] [stdout] test detect::filters::netfilter_portscan::tests::netfilter_portscan_ipv6_tcp ... ok [INFO] [stdout] test detect::filters::nginx_bad_request::tests::nginx_bad_request_empty ... ok [INFO] [stdout] test detect::filters::nginx_botsearch::tests::phpmyadmin_get ... ok [INFO] [stdout] test detect::filters::dropbear::tests::dropbear_bad_password ... ok [INFO] [stdout] test detect::filters::nginx_forbidden::tests::nginx_forbidden_rule ... ok [INFO] [stdout] test detect::filters::monitorix::tests::monitorix_autherr ... ok [INFO] [stdout] test detect::filters::netfilter_portscan::tests::netfilter_portscan_nftables_drop_udp ... ok [INFO] [stdout] test detect::filters::nginx_botsearch::tests::dotenv ... ok [INFO] [stdout] test detect::filters::netfilter_portscan::tests::netfilter_portscan_ufw_block_tcp ... ok [INFO] [stdout] test detect::filters::monitorix::tests::monitorix_notexist ... ok [INFO] [stdout] test detect::filters::nginx_botsearch::tests::admin_post ... ok [INFO] [stdout] test detect::filters::oracleims::tests::oracleims_no_match_success ... ok [INFO] [stdout] test detect::filters::nginx_botsearch::tests::wp_login_get ... ok [INFO] [stdout] test detect::filters::oracleims::tests::oracleims_bad_password ... ok [INFO] [stdout] test detect::filters::openvpn::tests::tls_auth_error ... ok [INFO] [stdout] test detect::filters::nginx_limit_req::tests::nginx_limit_req_connections ... ok [INFO] [stdout] test detect::filters::pam_generic::tests::pam_old_format_still_matches ... ok [INFO] [stdout] test detect::filters::pam_generic::tests::pam_vsftpd ... ok [INFO] [stdout] test detect::filters::nginx_forbidden::tests::nginx_forbidden_wp_config ... ok [INFO] [stdout] test detect::filters::pam_generic::tests::pam_pure_ftpd ... ok [INFO] [stdout] test detect::filters::openwebmail::tests::openwebmail_login_error ... ok [INFO] [stdout] test detect::filters::openhab::tests::openhab_401 ... ok [INFO] [stdout] test detect::filters::nsd::tests::nsd_ratelimit_block ... ok [INFO] [stdout] test detect::filters::nginx_auth::tests::nginx_auth_upstream_user_not_found ... ok [INFO] [stdout] test detect::filters::nginx_auth::tests::nginx_auth_upstream_password_mismatch ... ok [INFO] [stdout] test detect::filters::pam_generic::tests::pam_sshd ... ok [INFO] [stdout] test detect::filters::nginx_limit_req::tests::nginx_limit_req_limiting_requests ... ok [INFO] [stdout] test detect::filters::perdition::tests::perdition_fatal_error ... ok [INFO] [stdout] test detect::filters::pf_portscan::tests::pf_portscan_ipv6_tcp ... ok [INFO] [stdout] test detect::filters::pf_portscan::tests::pf_portscan_tcp_flags ... ok [INFO] [stdout] test detect::filters::nginx_limit_req::tests::nginx_limit_req_ipv6 ... ok [INFO] [stdout] test detect::filters::nginx_limit_req::tests::nginx_limit_req_delaying ... ok [INFO] [stdout] test detect::filters::perdition::tests::perdition_auth_failed ... ok [INFO] [stdout] test detect::filters::pf_portscan::tests::pf_portscan_icmp_no_port ... ok [INFO] [stdout] test detect::filters::pf_portscan::tests::pf_portscan_tcp_ipv4 ... ok [INFO] [stdout] test detect::filters::portsentry::tests::portsentry_tcp_blocked ... ok [INFO] [stdout] test detect::filters::pfsense_portscan::tests::pfsense_portscan_ipv4_smb ... ok [INFO] [stdout] test detect::filters::postfix::tests::no_match_improper_pipelining ... ok [INFO] [stdout] test detect::filters::postfix::tests::noqueue_reject_relay_denied ... ok [INFO] [stdout] test detect::filters::postfix::tests::noqueue_reject_rcpt ... ok [INFO] [stdout] test detect::filters::pfsense_portscan::tests::pfsense_portscan_no_match_pass ... ok [INFO] [stdout] test detect::filters::php_url_fopen::tests::php_url_fopen_rfi ... ok [INFO] [stdout] test detect::filters::pfsense_portscan::tests::pfsense_portscan_ipv6_udp ... ok [INFO] [stdout] test detect::filters::pfsense_portscan::tests::pfsense_portscan_ipv4_tcp ... ok [INFO] [stdout] test detect::filters::postfix::tests::sasl_login_failed ... ok [INFO] [stdout] test detect::filters::proxmox::tests::pvedaemon_auth_failure ... ok [INFO] [stdout] test detect::filters::pure_ftpd::tests::pure_ftpd_auth_failed ... ok [INFO] [stdout] test detect::filters::proxmox::tests::pvedaemon_auth_failure_v2 ... ok [INFO] [stdout] test detect::filters::phpmyadmin_syslog::tests::phpmyadmin_syslog_denied ... ok [INFO] [stdout] test detect::filters::postfix::tests::sasl_login_authentication ... ok [INFO] [stdout] test detect::filters::proftpd::tests::proftpd_incorrect_password_ipv4_mapped ... ok [INFO] [stdout] test detect::filters::roundcube_auth::tests::roundcube_imap_error ... ok [INFO] [stdout] test detect::filters::scanlogd::tests::scanlogd_portscan ... ok [INFO] [stdout] test detect::filters::proftpd::tests::proftpd_no_such_user ... ok [INFO] [stdout] test detect::filters::proftpd::tests::proftpd_login_failed ... ok [INFO] [stdout] test detect::filters::screensharingd::tests::screensharingd_auth_failed ... ok [INFO] [stdout] test detect::filters::roundcube_auth::tests::roundcube_imap_with_response ... ok [INFO] [stdout] test detect::filters::proftpd::tests::proftpd_max_login_attempts_ipv4_mapped ... ok [INFO] [stdout] test detect::filters::qmail::tests::qmail_rblsmtpd ... ok [INFO] [stdout] test detect::filters::routeros_auth::tests::routeros_auth_login_failure ... ok [INFO] [stdout] test detect::filters::selinux_ssh::tests::selinux_ssh_failed ... ok [INFO] [stdout] test detect::filters::proftpd::tests::proftpd_mod_sftp_dash_separator ... ok [INFO] [stdout] test detect::filters::proftpd::tests::proftpd_security_violation_ipv4_mapped ... ok [INFO] [stdout] test detect::filters::squid::tests::squid_tcp_denied ... ok [INFO] [stdout] test detect::filters::proftpd::tests::proftpd_log_injection_attack ... ok [INFO] [stdout] test detect::filters::sendmail_auth::tests::sendmail_auth_attack ... ok [INFO] [stdout] test detect::filters::routeros_auth::tests::routeros_auth_ipv6 ... ok [INFO] [stdout] test detect::filters::sshd::tests::invalid_user_with_port ... ok [INFO] [stdout] test detect::filters::sshd::tests::no_match_accepted_publickey ... ok [INFO] [stdout] test detect::filters::squirrelmail::tests::squirrelmail_login_error ... ok [INFO] [stdout] test detect::filters::sieve::tests::sieve_auth_failure ... ok [INFO] [stdout] test detect::filters::sogo_auth::tests::sogo_auth_behind_proxy ... ok [INFO] [stdout] test detect::filters::softethervpn::tests::softethervpn_auth_failed ... ok [INFO] [stdout] test detect::filters::tests::all_filters_have_host ... ok [INFO] [stdout] test detect::filters::solid_pop3d::tests::solid_pop3d_no_such_user ... ok [INFO] [stdout] test detect::filters::tests::filter_count ... ok [INFO] [stdout] test detect::filters::tests::find_nonexistent ... ok [INFO] [stdout] test detect::filters::tests::find_sshd ... ok [INFO] [stdout] test detect::filters::tests::gen_config_all_services ... ok [INFO] [stdout] test detect::filters::tests::gen_config_sshd ... ok [INFO] [stdout] test detect::filters::squid::tests::squid_none_405 ... ok [INFO] [stdout] test detect::filters::sshd::tests::no_match_account_locked ... ok [INFO] [stdout] test detect::filters::sshd::tests::no_match_break_in_attempt ... ok [INFO] [stdout] test detect::filters::three_proxy::tests::three_proxy_auth_with_user ... ok [INFO] [stdout] test detect::filters::three_proxy::tests::three_proxy_auth_failure ... ok [INFO] [stdout] test detect::filters::sshd::tests::failed_password_ipv4_ssh1 ... ok [INFO] [stdout] test detect::filters::stunnel::tests::stunnel_ssl_accept_failure ... ok [INFO] [stdout] test detect::filters::sshd::tests::failed_password_ipv4 ... ok [INFO] [stdout] test detect::filters::roundcube_auth::tests::roundcube_failed_login ... ok [INFO] [stdout] test detect::filters::uwimap_auth::tests::uwimap_login_failed ... ok [INFO] [stdout] test detect::filters::roundcube_auth::tests::roundcube_failed_login_session ... ok [INFO] [stdout] test detect::filters::suhosin::tests::suhosin_attacker ... ok [INFO] [stdout] test detect::filters::traefik::tests::traefik_upstream_401 ... ok [INFO] [stdout] test detect::filters::sogo_auth::tests::sogo_auth_login_might_not_work ... ok [INFO] [stdout] test detect::filters::sshd::tests::failed_password_ipv6 ... ok [INFO] [stdout] test detect::filters::tine20::tests::tine20_login_failed ... ok [INFO] [stdout] test detect::filters::webmin_auth::tests::webmin_auth_invalid_login ... ok [INFO] [stdout] test detect::filters::vaultwarden::tests::wrong_password_ipv6 ... ok [INFO] [stdout] test detect::filters::xrdp::tests::xrdp_authfail_ip_injection ... ok [INFO] [stdout] test detect::filters::wuftpd::tests::wuftpd_failed_login ... ok [INFO] [stdout] test detect::filters::webmin_auth::tests::webmin_auth_nonexistent_login ... ok [INFO] [stdout] test detect::filters::vsftpd::tests::fail_login_ipv4_mapped ... ok [INFO] [stdout] test detect::filters::vsftpd::tests::fail_login_syslog ... ok [INFO] [stdout] test detect::filters::znc_adminlog::tests::znc_adminlog_failed_login ... ok [INFO] [stdout] test detect::filters::xrdp::tests::xrdp_authfail_syslog_format ... ok [INFO] [stdout] test detect::filters::vaultwarden::tests::invalid_admin_token_ipv6 ... ok [INFO] [stdout] test detect::ignore::tests::ignoreself_includes_loopback ... ok [INFO] [stdout] test detect::ignore::tests::invalid_cidr_errors ... ok [INFO] [stdout] test detect::ignore::tests::ipv6_cidr ... ok [INFO] [stdout] test detect::filters::znc_adminlog::tests::znc_adminlog_with_port ... ok [INFO] [stdout] test detect::ignore::tests::empty_list_ignores_nothing ... ok [INFO] [stdout] test detect::ignore::tests::single_host_cidr ... ok [INFO] [stdout] test detect::journal::tests::test_read_line_bounded_empty_line ... ok [INFO] [stdout] test detect::journal::tests::test_read_line_bounded_eof_returns_zero ... ok [INFO] [stdout] test detect::journal::tests::test_read_line_bounded_newline_in_single_chunk ... ok [INFO] [stdout] test detect::journal::tests::test_read_line_bounded_invalid_utf8_replaced ... ok [INFO] [stdout] test detect::filters::xrdp::tests::xrdp_authfail_ipv4_mapped ... ok [INFO] [stdout] test detect::journal::tests::test_read_line_bounded_oversized_line_skipped ... ok [INFO] [stdout] test detect::journal::tests::test_read_line_bounded_partial_line_then_eof ... ok [INFO] [stdout] test detect::journal::tests::test_read_line_bounded_two_lines ... ok [INFO] [stdout] test detect::ignore::tests::cidr_match ... ok [INFO] [stdout] test detect::journal::tests::test_read_line_bounded_recovers_after_oversized_line ... ok [INFO] [stdout] test detect::journal::tests::test_read_line_bounded_line_spans_multiple_chunks ... ok [INFO] [stdout] test detect::matcher::tests::ac_passes_but_regex_fails ... ok [INFO] [stdout] test detect::journal::tests::test_read_line_bounded_skip_oversized_no_newline_in_first_chunk ... ok [INFO] [stdout] test detect::matcher::tests::after_literal_encapsulated_in_brackets ... ok [INFO] [stdout] test detect::filters::vaultwarden::tests::invalid_admin_token_with_username ... ok [INFO] [stdout] test detect::filters::vaultwarden::tests::invalid_totp_ipv4 ... ok [INFO] [stdout] test detect::filters::sshd::tests::no_match_connection_from ... ok [INFO] [stdout] test detect::filters::sshd::tests::disconnected_from_authenticating_user ... ok [INFO] [stdout] test detect::matcher::tests::after_literal_with_preceding_ip_in_line ... ok [INFO] [stdout] test detect::filters::vaultwarden::tests::wrong_password_ipv4 ... ok [INFO] [stdout] test detect::matcher::tests::after_literal_with_trailing_ip ... ok [INFO] [stdout] test detect::matcher::tests::ac_fallback_tries_non_ac_patterns ... ok [INFO] [stdout] test detect::matcher::tests::at_start_multiple_ips_in_url_and_header ... ok [INFO] [stdout] test detect::filters::xinetd_fail::tests::xinetd_fail_telnet ... ok [INFO] [stdout] test detect::matcher::tests::at_start_extracts_first_ip_ignoring_url_ip ... ok [INFO] [stdout] test detect::filters::zoneminder::tests::zoneminder_login_denied ... ok [INFO] [stdout] test detect::filters::zoneminder::tests::zoneminder_user_not_found ... ok [INFO] [stdout] test detect::matcher::tests::at_start_ipv6 ... ok [INFO] [stdout] test detect::matcher::tests::after_literal_ipv6 ... ok [INFO] [stdout] test detect::matcher::tests::at_start_without_caret ... ok [INFO] [stdout] test detect::matcher::tests::after_literal_host_ip_same_as_trailing_ip ... ok [INFO] [stdout] test detect::matcher::tests::empty_patterns_error ... ok [INFO] [stdout] test detect::filters::vaultwarden::tests::invalid_admin_token_ipv4 ... ok [INFO] [stdout] test detect::matcher::tests::at_start_no_other_ips ... ok [INFO] [stdout] test detect::matcher::tests::before_literal_disconnected_pattern ... ok [INFO] [stdout] test detect::matcher::tests::before_literal_ipv6 ... ok [INFO] [stdout] test detect::matcher::tests::captures_fallback_short_literals ... ok [INFO] [stdout] test detect::matcher::tests::host_in_parens_with_other_ip_outside ... ok [INFO] [stdout] test detect::filters::vaultwarden::tests::invalid_totp_with_tz_offset ... ok [INFO] [stdout] test detect::matcher::tests::host_in_angle_brackets ... ok [INFO] [stdout] test detect::matcher::tests::before_literal_with_earlier_ip_in_span ... ok [INFO] [stdout] test detect::matcher::tests::duplicate_ip_values_in_line ... ok [INFO] [stdout] test detect::matcher::tests::captures_fallback_with_other_ips_in_line ... ok [INFO] [stdout] test detect::matcher::tests::before_literal_conn_closed ... ok [INFO] [stdout] test detect::matcher::tests::host_in_brackets_no_spaces ... ok [INFO] [stdout] test detect::matcher::tests::host_colon_port_delimiter ... ok [INFO] [stdout] test detect::matcher::tests::host_in_brackets_with_spaces_still_works ... ok [INFO] [stdout] test detect::matcher::tests::host_in_square_brackets ... ok [INFO] [stdout] test detect::matcher::tests::ignoreregex_does_not_suppress_non_matching ... ok [INFO] [stdout] test detect::matcher::tests::after_literal_literal_appears_twice_but_only_second_has_ip ... ok [INFO] [stdout] test detect::matcher::tests::empty_line ... ok [INFO] [stdout] test detect::matcher::tests::host_ipv6_in_brackets_no_spaces ... ok [INFO] [stdout] test detect::matcher::tests::ipv6_in_brackets_with_trailing_ipv4 ... ok [INFO] [stdout] test detect::matcher::tests::invalid_ip_returns_none ... ok [INFO] [stdout] test detect::matcher::tests::no_ac_prefix_still_matches ... ok [INFO] [stdout] test detect::matcher::tests::ignoreregex_suppresses_match ... ok [INFO] [stdout] test detect::matcher::tests::ipv4_mapped_after_literal ... ok [INFO] [stdout] test detect::matcher::tests::match_ipv6 ... ok [INFO] [stdout] test detect::matcher::tests::ipv4_mapped_uppercase_ffff ... ok [INFO] [stdout] test detect::matcher::tests::ignoreregex_multiple_patterns ... ok [INFO] [stdout] test detect::matcher::tests::ipv4_mapped_in_brackets ... ok [INFO] [stdout] test detect::matcher::tests::multiple_patterns_first_wins ... ok [INFO] [stdout] test detect::pattern::tests::expand_host_empty_pattern ... ok [INFO] [stdout] test detect::matcher::tests::various_ipv4 ... ok [INFO] [stdout] test detect::matcher::tests::plain_ipv6_not_normalized ... ok [INFO] [stdout] test detect::pattern::tests::expand_host_multiple ... ok [INFO] [stdout] test detect::matcher::tests::no_match_normal_log ... ok [INFO] [stdout] test detect::pattern::tests::extractor_after_literal ... ok [INFO] [stdout] test detect::matcher::tests::no_match_unrelated ... ok [INFO] [stdout] test detect::pattern::tests::expand_host_ipv4 ... ok [INFO] [stdout] test detect::pattern::tests::expand_host_ipv6 ... ok [INFO] [stdout] test detect::pattern::tests::extractor_after_literal_with_regex_prefix ... ok [INFO] [stdout] test detect::pattern::tests::extractor_at_start_bare ... ok [INFO] [stdout] test detect::pattern::tests::extractor_at_start_with_caret ... ok [INFO] [stdout] test detect::pattern::tests::extractor_before_literal ... ok [INFO] [stdout] test detect::pattern::tests::extractor_captures_fallback ... ok [INFO] [stdout] test detect::matcher::tests::pattern_count ... ok [INFO] [stdout] test detect::pattern::tests::extractor_no_host_tag ... ok [INFO] [stdout] test detect::pattern::tests::literal_prefix_all_metacharacters ... ok [INFO] [stdout] test detect::pattern::tests::literal_prefix_boundary_three_chars ... ok [INFO] [stdout] test detect::pattern::tests::literal_prefix_boundary_two_chars ... ok [INFO] [stdout] test detect::pattern::tests::literal_prefix_dot_treated_as_meta ... ok [INFO] [stdout] test detect::pattern::tests::literal_prefix_none ... ok [INFO] [stdout] test detect::pattern::tests::expand_host_missing ... ok [INFO] [stdout] test detect::pattern::tests::extractor_bracket_encapsulated ... ok [INFO] [stdout] test detect::matcher::tests::ignoreregex_empty_is_noop ... ok [INFO] [stdout] test detect::pattern::tests::extractor_after_literal_repeated_keyword ... ok [INFO] [stdout] test detect::pattern::tests::literal_prefix_fallback_too_short ... ok [INFO] [stdout] test detect::pattern::tests::literal_prefix_short ... ok [INFO] [stdout] test detect::pattern::tests::literal_prefix_ssh ... ok [INFO] [stdout] test detect::pattern::tests::extractor_before_literal_real_sshd ... ok [INFO] [stdout] test detect::pattern::tests::literal_prefix_simple ... ok [INFO] [stdout] test detect::matcher::tests::three_ips_host_is_first ... ok [INFO] [stdout] test detect::matcher::tests::two_ips_host_is_last ... ok [INFO] [stdout] test detect::matcher::tests::match_failed_password ... ok [INFO] [stdout] test detect::matcher::tests::match_invalid_user ... ok [INFO] [stdout] test detect::matcher::tests::three_ips_host_is_middle ... ok [INFO] [stdout] test duration::tests::days_suffix ... ok [INFO] [stdout] test duration::tests::empty_string_error ... ok [INFO] [stdout] test duration::tests::hours_suffix ... ok [INFO] [stdout] test duration::tests::invalid_number_error ... ok [INFO] [stdout] test duration::tests::invalid_suffix_error ... ok [INFO] [stdout] test duration::tests::minutes_suffix ... ok [INFO] [stdout] test duration::tests::plain_integers ... ok [INFO] [stdout] test duration::tests::seconds_suffix ... ok [INFO] [stdout] test duration::tests::weeks_suffix ... ok [INFO] [stdout] test duration::tests::whitespace_trimmed ... ok [INFO] [stdout] test detect::pattern::tests::expand_host_with_regex ... ok [INFO] [stdout] test enforce::tests::create_backend_iptables ... ok [INFO] [stdout] test enforce::tests::create_backend_nftables ... ok [INFO] [stdout] test enforce::tests::create_backend_script ... ok [INFO] [stdout] test enforce::tests::executor_channel_closed_stops ... ok [INFO] [stdout] test enforce::tests::restore_bans_empty ... ok [INFO] [stdout] test enforce::tests::restore_bans_keeps_permanent ... ok [INFO] [stdout] test enforce::tests::restore_bans_mixed_jails ... ok [INFO] [stdout] test enforce::tests::restore_bans_skips_expired ... ok [INFO] [stdout] test enforce::tests::restore_bans_skips_jail_with_restore_disabled ... ok [INFO] [stdout] test enforce::tests::restore_bans_skips_on_backend_error ... ok [INFO] [stdout] test enforce::tests::script_substitute ... ok [INFO] [stdout] test enforce::tests::script_substitute_ipv6 ... ok [INFO] [stdout] test enforce::tests::script_substitute_multiple_occurrences ... ok [INFO] [stdout] test enforce::tests::script_substitute_no_placeholders ... ok [INFO] [stdout] test enforce::tests::ban_and_unban_order ... ok [INFO] [stdout] test error::tests::already_banned_display ... ok [INFO] [stdout] test error::tests::channel_closed_display ... ok [INFO] [stdout] test error::tests::config_error_display ... ok [INFO] [stdout] test error::tests::config_not_found_display ... ok [INFO] [stdout] test error::tests::etch_error_display ... ok [INFO] [stdout] test error::tests::firewall_error_display ... ok [INFO] [stdout] test error::tests::io_error_display ... ok [INFO] [stdout] test error::tests::io_error_source ... ok [INFO] [stdout] test error::tests::not_banned_display ... ok [INFO] [stdout] test error::tests::protocol_error_display ... ok [INFO] [stdout] test error::tests::regex_error_display ... ok [INFO] [stdout] test error::tests::result_type_alias_works ... ok [INFO] [stdout] test logging::tests::default_logging_config ... ok [INFO] [stdout] test logging::tests::init_none_with_unsupported_destination ... ok [INFO] [stdout] test logging::tests::init_none_without_api_key ... ok [INFO] [stdout] test logging::tests::init_none_without_destination ... ok [INFO] [stdout] test enforce::tests::two_jails_different_backends_dispatch_correctly ... ok [INFO] [stdout] test regex_tool::tests::test_pattern_match ... ok [INFO] [stdout] test regex_tool::tests::test_pattern_no_match ... ok [INFO] [stdout] test detect::matcher::tests::after_literal_simple ... ok [INFO] [stdout] test regex_tool::tests::test_patterns_multiple_first_wins ... ok [INFO] [stdout] test detect::matcher::tests::host_in_parens_no_spaces ... ok [INFO] [stdout] test security_test::bantime_factor_rejects_infinity ... ok [INFO] [stdout] test security_test::bantime_factor_accepts_valid ... ok [INFO] [stdout] test regex_tool::tests::test_patterns_no_match_any ... ok [INFO] [stdout] test security_test::bantime_factor_rejects_negative ... ok [INFO] [stdout] test security_test::bantime_factor_rejects_nan ... ok [INFO] [stdout] test security_test::duration_negative_returns_value ... ok [INFO] [stdout] test security_test::duration_overflow_returns_error ... ok [INFO] [stdout] test security_test::extremely_long_line_no_panic ... ok [INFO] [stdout] test security_test::crafted_username_with_embedded_ip ... ok [INFO] [stdout] test security_test::invalid_ip_octets_rejected ... ok [INFO] [stdout] test security_test::ip_followed_by_unicode ... ok [INFO] [stdout] test security_test::jail_name_rejects_path_traversal ... ok [INFO] [stdout] test security_test::jail_name_rejects_shell_metacharacters ... ok [INFO] [stdout] test security_test::jail_name_accepts_valid ... ok [INFO] [stdout] test security_test::port_validation_accepts_valid ... ok [INFO] [stdout] test security_test::jail_name_rejects_empty ... ok [INFO] [stdout] test security_test::port_validation_rejects_invalid ... ok [INFO] [stdout] test security_test::protocol_rejects_invalid ... ok [INFO] [stdout] test security_test::ipv6_various_forms ... ok [INFO] [stdout] test security_test::script_ip_cannot_inject_shell ... ok [INFO] [stdout] test security_test::null_bytes_in_line ... ok [INFO] [stdout] test server::tests::response_error_serialization ... ok [INFO] [stdout] test server::tests::response_ok_serialization ... ok [INFO] [stdout] test server::tests::stats_request_serialization ... ok [INFO] [stdout] test server::tests::status_request_response ... ok [INFO] [stdout] test track::ban_calc::tests::build_params_copies_values_correctly ... ok [INFO] [stdout] test track::ban_calc::tests::build_params_empty_configs ... ok [INFO] [stdout] test track::ban_calc::tests::build_params_maps_all_jails ... ok [INFO] [stdout] test server::tests::response_ok_data_serialization ... ok [INFO] [stdout] test track::ban_calc::tests::escalation_sequence_monotonically_increases ... ok [INFO] [stdout] test track::ban_calc::tests::build_params_preserves_defaults ... ok [INFO] [stdout] test track::ban_calc::tests::explicit_multipliers ... ok [INFO] [stdout] test track::ban_calc::tests::exponential_escalation ... ok [INFO] [stdout] test track::ban_calc::tests::factor_applied ... ok [INFO] [stdout] test track::ban_calc::tests::high_count_does_not_panic ... ok [INFO] [stdout] test track::ban_calc::tests::maxtime_cap ... ok [INFO] [stdout] test track::ban_calc::tests::multiplier_sequence_monotonically_increases ... ok [INFO] [stdout] test track::ban_calc::tests::no_increment_returns_base ... ok [INFO] [stdout] test track::ban_calc::tests::permanent_ban_bypasses_increment ... ok [INFO] [stdout] test track::ban_calc::tests::permanent_ban_never_downgrades ... ok [INFO] [stdout] test track::ban_calc::tests::zero_maxtime_means_no_cap ... ok [INFO] [stdout] test track::circular::tests::capacity_one ... ok [INFO] [stdout] test track::circular::tests::capacity_returns_correct_value ... ok [INFO] [stdout] test track::circular::tests::empty_buffer ... ok [INFO] [stdout] test track::circular::tests::negative_timestamps ... ok [INFO] [stdout] test track::circular::tests::overwrites_oldest_when_full ... ok [INFO] [stdout] test track::circular::tests::push_until_full ... ok [INFO] [stdout] test track::circular::tests::threshold_after_wrap ... ok [INFO] [stdout] test track::circular::tests::threshold_not_full ... ok [INFO] [stdout] test track::circular::tests::threshold_with_find_time_zero ... ok [INFO] [stdout] test track::circular::tests::threshold_within_window ... ok [INFO] [stdout] test track::circular::tests::zero_capacity ... ok [INFO] [stdout] test track::circular::tests::len_and_is_empty_through_lifecycle ... ok [INFO] [stdout] test track::maxmind::tests::test_load_db_directory_returns_none ... ok [INFO] [stdout] test track::maxmind::tests::test_load_db_missing_file_returns_none ... ok [INFO] [stdout] test security_test::unicode_in_log_line ... ok [INFO] [stdout] test track::maxmind::tests::test_load_db_valid_fixture_loads ... ok [INFO] [stdout] test track::tests::bans_after_threshold ... ok [INFO] [stdout] test security_test::protocol_accepts_valid ... ok [INFO] [stdout] test track::tests::manual_ban_already_banned_error ... ok [INFO] [stdout] test track::tests::manual_ban_via_cmd ... ok [INFO] [stdout] test track::maxmind::tests::test_load_db_world_writable_returns_none ... ok [INFO] [stdout] test track::tests::manual_unban_via_cmd ... ok [INFO] [stdout] test track::tests::get_stats_via_cmd ... ok [INFO] [stdout] test track::tests::query_bans_via_cmd ... ok [INFO] [stdout] test track::tests::reban_on_restart_false_still_bans_new_offenders ... ok [INFO] [stdout] test detect::watcher::tests::detects_failure_in_appended_lines ... ok [INFO] [stdout] test detect::watcher::tests::test_read_line_bounded_invalid_utf8_continues ... ok [INFO] [stdout] test track::tests::test_manual_ban_unknown_jail_returns_error ... ok [INFO] [stdout] test track::tests::same_ip_different_jails_tracked_independently ... ok [INFO] [stdout] test track::tests::test_manual_unban_unknown_jail_returns_error ... ok [INFO] [stdout] test track::tests::test_manual_unban_not_banned_returns_error ... ok [INFO] [stdout] test track::tests::test_maxmind_city_sweden ... ok [INFO] [stdout] test track::tests::test_maxmind_country_uk_ipv6 ... ok [INFO] [stdout] test track::tests::test_maxmind_asn_att ... ok [INFO] [stdout] test detect::watcher::tests::test_read_line_bounded_all_invalid_bytes ... ok [INFO] [stdout] test detect::watcher::tests::test_watcher_processes_after_invalid_utf8 ... ok [INFO] [stdout] test detect::watcher::tests::test_read_line_bounded_mixed_valid_invalid_lines ... ok [INFO] [stdout] test track::tests::no_ban_outside_find_time ... ok [INFO] [stdout] test detect::watcher::tests::test_read_line_bounded_valid_utf8 ... ok [INFO] [stdout] test detect::watcher::tests::test_file_identity_invalid_utf8_first_line ... ok [INFO] [stdout] test track::tests::already_banned_ip_ignored ... ok [INFO] [stdout] test track::tests::no_ban_below_threshold ... ok [INFO] [stdout] test webhook::tests::notify_ban_does_not_panic ... ok [INFO] [stdout] test webhook::tests::notify_unban_does_not_panic ... ok [INFO] [stdout] test detect::watcher::tests::ignores_allowlisted_ips ... ok [INFO] [stdout] test detect::filters::tests::all_patterns_compile ... ok [INFO] [stdout] test detect::watcher::tests::test_invalid_utf8_does_not_match_pattern ... ok [INFO] [stdout] test detect::watcher::tests::ignores_non_matching_lines ... ok [INFO] [stdout] test detect::watcher::tests::test_read_line_bounded_invalid_utf8_oversized ... ok [INFO] [stdout] test track::tests::unknown_jail_failure_ignored ... ok [INFO] [stdout] test track::tests::restored_bans_populate_unban_queue ... ok [INFO] [stdout] test track::tests::unban_timer_fires ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 479 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.77s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/fail2ban_rs-a68c9c27830c8aaf) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/e2e_ban.rs (/opt/rustwide/target/debug/deps/e2e_ban-ec88186b28dbb08f) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test circular_threshold ... ok [INFO] [stdout] test matcher_ssh_log ... ok [INFO] [stdout] test watcher_to_tracker_ban ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.52s [INFO] [stdout] [INFO] [stderr] Doc-tests fail2ban_rs [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "3f291b6782e3ab47960c3477b1a67e3ff118e1bf232b9648a576c5a7e65ff318", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3f291b6782e3ab47960c3477b1a67e3ff118e1bf232b9648a576c5a7e65ff318", kill_on_drop: false }` [INFO] [stdout] 3f291b6782e3ab47960c3477b1a67e3ff118e1bf232b9648a576c5a7e65ff318