[INFO] cloning repository https://github.com/jvz-devx/nntp-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jvz-devx/nntp-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjvz-devx%2Fnntp-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjvz-devx%2Fnntp-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] da6e0730bdb004a16bf870510123e5587e65fea9
[INFO] testing jvz-devx/nntp-rs against beta-2026-01-20 for beta-1.94-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjvz-devx%2Fnntp-rs" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jvz-devx/nntp-rs
[INFO] removed 0 missing examples
[INFO] finished tweaking git repo https://github.com/jvz-devx/nntp-rs
[INFO] tweaked toml for git repo https://github.com/jvz-devx/nntp-rs written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jvz-devx/nntp-rs on toolchain beta-2026-01-20
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-01-20" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jvz-devx/nntp-rs 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-01-20" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-01-20" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 23ceca7ff48b654912561589525f86d534c5181a3fc014141236cb35753f2dca
[INFO] running `Command { std: "docker" "start" "-a" "23ceca7ff48b654912561589525f86d534c5181a3fc014141236cb35753f2dca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "23ceca7ff48b654912561589525f86d534c5181a3fc014141236cb35753f2dca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "23ceca7ff48b654912561589525f86d534c5181a3fc014141236cb35753f2dca", kill_on_drop: false }`
[INFO] [stdout] 23ceca7ff48b654912561589525f86d534c5181a3fc014141236cb35753f2dca
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-01-20" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1c982f7f2a77fd4bbe40dbed85e0319cdfb760a54bc2bc0a0d1180208abc5928
[INFO] running `Command { std: "docker" "start" "-a" "1c982f7f2a77fd4bbe40dbed85e0319cdfb760a54bc2bc0a0d1180208abc5928", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling find-msvc-tools v0.1.8
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling aws-lc-rs v1.15.3
[INFO] [stderr]    Compiling zerocopy v0.8.33
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling bytes v1.11.0
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling quick-xml v0.37.5
[INFO] [stderr]    Compiling flate2 v1.1.8
[INFO] [stderr]    Compiling webpki-roots v1.0.5
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling uuid v1.19.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling cc v1.2.53
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling aws-lc-sys v0.36.0
[INFO] [stderr]    Compiling bb8 v0.8.6
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling nntp-rs v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `Article` is never constructed
[INFO] [stdout]   --> src/article_original.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct Article {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Headers` is never constructed
[INFO] [stdout]   --> src/article_original.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct Headers {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/article_original.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl Article {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 169 |     /// Create a new article with the given headers and body
[INFO] [stdout] 170 |     pub fn new(headers: Headers, body: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn raw(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn is_control_message(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn parse_control_message(&self) -> Option<ControlMessage> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub fn is_mime(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn content_type(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn is_multipart(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     pub fn charset(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ControlMessage` is never used
[INFO] [stdout]    --> src/article_original.rs:400:10
[INFO] [stdout]     |
[INFO] [stdout] 400 | pub enum ControlMessage {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse` is never used
[INFO] [stdout]    --> src/article_original.rs:509:12
[INFO] [stdout]     |
[INFO] [stdout] 480 | impl ControlMessage {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 509 |     pub fn parse(control: &str) -> Option<ControlMessage> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `validate`, `parse_path`, `originating_server`, and `path_length` are never used
[INFO] [stdout]    --> src/article_original.rs:642:12
[INFO] [stdout]     |
[INFO] [stdout] 631 | impl Headers {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 642 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 722 |     pub fn validate(&self, config: &crate::validation::ValidationConfig) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 846 |     pub fn parse_path(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 892 |     pub fn originating_server(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 933 |     pub fn path_length(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_article` is never used
[INFO] [stdout]    --> src/article_original.rs:942:4
[INFO] [stdout]     |
[INFO] [stdout] 942 | fn split_article(raw: &str) -> (&str, &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_comma_list` is never used
[INFO] [stdout]    --> src/article_original.rs:960:4
[INFO] [stdout]     |
[INFO] [stdout] 960 | fn parse_comma_list(value: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_message_id_list` is never used
[INFO] [stdout]    --> src/article_original.rs:973:4
[INFO] [stdout]     |
[INFO] [stdout] 973 | fn parse_message_id_list(value: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unfold_header` is never used
[INFO] [stdout]    --> src/article_original.rs:985:4
[INFO] [stdout]     |
[INFO] [stdout] 985 | fn unfold_header(value: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_headers` is never used
[INFO] [stdout]     --> src/article_original.rs:1037:8
[INFO] [stdout]      |
[INFO] [stdout] 1037 | pub fn parse_headers(headers_text: &str) -> Result<Headers> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_article` is never used
[INFO] [stdout]     --> src/article_original.rs:1211:8
[INFO] [stdout]      |
[INFO] [stdout] 1211 | pub fn parse_article(raw: &str) -> Result<Article> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArticleBuilder` is never constructed
[INFO] [stdout]     --> src/article_original.rs:1241:12
[INFO] [stdout]      |
[INFO] [stdout] 1241 | pub struct ArticleBuilder {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/article_original.rs:1273:12
[INFO] [stdout]      |
[INFO] [stdout] 1271 | impl ArticleBuilder {
[INFO] [stdout]      | ------------------- associated items in this implementation
[INFO] [stdout] 1272 |     /// Create a new ArticleBuilder with default values
[INFO] [stdout] 1273 |     pub fn new() -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1299 |     pub fn from(mut self, from: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1305 |     pub fn subject(mut self, subject: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1311 |     pub fn newsgroups(mut self, newsgroups: Vec<impl Into<String>>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1317 |     pub fn add_newsgroup(mut self, newsgroup: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1323 |     pub fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1329 |     pub fn date(mut self, date: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1335 |     pub fn message_id(mut self, message_id: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1341 |     pub fn path(mut self, path: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1347 |     pub fn references(mut self, references: Vec<impl Into<String>>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1353 |     pub fn reply_to(mut self, reply_to: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1359 |     pub fn organization(mut self, organization: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1365 |     pub fn followup_to(mut self, followup_to: Vec<impl Into<String>>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1371 |     pub fn expires(mut self, expires: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1377 |     pub fn control(mut self, control: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1383 |     pub fn distribution(mut self, distribution: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1389 |     pub fn keywords(mut self, keywords: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1395 |     pub fn summary(mut self, summary: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1404 |     pub fn supersedes(mut self, message_id: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1410 |     pub fn approved(mut self, approved: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1416 |     pub fn user_agent(mut self, user_agent: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1422 |     pub fn extra_header(mut self, name: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1431 |     pub fn build(self) -> Result<Article> {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1510 |     pub fn build_for_posting(self) -> Result<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `serialize_for_posting` is never used
[INFO] [stdout]     --> src/article_original.rs:1540:12
[INFO] [stdout]      |
[INFO] [stdout] 1516 | impl Article {
[INFO] [stdout]      | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1540 |     pub fn serialize_for_posting(&self) -> Result<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 58.41s
[INFO] running `Command { std: "docker" "inspect" "1c982f7f2a77fd4bbe40dbed85e0319cdfb760a54bc2bc0a0d1180208abc5928", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1c982f7f2a77fd4bbe40dbed85e0319cdfb760a54bc2bc0a0d1180208abc5928", kill_on_drop: false }`
[INFO] [stdout] 1c982f7f2a77fd4bbe40dbed85e0319cdfb760a54bc2bc0a0d1180208abc5928
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-01-20" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 91313c100a411ecdc371b54dfd482cff8e23858880b0b394acfe733c900d5f6f
[INFO] running `Command { std: "docker" "start" "-a" "91313c100a411ecdc371b54dfd482cff8e23858880b0b394acfe733c900d5f6f", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.33
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling zmij v1.0.16
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling zerocopy-derive v0.8.33
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling clap_builder v4.5.54
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling clap v4.5.54
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling bb8 v0.8.6
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling nntp-rs v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `Article` is never constructed
[INFO] [stdout]   --> src/article_original.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct Article {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Headers` is never constructed
[INFO] [stdout]   --> src/article_original.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct Headers {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/article_original.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl Article {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 169 |     /// Create a new article with the given headers and body
[INFO] [stdout] 170 |     pub fn new(headers: Headers, body: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn raw(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn is_control_message(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn parse_control_message(&self) -> Option<ControlMessage> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub fn is_mime(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn content_type(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn is_multipart(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     pub fn charset(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ControlMessage` is never used
[INFO] [stdout]    --> src/article_original.rs:400:10
[INFO] [stdout]     |
[INFO] [stdout] 400 | pub enum ControlMessage {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse` is never used
[INFO] [stdout]    --> src/article_original.rs:509:12
[INFO] [stdout]     |
[INFO] [stdout] 480 | impl ControlMessage {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 509 |     pub fn parse(control: &str) -> Option<ControlMessage> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `validate`, `parse_path`, `originating_server`, and `path_length` are never used
[INFO] [stdout]    --> src/article_original.rs:642:12
[INFO] [stdout]     |
[INFO] [stdout] 631 | impl Headers {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 642 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 722 |     pub fn validate(&self, config: &crate::validation::ValidationConfig) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 846 |     pub fn parse_path(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 892 |     pub fn originating_server(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 933 |     pub fn path_length(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_article` is never used
[INFO] [stdout]    --> src/article_original.rs:942:4
[INFO] [stdout]     |
[INFO] [stdout] 942 | fn split_article(raw: &str) -> (&str, &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_comma_list` is never used
[INFO] [stdout]    --> src/article_original.rs:960:4
[INFO] [stdout]     |
[INFO] [stdout] 960 | fn parse_comma_list(value: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_message_id_list` is never used
[INFO] [stdout]    --> src/article_original.rs:973:4
[INFO] [stdout]     |
[INFO] [stdout] 973 | fn parse_message_id_list(value: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unfold_header` is never used
[INFO] [stdout]    --> src/article_original.rs:985:4
[INFO] [stdout]     |
[INFO] [stdout] 985 | fn unfold_header(value: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_headers` is never used
[INFO] [stdout]     --> src/article_original.rs:1037:8
[INFO] [stdout]      |
[INFO] [stdout] 1037 | pub fn parse_headers(headers_text: &str) -> Result<Headers> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_article` is never used
[INFO] [stdout]     --> src/article_original.rs:1211:8
[INFO] [stdout]      |
[INFO] [stdout] 1211 | pub fn parse_article(raw: &str) -> Result<Article> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArticleBuilder` is never constructed
[INFO] [stdout]     --> src/article_original.rs:1241:12
[INFO] [stdout]      |
[INFO] [stdout] 1241 | pub struct ArticleBuilder {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/article_original.rs:1273:12
[INFO] [stdout]      |
[INFO] [stdout] 1271 | impl ArticleBuilder {
[INFO] [stdout]      | ------------------- associated items in this implementation
[INFO] [stdout] 1272 |     /// Create a new ArticleBuilder with default values
[INFO] [stdout] 1273 |     pub fn new() -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1299 |     pub fn from(mut self, from: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1305 |     pub fn subject(mut self, subject: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1311 |     pub fn newsgroups(mut self, newsgroups: Vec<impl Into<String>>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1317 |     pub fn add_newsgroup(mut self, newsgroup: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1323 |     pub fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1329 |     pub fn date(mut self, date: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1335 |     pub fn message_id(mut self, message_id: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1341 |     pub fn path(mut self, path: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1347 |     pub fn references(mut self, references: Vec<impl Into<String>>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1353 |     pub fn reply_to(mut self, reply_to: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1359 |     pub fn organization(mut self, organization: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1365 |     pub fn followup_to(mut self, followup_to: Vec<impl Into<String>>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1371 |     pub fn expires(mut self, expires: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1377 |     pub fn control(mut self, control: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1383 |     pub fn distribution(mut self, distribution: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1389 |     pub fn keywords(mut self, keywords: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1395 |     pub fn summary(mut self, summary: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1404 |     pub fn supersedes(mut self, message_id: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1410 |     pub fn approved(mut self, approved: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1416 |     pub fn user_agent(mut self, user_agent: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1422 |     pub fn extra_header(mut self, name: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1431 |     pub fn build(self) -> Result<Article> {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1510 |     pub fn build_for_posting(self) -> Result<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `serialize_for_posting` is never used
[INFO] [stdout]     --> src/article_original.rs:1540:12
[INFO] [stdout]      |
[INFO] [stdout] 1516 | impl Article {
[INFO] [stdout]      | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1540 |     pub fn serialize_for_posting(&self) -> Result<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `distribution`, `keywords`, `summary`, and `xref` are never read
[INFO] [stdout]    --> src/article_original.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout]  83 | pub struct Headers {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub distribution: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub keywords: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub summary: Option<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub xref: Option<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Headers` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_control_message`, `parse_control_message`, `is_mime`, `content_type`, `is_multipart`, and `charset` are never used
[INFO] [stdout]    --> src/article_original.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl Article {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn is_control_message(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn parse_control_message(&self) -> Option<ControlMessage> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub fn is_mime(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn content_type(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn is_multipart(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     pub fn charset(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ControlMessage` is never used
[INFO] [stdout]    --> src/article_original.rs:400:10
[INFO] [stdout]     |
[INFO] [stdout] 400 | pub enum ControlMessage {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse` is never used
[INFO] [stdout]    --> src/article_original.rs:509:12
[INFO] [stdout]     |
[INFO] [stdout] 480 | impl ControlMessage {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 509 |     pub fn parse(control: &str) -> Option<ControlMessage> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_path`, `originating_server`, and `path_length` are never used
[INFO] [stdout]    --> src/article_original.rs:846:12
[INFO] [stdout]     |
[INFO] [stdout] 631 | impl Headers {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 846 |     pub fn parse_path(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 892 |     pub fn originating_server(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 933 |     pub fn path_length(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_article` is never used
[INFO] [stdout]    --> src/article_original.rs:942:4
[INFO] [stdout]     |
[INFO] [stdout] 942 | fn split_article(raw: &str) -> (&str, &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_comma_list` is never used
[INFO] [stdout]    --> src/article_original.rs:960:4
[INFO] [stdout]     |
[INFO] [stdout] 960 | fn parse_comma_list(value: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_message_id_list` is never used
[INFO] [stdout]    --> src/article_original.rs:973:4
[INFO] [stdout]     |
[INFO] [stdout] 973 | fn parse_message_id_list(value: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unfold_header` is never used
[INFO] [stdout]    --> src/article_original.rs:985:4
[INFO] [stdout]     |
[INFO] [stdout] 985 | fn unfold_header(value: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_headers` is never used
[INFO] [stdout]     --> src/article_original.rs:1037:8
[INFO] [stdout]      |
[INFO] [stdout] 1037 | pub fn parse_headers(headers_text: &str) -> Result<Headers> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_article` is never used
[INFO] [stdout]     --> src/article_original.rs:1211:8
[INFO] [stdout]      |
[INFO] [stdout] 1211 | pub fn parse_article(raw: &str) -> Result<Article> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArticleBuilder` is never constructed
[INFO] [stdout]     --> src/article_original.rs:1241:12
[INFO] [stdout]      |
[INFO] [stdout] 1241 | pub struct ArticleBuilder {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/article_original.rs:1273:12
[INFO] [stdout]      |
[INFO] [stdout] 1271 | impl ArticleBuilder {
[INFO] [stdout]      | ------------------- associated items in this implementation
[INFO] [stdout] 1272 |     /// Create a new ArticleBuilder with default values
[INFO] [stdout] 1273 |     pub fn new() -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1299 |     pub fn from(mut self, from: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1305 |     pub fn subject(mut self, subject: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1311 |     pub fn newsgroups(mut self, newsgroups: Vec<impl Into<String>>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1317 |     pub fn add_newsgroup(mut self, newsgroup: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1323 |     pub fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1329 |     pub fn date(mut self, date: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1335 |     pub fn message_id(mut self, message_id: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1341 |     pub fn path(mut self, path: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1347 |     pub fn references(mut self, references: Vec<impl Into<String>>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1353 |     pub fn reply_to(mut self, reply_to: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1359 |     pub fn organization(mut self, organization: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1365 |     pub fn followup_to(mut self, followup_to: Vec<impl Into<String>>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1371 |     pub fn expires(mut self, expires: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1377 |     pub fn control(mut self, control: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1383 |     pub fn distribution(mut self, distribution: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1389 |     pub fn keywords(mut self, keywords: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1395 |     pub fn summary(mut self, summary: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1404 |     pub fn supersedes(mut self, message_id: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1410 |     pub fn approved(mut self, approved: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1416 |     pub fn user_agent(mut self, user_agent: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1422 |     pub fn extra_header(mut self, name: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1431 |     pub fn build(self) -> Result<Article> {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1510 |     pub fn build_for_posting(self) -> Result<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `serialize_for_posting` is never used
[INFO] [stdout]     --> src/article_original.rs:1540:12
[INFO] [stdout]      |
[INFO] [stdout] 1516 | impl Article {
[INFO] [stdout]      | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1540 |     pub fn serialize_for_posting(&self) -> Result<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 35.79s
[INFO] running `Command { std: "docker" "inspect" "91313c100a411ecdc371b54dfd482cff8e23858880b0b394acfe733c900d5f6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "91313c100a411ecdc371b54dfd482cff8e23858880b0b394acfe733c900d5f6f", kill_on_drop: false }`
[INFO] [stdout] 91313c100a411ecdc371b54dfd482cff8e23858880b0b394acfe733c900d5f6f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-01-20" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 72486272e1e2509214667c536b82a26ce80b1f3e1850fac9003743a5e8fac47b
[INFO] running `Command { std: "docker" "start" "-a" "72486272e1e2509214667c536b82a26ce80b1f3e1850fac9003743a5e8fac47b", kill_on_drop: false }`
[INFO] [stderr] warning: struct `Article` is never constructed
[INFO] [stdout] 
[INFO] [stderr]   --> src/article_original.rs:69:12
[INFO] [stdout] running 253 tests
[INFO] [stderr]    |
[INFO] [stdout] test article_original::tests::test_article_clone ... ok
[INFO] [stderr] 69 | pub struct Article {
[INFO] [stdout] test article_original::tests::test_article_with_optional_headers ... ok
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stdout] test article_original::tests::test_article_new ... ok
[INFO] [stderr]    |
[INFO] [stdout] test article_original::tests::test_headers_new ... ok
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] test article_original::tests::test_headers_optional_fields ... ok
[INFO] [stderr] 
[INFO] [stdout] test article_original::tests::test_control_message ... ok
[INFO] [stderr] warning: struct `Headers` is never constructed
[INFO] [stdout] test article_original::tests::test_headers_validate_empty_from ... ok
[INFO] [stderr]   --> src/article_original.rs:83:12
[INFO] [stdout] test article_original::tests::test_headers_validate_empty_date ... ok
[INFO] [stderr]    |
[INFO] [stdout] test article_original::tests::test_extra_headers ... ok
[INFO] [stderr] 83 | pub struct Headers {
[INFO] [stdout] test article_original::tests::test_headers_validate_followup_to_poster ... ok
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stdout] test article_original::tests::test_headers_validate_invalid_newsgroup ... ok
[INFO] [stderr] 
[INFO] [stdout] test article_original::tests::test_headers_validate_invalid_reference ... ok
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stdout] test article_original::tests::test_headers_validate_supersedes_and_control_mutually_exclusive ... ok
[INFO] [stderr]    --> src/article_original.rs:170:12
[INFO] [stdout] test article_original::tests::test_headers_validate_with_followup_to ... ok
[INFO] [stderr]     |
[INFO] [stdout] test article_original::tests::test_headers_validate_with_references ... ok
[INFO] [stderr] 168 | impl Article {
[INFO] [stdout] test article_original::tests::test_moderated_group_approved ... ok
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stdout] test article_original::tests::test_references_threading ... ok
[INFO] [stderr] 169 |     /// Create a new article with the given headers and body
[INFO] [stdout] test article_original::tests::test_multiple_newsgroups ... ok
[INFO] [stderr] 170 |     pub fn new(headers: Headers, body: String) -> Self {
[INFO] [stdout] test assembler::tests::test_assembler_invalid_segment_number ... ok
[INFO] [stderr]     |            ^^^
[INFO] [stdout] test assembler::tests::test_assembler_assemble_incomplete ... ok
[INFO] [stderr] ...
[INFO] [stdout] test assembler::tests::test_assembler_multi_part ... ok
[INFO] [stderr] 179 |     pub fn raw(&self) -> Option<&str> {
[INFO] [stdout] test assembler::tests::test_assembler_out_of_order ... ok
[INFO] [stderr]     |            ^^^
[INFO] [stdout] test assembler::tests::test_assembler_new ... ok
[INFO] [stderr] ...
[INFO] [stdout] test assembler::tests::test_assembler_single_part ... ok
[INFO] [stderr] 207 |     pub fn is_control_message(&self) -> bool {
[INFO] [stdout] test assembler::tests::test_assembler_status_tracking ... ok
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] test article_original::tests::test_headers_validate_invalid_message_id ... ok
[INFO] [stderr] ...
[INFO] [stdout] test cache::tests::test_contains ... ok
[INFO] [stderr] 250 |     pub fn parse_control_message(&self) -> Option<ControlMessage> {
[INFO] [stdout] test cache::tests::test_lru_eviction ... ok
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] test cache::tests::test_high_churn ... ok
[INFO] [stderr] ...
[INFO] [stdout] test cache::tests::test_get_nonexistent ... ok
[INFO] [stderr] 279 |     pub fn is_mime(&self) -> bool {
[INFO] [stdout] test cache::tests::test_cache_creation ... ok
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stdout] test cache::tests::test_remove ... ok
[INFO] [stderr] ...
[INFO] [stdout] test cache::tests::test_lru_eviction_order ... ok
[INFO] [stderr] 308 |     pub fn content_type(&self) -> Option<&str> {
[INFO] [stdout] test capabilities::tests::test_case_insensitive ... ok
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stdout] test capabilities::tests::test_capability_args ... ok
[INFO] [stderr] ...
[INFO] [stdout] test capabilities::tests::test_empty_lines ... ok
[INFO] [stderr] 339 |     pub fn is_multipart(&self) -> bool {
[INFO] [stdout] test capabilities::tests::test_has_arg ... ok
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stdout] test article_original::tests::test_headers_validate_invalid_followup_to ... ok
[INFO] [stderr] ...
[INFO] [stdout] test cache::tests::test_access_pattern_preservation ... ok
[INFO] [stderr] 372 |     pub fn charset(&self) -> Option<&str> {
[INFO] [stdout] test cache::tests::test_remove_nonexistent ... ok
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stdout] test cache::tests::test_single_entry_cache ... ok
[INFO] [stderr] 
[INFO] [stdout] test cache::tests::test_update_existing_entry ... ok
[INFO] [stderr] warning: enum `ControlMessage` is never used
[INFO] [stdout] test cache::tests::test_clear ... ok
[INFO] [stderr]    --> src/article_original.rs:400:10
[INFO] [stdout] test cache::tests::test_put_and_get ... ok
[INFO] [stderr]     |
[INFO] [stdout] test capabilities::tests::test_list_capabilities ... ok
[INFO] [stderr] 400 | pub enum ControlMessage {
[INFO] [stdout] test capabilities::tests::test_parse_capabilities ... ok
[INFO] [stderr]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] test client::tests::test_compression_modes_are_distinct ... ok
[INFO] [stderr] 
[INFO] [stdout] test client::tests::test_connection_state_authenticated_to_closed_transition ... ok
[INFO] [stderr] warning: associated function `parse` is never used
[INFO] [stdout] test client::tests::test_connection_state_double_authentication_rejected ... ok
[INFO] [stderr]    --> src/article_original.rs:509:12
[INFO] [stdout] test client::tests::test_connection_state_failed_auth_with_retry_flow ... ok
[INFO] [stderr]     |
[INFO] [stdout] test client::tests::test_connection_state_in_progress_to_authenticated_transition ... ok
[INFO] [stderr] 480 | impl ControlMessage {
[INFO] [stdout] test client::tests::test_connection_state_in_progress_to_ready_on_failure ... ok
[INFO] [stderr]     | ------------------- associated function in this implementation
[INFO] [stdout] test client::tests::test_connection_state_initial_is_ready ... ok
[INFO] [stderr] ...
[INFO] [stdout] test client::tests::test_connection_state_ready_to_in_progress_transition ... ok
[INFO] [stderr] 509 |     pub fn parse(control: &str) -> Option<ControlMessage> {
[INFO] [stdout] test client::tests::test_connection_state_ready_to_closed_transition ... ok
[INFO] [stderr]     |            ^^^^^
[INFO] [stdout] test client::tests::test_connection_state_full_successful_auth_flow ... ok
[INFO] [stderr] 
[INFO] [stdout] test commands::tests::test_command_builders ... ok
[INFO] [stderr] warning: associated items `new`, `validate`, `parse_path`, `originating_server`, and `path_length` are never used
[INFO] [stdout] test commands::tests::test_parse_xover_line ... ok
[INFO] [stderr]    --> src/article_original.rs:642:12
[INFO] [stdout] test commands::tests::test_parse_group_response ... ok
[INFO] [stderr]     |
[INFO] [stdout] test config::tests::test_insecure_tls_default_false ... ok
[INFO] [stderr] 631 | impl Headers {
[INFO] [stdout] test client::tests::test_compression_mode_defaults_to_none ... ok
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stdout] test commands::tests::test_parse_response_line ... ok
[INFO] [stderr] ...
[INFO] [stdout] test commands::tests::test_parse_response_line_bom ... ok
[INFO] [stderr] 642 |     pub fn new(
[INFO] [stdout] test commands::tests::test_parse_response_line_code_overflow ... ok
[INFO] [stderr]     |            ^^^
[INFO] [stdout] test cache::tests::test_large_cache ... ok
[INFO] [stderr] ...
[INFO] [stdout] test config::tests::test_new ... ok
[INFO] [stderr] 722 |     pub fn validate(&self, config: &crate::validation::ValidationConfig) -> Result<()> {
[INFO] [stdout] test client::tests::test_connection_state_transitions_are_distinct ... ok
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stdout] test commands::tests::test_parse_response_line_missing_space ... ok
[INFO] [stderr] ...
[INFO] [stdout] test encoded_words::tests::test_charset_to_string_unknown ... ok
[INFO] [stderr] 846 |     pub fn parse_path(&self) -> Vec<String> {
[INFO] [stdout] test encoded_words::tests::test_charset_to_string_utf8 ... ok
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stdout] test client::tests::test_connection_state_sasl_flow ... ok
[INFO] [stderr] ...
[INFO] [stdout] test config::tests::test_plain_helper ... ok
[INFO] [stderr] 892 |     pub fn originating_server(&self) -> Option<&str> {
[INFO] [stdout] test encoded_words::tests::test_decode_base64_invalid ... ok
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] test encoded_words::tests::test_decode_base64_empty ... ok
[INFO] [stderr] ...
[INFO] [stdout] test encoded_words::tests::test_charset_to_string_iso_8859_1 ... ok
[INFO] [stderr] 933 |     pub fn path_length(&self) -> usize {
[INFO] [stdout] test commands::tests::test_parse_response_line_invalid ... ok
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stdout] test encoded_words::tests::test_decode_base64_valid ... ok
[INFO] [stderr] 
[INFO] [stdout] test encoded_words::tests::test_decode_encoded_word_base64_utf8 ... ok
[INFO] [stderr] warning: function `split_article` is never used
[INFO] [stderr]    --> src/article_original.rs:942:4
[INFO] [stderr]     |
[INFO] [stderr] 942 | fn split_article(raw: &str) -> (&str, &str) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_comma_list` is never used
[INFO] [stderr]    --> src/article_original.rs:960:4
[INFO] [stderr]     |
[INFO] [stderr] 960 | fn parse_comma_list(value: &str) -> Vec<String> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_message_id_list` is never used
[INFO] [stderr]    --> src/article_original.rs:973:4
[INFO] [stderr]     |
[INFO] [stderr] 973 | fn parse_message_id_list(value: &str) -> Vec<String> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `unfold_header` is never used
[INFO] [stderr]    --> src/article_original.rs:985:4
[INFO] [stderr]     |
[INFO] [stderr] 985 | fn unfold_header(value: &str) -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_headers` is never used
[INFO] [stderr]     --> src/article_original.rs:1037:8
[INFO] [stderr]      |
[INFO] [stderr] 1037 | pub fn parse_headers(headers_text: &str) -> Result<Headers> {
[INFO] [stderr]      |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_article` is never used
[INFO] [stderr]     --> src/article_original.rs:1211:8
[INFO] [stderr]      |
[INFO] [stderr] 1211 | pub fn parse_article(raw: &str) -> Result<Article> {
[INFO] [stderr]      |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ArticleBuilder` is never constructed
[INFO] [stderr]     --> src/article_original.rs:1241:12
[INFO] [stderr]      |
[INFO] [stderr] 1241 | pub struct ArticleBuilder {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]     --> src/article_original.rs:1273:12
[INFO] [stderr]      |
[INFO] [stderr] 1271 | impl ArticleBuilder {
[INFO] [stderr]      | ------------------- associated items in this implementation
[INFO] [stderr] 1272 |     /// Create a new ArticleBuilder with default values
[INFO] [stderr] 1273 |     pub fn new() -> Self {
[INFO] [stderr]      |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1299 |     pub fn from(mut self, from: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1305 |     pub fn subject(mut self, subject: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1311 |     pub fn newsgroups(mut self, newsgroups: Vec<impl Into<String>>) -> Self {
[INFO] [stderr]      |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1317 |     pub fn add_newsgroup(mut self, newsgroup: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1323 |     pub fn body(mut self, body: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1329 |     pub fn date(mut self, date: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1335 |     pub fn message_id(mut self, message_id: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1341 |     pub fn path(mut self, path: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1347 |     pub fn references(mut self, references: Vec<impl Into<String>>) -> Self {
[INFO] [stderr]      |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1353 |     pub fn reply_to(mut self, reply_to: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1359 |     pub fn organization(mut self, organization: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1365 |     pub fn followup_to(mut self, followup_to: Vec<impl Into<String>>) -> Self {
[INFO] [stderr]      |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1371 |     pub fn expires(mut self, expires: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1377 |     pub fn control(mut self, control: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1383 |     pub fn distribution(mut self, distribution: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1389 |     pub fn keywords(mut self, keywords: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1395 |     pub fn summary(mut self, summary: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1404 |     pub fn supersedes(mut self, message_id: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1410 |     pub fn approved(mut self, approved: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1416 |     pub fn user_agent(mut self, user_agent: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1422 |     pub fn extra_header(mut self, name: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stderr]      |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1431 |     pub fn build(self) -> Result<Article> {
[INFO] [stderr]      |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1510 |     pub fn build_for_posting(self) -> Result<String> {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `serialize_for_posting` is never used
[INFO] [stderr]     --> src/article_original.rs:1540:12
[INFO] [stderr]      |
[INFO] [stderr] 1516 | impl Article {
[INFO] [stderr]      | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 1540 |     pub fn serialize_for_posting(&self) -> Result<String> {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `distribution`, `keywords`, `summary`, and `xref` are never read
[INFO] [stderr]    --> src/article_original.rs:135:9
[INFO] [stderr]     |
[INFO] [stderr]  83 | pub struct Headers {
[INFO] [stderr]     |            ------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 135 |     pub distribution: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 139 |     pub keywords: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 142 |     pub summary: Option<String>,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 161 |     pub xref: Option<String>,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Headers` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_control_message`, `parse_control_message`, `is_mime`, `content_type`, `is_multipart`, and `charset` are never used
[INFO] [stderr]    --> src/article_original.rs:207:12
[INFO] [stderr]     |
[INFO] [stderr] 168 | impl Article {
[INFO] [stderr]     | ------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 207 |     pub fn is_control_message(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 250 |     pub fn parse_control_message(&self) -> Option<ControlMessage> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 279 |     pub fn is_mime(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 308 |     pub fn content_type(&self) -> Option<&str> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 339 |     pub fn is_multipart(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 372 |     pub fn charset(&self) -> Option<&str> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `parse_path`, `originating_server`, and `path_length` are never used
[INFO] [stderr]    --> src/article_original.rs:846:12
[INFO] [stderr]     |
[INFO] [stderr] 631 | impl Headers {
[INFO] [stderr]     | ------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 846 |     pub fn parse_path(&self) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 892 |     pub fn originating_server(&self) -> Option<&str> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 933 |     pub fn path_length(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `nntp-rs` (lib) generated 15 warnings
[INFO] [stderr] warning: `nntp-rs` (lib test) generated 14 warnings (11 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/nntp_rs-36cb1ccf73580245)
[INFO] [stdout] test encoded_words::tests::test_decode_encoded_word_invalid_format ... ok
[INFO] [stdout] test encoded_words::tests::test_decode_encoded_word_unknown_encoding ... ok
[INFO] [stdout] test encoded_words::tests::test_decode_header_value_empty ... ok
[INFO] [stdout] test config::tests::test_tls_insecure_helper ... ok
[INFO] [stdout] test encoded_words::tests::test_decode_header_value_mixed_plain_and_encoded ... ok
[INFO] [stdout] test encoded_words::tests::test_decode_header_value_plain_text ... ok
[INFO] [stdout] test encoded_words::tests::test_decode_quoted_printable_invalid_hex ... ok
[INFO] [stdout] test encoded_words::tests::test_find_encoded_word_end_incomplete ... ok
[INFO] [stdout] test encoded_words::tests::test_decode_header_value_single_encoded ... ok
[INFO] [stdout] test encoded_words::tests::test_decode_header_value_multiple_encoded ... ok
[INFO] [stdout] test config::tests::test_tls_helper ... ok
[INFO] [stdout] test encoded_words::tests::test_decode_quoted_printable_hex_escape ... ok
[INFO] [stdout] test encoded_words::tests::test_decode_quoted_printable_mixed ... ok
[INFO] [stdout] test encoded_words::tests::test_decode_encoded_word_quoted_printable ... ok
[INFO] [stdout] test article_original::tests::test_headers_validate_invalid_date_format ... ok
[INFO] [stdout] test article_original::tests::test_headers_validate_valid ... ok
[INFO] [stdout] test encoded_words::tests::test_decode_encoded_word_missing_parts ... ok
[INFO] [stdout] test encoded_words::tests::test_decode_header_value_invalid_encoded_word ... ok
[INFO] [stdout] test encoded_words::tests::test_decode_quoted_printable_underscore ... ok
[INFO] [stdout] test encoded_words::tests::test_find_encoded_word_end_not_encoded ... ok
[INFO] [stdout] test nzb::tests::test_missing_segments_detection ... ok
[INFO] [stdout] test nzb::tests::test_parse_nzb_binary_newsgroup ... ok
[INFO] [stdout] test nzb::tests::test_parse_nzb_meta_tags ... ok
[INFO] [stdout] test nzb::tests::test_parse_nzb_message_ids_with_angles ... ok
[INFO] [stdout] test nzb::tests::test_nzb_validate_all_files ... ok
[INFO] [stdout] test nzb::tests::test_parse_nzb_multiple_files ... ok
[INFO] [stdout] test nzb::tests::test_parse_nzb_multiple_segments ... ok
[INFO] [stdout] test nzb::tests::test_parse_nzb_simple ... ok
[INFO] [stdout] test nzb::tests::test_to_xml_all_meta_types ... ok
[INFO] [stdout] test nzb::tests::test_to_xml_large_numbers ... ok
[INFO] [stdout] test nzb::tests::test_to_xml_simple ... ok
[INFO] [stdout] test nzb::tests::test_parse_nzb_empty_meta ... ok
[INFO] [stdout] test assembler::tests::test_assembler_missing_part ... ok
[INFO] [stdout] test nzb::tests::test_to_xml_multiple_groups ... ok
[INFO] [stdout] test nzb::tests::test_to_xml_multiple_files ... ok
[INFO] [stdout] test nzb::tests::test_to_xml_roundtrip ... ok
[INFO] [stdout] test nzb::tests::test_to_xml_many_segments ... ok
[INFO] [stdout] test nzb::tests::test_to_xml_xml_escaping ... ok
[INFO] [stdout] test encoded_words::tests::test_find_encoded_word_end_valid ... ok
[INFO] [stdout] test encoded_words::tests::test_find_encoded_word_end_with_whitespace ... ok
[INFO] [stdout] test nzb::tests::test_to_xml_no_metadata ... ok
[INFO] [stdout] test nzb::tests::test_parse_nzb_multiple_groups ... ok
[INFO] [stdout] test nzb::tests::test_validate_segments_duplicate ... ok
[INFO] [stdout] test nzb::tests::test_validate_segments_empty ... ok
[INFO] [stdout] test nzb::tests::test_parse_nzb_special_characters ... ok
[INFO] [stdout] test nzb::tests::test_to_xml_unicode_characters ... ok
[INFO] [stdout] test par2::parsing::tests::test_parse_creator_packet ... ok
[INFO] [stdout] test par2::parsing::tests::test_parse_file_description_packet ... ok
[INFO] [stdout] test par2::parsing::tests::test_parse_main_packet ... ok
[INFO] [stdout] test par2::parsing::tests::test_parse_packet_header ... ok
[INFO] [stdout] test par2::parsing::tests::test_parse_ifsc_packet ... ok
[INFO] [stdout] test par2::tests::test_merge_recovery_slices_same_set_id ... ok
[INFO] [stdout] test nzb::tests::test_validate_segments_sequential ... ok
[INFO] [stdout] test par2::tests::test_packet_type_creator ... ok
[INFO] [stdout] test par2::tests::test_packet_type_ifsc ... ok
[INFO] [stdout] test par2::tests::test_packet_type_main ... ok
[INFO] [stdout] test par2::tests::test_packet_type_unknown ... ok
[INFO] [stdout] test par2::tests::test_packet_type_recovery_slice ... ok
[INFO] [stdout] test par2::tests::test_par2_magic ... ok
[INFO] [stdout] test par2::tests::test_par2file_new ... ok
[INFO] [stdout] test par2::tests::test_par2file_recovery_slice_count ... ok
[INFO] [stdout] test par2::tests::test_packet_type_file_description ... ok
[INFO] [stdout] test par2::parsing::tests::test_parse_recovery_slice_packet ... ok
[INFO] [stdout] test par2::tests::test_merge_recovery_slices_different_set_id ... ok
[INFO] [stdout] test nzb::tests::test_validate_segments_missing ... ok
[INFO] [stdout] test par2::tests::test_par2file_slice_size ... ok
[INFO] [stdout] test par2::verification::tests::test_file_status_complete ... ok
[INFO] [stdout] test par2::verification::tests::test_file_status_damaged ... ok
[INFO] [stdout] test par2::verification::tests::test_file_status_missing ... ok
[INFO] [stdout] test par2::verification::tests::test_map_slices_empty_files ... ok
[INFO] [stdout] test par2::verification::tests::test_map_slices_no_main_packet ... ok
[INFO] [stdout] test par2::verification::tests::test_map_slices_single_file ... ok
[INFO] [stdout] test par2::verification::tests::test_verify_all_no_files ... ok
[INFO] [stdout] test par2::verification::tests::test_verify_file_missing ... ok
[INFO] [stdout] test par2::verification::tests::test_verify_file_size_mismatch ... ok
[INFO] [stdout] test pool::tests::test_connection_manager_creation ... ok
[INFO] [stdout] test pool::tests::test_retry_config_no_retry ... ok
[INFO] [stdout] test pool::tests::test_retry_config_with_max_retries ... ok
[INFO] [stdout] test pool::tests::test_retry_config_default ... ok
[INFO] [stdout] test ratelimit::tests::test_bandwidth_limiter_burst ... ok
[INFO] [stdout] test ratelimit::tests::test_bandwidth_limiter_basic ... ok
[INFO] [stdout] test response::tests::test_is_error ... ok
[INFO] [stdout] test response::tests::test_is_success ... ok
[INFO] [stdout] test sasl::tests::test_decode_empty_marker ... ok
[INFO] [stdout] test sasl::tests::test_decode_invalid_base64 ... ok
[INFO] [stdout] test ratelimit::tests::test_connection_limiter_concurrent ... ok
[INFO] [stdout] test sasl::tests::test_padding_at_end_only ... ok
[INFO] [stdout] test sasl::tests::test_decode_valid_base64 ... ok
[INFO] [stdout] test ratelimit::tests::test_bandwidth_limiter_config ... ok
[INFO] [stdout] test sasl::tests::test_base64_alphabet_only ... ok
[INFO] [stdout] test sasl::tests::test_roundtrip_encoding ... ok
[INFO] [stdout] test segments::tests::test_fetch_config_default ... ok
[INFO] [stdout] test ratelimit::tests::test_connection_limiter_basic ... ok
[INFO] [stdout] test ratelimit::tests::test_connection_limiter_max ... ok
[INFO] [stdout] test ratelimit::tests::test_connection_limiter_release ... ok
[INFO] [stdout] test response::tests::test_boundary_codes ... ok
[INFO] [stdout] test sasl::tests::test_encode_empty_data ... ok
[INFO] [stdout] test sasl::tests::test_encode_non_empty_data ... ok
[INFO] [stdout] test segments::tests::test_fetch_progress_new ... ok
[INFO] [stdout] test segments::tests::test_fetch_progress_segment_percent_complete ... ok
[INFO] [stdout] test segments::tests::test_fetch_progress_percent_complete ... ok
[INFO] [stdout] test segments::tests::test_fetch_progress_zero_total ... ok
[INFO] [stdout] test segments::tests::test_segment_fetch_result_clone ... ok
[INFO] [stdout] test segments::tests::test_fetch_progress_is_complete ... ok
[INFO] [stdout] test segments::tests::test_segment_status_equality ... ok
[INFO] [stdout] test servers::tests::test_group_stats ... ok
[INFO] [stdout] test servers::tests::test_atomic_server_stats ... ok
[INFO] [stdout] test servers::tests::test_server_stats_availability_score ... ok
[INFO] [stdout] test servers::tests::test_server_stats_consecutive_failures_reset ... ok
[INFO] [stdout] test servers::tests::test_server_stats_is_degraded ... ok
[INFO] [stdout] test validation::tests::test_parse_date_various_timezones ... ok
[INFO] [stdout] test validation::tests::test_validate_date_future_allowed ... ok
[INFO] [stdout] test validation::tests::test_validate_date_current ... ok
[INFO] [stdout] test servers::tests::test_server_stats_record_failure ... ok
[INFO] [stdout] test validation::tests::test_validate_date_future_rejected ... ok
[INFO] [stdout] test servers::tests::test_server_stats_record_not_found ... ok
[INFO] [stdout] test servers::tests::test_server_stats_record_success ... ok
[INFO] [stdout] test servers::tests::test_failover_strategy_equality ... ok
[INFO] [stdout] test servers::tests::test_server_stats_new ... ok
[INFO] [stdout] test validation::tests::test_parse_date_gmt_variant ... ok
[INFO] [stdout] test validation::tests::test_parse_date_rfc5322 ... ok
[INFO] [stdout] test validation::tests::test_validate_date_old_within_limit ... ok
[INFO] [stdout] test validation::tests::test_validate_date_no_age_limit ... ok
[INFO] [stdout] test validation::tests::test_validate_date_too_old ... ok
[INFO] [stdout] test validation::tests::test_validate_message_id_missing_at ... ok
[INFO] [stdout] test validation::tests::test_validate_message_id_empty_parts ... ok
[INFO] [stdout] test validation::tests::test_validate_message_id_missing_brackets ... ok
[INFO] [stdout] test validation::tests::test_validate_message_id_multiple_at ... ok
[INFO] [stdout] test validation::tests::test_validate_newsgroup_empty ... ok
[INFO] [stdout] test validation::tests::test_validate_message_id_whitespace ... ok
[INFO] [stdout] test validation::tests::test_validate_newsgroup_empty_component ... ok
[INFO] [stdout] test validation::tests::test_validate_newsgroup_leading_trailing_dot ... ok
[INFO] [stdout] test validation::tests::test_validate_newsgroup_invalid_chars ... ok
[INFO] [stdout] test validation::tests::test_validate_newsgroup_valid ... ok
[INFO] [stdout] test validation::tests::test_validation_config_default ... ok
[INFO] [stdout] test validation::tests::test_validation_config_lenient ... ok
[INFO] [stdout] test validation::tests::test_validation_config_custom ... ok
[INFO] [stdout] test validation::tests::test_validation_config_strict ... ok
[INFO] [stdout] test yenc::tests::test_assembler_getters ... ok
[INFO] [stdout] test yenc::tests::test_assembler_duplicate_part ... ok
[INFO] [stdout] test yenc::tests::test_assembler_missing_parts ... ok
[INFO] [stdout] test yenc::tests::test_assembler_inconsistent_metadata ... ok
[INFO] [stdout] test yenc::tests::test_assembler_single_part_rejected ... ok
[INFO] [stdout] test yenc::tests::test_assembler_overlapping_ranges ... ok
[INFO] [stdout] test yenc::tests::test_assembler_with_all_byte_values ... ok
[INFO] [stdout] test yenc::tests::test_decode_line_basic ... ok
[INFO] [stdout] test yenc::tests::test_assembler_three_parts_out_of_order ... ok
[INFO] [stdout] test validation::tests::test_validate_message_id_valid ... ok
[INFO] [stdout] test yenc::tests::test_assembler_two_parts ... ok
[INFO] [stdout] test yenc::tests::test_encode_all_bytes ... ok
[INFO] [stdout] test yenc::tests::test_decode_line_with_escape ... ok
[INFO] [stdout] test yenc::tests::test_decode_simple ... ok
[INFO] [stdout] test yenc::tests::test_decode_multipart ... ok
[INFO] [stdout] test yenc::tests::test_encode_empty ... ok
[INFO] [stdout] test yenc::tests::test_assembler_large_multipart ... ok
[INFO] [stdout] test yenc::tests::test_encode_decode_round_trip ... ok
[INFO] [stdout] test yenc::tests::test_encode_line_length ... ok
[INFO] [stdout] test yenc::tests::test_encode_invalid_line_length ... ok
[INFO] [stdout] test yenc::tests::test_encode_with_tab_and_space ... ok
[INFO] [stdout] test yenc::tests::test_encode_simple ... ok
[INFO] [stdout] test yenc::tests::test_is_critical_byte ... ok
[INFO] [stdout] test yenc::tests::test_parse_ybegin_multipart ... ok
[INFO] [stdout] test yenc::tests::test_parse_yenc_params ... ok
[INFO] [stdout] test yenc::tests::test_encode_multipart ... ok
[INFO] [stdout] test yenc::tests::test_parse_ybegin_simple ... ok
[INFO] [stdout] test yenc::tests::test_encode_with_critical_bytes ... ok
[INFO] [stdout] test yenc::tests::test_parse_yend ... ok
[INFO] [stdout] test yenc::tests::test_parse_ypart ... ok
[INFO] [stdout] test yenc::tests::test_encode_large_data ... ok
[INFO] [stdout] test response::tests::test_is_continuation ... ok
[INFO] [stdout] test validation::tests::test_parse_date_invalid ... ok
[INFO] [stdout] test yenc::tests::test_decode_with_escape ... ok
[INFO] [stdout] test cache::tests::test_cache_zero_size_panics - should panic ... ok
[INFO] [stdout] test ratelimit::tests::test_bandwidth_limiter_refill ... ok
[INFO] [stdout] test ratelimit::tests::test_bandwidth_limiter_rate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 253 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.65s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/auth_integration_test.rs (/opt/rustwide/target/debug/deps/auth_integration_test-95f787dd3dd7b6a7)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test test_auth_required_commands_blocked_when_not_authenticated ... ignored
[INFO] [stdout] test test_auth_required_commands_work_when_authenticated ... ignored
[INFO] [stdout] test test_connection_closed_state ... ignored
[INFO] [stdout] test test_double_authentication_rejected ... ignored
[INFO] [stdout] test test_failed_authentication_stays_unauthenticated ... ignored
[INFO] [stdout] test test_initial_state_not_authenticated ... ignored
[INFO] [stdout] test test_retry_after_authentication_failure ... ignored
[INFO] [stdout] test test_sasl_authentication_sets_state ... ignored
[INFO] [stdout] test test_sasl_double_authentication_rejected ... ignored
[INFO] [stdout] test test_successful_authentication_sets_state ... ignored
[INFO] [stdout] test test_document_authentication_state_flow ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 10 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_test.rs (/opt/rustwide/target/debug/deps/integration_test-beaa87d2f2823b3e)
[INFO] [stdout] running 7 tests
[INFO] [stdout] test test_retry_config_with_max_retries ... ok
[INFO] [stdout] test test_retry_config_no_retry ... ok
[INFO] [stdout] test test_error_display ... ok
[INFO] [stdout] test test_server_config_creation ... ok
[INFO] [stdout] test test_server_config_plain_helper ... ok
[INFO] [stdout] test test_server_config_tls_helper ... ok
[INFO] [stdout] test test_retry_config_default ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/live_integration_test.rs (/opt/rustwide/target/debug/deps/live_integration_test-38b58c41f04ff24b)
[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/pipelining_test.rs (/opt/rustwide/target/debug/deps/pipelining_test-3dc4c231fe971f5a)
[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/rfc3977.rs (/opt/rustwide/target/debug/deps/rfc3977-d726b145a37ba5a4)
[INFO] [stdout] 
[INFO] [stdout] running 595 tests
[INFO] [stdout] test rfc3977::capabilities::test_capabilities_with_keyword_format ... ok
[INFO] [stdout] test rfc3977::capabilities::test_capabilities_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::capabilities::test_capabilities_command_format ... ok
[INFO] [stdout] test rfc3977::capabilities::test_capabilities_with_multiple_spaces ... ok
[INFO] [stdout] test rfc3977::capabilities::test_capabilities_with_tabs ... ok
[INFO] [stdout] test rfc3977::capabilities::test_capability_list_response_code ... ok
[INFO] [stdout] test rfc3977::capabilities::test_capability_response_is_not_success ... ok
[INFO] [stdout] test rfc3977::capabilities::test_get_args_returns_none_for_missing_capability ... ok
[INFO] [stdout] test rfc3977::capabilities::test_has_arg_case_insensitive ... ok
[INFO] [stdout] test rfc3977::capabilities::test_has_arg_checks_specific_argument ... ok
[INFO] [stdout] test rfc3977::capabilities::test_parse_capabilities_case_insensitive ... ok
[INFO] [stdout] test rfc3977::capabilities::test_parse_capabilities_empty_response ... ok
[INFO] [stdout] test rfc3977::capabilities::test_parse_capabilities_minimal_server ... ok
[INFO] [stdout] test rfc3977::capabilities::test_parse_capabilities_response_basic ... ok
[INFO] [stdout] test rfc3977::capabilities::test_parse_capabilities_with_arguments ... ok
[INFO] [stdout] test rfc3977::capabilities::test_parse_capabilities_typical_usenet_provider ... ok
[INFO] [stdout] test rfc3977::commands::test_all_commands_end_with_crlf ... ok
[INFO] [stdout] test rfc3977::capabilities::test_parse_capabilities_with_empty_lines ... ok
[INFO] [stdout] test rfc3977::commands::test_article_command_with_message_id ... ok
[INFO] [stdout] test rfc3977::commands::test_article_command_with_number ... ok
[INFO] [stdout] test rfc3977::commands::test_authinfo_user_format ... ok
[INFO] [stdout] test rfc3977::capabilities::test_capability_no_arguments ... ok
[INFO] [stdout] test rfc3977::commands::test_authinfo_pass_with_special_chars ... ok
[INFO] [stdout] test rfc3977::capabilities::test_list_returns_all_capabilities ... ok
[INFO] [stdout] test rfc3977::capabilities::test_has_arg_missing_capability ... ok
[INFO] [stdout] test rfc3977::commands::test_authinfo_user_with_spaces ... ok
[INFO] [stdout] test rfc3977::commands::test_command_under_512_octets ... ok
[INFO] [stdout] test rfc3977::commands::test_commands_only_one_crlf ... ok
[INFO] [stdout] test rfc3977::commands::test_compress_deflate_format ... ok
[INFO] [stdout] test rfc3977::commands::test_group_command_simple ... ok
[INFO] [stdout] test rfc3977::commands::test_long_group_name_command_length ... ok
[INFO] [stdout] test rfc3977::commands::test_long_message_id_command_length ... ok
[INFO] [stdout] test rfc3977::commands::test_xfeature_compress_gzip_format ... ok
[INFO] [stdout] test rfc3977::commands::test_xover_range ... ok
[INFO] [stdout] test rfc3977::commands::test_xover_single_article ... ok
[INFO] [stdout] test rfc3977::errors::test_4xx_codes_are_errors ... ok
[INFO] [stdout] test rfc3977::errors::test_5xx_codes_are_errors ... ok
[INFO] [stdout] test rfc3977::commands::test_keywords_are_uppercase ... ok
[INFO] [stdout] test rfc3977::errors::test_all_error_code_constants ... ok
[INFO] [stdout] test rfc3977::commands::test_all_new_commands_end_with_crlf ... ok
[INFO] [stdout] test rfc3977::errors::test_boundary_between_continuation_and_error ... ok
[INFO] [stdout] test rfc3977::errors::test_error_400_service_unavailable ... ok
[INFO] [stdout] test rfc3977::errors::test_error_411_no_such_group ... ok
[INFO] [stdout] test rfc3977::errors::test_error_412_no_group_selected ... ok
[INFO] [stdout] test rfc3977::errors::test_error_420_no_current_article ... ok
[INFO] [stdout] test rfc3977::errors::test_error_421_no_next_article ... ok
[INFO] [stdout] test rfc3977::errors::test_error_422_no_previous_article ... ok
[INFO] [stdout] test rfc3977::errors::test_error_423_no_such_article_number ... ok
[INFO] [stdout] test rfc3977::errors::test_error_430_no_such_article_id ... ok
[INFO] [stdout] test rfc3977::errors::test_error_481_auth_rejected ... ok
[INFO] [stdout] test rfc3977::errors::test_error_482_auth_out_of_sequence ... ok
[INFO] [stdout] test rfc3977::errors::test_error_483_encryption_required ... ok
[INFO] [stdout] test rfc3977::errors::test_error_500_command_not_recognized ... ok
[INFO] [stdout] test rfc3977::errors::test_error_501_syntax_error ... ok
[INFO] [stdout] test rfc3977::errors::test_error_502_access_denied ... ok
[INFO] [stdout] test rfc3977::errors::test_error_503_feature_not_supported ... ok
[INFO] [stdout] test rfc3977::errors::test_nntp_error_auth_failed ... ok
[INFO] [stdout] test rfc3977::errors::test_nntp_error_connection_closed ... ok
[INFO] [stdout] test rfc3977::errors::test_nntp_error_invalid_response ... ok
[INFO] [stdout] test rfc3977::errors::test_nntp_error_no_such_group ... ok
[INFO] [stdout] test rfc3977::errors::test_nntp_error_no_such_article ... ok
[INFO] [stdout] test rfc3977::errors::test_nntp_error_protocol ... ok
[INFO] [stdout] test rfc3977::errors::test_nntp_error_timeout ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_411_no_such_group ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_deep_hierarchy_group ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_extra_whitespace ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_group_name_with_numbers ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_large_numbers ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_empty_group_high_less_than_low ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_leading_zeros ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_empty_message ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_missing_parts ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_negative_numbers_invalid ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_non_2xx_code ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_non_numeric_count ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_non_numeric_first ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_non_numeric_last ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_single_article ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_standard_format ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_u64_max_values ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_whitespace_only ... ok
[INFO] [stdout] test rfc3977::group::test_group_response_zero_articles ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_binary_newsgroup_subjects ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_command_uppercase ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_case_sensitive_header_names ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_current_command_format ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_command_format_message_id ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_command_format_basic ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_command_format_single_article ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_empty_header_values ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_error_code_412_no_group ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_error_code_420_no_current ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_error_code_423_no_article ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_error_code_430_no_message_id ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_from_field_various_formats ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_sparse_article_numbers ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_range_variants ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_lines_and_bytes_metadata ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_response_code_225 ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_error_code_502_not_supported ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_xref_field ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_basic ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_email_address ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_empty_value ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_invalid_article_number ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_large_article_number ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_message_id ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_negative_number ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_various_header_fields ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_zero_article_number ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_with_spaces ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_response_protocol_error ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_only_spaces ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_response_skips_malformed ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_special_characters ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_date ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_response_empty ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_invalid_no_space ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_empty ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_references_field ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_response_success_multiple ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_response_success_single ... ok
[INFO] [stdout] test rfc3977::hdr::test_rfc_3977_example_subject_range ... ok
[INFO] [stdout] test rfc3977::help::test_help_authentication_may_be_required ... ok
[INFO] [stdout] test rfc3977::help::test_help_code_constant_value ... ok
[INFO] [stdout] test rfc3977::help::test_help_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::help::test_help_command_format ... ok
[INFO] [stdout] test rfc3977::help::test_help_command_no_arguments ... ok
[INFO] [stdout] test rfc3977::help::test_help_command_uppercase ... ok
[INFO] [stdout] test rfc3977::hdr::test_rfc_3977_example_message_id_query ... ok
[INFO] [stdout] test rfc3977::help::test_help_detailed_server_response ... ok
[INFO] [stdout] test rfc3977::help::test_help_empty_help_text ... ok
[INFO] [stdout] test rfc3977::help::test_help_empty_lines_preserved ... ok
[INFO] [stdout] test rfc3977::help::test_help_error_response_is_error ... ok
[INFO] [stdout] test rfc3977::help::test_help_minimal_server_response ... ok
[INFO] [stdout] test rfc3977::help::test_help_response_has_multiline_data ... ok
[INFO] [stdout] test rfc3977::help::test_help_response_message_contains_help ... ok
[INFO] [stdout] test rfc3977::help::test_help_typical_response ... ok
[INFO] [stdout] test rfc3977::help::test_help_unicode_in_help_text ... ok
[INFO] [stdout] test rfc3977::help::test_help_with_server_info ... ok
[INFO] [stdout] test rfc3977::help::test_help_very_long_help_text ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_binary_post_scenario ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_command_format ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_command_uppercase ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_command_unavailable ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_duplicate_detection ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_empty_message_id ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_protocol_error ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_message_id_without_brackets ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_response_335_send_article ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_response_235_transferred ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_response_435_not_wanted ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_rfc_example_not_wanted ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_rfc_example_success ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_rfc_example_transfer_failed ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_response_437_rejected ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_response_436_failed ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_no_retry_logic ... ok
[INFO] [stdout] test rfc3977::help::test_help_response_code_100 ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_response_436_not_possible ... ok
[INFO] [stdout] test rfc3977::help::test_help_response_is_informational ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_retry_logic ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_very_long_message_id ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_server_to_server_workflow ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_wrong_continuation_code ... ok
[INFO] [stdout] test rfc3977::list::test_active_group_struct_fields ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_message_id_with_spaces ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_command_format ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_with_binary_message_id ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_all_groups ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_command_uppercase ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_extra_whitespace ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_group_name_with_hyphen ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_high_equals_low ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_group_with_dots ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_vs_post_distinction ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_response_code_215 ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_code_constant_value ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_no_such_newsgroup_pattern ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_status_default_on_empty ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_response_is_success ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_times_special_characters_in_group_name ... ok
[INFO] [stdout] test rfc3977::ihave::test_ihave_with_complex_message_id ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_large_numbers ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_with_wildmat ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_typical_server_response ... ok
[INFO] [stdout] test rfc3977::list::test_list_headers_command_uppercase ... ok
[INFO] [stdout] test rfc3977::list::test_list_headers_command_format ... ok
[INFO] [stdout] test rfc3977::list::test_list_headers_msgid_command_format ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_times_command_format ... ok
[INFO] [stdout] test rfc3977::list::test_list_headers_range_command_format ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_many_groups ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_times_command_uppercase ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_times_command_with_wildmat ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_times_wrong_response_code ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_command_unavailable ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_times_real_world_example ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_command_format ... ok
[INFO] [stdout] test rfc3977::list::test_list_headers_real_world_range_example ... ok
[INFO] [stdout] test rfc3977::list::test_list_headers_real_world_msgid_example ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_command_unavailable ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_extra_spaces_in_description ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_group_with_dots ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_long_description ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_response_code_215 ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_many_groups ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_no_matching_pattern ... ok
[INFO] [stdout] test rfc3977::list::test_list_active_response_has_multiline_data ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_response_is_success ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_all_groups ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_response_has_multiline_data ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_with_wildmat ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_article_numbers ... ok
[INFO] [stdout] test rfc3977::list::test_list_overview_fmt_case_sensitivity ... ok
[INFO] [stdout] test rfc3977::list::test_list_overview_fmt_command_format ... ok
[INFO] [stdout] test rfc3977::list::test_list_overview_fmt_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_very_large_response ... ok
[INFO] [stdout] test rfc3977::list::test_list_overview_fmt_command_uppercase ... ok
[INFO] [stdout] test rfc3977::list::test_list_overview_fmt_real_world_example ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_invalid_numbers_defaults_to_zero ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_malformed_line_skipped ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_multiple_groups ... ok
[INFO] [stdout] test rfc3977::list::test_newsgroup_info_struct_fields ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_times_creator_with_spaces ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_times_empty_response ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_times_large_timestamp ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_status_codes ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_protocol_error ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_times_single_group ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_single_group ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_times_protocol_error ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_times_multiple_groups ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_headers_response_many_headers ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_times_malformed_line_skipped ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_headers_response_preserves_case ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_headers_response_protocol_error ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_times_zero_timestamp ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_times_invalid_timestamp ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_headers_response_empty ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_headers_response_rfc_example ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_headers_response_special_characters ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_headers_response_success ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_newsgroups_description_with_multiple_words ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_headers_response_with_colon_special ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_headers_response_with_metadata ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_headers_response_wrong_code ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_newsgroups_empty_description ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_newsgroups_empty_list ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_newsgroups_description_with_special_chars ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_newsgroups_protocol_error ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_newsgroups_single_group ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_overview_fmt_response_alternative_bytes_lines ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_newsgroups_malformed_line_skipped ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_overview_fmt_response_extended ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_overview_fmt_response_preserves_whitespace ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_overview_fmt_response_minimal ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_overview_fmt_response_protocol_error ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_overview_fmt_response_with_full_suffix ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_overview_fmt_response_success ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_command_binary_group ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_newsgroups_multiple_groups ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_overview_fmt_response_preserves_field_order ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_overview_fmt_response_empty ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_command_ends_with_crlf_range ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_command_format_basic ... ok
[INFO] [stdout] test rfc3977::hdr::test_parse_hdr_line_unicode ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_command_range_closed ... ok
[INFO] [stdout] test rfc3977::hdr::test_hdr_all_malformed_lines ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_command_ends_with_crlf_basic ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_command_range_open_ended ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_command_format_with_range ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_moderated_group ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_empty_group ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_command_range_uppercase ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_large_numbers ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_command_range_up_to ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_command_uppercase ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_leading_whitespace ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_malformed_article_numbers ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_multiple_articles ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_duplicate_numbers ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_range_subset ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_protocol_error ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_no_such_group ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_single_range ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_range_no_matches ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_rfc_example ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_sparse_articles ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_u64_max_article ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_wrong_code ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_authentication_required_error ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_command_format ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_command_uppercase ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_minimal_message ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_posting_server_response ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_read_only_server_response ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_response_codes_are_success ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_response_codes_distinct ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_response_has_no_multiline_data ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_error_response_is_error ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_response_posting_allowed ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_typical_no_posting_message ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_typical_posting_allowed_message ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_usenet_provider_no_posting ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_usenet_provider_posting_allowed ... ok
[INFO] [stdout] test rfc3977::multiline::test_bare_cr_handling ... ok
[INFO] [stdout] test rfc3977::errors::test_error_403_internal_fault ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_response_no_posting ... ok
[INFO] [stdout] test rfc3977::multiline::test_crlf_multiline_article ... ok
[INFO] [stdout] test rfc3977::mode::test_mode_reader_verbose_message ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_very_long_list ... ok
[INFO] [stdout] test rfc3977::multiline::test_crlf_multiline_empty_body ... ok
[INFO] [stdout] test rfc3977::multiline::test_crlf_multiline_article_with_empty_line ... ok
[INFO] [stdout] test rfc3977::multiline::test_crlf_multiline_with_dot_stuffing ... ok
[INFO] [stdout] test rfc3977::multiline::test_crlf_multiline_with_empty_lines ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_overview_fmt_response_wrong_code ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_binary_newsgroup_typical ... ok
[INFO] [stdout] test rfc3977::multiline::test_crlf_preserved_in_content ... ok
[INFO] [stdout] test rfc3977::multiline::test_crlf_terminator_format ... ok
[INFO] [stdout] test rfc3977::multiline::test_dot_stuffing_dot_in_middle_unchanged ... ok
[INFO] [stdout] test rfc3977::multiline::test_dot_stuffing_double_dot_becomes_single ... ok
[INFO] [stdout] test rfc3977::multiline::test_dot_stuffing_double_dot_with_text ... ok
[INFO] [stdout] test rfc3977::multiline::test_dot_stuffing_only_first_dot_pair ... ok
[INFO] [stdout] test rfc3977::multiline::test_dot_stuffing_dot_at_end_unchanged ... ok
[INFO] [stdout] test rfc3977::multiline::test_dot_stuffing_single_dot_is_terminator ... ok
[INFO] [stdout] test rfc3977::multiline::test_crlf_multiline_basic ... ok
[INFO] [stdout] test rfc3977::multiline::test_dot_stuffing_quad_dot_becomes_triple ... ok
[INFO] [stdout] test rfc3977::multiline::test_dot_stuffing_single_dot_not_unstuffed ... ok
[INFO] [stdout] test rfc3977::multiline::test_dot_stuffing_preserves_non_dot_lines ... ok
[INFO] [stdout] test rfc3977::multiline::test_dot_stuffing_triple_dot_becomes_double ... ok
[INFO] [stdout] test rfc3977::multiline::test_dot_stuffing_with_leading_spaces ... ok
[INFO] [stdout] test rfc3977::multiline::test_mixed_line_endings ... ok
[INFO] [stdout] test rfc3977::multiline::test_multiline_article_simulation ... ok
[INFO] [stdout] test rfc3977::multiline::test_multiline_dot_only_line_after_content ... ok
[INFO] [stdout] test rfc3977::multiline::test_multiline_empty_lines_preserved ... ok
[INFO] [stdout] test rfc3977::multiline::test_multiline_multiple_dot_lines ... ok
[INFO] [stdout] test rfc3977::multiline::test_multiline_only_terminator ... ok
[INFO] [stdout] test rfc3977::multiline::test_multiline_simple_body ... ok
[INFO] [stdout] test rfc3977::multiline::test_multiline_with_dot_stuffed_lines ... ok
[INFO] [stdout] test rfc3977::multiline::test_multiline_xover_line_simulation ... ok
[INFO] [stdout] test rfc3977::multiline::test_rfc_requirement_no_nul_in_lines ... ok
[INFO] [stdout] test rfc3977::navigation::test_last_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::navigation::test_last_command_format ... ok
[INFO] [stdout] test rfc3977::navigation::test_last_command_no_arguments ... ok
[INFO] [stdout] test rfc3977::navigation::test_last_command_uppercase ... ok
[INFO] [stdout] test rfc3977::multiline::test_rfc_requirement_terminator_not_included_in_data ... ok
[INFO] [stdout] test rfc3977::navigation::test_last_response_binary_newsgroup_navigation ... ok
[INFO] [stdout] test rfc3977::navigation::test_last_response_typical_server_response ... ok
[INFO] [stdout] test rfc3977::navigation::test_next_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::navigation::test_next_command_uppercase ... ok
[INFO] [stdout] test rfc3977::navigation::test_next_response_binary_newsgroup_navigation ... ok
[INFO] [stdout] test rfc3977::navigation::test_next_response_typical_server_response ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_basic ... ok
[INFO] [stdout] test rfc3977::navigation::test_next_command_format ... ok
[INFO] [stdout] test rfc3977::navigation::test_next_command_no_arguments ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_complex_message_id ... ok
[INFO] [stdout] test rfc3977::navigation::test_next_sequential_navigation ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_extra_whitespace ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_malformed_invalid_article_number ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_malformed_missing_message_id ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_message_id_with_spaces ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_no_current_article ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_no_group_selected ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_no_previous_article ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_protocol_error ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_rfc_example ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_sequential_navigation ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_sparse_navigation ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_very_large_article_number ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_last_response_wrong_success_code ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_basic ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_complex_message_id ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_extra_whitespace ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_malformed_invalid_article_number ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_malformed_missing_message_id ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_message_id_with_spaces ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_no_current_article ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_no_group_selected ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_no_next_article ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_protocol_error ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_rfc_example ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_sequential_article ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_sparse_articles ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_very_large_article_number ... ok
[INFO] [stdout] test rfc3977::navigation::test_parse_next_response_wrong_success_code ... ok
[INFO] [stdout] test rfc3977::newgroups::test_newgroups_binary_newsgroups ... ok
[INFO] [stdout] test rfc3977::newgroups::test_newgroups_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::newgroups::test_newgroups_command_format ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_typical_server_response ... ok
[INFO] [stdout] test rfc3977::newgroups::test_newgroups_command_uppercase ... ok
[INFO] [stdout] test rfc3977::newgroups::test_newgroups_date_boundaries ... ok
[INFO] [stdout] test rfc3977::newgroups::test_newgroups_error_code_handling ... ok
[INFO] [stdout] test rfc3977::newgroups::test_newgroups_gmt_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::newgroups::test_newgroups_gmt_command_format ... ok
[INFO] [stdout] test rfc3977::newgroups::test_newgroups_gmt_has_gmt_flag ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_all_malformed ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_extra_whitespace ... ok
[INFO] [stdout] test rfc3977::newgroups::test_newgroups_hierarchical_names ... ok
[INFO] [stdout] test rfc3977::newgroups::test_newgroups_success_code_231 ... ok
[INFO] [stdout] test rfc3977::newgroups::test_newgroups_typical_server_response ... ok
[INFO] [stdout] test rfc3977::newgroups::test_newgroups_various_dates ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_empty_response ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_invalid_numbers_default_to_zero ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_large_article_numbers ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_malformed_line_skipped ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_moderated_groups ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_protocol_error ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_rfc_example ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_single_group ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_success ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_various_statuses ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_zero_article_numbers ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_wrong_success_code ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_binary_newsgroup_pattern ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_command_format ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_command_uppercase ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_date_boundary ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_gmt_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_error_codes ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_gmt_command_format ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_gmt_has_gmt_flag ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_hierarchy_pattern ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_command_uppercase ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_description_with_tabs ... ok
[INFO] [stdout] test rfc3977::list::test_parse_list_active_empty_list ... ok
[INFO] [stdout] test rfc3977::listgroup::test_listgroup_response_single_article ... ok
[INFO] [stdout] test rfc3977::navigation::test_last_sequential_navigation ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_rfc_example ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_success_code ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_various_dates ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_very_long_message_id ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_very_long_list ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_wildmat_patterns ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_all_newsgroups_pattern ... ok
[INFO] [stdout] test rfc3977::newnews::test_parse_newnews_complex_message_ids ... ok
[INFO] [stdout] test rfc3977::newgroups::test_parse_newgroups_very_long_list ... ok
[INFO] [stdout] test rfc3977::newnews::test_parse_newnews_empty_lines_filtered ... ok
[INFO] [stdout] test rfc3977::newnews::test_newnews_typical_server_response ... ok
[INFO] [stdout] test rfc3977::newnews::test_parse_newnews_empty_response ... ok
[INFO] [stdout] test rfc3977::newnews::test_parse_newnews_success ... ok
[INFO] [stdout] test rfc3977::newnews::test_parse_newnews_whitespace_handling ... ok
[INFO] [stdout] test rfc3977::newnews::test_parse_newnews_wrong_success_code ... ok
[INFO] [stdout] test rfc3977::over::test_over_binary_newsgroup_article ... ok
[INFO] [stdout] test rfc3977::over::test_over_binary_newsgroup_overview ... ok
[INFO] [stdout] test rfc3977::over::test_over_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::over::test_over_command_format_current_article ... ok
[INFO] [stdout] test rfc3977::over::test_over_command_format_single_article ... ok
[INFO] [stdout] test rfc3977::newnews::test_parse_newnews_protocol_error ... ok
[INFO] [stdout] test rfc3977::newnews::test_parse_newnews_single_article ... ok
[INFO] [stdout] test rfc3977::over::test_over_command_format_with_range ... ok
[INFO] [stdout] test rfc3977::over::test_over_command_uppercase ... ok
[INFO] [stdout] test rfc3977::over::test_over_command_format_with_message_id ... ok
[INFO] [stdout] test rfc3977::over::test_over_current_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::over::test_over_current_article_usage ... ok
[INFO] [stdout] test rfc3977::over::test_over_empty_response ... ok
[INFO] [stdout] test rfc3977::over::test_over_message_id_zero_article_number ... ok
[INFO] [stdout] test rfc3977::over::test_over_mixed_line_formats ... ok
[INFO] [stdout] test rfc3977::over::test_over_no_current_article_420 ... ok
[INFO] [stdout] test rfc3977::over::test_over_multiple_articles ... ok
[INFO] [stdout] test rfc3977::over::test_over_no_group_selected_412 ... ok
[INFO] [stdout] test rfc3977::over::test_over_no_such_article_id_430 ... ok
[INFO] [stdout] test rfc3977::over::test_over_no_such_article_423 ... ok
[INFO] [stdout] test rfc3977::over::test_over_range_up_to ... ok
[INFO] [stdout] test rfc3977::over::test_over_rfc_example ... ok
[INFO] [stdout] test rfc3977::over::test_over_range_open_ended ... ok
[INFO] [stdout] test rfc3977::over::test_over_success_response_224 ... ok
[INFO] [stdout] test rfc3977::over::test_over_range_formats ... ok
[INFO] [stdout] test rfc3977::over::test_over_protocol_error_500 ... ok
[INFO] [stdout] test rfc3977::over::test_over_sparse_article_numbers ... ok
[INFO] [stdout] test rfc3977::over::test_over_whitespace_in_fields ... ok
[INFO] [stdout] test rfc3977::over::test_over_wrong_success_code ... ok
[INFO] [stdout] test rfc3977::parsing::test_response_1xx_informational ... ok
[INFO] [stdout] test rfc3977::parsing::test_response_boundary_codes ... ok
[INFO] [stdout] test rfc3977::parsing::test_response_codes_constants ... ok
[INFO] [stdout] test rfc3977::parsing::test_response_is_continuation ... ok
[INFO] [stdout] test rfc3977::parsing::test_response_is_error_4xx ... ok
[INFO] [stdout] test rfc3977::parsing::test_response_is_error_5xx ... ok
[INFO] [stdout] test rfc3977::parsing::test_response_is_success ... ok
[INFO] [stdout] test rfc3977::parsing::test_response_with_multiline ... ok
[INFO] [stdout] test rfc3977::post::test_post_article_posted_response_code ... ok
[INFO] [stdout] test rfc3977::post::test_post_binary_content_forbidden ... ok
[INFO] [stdout] test rfc3977::post::test_post_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::post::test_post_command_format ... ok
[INFO] [stdout] test rfc3977::post::test_post_protocol_flow_failed ... ok
[INFO] [stdout] test rfc3977::post::test_post_command_no_arguments ... ok
[INFO] [stdout] test rfc3977::post::test_post_dot_stuffing_requirement ... ok
[INFO] [stdout] test rfc3977::post::test_post_error_response_codes ... ok
[INFO] [stdout] test rfc3977::over::test_over_threaded_discussion ... ok
[INFO] [stdout] test rfc3977::post::test_post_command_uppercase ... ok
[INFO] [stdout] test rfc3977::post::test_post_protocol_flow_success ... ok
[INFO] [stdout] test rfc3977::post::test_post_protocol_flow_not_permitted ... ok
[INFO] [stdout] test rfc3977::post::test_post_rfc_example_format ... ok
[INFO] [stdout] test rfc3977::post::test_post_send_article_response_code ... ok
[INFO] [stdout] test rfc3977::over::test_over_very_large_range ... ok
[INFO] [stdout] test rfc3977::post::test_post_minimal_article ... ok
[INFO] [stdout] test rfc3977::post::test_post_terminating_dot_line ... ok
[INFO] [stdout] test rfc3977::post::test_post_to_multiple_newsgroups ... ok
[INFO] [stdout] test rfc3977::post::test_post_unicode_content ... ok
[INFO] [stdout] test rfc3977::post::test_post_with_followup_to ... ok
[INFO] [stdout] test rfc3977::post::test_post_with_references ... ok
[INFO] [stdout] test rfc3977::response::test_response_101_capability_list ... ok
[INFO] [stdout] test rfc3977::post::test_post_posting_failed_response_code ... ok
[INFO] [stdout] test rfc3977::post::test_post_posting_not_permitted_response_code ... ok
[INFO] [stdout] test rfc3977::response::test_response_111_server_date ... ok
[INFO] [stdout] test rfc3977::response::test_response_111_with_optional_text ... ok
[INFO] [stdout] test rfc3977::post::test_post_very_large_article ... ok
[INFO] [stdout] test rfc3977::response::test_response_1xx_informative_codes ... ok
[INFO] [stdout] test rfc3977::response::test_response_100_help_text ... ok
[INFO] [stdout] test rfc3977::response::test_response_1xx_is_informative ... ok
[INFO] [stdout] test rfc3977::response::test_response_335_ihave_send_article ... ok
[INFO] [stdout] test rfc3977::response::test_response_340_post_send_article ... ok
[INFO] [stdout] test rfc3977::response::test_response_381_password_required ... ok
[INFO] [stdout] test rfc3977::response::test_response_383_sasl_continue ... ok
[INFO] [stdout] test rfc3977::list::test_list_newsgroups_group_name_with_hyphen ... ok
[INFO] [stdout] test rfc3977::multiline::test_bare_lf_handling ... ok
[INFO] [stdout] test rfc3977::post::test_post_empty_body_allowed ... ok
[INFO] [stdout] test rfc3977::response::test_response_3xx_continuation_codes ... ok
[INFO] [stdout] test rfc3977::response::test_response_3xx_is_continuation ... ok
[INFO] [stdout] test rfc3977::response::test_response_4xx_error_codes ... ok
[INFO] [stdout] test rfc3977::response::test_response_5xx_permanent_error_codes ... ok
[INFO] [stdout] test rfc3977::response::test_response_all_2xx_success_codes ... ok
[INFO] [stdout] test rfc3977::response::test_response_alpha_only_is_invalid ... ok
[INFO] [stdout] test rfc3977::response::test_response_base10_numeric_code ... ok
[INFO] [stdout] test rfc3977::response::test_response_code_000 ... ok
[INFO] [stdout] test rfc3977::response::test_response_code_999 ... ok
[INFO] [stdout] test rfc3977::response::test_response_3xx_all_continuation_codes ... ok
[INFO] [stdout] test rfc3977::response::test_response_empty_string_is_invalid ... ok
[INFO] [stdout] test rfc3977::response::test_response_long_message ... ok
[INFO] [stdout] test rfc3977::response::test_response_message_preserves_content ... ok
[INFO] [stdout] test rfc3977::response::test_response_multiple_spaces_in_message ... ok
[INFO] [stdout] test rfc3977::response::test_response_negative_code_is_invalid ... ok
[INFO] [stdout] test rfc3977::response::test_response_non_digit_in_code_is_invalid ... ok
[INFO] [stdout] test rfc3977::response::test_response_message_with_special_chars ... ok
[INFO] [stdout] test rfc3977::response::test_response_one_digit_code_is_invalid ... ok
[INFO] [stdout] test rfc3977::response::test_response_space_prefix_is_invalid ... ok
[INFO] [stdout] test rfc3977::response::test_response_three_digit_code_only ... ok
[INFO] [stdout] test rfc3977::response::test_response_three_digit_code_with_message ... ok
[INFO] [stdout] test rfc3977::response::test_response_two_digit_code_is_invalid ... ok
[INFO] [stdout] test rfc3977::response::test_response_whitespace_only_is_invalid ... ok
[INFO] [stdout] test rfc3977::response::test_response_unicode_message ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_complex_message_id ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_malformed_missing_message_id ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_message_id_with_spaces ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_no_group_selected ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_no_such_article ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_protocol_error ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_typical_binary_server ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_rfc_example ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_very_large_article_number ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_with_article_number ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_with_zero_article_number ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_wrong_success_code ... ok
[INFO] [stdout] test rfc3977::stat::test_stat_command_check_sequence ... ok
[INFO] [stdout] test rfc3977::stat::test_stat_command_ends_with_crlf ... ok
[INFO] [stdout] test rfc3977::stat::test_stat_command_format_with_message_id ... ok
[INFO] [stdout] test rfc3977::stat::test_stat_command_format_with_number ... ok
[INFO] [stdout] test rfc3977::stat::test_stat_command_typical_binary_post ... ok
[INFO] [stdout] test rfc3977::response::test_response_with_empty_message_after_space ... ok
[INFO] [stdout] test rfc3977::stat::test_stat_command_uppercase ... ok
[INFO] [stdout] test rfc3977::stat::test_stat_command_with_large_article_number ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_article_number_zero ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_complex_subject ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_empty_all_optional_fields ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_extra_whitespace ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_complex_author ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_emoji_in_subject ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_empty_subject ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_giganews_format ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_large_byte_count ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_missing_fields ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_multiple_references ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_negative_numbers ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_no_tabs ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_non_numeric_article_number ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_non_numeric_bytes ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_non_numeric_lines ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_only_article_number ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_preserves_internal_spaces ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_tab_separated ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_unicode_subject ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_standard_8_fields ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_with_extra_fields ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_zero_bytes_lines ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_invalid_article_number ... ok
[INFO] [stdout] test rfc3977::stat::test_parse_stat_response_malformed_invalid_article_number ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_empty_line ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_empty_references ... ok
[INFO] [stdout] test rfc3977::xover::test_xover_large_article_number ... ok
[INFO] [stdout] test rfc3977::response::test_response_four_digit_code_parses_first_three ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- rfc3977::response::test_response_four_digit_code_parses_first_three stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'rfc3977::response::test_response_four_digit_code_parses_first_three' (824) panicked at tests/rfc3977/response.rs:159:54:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: InvalidResponse("2000 OK")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x60d948276812 - std::backtrace_rs::backtrace::libunwind::trace::hf0bd46b30bc61685
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x60d948276812 - std::backtrace_rs::backtrace::trace_unsynchronized::h1d1fbb72ad89d7b7
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x60d948276812 - std::sys::backtrace::_print_fmt::he38b6f68ca847f47
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x60d948276812 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hb7e843cde1bc81a3
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x60d94828817a - core::fmt::rt::Argument::fmt::hc1dd77ac64f2688c
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x60d94828817a - core::fmt::write::h952c506e2dbe9cff
[INFO] [stdout]    6:     0x60d948245796 - std::io::default_write_fmt::hd23bd8145c03a23a
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x60d948245796 - std::io::Write::write_fmt::hdd3314a2bd8a34bd
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x60d948255cf9 - std::sys::backtrace::BacktraceLock::print::h1079b82381c2c252
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x60d948255cf9 - std::panicking::default_hook::{{closure}}::h85cb76b8462c00f2
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x60d948255b91 - std::panicking::default_hook::h0134d220cc034c02
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x60d9481f169e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hb2e68dca3970e3ca
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x60d9481f169e - test::test_main_with_exit_callback::{{closure}}::ha7ec2063a2565ec3
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x60d948255f72 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::haebee478d0f56cf4
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x60d948255f72 - std::panicking::panic_with_hook::h8119b6db1fef734f
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x60d948255db8 - std::panicking::panic_handler::{{closure}}::h24f5360b91482c0e
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x60d948251349 - std::sys::backtrace::__rust_end_short_backtrace::h4e60c5cbd1bd0108
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x60d94823a38d - __rustc[e4c6931bd8050421]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x60d94828f9dc - core::panicking::panic_fmt::hb1614a3ff6840071
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x60d94828ee22 - core::result::unwrap_failed::h7d4c34940aded59c
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x60d948180b76 - core::result::Result<T,E>::unwrap::h1d35f2402eed63f6
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x60d948180b76 - rfc3977::rfc3977::response::test_response_four_digit_code_parses_first_three::h3a37ce770b7f4c5d
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/rfc3977/response.rs:159:54
[INFO] [stdout]   22:     0x60d948180d27 - rfc3977::rfc3977::response::test_response_four_digit_code_parses_first_three::{{closure}}::ha2fb912a11523bf3
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/rfc3977/response.rs:149:54
[INFO] [stdout]   23:     0x60d9481ca046 - core::ops::function::FnOnce::call_once::h3806d24f974080b8
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x60d9481f149b - core::ops::function::FnOnce::call_once::hefaf63600cd43d2a
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x60d9481f149b - test::__rust_begin_short_backtrace::he30322a73a0e9ea6
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x60d948204e6a - test::run_test_in_process::{{closure}}::hdea3ab8d0243ef36
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x60d948204e6a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h66d192f42498ffce
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x60d948204e6a - std::panicking::catch_unwind::do_call::h822e18e8d3a6bb65
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x60d948204e6a - std::panicking::catch_unwind::h54b1de7ceab578bf
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x60d948204e6a - std::panic::catch_unwind::h60c29b7a9d0246b1
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x60d948204e6a - test::run_test_in_process::h6099b5f871379b13
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x60d948204e6a - test::run_test::{{closure}}::h926ce0a38281a4c8
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x60d9481df2c4 - test::run_test::{{closure}}::h508de21a9afc7140
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x60d9481df2c4 - std::sys::backtrace::__rust_begin_short_backtrace::h6e2f5c39ca00735a
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x60d9481e2b82 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::h133e44f0e5802c14
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x60d9481e2b82 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h4718c1285283955c
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x60d9481e2b82 - std::panicking::catch_unwind::do_call::h0bba3937b4892238
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x60d9481e2b82 - std::panicking::catch_unwind::h5b31cab5fb8c5d7f
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x60d9481e2b82 - std::panic::catch_unwind::hb2fa05d52ed0124e
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x60d9481e2b82 - std::thread::lifecycle::spawn_unchecked::{{closure}}::hf401cf5ff501bd29
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x60d9481e2b82 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h160022e94ce3b0bb
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x60d94824c5df - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf234e0d1d1d272ba
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x60d94824c5df - std::sys::thread::unix::Thread::new::thread_start::h106a295241840d3b
[INFO] [stdout]                                at /rustc/9b1f8ff42d110b0ca138116745be921df5dc97e7/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   44:     0x7ae2d628faa4 - <unknown>
[INFO] [stdout]   45:     0x7ae2d631ca64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     rfc3977::response::test_response_four_digit_code_parses_first_three
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 594 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test rfc3977`
[INFO] running `Command { std: "docker" "inspect" "72486272e1e2509214667c536b82a26ce80b1f3e1850fac9003743a5e8fac47b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "72486272e1e2509214667c536b82a26ce80b1f3e1850fac9003743a5e8fac47b", kill_on_drop: false }`
[INFO] [stdout] 72486272e1e2509214667c536b82a26ce80b1f3e1850fac9003743a5e8fac47b
