[INFO] cloning repository https://github.com/bohdaq/rust-web-server
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bohdaq/rust-web-server" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbohdaq%2Frust-web-server", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbohdaq%2Frust-web-server'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0d81a6cf5fa7faa4983d860d6c82333626fb2534
[INFO] testing bohdaq/rust-web-server against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbohdaq%2Frust-web-server" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-3-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/bohdaq/rust-web-server
[INFO] finished tweaking git repo https://github.com/bohdaq/rust-web-server
[INFO] tweaked toml for git repo https://github.com/bohdaq/rust-web-server written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/bohdaq/rust-web-server on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 337 packages to latest compatible versions
[INFO] [stderr]       Adding aes-gcm v0.10.3 (available: v0.11.0)
[INFO] [stderr]       Adding crypto-common v0.1.6 (available: v0.1.7)
[INFO] [stderr]       Adding hmac v0.12.1 (available: v0.13.0)
[INFO] [stderr]       Adding p256 v0.13.2 (available: v0.14.0)
[INFO] [stderr]       Adding rand_core v0.6.4 (available: v0.10.1)
[INFO] [stderr]       Adding rcgen v0.13.2 (available: v0.14.8)
[INFO] [stderr]       Adding sha2 v0.10.9 (available: v0.11.0)
[INFO] [stderr]       Adding sqlx v0.8.6 (available: v0.9.0)
[INFO] [stderr]       Adding tera v1.20.1 (available: v2.0.0)
[INFO] [stderr]       Adding webpki-roots v0.26.11 (available: v1.0.8)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-macros v2.7.0
[INFO] [stderr]   Downloaded untrusted v0.7.1
[INFO] [stderr]   Downloaded url-search-params v12.0.0
[INFO] [stderr]   Downloaded url-build-parse v12.1.0
[INFO] [stderr]   Downloaded rustversion v1.0.23
[INFO] [stderr]   Downloaded dotenvy v0.15.7
[INFO] [stderr]   Downloaded sqlx-macros v0.8.6
[INFO] [stderr]   Downloaded crc v3.4.0
[INFO] [stderr]   Downloaded unicode-bidi v0.3.18
[INFO] [stderr]   Downloaded num-iter v0.1.46
[INFO] [stderr]   Downloaded sqlx-macros-core v0.8.6
[INFO] [stderr]   Downloaded generic-array v0.14.9
[INFO] [stderr]   Downloaded base64ct v1.8.3
[INFO] [stderr]   Downloaded humansize v2.1.3
[INFO] [stderr]   Downloaded globwalk v0.9.1
[INFO] [stderr]   Downloaded libredox v0.1.18
[INFO] [stderr]   Downloaded pest_derive v2.8.7
[INFO] [stderr]   Downloaded crossbeam-deque v0.8.7
[INFO] [stderr]   Downloaded fastbloom v0.17.0
[INFO] [stderr]   Downloaded etcetera v0.8.0
[INFO] [stderr]   Downloaded wasite v0.1.0
[INFO] [stderr]   Downloaded h3-quinn v0.0.10
[INFO] [stderr]   Downloaded ctrlc v3.5.2
[INFO] [stderr]   Downloaded pest_generator v2.8.7
[INFO] [stderr]   Downloaded futures-executor v0.3.32
[INFO] [stderr]   Downloaded stringprep v0.1.5
[INFO] [stderr]   Downloaded pkcs1 v0.7.5
[INFO] [stderr]   Downloaded redox_syscall v0.9.0
[INFO] [stderr]   Downloaded primeorder v0.13.6
[INFO] [stderr]   Downloaded whoami v1.6.1
[INFO] [stderr]   Downloaded crc-catalog v2.5.0
[INFO] [stderr]   Downloaded crossbeam-queue v0.3.13
[INFO] [stderr]   Downloaded file-ext v12.0.0
[INFO] [stderr]   Downloaded unicode-properties v0.1.4
[INFO] [stderr]   Downloaded argon2 v0.5.3
[INFO] [stderr]   Downloaded tokio-stream v0.1.18
[INFO] [stderr]   Downloaded ignore v0.4.28
[INFO] [stderr]   Downloaded schannel v0.1.29
[INFO] [stderr]   Downloaded password-hash v0.5.0
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.20
[INFO] [stderr]   Downloaded pest_meta v2.8.7
[INFO] [stderr]   Downloaded p256 v0.13.2
[INFO] [stderr]   Downloaded sqlx-mysql v0.8.6
[INFO] [stderr]   Downloaded futures-intrusive v0.5.0
[INFO] [stderr]   Downloaded tera v1.20.1
[INFO] [stderr]   Downloaded sqlx-sqlite v0.8.6
[INFO] [stderr]   Downloaded rsa v0.9.10
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.54
[INFO] [stderr]   Downloaded pest v2.8.7
[INFO] [stderr]   Downloaded webpki-root-certs v1.0.8
[INFO] [stderr]   Downloaded sqlx-core v0.8.6
[INFO] [stderr]   Downloaded h3 v0.0.8
[INFO] [stderr]   Downloaded sqlx-postgres v0.8.6
[INFO] [stderr]   Downloaded num-bigint-dig v0.8.6
[INFO] [stderr]   Downloaded regex v1.13.0
[INFO] [stderr]   Downloaded sqlx v0.8.6
[INFO] [stderr]   Downloaded time v0.3.53
[INFO] [stderr]   Downloaded zerocopy v0.8.54
[INFO] [stderr]   Downloaded nix v0.31.3
[INFO] [stderr]   Downloaded bstr v1.12.3
[INFO] [stderr]   Downloaded regex-automata v0.4.15
[INFO] [stderr]   Downloaded libsqlite3-sys v0.30.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 709f065f90ca80b0ab15c2c9d38f287abc98219616870659e7935c781efab703
[INFO] running `Command { std: "docker" "start" "709f065f90ca80b0ab15c2c9d38f287abc98219616870659e7935c781efab703", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "709f065f90ca80b0ab15c2c9d38f287abc98219616870659e7935c781efab703", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "709f065f90ca80b0ab15c2c9d38f287abc98219616870659e7935c781efab703" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "709f065f90ca80b0ab15c2c9d38f287abc98219616870659e7935c781efab703", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "709f065f90ca80b0ab15c2c9d38f287abc98219616870659e7935c781efab703" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling aws-lc-rs v1.17.1
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling rustls v0.23.41
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling quinn-udp v0.5.15
[INFO] [stderr]    Compiling rustls-pki-types v1.15.0
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling chacha20 v0.10.1
[INFO] [stderr]    Compiling siphasher v1.0.3
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling rand_pcg v0.10.2
[INFO] [stderr]    Compiling quinn v0.11.11
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling rustc-hash v2.1.3
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling lru-slab v0.1.2
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling url-search-params v12.0.0
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling webpki-roots v1.0.8
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling file-ext v12.0.0
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling url-build-parse v12.1.0
[INFO] [stderr]    Compiling fastbloom v0.17.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling jobserver v0.1.35
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling cc v1.2.66
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling aws-lc-sys v0.42.0
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling h3 v0.0.8
[INFO] [stderr]    Compiling h2 v0.4.15
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling quinn-proto v0.11.16
[INFO] [stderr]    Compiling h3-quinn v0.0.10
[INFO] [stderr]    Compiling rust-web-server v17.105.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `ymd_to_days` is never used
[INFO] [stdout]    --> src/scheduler/cron.rs:174:15
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub(crate) fn ymd_to_days(y: u32, m: u32, d: u32) -> u64 {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 14s
[INFO] running `Command { std: "docker" "inspect" "709f065f90ca80b0ab15c2c9d38f287abc98219616870659e7935c781efab703", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "709f065f90ca80b0ab15c2c9d38f287abc98219616870659e7935c781efab703" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rust-web-server v17.105.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `ymd_to_days` is never used
[INFO] [stdout]    --> src/scheduler/cron.rs:174:15
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub(crate) fn ymd_to_days(y: u32, m: u32, d: u32) -> u64 {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::router::PathParams`
[INFO] [stdout]   --> src/async_state/tests.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::router::PathParams;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Middleware`
[INFO] [stdout]  --> src/request_id/tests.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::middleware::{Middleware, WithMiddleware};
[INFO] [stdout]   |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mime_type::MimeType`
[INFO] [stdout]  --> src/middleware/tests.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::mime_type::MimeType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::range::Range`
[INFO] [stdout]   --> src/middleware/tests.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::range::Range;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `STATUS_CODE_REASON_PHRASE`
[INFO] [stdout]   --> src/middleware/tests.rs:12:33
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::response::{Response, STATUS_CODE_REASON_PHRASE};
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `counter` is never read
[INFO] [stdout]   --> src/state/tests.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | struct State {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] 54 |     value: String,
[INFO] [stdout] 55 |     counter: std::sync::atomic::AtomicU32,
[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 `App` is never constructed
[INFO] [stdout]   --> src/application/example/mod.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct App {}
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IndexController` is never constructed
[INFO] [stdout]   --> src/controller/example/mod.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct IndexController;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `INDEX_FILEPATH` is never used
[INFO] [stdout]   --> src/controller/example/mod.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl IndexController {
[INFO] [stdout]    | -------------------- associated constant in this implementation
[INFO] [stdout] 13 |     pub const INDEX_FILEPATH: &'static str = "index.html";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/validate/tests.rs:190:23
[INFO] [stdout]     |
[INFO] [stdout] 190 |     struct MustBeUtf8(String);
[INFO] [stdout]     |            ---------- ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 23.92s
[INFO] running `Command { std: "docker" "inspect" "709f065f90ca80b0ab15c2c9d38f287abc98219616870659e7935c781efab703", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "709f065f90ca80b0ab15c2c9d38f287abc98219616870659e7935c781efab703" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: function `ymd_to_days` is never used
[INFO] [stderr]    --> src/scheduler/cron.rs:174:15
[INFO] [stderr]     |
[INFO] [stderr] 174 | pub(crate) fn ymd_to_days(y: u32, m: u32, d: u32) -> u64 {
[INFO] [stderr]     |               ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::router::PathParams`
[INFO] [stderr]   --> src/async_state/tests.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use crate::router::PathParams;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Middleware`
[INFO] [stderr]  --> src/request_id/tests.rs:4:25
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::middleware::{Middleware, WithMiddleware};
[INFO] [stderr]   |                         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::mime_type::MimeType`
[INFO] [stderr]  --> src/middleware/tests.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::mime_type::MimeType;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::range::Range`
[INFO] [stderr]   --> src/middleware/tests.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::range::Range;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `STATUS_CODE_REASON_PHRASE`
[INFO] [stderr]   --> src/middleware/tests.rs:12:33
[INFO] [stderr]    |
[INFO] [stderr] 12 | use crate::response::{Response, STATUS_CODE_REASON_PHRASE};
[INFO] [stderr]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `counter` is never read
[INFO] [stderr]   --> src/state/tests.rs:55:5
[INFO] [stderr]    |
[INFO] [stderr] 53 | struct State {
[INFO] [stderr]    |        ----- field in this struct
[INFO] [stderr] 54 |     value: String,
[INFO] [stderr] 55 |     counter: std::sync::atomic::AtomicU32,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `App` is never constructed
[INFO] [stderr]   --> src/application/example/mod.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct App {}
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `IndexController` is never constructed
[INFO] [stderr]   --> src/controller/example/mod.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct IndexController;
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated constant `INDEX_FILEPATH` is never used
[INFO] [stderr]   --> src/controller/example/mod.rs:13:15
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl IndexController {
[INFO] [stderr]    | -------------------- associated constant in this implementation
[INFO] [stderr] 13 |     pub const INDEX_FILEPATH: &'static str = "index.html";
[INFO] [stderr]    |               ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/validate/tests.rs:190:23
[INFO] [stderr]     |
[INFO] [stderr] 190 |     struct MustBeUtf8(String);
[INFO] [stderr]     |            ---------- ^^^^^^
[INFO] [stderr]     |            |
[INFO] [stderr]     |            field in this struct
[INFO] [stderr]     |
[INFO] [stderr]     = help: consider removing this field
[INFO] [stderr] 
[INFO] [stderr] warning: `rust-web-server` (lib) generated 1 warning
[INFO] [stderr] warning: `rust-web-server` (lib test) generated 10 warnings (run `cargo fix --lib -p rust-web-server --tests` to apply 5 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_web_server-9de7813ae3647954)
[INFO] [stdout] 
[INFO] [stdout] running 1544 tests
[INFO] [stdout] test app::controller::directory_listing::tests::matches_css_and_js_paths_only ... ok
[INFO] [stdout] test app::controller::health::tests::healthz_does_not_match_other_uri ... ok
[INFO] [stdout] test app::controller::health::tests::healthz_does_not_match_post ... ok
[INFO] [stdout] test app::controller::health::tests::healthz_body_is_ok ... ok
[INFO] [stdout] test app::controller::health::tests::healthz_returns_200_ok ... ok
[INFO] [stdout] test app::controller::health::tests::healthz_is_matching_get ... ok
[INFO] [stdout] test app::controller::metrics::tests::metrics_does_not_match_other_uri ... ok
[INFO] [stdout] test app::controller::metrics::tests::metrics_content_type_is_prometheus ... ok
[INFO] [stdout] test app::controller::metrics::tests::metrics_is_matching ... ok
[INFO] [stdout] test app::controller::metrics::tests::metrics_returns_200 ... ok
[INFO] [stdout] test app::controller::metrics::tests::metrics_body_contains_prometheus_counters ... ok
[INFO] [stdout] test app::controller::ready::tests::readyz_does_not_match_other_uri ... ok
[INFO] [stdout] test app::controller::ready::tests::readyz_is_matching ... ok
[INFO] [stdout] test app::controller::ready::tests::readyz_returns_200_when_ready ... ok
[INFO] [stdout] test app::controller::ready::tests::readyz_returns_503_when_not_ready ... ok
[INFO] [stdout] test app::controller::static_resource::tests::file_response_includes_etag_header ... ok
[INFO] [stdout] test app::controller::static_resource::tests::directory_index_html_no_slash_and_query ... ok
[INFO] [stdout] test app::controller::static_resource::tests::directory_index_html ... ok
[INFO] [stdout] test app::controller::static_resource::tests::directory_without_index_html_matches_and_renders_listing ... ok
[INFO] [stdout] test app::controller::static_resource::tests::directory_listing_escapes_display_name_and_percent_encodes_href ... ok
[INFO] [stdout] test app::controller::static_resource::tests::directory_listing_on_empty_or_missing_directory_still_renders_a_valid_page ... ok
[INFO] [stdout] test app::controller::static_resource::tests::directory_listing_has_parent_link_except_at_static_root ... ok
[INFO] [stdout] test app::controller::static_resource::tests::directory_index_html_no_slash ... ok
[INFO] [stdout] test app::controller::static_resource::tests::directory_without_index_html_matches_head_and_options ... ok
[INFO] [stdout] test app::controller::static_resource::tests::file_retrieval_no_html_suffix ... ok
[INFO] [stdout] test app::controller::static_resource::tests::file_retrieval_with_query_params ... ok
[INFO] [stdout] test app::controller::static_resource::tests::file_retrieval ... ok
[INFO] [stdout] test app::controller::static_resource::tests::file_retrieval_no_html_suffix_with_query_params ... ok
[INFO] [stdout] test app::controller::health::tests::healthz_content_type_is_text_plain ... ok
[INFO] [stdout] test app::controller::static_resource::tests::if_none_match_star_returns_304 ... ok
[INFO] [stdout] test app::controller::static_resource::tests::spa_fallback_is_a_noop_when_configured_file_does_not_exist ... ok
[INFO] [stdout] test app::controller::static_resource::tests::if_none_match_returns_304_not_modified ... ok
[INFO] [stdout] test app::controller::static_resource::tests::stale_etag_returns_200_with_body ... ok
[INFO] [stdout] test app::tests::builder_tests::app_with_state_falls_through_to_builtin_app ... ok
[INFO] [stdout] test app::controller::static_resource::tests::malformed ... ok
[INFO] [stdout] test app::tests::builder_tests::app_with_state_returns_correct_response ... ok
[INFO] [stdout] test app::controller::static_resource::tests::spa_fallback_does_not_apply_to_the_root_path ... ok
[INFO] [stdout] test app::tests::builder_tests::app_with_state_then_wrap_composes ... ok
[INFO] [stdout] test app::tests::builder_tests::app_wrap_applies_middleware ... ok
[INFO] [stdout] test app::controller::static_resource::tests::spa_fallback_serves_configured_file_for_unmatched_route ... ok
[INFO] [stdout] test app::controller::static_resource::tests::not_found ... ok
[INFO] [stdout] test app::tests::builder_tests::rate_limit_layer_allows_first_request ... ok
[INFO] [stdout] test app::tests::builder_tests::app_wrap_chains_multiple_layers ... ok
[INFO] [stdout] test app::controller::static_resource::tests::directory_index_html_with_query ... ok
[INFO] [stdout] test app::controller::static_resource::tests::path_has_extension_checks_only_the_last_segment ... ok
[INFO] [stdout] test app::tests::static_file ... ok
[INFO] [stdout] test async_bridge::tests::closure_can_borrow_from_the_calling_scope ... ok
[INFO] [stdout] test app::controller::static_resource::tests::spa_fallback_still_serves_a_real_file_directly_when_one_exists ... ok
[INFO] [stdout] test app::tests::not_found ... ok
[INFO] [stdout] test app::tests::index ... ok
[INFO] [stdout] test app::controller::static_resource::tests::spa_fallback_skips_paths_that_look_like_a_missed_asset ... ok
[INFO] [stdout] test app::controller::static_resource::tests::spa_fallback_disabled_by_default ... ok
[INFO] [stdout] test async_bridge::tests::inner_future_can_actually_await_async_io ... ok
[INFO] [stdout] test app::controller::static_resource::tests::spa_fallback_respects_exclude_prefixes ... ok
[INFO] [stdout] test async_bridge::tests::works_with_no_runtime_active ... ok
[INFO] [stdout] test async_bridge::tests::works_inside_current_thread_runtime ... ok
[INFO] [stdout] test async_state::tests::async_handler_receives_path_params ... ok
[INFO] [stdout] test async_state::tests::async_get_handler_is_called ... ok
[INFO] [stdout] test async_state::tests::async_post_handler_reads_body ... ok
[INFO] [stdout] test async_state::tests::container_resolves_trait_object_service_through_an_async_handler ... ok
[INFO] [stdout] test async_state::tests::async_handler_receives_state ... ok
[INFO] [stdout] test async_bridge::tests::propagates_the_future_output_by_value ... ok
[INFO] [stdout] test async_state::tests::state_accessor_returns_inner_value ... ok
[INFO] [stdout] test async_state::tests::async_handler_can_await ... ok
[INFO] [stdout] test async_bridge::tests::works_inside_multi_thread_runtime ... ok
[INFO] [stdout] test async_state::tests::container_resolves_concrete_service_through_an_async_handler ... ok
[INFO] [stdout] test app::tests::static_file_cors_off_options_preflight_request_client_hints ... ok
[INFO] [stdout] test app::tests::static_file_cors_options_preflight_request_client_hints ... ok
[INFO] [stdout] test blocklist::tests::clear ... ok
[INFO] [stdout] test async_state::tests::put_patch_delete_registered ... ok
[INFO] [stdout] test async_state::tests::state_is_shared_across_handlers ... ok
[INFO] [stdout] test async_state::tests::wildcard_param_captures_tail ... ok
[INFO] [stdout] test blocklist::tests::block_and_check ... ok
[INFO] [stdout] test async_state::tests::unmatched_route_returns_404 ... ok
[INFO] [stdout] test async_state::tests::unmatched_route_falls_through_to_app ... ok
[INFO] [stdout] test async_state::tests::with_config_allows_cors_for_configured_origin_on_fallback_request ... ok
[INFO] [stdout] test async_state::tests::first_matching_route_wins ... ok
[INFO] [stdout] test async_state::tests::with_config_pins_cors_denial_on_fallback_request ... ok
[INFO] [stdout] test blocklist::tests::list_order ... ok
[INFO] [stdout] test blocklist::tests::unblock ... ok
[INFO] [stdout] test body::example::body_in_request ... ok
[INFO] [stdout] test blocklist::tests::no_duplicate_block ... ok
[INFO] [stdout] test body::example::body_in_response ... ok
[INFO] [stdout] test body::example::form_urlencoded ... ok
[INFO] [stdout] test body::example::multipart_body_in_response ... ok
[INFO] [stdout] test body::example::json_body_in_response ... ok
[INFO] [stdout] test body::multipart_form_data::tests::generate_part_no_headers ... ok
[INFO] [stdout] test body::example::json_in_request ... ok
[INFO] [stdout] test body::multipart_form_data::tests::generate_part ... ok
[INFO] [stdout] test body::example::multipart_form_data_body_in_request ... ok
[INFO] [stdout] test body::multipart_form_data::tests::parse_multipart_request_body ... ok
[INFO] [stdout] test body::example::multipart_form_data_body_in_response ... ok
[INFO] [stdout] test body::multipart_form_data::tests::parse_multipart_request_body_malformed_content_disposition_header ... ok
[INFO] [stdout] test body::multipart_form_data::tests::parse_multipart_request_body_video_no_header_body_delimiter ... ok
[INFO] [stdout] test body::multipart_form_data::tests::parse_multipart_request_body_audio ... ok
[INFO] [stdout] test cache::tests::age_header_present_on_cache_hit ... ok
[INFO] [stdout] test cache::tests::cache_hit_does_not_call_handler_again ... ok
[INFO] [stdout] test body::multipart_form_data::tests::parse_multipart_request_body_video_zero_length_payload ... ok
[INFO] [stdout] test cache::tests::cache_is_per_layer_instance ... ok
[INFO] [stdout] test cache::tests::cache_hit_returns_correct_body ... ok
[INFO] [stdout] test cache::tests::cache_miss_calls_handler ... ok
[INFO] [stdout] test body::multipart_form_data::tests::parse_multipart_request_body_video_no_content_disposition ... ok
[INFO] [stdout] test cache::tests::capacity_evicts_oldest_entry ... ok
[INFO] [stdout] test cache::tests::different_uris_are_cached_separately ... ok
[INFO] [stdout] test cache::tests::multiple_vary_headers_combine_into_key ... ok
[INFO] [stdout] test cache::tests::response_with_no_store_is_not_cached ... ok
[INFO] [stdout] test cache::tests::response_with_private_is_not_cached ... ok
[INFO] [stdout] test cache::tests::ttl_zero_expires_entries_immediately ... ok
[INFO] [stdout] test cache::tests::vary_by_header_hits_same_entry_for_same_value ... ok
[INFO] [stdout] test cache::tests::non_2xx_responses_are_not_cached ... ok
[INFO] [stdout] test cache::tests::post_requests_bypass_cache ... ok
[INFO] [stdout] test cache::tests::request_no_cache_bypasses_cache_but_stores_result ... ok
[INFO] [stdout] test cache::tests::vary_by_header_separates_entries ... ok
[INFO] [stdout] test canary::tests::add_pool_mixes_static_backend_with_dynamic_pool ... ok
[INFO] [stdout] test canary::tests::clones_share_state ... ok
[INFO] [stdout] test canary::tests::builder_methods_are_chainable ... ok
[INFO] [stdout] test canary::tests::empty_backends_produce_no_candidates ... ok
[INFO] [stdout] test canary::tests::h2_scheme_is_plain_not_tls ... ok
[INFO] [stdout] test canary::tests::grpcs_scheme_sets_tls_and_default_port_443 ... ok
[INFO] [stdout] test canary::tests::h2s_scheme_sets_tls_and_default_port_443 ... ok
[INFO] [stdout] test canary::tests::empty_pool_is_skipped_falling_through_to_the_next_group ... ok
[INFO] [stdout] test canary::tests::https_scheme_sets_tls_and_default_port_443 ... ok
[INFO] [stdout] test canary::tests::https_scheme_with_explicit_port_sets_tls ... ok
[INFO] [stdout] test canary::tests::grpc_scheme_is_plain_not_tls ... ok
[INFO] [stdout] test body::multipart_form_data::tests::parse_multipart_request_body_video ... ok
[INFO] [stdout] test canary::tests::smooth_round_robin_never_bursts_the_high_weight_backend ... ok
[INFO] [stdout] test canary::tests::update_can_replace_backends_with_pools_and_vice_versa ... ok
[INFO] [stdout] test canary::tests::update_replaces_weights_without_recreating_the_layer ... ok
[INFO] [stdout] test canary::tests::mixed_tls_and_plain_backends_both_appear_as_fallback_candidates ... ok
[INFO] [stdout] test canary::tests::pool_group_round_robins_its_own_members_across_selections ... ok
[INFO] [stdout] test canary::tests::single_backend_is_always_the_primary_pick ... ok
[INFO] [stdout] test canary::tests::url_parsing_defaults_to_port_80 ... ok
[INFO] [stdout] test canary::tests::url_parsing_strips_http_prefix ... ok
[INFO] [stdout] test canary::tests::weighted_distribution_is_proportional_over_one_full_cycle ... ok
[INFO] [stdout] test canary::tests::with_pools_builds_a_layer_purely_from_dynamic_groups ... ok
[INFO] [stdout] test canary::tests::zero_weight_backend_never_appears ... ok
[INFO] [stdout] test canary::tests::zero_weight_pool_is_never_a_candidate ... ok
[INFO] [stdout] test circuit_breaker::tests::all_states_empty_for_a_fresh_breaker ... ok
[INFO] [stdout] test canary::tests::single_tick_only_mutates_state_once_regardless_of_fallback_depth ... ok
[INFO] [stdout] test circuit_breaker::tests::all_states_reflects_every_backend_seen ... ok
[INFO] [stdout] test circuit_breaker::tests::closes_after_success_in_half_open ... ok
[INFO] [stdout] test circuit_breaker::tests::half_open_cap_can_be_raised ... ok
[INFO] [stdout] test circuit_breaker::tests::half_open_cap_releases_after_success ... ok
[INFO] [stdout] test circuit_breaker::tests::independent_backends ... ok
[INFO] [stdout] test circuit_breaker::tests::opens_after_threshold ... ok
[INFO] [stdout] test circuit_breaker::tests::half_open_default_cap_lets_only_one_probe_through ... ok
[INFO] [stdout] test circuit_breaker::tests::half_opens_after_recovery ... ok
[INFO] [stdout] test circuit_breaker::tests::redis_half_open_cap_can_be_raised ... ok
[INFO] [stdout] test circuit_breaker::tests::redis_closes_after_success_in_half_open ... ok
[INFO] [stdout] test body::multipart_form_data::tests::parse_multipart_request_body_image_extra_new_line_before_starting_payload_boundary ... ok
[INFO] [stdout] test circuit_breaker::tests::redis_half_open_default_cap_lets_only_one_probe_through ... ok
[INFO] [stdout] test circuit_breaker::tests::half_open_cap_of_zero_is_clamped_to_one ... ok
[INFO] [stdout] test circuit_breaker::tests::redis_clone_shares_the_same_persisted_state ... ok
[INFO] [stdout] test circuit_breaker::tests::half_open_cap_releases_after_failure ... ok
[INFO] [stdout] test circuit_breaker::tests::redis_operations_error_when_server_unreachable ... ok
[INFO] [stdout] test body::multipart_form_data::tests::generate_part_image ... ok
[INFO] [stdout] test circuit_breaker::tests::redis_independent_backends ... ok
[INFO] [stdout] test body::multipart_form_data::tests::parse_multipart_request_body_image_no_start_boundary ... ok
[INFO] [stdout] test circuit_breaker::tests::redis_reset_clears_state ... ok
[INFO] [stdout] test circuit_breaker::tests::redis_set_limits_takes_effect_immediately ... ok
[INFO] [stdout] test circuit_breaker::tests::reset_clears_state ... ok
[INFO] [stdout] test circuit_breaker::tests::redis_half_opens_after_recovery ... ok
[INFO] [stdout] test circuit_breaker::tests::retry_layer_custom_codes ... ok
[INFO] [stdout] test circuit_breaker::tests::retry_layer_does_not_retry_on_success ... ok
[INFO] [stdout] test circuit_breaker::tests::retry_layer_retries_on_bad_gateway ... ok
[INFO] [stdout] test circuit_breaker::tests::redis_starts_closed ... ok
[INFO] [stdout] test circuit_breaker::tests::starts_closed ... ok
[INFO] [stdout] test circuit_breaker::tests::redis_opens_after_threshold ... ok
[INFO] [stdout] test client_hint::tests::critical_client_hints ... ok
[INFO] [stdout] test circuit_breaker::tests::redis_reopens_after_failure_in_half_open ... ok
[INFO] [stdout] test circuit_breaker::tests::redis_state_survives_a_new_instance_pointed_at_the_same_backend ... ok
[INFO] [stdout] test client_hint::tests::accept_client_hints_header ... ok
[INFO] [stdout] test client_hint::tests::accept_client_hints ... ok
[INFO] [stdout] test circuit_breaker::tests::retry_layer_gives_up_after_max_retries ... ok
[INFO] [stdout] test client_hint::tests::vary ... ok
[INFO] [stdout] test client_hint::tests::critical_client_hints_header ... ok
[INFO] [stdout] test compression::tests::compresses_text_html_when_gzip_accepted ... ok
[INFO] [stdout] test compression::tests::does_not_compress_binary_content ... ok
[INFO] [stdout] test compression::tests::does_not_compress_when_gzip_not_accepted ... ok
[INFO] [stdout] test config_binding::tests::bool_false_variants ... ok
[INFO] [stdout] test client_hint::tests::consts ... ok
[INFO] [stdout] test compression::tests::does_not_duplicate_accept_encoding_in_vary ... ok
[INFO] [stdout] test client_hint::tests::hint_list ... ok
[INFO] [stdout] test config_binding::tests::bool_invalid_returns_err ... ok
[INFO] [stdout] test config_binding::tests::f64_parse ... ok
[INFO] [stdout] test config_binding::tests::load_optional_absent_is_none ... ok
[INFO] [stdout] test config_binding::tests::bool_true_variants ... ok
[INFO] [stdout] test config_binding::tests::load_optional_empty_string_is_none ... ok
[INFO] [stdout] test config_binding::tests::load_optional_bad_parse_returns_err ... ok
[INFO] [stdout] test config_binding::tests::i64_parse_negative ... ok
[INFO] [stdout] test config_binding::tests::load_optional_present_parses ... ok
[INFO] [stdout] test config_binding::tests::load_optional_whitespace_only_is_none ... ok
[INFO] [stdout] test config_binding::tests::load_required_absent_returns_err ... ok
[INFO] [stdout] test compression::tests::appends_accept_encoding_to_existing_vary ... ok
[INFO] [stdout] test config_binding::tests::load_with_default_uses_default_when_absent ... ok
[INFO] [stdout] test config_binding::tests::load_with_default_bad_parse_returns_err ... ok
[INFO] [stdout] test config_binding::tests::string_passthrough ... ok
[INFO] [stdout] test config_binding::tests::load_required_bad_parse_returns_err ... ok
[INFO] [stdout] test config_binding::tests::u32_invalid_returns_err ... ok
[INFO] [stdout] test config_binding::tests::load_required_present ... ok
[INFO] [stdout] test config_binding::tests::u32_parse ... ok
[INFO] [stdout] test config_binding::tests::parse_trims_whitespace ... ok
[INFO] [stdout] test config_binding::tests::load_with_default_uses_env_when_set ... ok
[INFO] [stdout] test config_binding::tests::usize_parse ... ok
[INFO] [stdout] test config_reload::tests::current_returns_a_snapshot ... ok
[INFO] [stdout] test circuit_breaker::tests::reopens_after_failure_in_half_open ... ok
[INFO] [stdout] test config_reload::tests::snapshot_clone_is_independent ... ok
[INFO] [stdout] test config_reload::tests::reload_requested_can_be_set_and_cleared ... ok
[INFO] [stdout] test config_reload::tests::reload_requested_flag_starts_false ... ok
[INFO] [stdout] test config_reload::tests::reload_does_not_panic_without_config_file ... ok
[INFO] [stdout] test config_reload::tests::reload_updates_snapshot ... ok
[INFO] [stdout] test config_reload::tests::snapshot_from_env_max_body_size_defaults_to_unlimited ... ok
[INFO] [stdout] test config_reload::tests::snapshot_from_env_reads_cors_allow_all ... ok
[INFO] [stdout] test config_reload::tests::snapshot_from_env_reads_cors_allow_all_false ... ok
[INFO] [stdout] test config_reload::tests::snapshot_from_env_reads_rate_limit_when_set ... ok
[INFO] [stdout] test config_reload::tests::snapshot_from_env_reads_cors_origins ... ok
[INFO] [stdout] test config_reload::tests::snapshot_from_env_reads_cors_allow_all_case_insensitive ... ok
[INFO] [stdout] test config_reload::tests::snapshot_from_env_reads_log_format ... ok
[INFO] [stdout] test config_reload::tests::snapshot_from_env_reads_max_body_size ... ok
[INFO] [stdout] test config_reload::tests::snapshot_from_env_reads_rate_limit_defaults_when_unset ... ok
[INFO] [stdout] test cookie::tests::get_returns_none_for_missing_cookie ... ok
[INFO] [stdout] test cookie::tests::parses_multiple_cookies ... ok
[INFO] [stdout] test cookie::tests::parses_single_cookie ... ok
[INFO] [stdout] test cookie::tests::set_cookie_basic ... ok
[INFO] [stdout] test cookie::tests::set_cookie_all_attributes ... ok
[INFO] [stdout] test config_reload::tests::snapshot_from_env_reads_request_allocation_size ... ok
[INFO] [stdout] test core::base64::tests::encode_one_char ... ok
[INFO] [stdout] test core::base64::tests::no_text_encode ... ok
[INFO] [stdout] test core::base64::tests::encode_three_chars ... ok
[INFO] [stdout] test cors::tests::cors_process ... ok
[INFO] [stdout] test cors::tests::cors_process_default_config ... ok
[INFO] [stdout] test cors::tests::cors_process_empty_config ... ok
[INFO] [stdout] test di::tests::concrete_and_trait_registrations_use_separate_keys ... ok
[INFO] [stdout] test di::tests::container_usable_as_with_state ... ok
[INFO] [stdout] test di::tests::contains_named_checks_name_and_type ... ok
[INFO] [stdout] test di::tests::contains_returns_false_for_other_types ... ok
[INFO] [stdout] test di::tests::contains_returns_true_when_registered ... ok
[INFO] [stdout] test di::tests::get_named_wrong_name_returns_none ... ok
[INFO] [stdout] test di::tests::get_returns_arc_with_correct_refcount ... ok
[INFO] [stdout] test di::tests::get_returns_none_for_unregistered_type ... ok
[INFO] [stdout] test di::tests::into_arc_allows_sharing_across_threads ... ok
[INFO] [stdout] test di::tests::later_registration_replaces_earlier ... ok
[INFO] [stdout] test di::tests::len_and_is_empty ... ok
[INFO] [stdout] test cookie::tests::cookie_value_may_contain_equals ... ok
[INFO] [stdout] test cookie::tests::set_cookie_http_only_secure ... ok
[INFO] [stdout] test cors::tests::actual_request_after_preflight ... ok
[INFO] [stdout] test core::base64::tests::basic_text_encode ... ok
[INFO] [stdout] test di::tests::provide_and_get_trait_object ... ok
[INFO] [stdout] test core::base64::tests::encode_two_chars ... ok
[INFO] [stdout] test di::tests::multiple_types_coexist_independently ... ok
[INFO] [stdout] test cors::tests::cors_options_preflight_request ... ok
[INFO] [stdout] test di::tests::provide_arc_concrete ... ok
[INFO] [stdout] test cors::tests::cors_allow_all ... ok
[INFO] [stdout] test di::tests::provide_named_trait_object ... ok
[INFO] [stdout] test di::tests::register_named_replaces_same_name ... ok
[INFO] [stdout] test di::tests::provide_replaces_previous_trait_object ... ok
[INFO] [stdout] test di::tests::register_struct_service ... ok
[INFO] [stdout] test di::tests::trait_object_method_dispatch_calls_correct_impl ... ok
[INFO] [stdout] test di::tests::unnamed_and_named_of_same_type_are_independent ... ok
[INFO] [stdout] test di::tests::register_and_get_concrete ... ok
[INFO] [stdout] test di::tests::register_named_and_get_named ... ok
[INFO] [stdout] test di::tests::register_string_service ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::command_line_arg_port ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::command_line_arg_ip ... ok
[INFO] [stdout] test di::tests::shared_arc_container_resolves_trait_objects_from_thread ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::command_line_arg_thread_cors_allow_origins ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::command_line_arg_thread_cors_allow_all ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::_override ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::command_line_arg_thread_cors_allow_headers ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::command_line_arg_request_allocation_size ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::command_line_arg_thread_cors_allow_credentials ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::command_line_arg_thread_cors_allow_methods ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::command_line_arg_thread_cors_expose_headers ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::command_line_arg_thread_cors_max_age ... ok
[INFO] [stdout] test entry_point::tests::base ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::command_line_arg_thread_count ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::parse ... ok
[INFO] [stdout] test entry_point::environment_variables::tests::env_vars ... ok
[INFO] [stdout] test entry_point::command_line_args::tests::parse_long_form ... ok
[INFO] [stdout] test entry_point::tests::get_max_body_size_falls_back_to_unlimited_on_unparseable_value ... ok
[INFO] [stdout] test entry_point::tests::get_max_body_size_defaults_to_unlimited ... ok
[INFO] [stdout] test error::tests::forbidden_maps_to_403 ... ok
[INFO] [stdout] test entry_point::tests::get_max_body_size_reads_env_var ... ok
[INFO] [stdout] test error::tests::not_found_maps_to_404 ... ok
[INFO] [stdout] test error::tests::response_implements_into_response ... ok
[INFO] [stdout] test error::tests::error_body_contains_message ... ok
[INFO] [stdout] test error::tests::internal_maps_to_500 ... ok
[INFO] [stdout] test error::tests::unauthorized_maps_to_401 ... ok
[INFO] [stdout] test error::tests::unprocessable_entity_maps_to_422 ... ok
[INFO] [stdout] test error::tests::too_many_requests_maps_to_429 ... ok
[INFO] [stdout] test error::tests::bad_request_maps_to_400 ... ok
[INFO] [stdout] test error::tests::payload_too_large_maps_to_413 ... ok
[INFO] [stdout] test error::tests::conflict_maps_to_409 ... ok
[INFO] [stdout] test ext::date_time_ext::tests::now_as_nanos ... ok
[INFO] [stdout] test ext::date_time_ext::tests::system_to_nanos ... ok
[INFO] [stdout] test extract::tests::body_clones_raw_bytes ... ok
[INFO] [stdout] test extract::tests::body_empty_request_gives_empty_vec ... ok
[INFO] [stdout] test extract::tests::body_text_invalid_utf8_returns_400 ... ok
[INFO] [stdout] test extract::tests::body_text_valid_utf8 ... ok
[INFO] [stdout] test extract::tests::query_ignores_path_before_question_mark ... ok
[INFO] [stdout] test extract::tests::query_multiple_params ... ok
[INFO] [stdout] test extract::tests::query_no_params_gives_empty_map ... ok
[INFO] [stdout] test extract::tests::query_single_param ... ok
[INFO] [stdout] test extract::tests::request_headers_empty_request ... ok
[INFO] [stdout] test extract::tests::request_headers_get_case_insensitive ... ok
[INFO] [stdout] test feature::tests::disable_flag ... ok
[INFO] [stdout] test feature::tests::list_sorted ... ok
[INFO] [stdout] test feature::tests::set_and_read ... ok
[INFO] [stdout] test feature::tests::unknown_flag_is_disabled ... ok
[INFO] [stdout] test header::content_disposition::tests::as_string_attachment ... ok
[INFO] [stdout] test header::content_disposition::tests::as_string_attachment_extra_name ... ok
[INFO] [stdout] test header::content_disposition::tests::as_string_attachment_no_field ... ok
[INFO] [stdout] test header::content_disposition::tests::as_string_form_data_field_filename ... ok
[INFO] [stdout] test header::content_disposition::tests::as_string_form_data_field_specified ... ok
[INFO] [stdout] test header::content_disposition::tests::as_string_form_data_no_field ... ok
[INFO] [stdout] test header::content_disposition::tests::as_string_inline_extra_filename ... ok
[INFO] [stdout] test header::content_disposition::tests::as_string_inline_extra_name ... ok
[INFO] [stdout] test header::content_disposition::tests::as_string_inline_no_field ... ok
[INFO] [stdout] test header::content_disposition::tests::attachment ... ok
[INFO] [stdout] test header::content_disposition::tests::attachment_filename ... ok
[INFO] [stdout] test header::content_disposition::tests::form_data_field ... ok
[INFO] [stdout] test header::content_disposition::tests::form_data_field_filename ... ok
[INFO] [stdout] test header::content_disposition::tests::not_proper_value ... ok
[INFO] [stdout] test header::content_disposition::tests::not_valid_form_data_field_filename ... ok
[INFO] [stdout] test header::content_disposition::tests::not_valid_form_data_field_filename_v2 ... ok
[INFO] [stdout] test header::example::build ... ok
[INFO] [stdout] test header::content_disposition::tests::inline ... ok
[INFO] [stdout] test header::example::parse ... ok
[INFO] [stdout] test header::tests::header_constants ... ok
[INFO] [stdout] test header::tests::header_test ... ok
[INFO] [stdout] test header::tests::hsts_header ... ok
[INFO] [stdout] test header::tests::parse_not_valid_header ... ok
[INFO] [stdout] test header::tests::parse ... ok
[INFO] [stdout] test header::tests::security_headers_in_header_list ... ok
[INFO] [stdout] test http::tests::test_version ... ok
[INFO] [stdout] test http_client::tests::tests::get_plain_http ... ok
[INFO] [stdout] test http_client::tests::tests::form_empty_pairs_sends_content_type_with_empty_body ... ok
[INFO] [stdout] test http_client::tests::tests::form_sets_content_type_and_urlencoded_body ... ok
[INFO] [stdout] test http_client::tests::tests::header_lookup_case_insensitive ... ok
[INFO] [stdout] test http_client::tests::tests::custom_header_sent ... ok
[INFO] [stdout] test http_client::tests::tests::delete_method_sent_correctly ... ok
[INFO] [stdout] test http_client::tests::tests::form_encodes_reserved_characters_in_keys_and_values ... ok
[INFO] [stdout] test http_client::tests::tests::is_success_true_for_200_range ... ok
[INFO] [stdout] test http_client::tests::tests::is_success_false_for_404 ... ok
[INFO] [stdout] test http_client::tests::tests::parse_url_https_custom_port ... ok
[INFO] [stdout] test http_client::tests::tests::parse_url_missing_scheme_returns_error ... ok
[INFO] [stdout] test http_client::tests::tests::parse_url_http ... ok
[INFO] [stdout] test ingress::tests::exact_match_ignores_query_string ... ok
[INFO] [stdout] test http_client::tests::tests::max_redirects_exceeded_returns_last_response ... ok
[INFO] [stdout] test http_client::tests::tests::post_with_body ... ok
[INFO] [stdout] test http_client::tests::tests::redirect_followed ... ok
[INFO] [stdout] test ingress::tests::ingress_class_filter_none_accepts_every_class ... ok
[INFO] [stdout] test http_client::tests::tests::response_with_chunked_encoding ... ok
[INFO] [stdout] test ingress::tests::exact_match_requires_full_equality ... ok
[INFO] [stdout] test ingress::tests::implementation_specific_falls_back_to_prefix_semantics ... ok
[INFO] [stdout] test ingress::tests::ingress_class_filter_excludes_items_with_no_class_name ... ok
[INFO] [stdout] test ingress::tests::ingress_class_filter_selects_matching_class_only ... ok
[INFO] [stdout] test ingress::tests::parse_empty_list ... ok
[INFO] [stdout] test ingress::tests::parse_multiple_items_each_get_their_own_namespace ... ok
[INFO] [stdout] test ingress::tests::parse_namespace_from_realistic_item_shape_with_metadata_before_spec ... ok
[INFO] [stdout] test ingress::tests::parse_multiple_paths ... ok
[INFO] [stdout] test ingress::tests::parse_path_type_exact ... ok
[INFO] [stdout] test ingress::tests::prefix_match_ignores_query_string ... ok
[INFO] [stdout] test ingress::tests::parse_single_rule ... ok
[INFO] [stdout] test ingress::tests::parse_path_type_defaults_to_prefix_when_absent ... ok
[INFO] [stdout] test ingress::tests::prefix_match_respects_path_element_boundaries ... ok
[INFO] [stdout] test ingress::tests::rule_matches_host_and_path ... ok
[INFO] [stdout] test ingress::tests::rule_empty_host_matches_any_host ... ok
[INFO] [stdout] test ingress::tests::rule_no_match_wrong_host ... ok
[INFO] [stdout] test ingress::tests::rule_root_path_matches_everything ... ok
[INFO] [stdout] test ingress::tests::rule_host_matching_is_case_insensitive ... ok
[INFO] [stdout] test ingress::tests::tls_tests::build_client_config_rejects_a_ca_bundle_with_no_certs ... ok
[INFO] [stdout] test ingress::tests::rule_no_match_wrong_path ... ok
[INFO] [stdout] test ingress::tests::tls_tests::parse_pem_certificates_empty_input_yields_no_certs ... ok
[INFO] [stdout] test ingress::tests::tls_tests::https_get_fails_on_connection_refused ... ok
[INFO] [stdout] test ingress::tests::tls_tests::parse_pem_certificates_finds_multiple_concatenated_certs ... ok
[INFO] [stdout] test ingress::tests::tls_tests::parse_pem_certificates_finds_one_cert_in_ca_bundle ... ok
[INFO] [stdout] test ingress::tests::tls_tests::parse_pem_certificates_rejects_unterminated_block ... ok
[INFO] [stdout] test ingress::tests::upstream_addr_format ... ok
[INFO] [stdout] test ingress::tests::upstream_addr_default_namespace ... ok
[INFO] [stdout] test ingress::tests::watch_tests::clean_eof_before_any_data_is_not_an_error ... ok
[INFO] [stdout] test ingress::tests::watch_tests::a_single_line_split_across_two_chunks_is_reassembled ... ok
[INFO] [stdout] test ingress::tests::watch_tests::empty_lines_are_skipped ... ok
[INFO] [stdout] test ingress::tests::watch_tests::non_2xx_status_is_an_error ... ok
[INFO] [stdout] test ip_filter::tests::allow_cidr_ip_outside_range_is_blocked ... ok
[INFO] [stdout] test ip_filter::tests::allow_cidr_ip_in_range_passes ... ok
[INFO] [stdout] test ingress::tests::watch_tests::reads_multiple_lines_across_multiple_chunks ... ok
[INFO] [stdout] test ip_filter::tests::allow_matching_ip_passes ... ok
[INFO] [stdout] test ip_filter::tests::allow_class_a_loopback_range ... ok
[INFO] [stdout] test ip_filter::tests::allow_multiple_entries_second_matches ... ok
[INFO] [stdout] test ip_filter::tests::allow_mode_ipv6_client_is_blocked ... ok
[INFO] [stdout] test ip_filter::tests::allow_single_host_cidr ... ok
[INFO] [stdout] test ip_filter::tests::allow_wildcard_cidr_matches_all_ipv4 ... ok
[INFO] [stdout] test ip_filter::tests::cidr_network_is_normalized ... ok
[INFO] [stdout] test ip_filter::tests::deny_cidr_ip_in_range_is_blocked ... ok
[INFO] [stdout] test ip_filter::tests::deny_cidr_ip_outside_range_passes ... ok
[INFO] [stdout] test ip_filter::tests::deny_matching_ip_is_blocked ... ok
[INFO] [stdout] test ip_filter::tests::deny_mode_ipv6_client_passes ... ok
[INFO] [stdout] test ip_filter::tests::allow_multiple_entries_none_match_is_blocked ... ok
[INFO] [stdout] test ip_filter::tests::empty_deny_list_passes_everyone ... ok
[INFO] [stdout] test ip_filter::tests::malformed_entry_is_silently_skipped ... ok
[INFO] [stdout] test ip_filter::tests::prefix_len_over_32_is_skipped ... ok
[INFO] [stdout] test ip_filter::tests::stacked_allow_and_deny ... ok
[INFO] [stdout] test ip_filter::tests::via_middleware_stack_allow_passes ... ok
[INFO] [stdout] test ip_filter::tests::allow_non_matching_ip_is_blocked ... ok
[INFO] [stdout] test ip_filter::tests::deny_non_matching_ip_passes ... ok
[INFO] [stdout] test ip_filter::tests::empty_allow_list_blocks_everyone ... ok
[INFO] [stdout] test ip_filter::tests::via_middleware_stack_deny_blocks ... ok
[INFO] [stdout] test json::array::boolean::example_list_bool::vector_to_json ... ok
[INFO] [stdout] test json::array::boolean::example_list_bool::json_to_vector ... ok
[INFO] [stdout] test json::array::boolean::example_list_bool_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::boolean::example_list_bool_with_asserts::vector_to_json ... ok
[INFO] [stdout] test app::controller::directory_listing::tests::js_file_retrieval_with_disk_override ... FAILED
[INFO] [stdout] test json::array::float::example_list_f32::json_to_vector ... ok
[INFO] [stdout] test json::array::float::example_list_f32_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::float::example_list_f64::json_to_vector ... ok
[INFO] [stdout] test json::array::float::example_list_f64::vector_to_json ... ok
[INFO] [stdout] test json::array::float::example_list_f64_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::float::example_list_f64_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_i128::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_i128::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_i128_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_i16::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_i128_with_asserts::json_to_vector ... ok
[INFO] [stdout] test app::controller::directory_listing::tests::css_file_retrieval_with_disk_override ... FAILED
[INFO] [stdout] test json::array::float::example_list_f32_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::float::example_list_f32::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_i32::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_i16::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_i16_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_i16_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_i32::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_i32_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_i64::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_i64::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_i64_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_i64_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_i8::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_i8::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_i32_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_i8_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_i8_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_u128::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_u128::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_u16_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_u128_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_u128_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_u16::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_u16::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_u16_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_u32::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_u32::vector_to_json ... ok
[INFO] [stdout] test app::controller::favicon::tests::favicon_retrieval ... FAILED
[INFO] [stdout] test json::array::integer::example_list_u32_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_u64::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_u32_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_u64_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_u64_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_u8::vector_to_json ... ok
[INFO] [stdout] test json::array::integer::example_list_u8_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_u8::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_u8_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::null::example_list_null::vector_to_json ... ok
[INFO] [stdout] test json::array::null::example_list_null::json_to_vector ... ok
[INFO] [stdout] test json::array::integer::example_list_u64::json_to_vector ... ok
[INFO] [stdout] test json::array::null::example_list_null_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::null::example_list_null_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::object::example_multi_nested_object::vector_to_json ... ok
[INFO] [stdout] test json::array::string::example_list_string::json_to_vector ... ok
[INFO] [stdout] test json::array::string::example_list_string::vector_to_json ... ok
[INFO] [stdout] test json::array::string::example_list_string_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::object::example_multi_nested_object::json_to_vector ... ok
[INFO] [stdout] test json::array::string::example_list_string_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::object::example_multi_nested_object_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::tests::example::json_to_vector ... ok
[INFO] [stdout] test json::array::tests::example::vector_to_json ... ok
[INFO] [stdout] test app::controller::index::tests::file_retrieval ... FAILED
[INFO] [stdout] test json::array::tests::json_array_ends_with_random_chars::json_array_ends_with_random_chars ... ok
[INFO] [stdout] test json::array::tests::json_array_float::json_array_float ... ok
[INFO] [stdout] test app::controller::script::tests::file_retrieval ... FAILED
[INFO] [stdout] test json::array::tests::json_array_missing_comma::json_array_missing_comma ... ok
[INFO] [stdout] test json::array::tests::json_array_false_element::json_array_false_element ... ok
[INFO] [stdout] test json::array::tests::example_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::tests::json_array_multi_nested_array_multiple_items::json_array_multi_nested_array_multiple_items ... ok
[INFO] [stdout] test json::array::tests::json_array_multiple_elements::json_array_multiple_elements ... ok
[INFO] [stdout] test json::array::tests::json_array_multiple_true_elements::json_array_multiple_true_elements ... ok
[INFO] [stdout] test json::array::tests::example_with_asserts::vector_to_json ... ok
[INFO] [stdout] test json::array::tests::json_array::json_array ... ok
[INFO] [stdout] test json::array::tests::json_array_nested_array_multiple_items::json_array_nested_array_multiple_items ... ok
[INFO] [stdout] test json::array::tests::json_array_nested_array::json_array_nested_array ... ok
[INFO] [stdout] test json::array::tests::json_array_multiple_false_elements::json_array_multiple_false_elements ... ok
[INFO] [stdout] test json::array::object::example_multi_nested_object_with_asserts::json_to_vector ... ok
[INFO] [stdout] test json::array::tests::json_array_multiple_null_elements::json_array_multiple_null_elements ... ok
[INFO] [stdout] test json::array::tests::json_array_nested_empty_object::json_array_nested_empty_object ... ok
[INFO] [stdout] test json::array::tests::json_array_no_closing_square_bracket::json_array_no_closing_square_bracket ... ok
[INFO] [stdout] test json::array::tests::json_array_no_starting_square_bracket::json_array_no_starting_square_bracket ... ok
[INFO] [stdout] test json::array::tests::json_array_strings::json_array_strings ... ok
[INFO] [stdout] test json::array::tests::json_array_nested_object::json_array_nested_object ... ok
[INFO] [stdout] test json::array::tests::json_array_nested_object_nested_array::json_array_nested_object_nested_array ... ok
[INFO] [stdout] test json::array::tests::json_array_null_element::json_array_null_element ... ok
[INFO] [stdout] test json::array::tests::json_array_strings_multichar::json_array_strings_multichar ... ok
[INFO] [stdout] test json::array::tests::json_array_starts_with_random_chars::json_array_starts_with_random_chars ... ok
[INFO] [stdout] test json::array::tests::json_array_whitespace_after_array::json_array_whitespace_after_array ... ok
[INFO] [stdout] test json::array::tests::json_array_whitespace_after_last_element::json_array_whitespace_after_last_element ... ok
[INFO] [stdout] test json::array::tests::json_array_whitespace_before_array::json_array_whitespace_before_array ... ok
[INFO] [stdout] test json::array::tests::json_array_wrong_element::json_array_wrong_element ... ok
[INFO] [stdout] test json::array::tests::json_array_whitespaces::json_array_whitespaces ... ok
[INFO] [stdout] test json::array::tests::json_array_true_element::json_array_true_element ... ok
[INFO] [stdout] test json::array::tests::json_array_wrong_element_duplicate_exponent::json_array_wrong_element_duplicate_exponent ... ok
[INFO] [stdout] test json::array::tests::json_array_whitespace_before_first_element::json_array_whitespace_before_first_element ... ok
[INFO] [stdout] test json::array::tests::json_array_wrong_element_duplicate_minus::json_array_wrong_element_duplicate_minus ... ok
[INFO] [stdout] test json::array::tests::json_array_wrong_element_duplicate_point::json_array_wrong_element_duplicate_point ... ok
[INFO] [stdout] test json::array::tests::json_array_wrong_element_random_char::json_array_wrong_element_random_char ... ok
[INFO] [stdout] test json::array::tests::json_empty_array::json_empty_array ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_extra_comma_after_array_property::deserialize_json_extra_comma_after_array_property ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_extra_comma_after_integer_property::deserialize_json_extra_comma_after_integer_property ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_extra_comma_after_null_last_property::deserialize_json_extra_comma_after_null_last_property ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_extra_comma_after_boolean_false_property::deserialize_json_extra_comma_after_boolean_false_property ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_extra_comma_after_boolean_true_property::deserialize_json_extra_comma_after_boolean_true_property ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_missing_comma_after_float::deserialize_json_missing_comma_after_float ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_extra_comma_after_object_property::deserialize_json_extra_comma_after_object_property ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_missing_comma_after_boolean_false::deserialize_json_missing_comma_after_boolean_true ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_missing_comma_after_boolean_true::deserialize_json_missing_comma_after_boolean_true ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_missing_comma_after_null::deserialize_json_missing_comma_after_null ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_extra_comma_after_float_property::deserialize_json_extra_comma_after_float_property ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_missing_comma_after_object::deserialize_json_missing_comma_after_object ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_extra_comma_after_string_property::deserialize_json_extra_comma_after_string_property ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_missing_comma_after_array::deserialize_json_missing_comma_after_array ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_missing_comma_after_integer::deserialize_json_missing_comma_after_integer ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_no_delimiter::deserialize_json_no_delimiter ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_no_key::deserialize_json_no_key ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_no_opening_curly_brace::deserialize_json_no_opening_curly_brace ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_missing_comma_after_string::deserialize_json_missing_comma_after_string ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_with_extra_new_lines_to_struct::parse_new_lines_carriage_returns ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_no_closing_curly_brace::deserialize_json_no_closing_curly_brace ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_to_struct_containing_nested_struct::deserialize_json_to_struct_containing_nested_struct ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_to_struct_check_internals::deserialize_json_to_struct_check_internals ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_random_text::deserialize_json_random_text ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_with_multiple_nested_objects_to_struct::deserialize_json_with_multiple_nested_objects_to_struct ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_no_value::deserialize_json_no_value ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_to_struct_another_example::deserialize_json_to_struct_another_example ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_with_nested_object_null_to_struct_check_overrides::deserialize_json_with_nested_object_null_to_struct_check_overrides ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_with_null_fields_to_struct::parse_null ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_with_nested_object_null_field_to_struct::parse_nested_object_property_null ... ok
[INFO] [stdout] test json::object::tests::example::parse_json ... ok
[INFO] [stdout] test json::object::tests::example::to_json ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_with_nested_object_none_to_struct::deserialize_json_with_nested_object_none_to_struct ... ok
[INFO] [stdout] test json::object::tests::deserialize_json_with_nested_object_null_to_struct::deserialize_json_with_nested_object_null_to_struct ... ok
[INFO] [stdout] test json::object::tests::example_multi_nested_object::to_json ... ok
[INFO] [stdout] test json::property::tests::parse_raw_property_boolean_false ... ok
[INFO] [stdout] test json::property::tests::parse_raw_property_boolean_true ... ok
[INFO] [stdout] test json::property::tests::parse_raw_property_number_float ... ok
[INFO] [stdout] test json::object::tests::example_multi_nested_object::parse_json ... ok
[INFO] [stdout] test json::property::tests::parse_raw_property_number_integer ... ok
[INFO] [stdout] test json::property::tests::parse_raw_property_null ... ok
[INFO] [stdout] test json::property::tests::parse_raw_property_number_float_parse_error ... ok
[INFO] [stdout] test json::property::tests::parse_raw_property_number_integer_parse_error ... ok
[INFO] [stdout] test json::property::tests::parse_raw_property_string ... ok
[INFO] [stdout] test json::tests::json_types ... ok
[INFO] [stdout] test json::tests::to_string_array ... ok
[INFO] [stdout] test json::tests::to_string_boolean ... ok
[INFO] [stdout] test json::tests::to_string_f64 ... ok
[INFO] [stdout] test json::tests::to_string_f64_2 ... ok
[INFO] [stdout] test json::tests::to_string_f64_3 ... ok
[INFO] [stdout] test json::tests::to_string_f64_precision ... ok
[INFO] [stdout] test json::tests::to_string_f64_precision_3 ... ok
[INFO] [stdout] test json::tests::to_string_f64_precision_2 ... ok
[INFO] [stdout] test json::tests::to_string_int ... ok
[INFO] [stdout] test json::tests::to_string_not_set ... ok
[INFO] [stdout] test json::tests::to_string_null ... ok
[INFO] [stdout] test json::tests::to_string_object ... ok
[INFO] [stdout] test json::tests::to_string_string ... ok
[INFO] [stdout] test log::tests::combined_log_format_empty_body_uses_dash ... ok
[INFO] [stdout] test language::tests::language ... ok
[INFO] [stdout] test log::tests::json_contains_all_required_keys ... ok
[INFO] [stdout] test log::tests::combined_log_format_includes_clf_fields ... ok
[INFO] [stdout] test log::tests::json_escapes_special_chars_in_method_and_path ... ok
[INFO] [stdout] test log::tests::json_output_is_a_single_line ... ok
[INFO] [stdout] test log::tests::json_timestamp_is_iso8601_format ... ok
[INFO] [stdout] test log::tests::json_empty_body_reports_zero_bytes ... ok
[INFO] [stdout] test log::tests::json_values_match_request_and_response ... ok
[INFO] [stdout] test log::tests::server_url_thread_count_contains_protocol_and_address ... ok
[INFO] [stdout] test log::tests::server_url_thread_count_two_lines ... ok
[INFO] [stdout] test macros::tests::closure_captures_outer_variable ... ok
[INFO] [stdout] test log::tests::usage_info ... ok
[INFO] [stdout] test macros::tests::inline_closure_handler ... ok
[INFO] [stdout] test macros::tests::many_routes_all_work ... ok
[INFO] [stdout] test macros::tests::multiple_methods_on_same_path ... ok
[INFO] [stdout] test macros::tests::no_trailing_comma_accepted ... ok
[INFO] [stdout] test macros::tests::path_parameters_work ... ok
[INFO] [stdout] test macros::tests::put_patch_delete_routes ... ok
[INFO] [stdout] test macros::tests::single_get_route ... ok
[INFO] [stdout] test macros::tests::trailing_comma_accepted ... ok
[INFO] [stdout] test macros::tests::single_post_route ... ok
[INFO] [stdout] test log::tests::log_access_uses_json_when_env_var_set ... ok
[INFO] [stdout] test maintenance::tests::healthz_passes_in_maintenance_mode ... ok
[INFO] [stdout] test maintenance::tests::maintenance_mode_returns_503 ... ok
[INFO] [stdout] test macros::tests::unmatched_route_falls_through_to_non_200 ... ok
[INFO] [stdout] test maintenance::tests::readyz_passes_in_maintenance_mode ... ok
[INFO] [stdout] test maintenance::tests::normal_mode_passes_through ... ok
[INFO] [stdout] test log::tests::log_request_response ... ok
[INFO] [stdout] test log::tests::log_access_uses_combined_by_default ... ok
[INFO] [stdout] test mcp::tests::application_returns_405_for_delete_on_mcp_path ... ok
[INFO] [stdout] test mcp::tests::application_dispatches_post_to_mcp_endpoint ... ok
[INFO] [stdout] test mcp::tests::application_opens_sse_stream_for_get_on_mcp_path ... ok
[INFO] [stdout] test mcp::tests::application_falls_through_for_non_mcp_path ... ok
[INFO] [stdout] test mcp::tests::async_tool_tests::mixed_sync_and_async_tools_both_appear_and_are_both_callable ... ok
[INFO] [stdout] test mcp::tests::async_tool_tests::remove_tool_removes_a_dynamically_registered_async_tool ... ok
[INFO] [stdout] test mcp::tests::async_tool_tests::register_async_tool_makes_it_immediately_callable_and_pushes_list_changed ... ok
[INFO] [stdout] test mcp::tests::async_tool_tests::unknown_tool_name_is_still_an_error_when_only_async_tools_are_registered ... ok
[INFO] [stdout] test mcp::tests::auth_correct_token_succeeds ... ok
[INFO] [stdout] test mcp::tests::async_tool_tests::async_tool_appears_in_tools_list_and_is_callable ... ok
[INFO] [stdout] test mcp::tests::auth_protects_the_get_sse_endpoint_too ... ok
[INFO] [stdout] test mcp::tests::auth_options_preflight_also_requires_token ... ok
[INFO] [stdout] test mcp::tests::auth_www_authenticate_header_present_on_401 ... ok
[INFO] [stdout] test mcp::tests::auth_missing_token_returns_401 ... ok
[INFO] [stdout] test mcp::tests::auth_wrong_token_returns_401 ... ok
[INFO] [stdout] test mcp::tests::auth_non_mcp_path_not_affected ... ok
[INFO] [stdout] test mcp::tests::batch_dispatches_each_element_and_wraps_results_in_an_array ... ok
[INFO] [stdout] test mcp::tests::async_tool_tests::async_tool_error_surfaces_as_is_error_true ... ok
[INFO] [stdout] test mcp::tests::batch_of_only_notifications_returns_202_with_no_body ... ok
[INFO] [stdout] test mcp::tests::cancellation_entry_is_removed_after_the_call_completes ... ok
[INFO] [stdout] test mcp::tests::batch_preserves_per_element_success_and_error_results ... ok
[INFO] [stdout] test mcp::tests::cancellation_matches_a_string_request_id_too ... ok
[INFO] [stdout] test mcp::tests::cancellation_notification_in_a_batch_produces_no_response_entry ... ok
[INFO] [stdout] test mcp::tests::completion_for_unregistered_argument_name_returns_empty_values ... ok
[INFO] [stdout] test mcp::tests::completion_handler_error_returns_invalid_params ... ok
[INFO] [stdout] test mcp::tests::completion_argument_without_value_defaults_to_empty_partial ... ok
[INFO] [stdout] test mcp::tests::batch_omits_notifications_from_the_response_array ... ok
[INFO] [stdout] test mcp::tests::completion_for_unregistered_ref_returns_empty_values_not_an_error ... ok
[INFO] [stdout] test log::tests::info ... ok
[INFO] [stdout] test mcp::tests::batch_initialize_establishes_a_session_via_mcp_session_id_header ... ok
[INFO] [stdout] test mcp::tests::cursor_round_trips_through_encode_and_decode ... ok
[INFO] [stdout] test mcp::tests::decode_cursor_rejects_garbage ... ok
[INFO] [stdout] test mcp::tests::completion_supports_prompt_ref_type ... ok
[INFO] [stdout] test mcp::tests::completion_missing_argument_returns_invalid_params ... ok
[INFO] [stdout] test mcp::tests::completion_missing_ref_returns_invalid_params ... ok
[INFO] [stdout] test mcp::tests::empty_batch_array_returns_a_single_invalid_request_error ... ok
[INFO] [stdout] test mcp::tests::disconnected_client_is_pruned_on_the_next_notify ... ok
[INFO] [stdout] test mcp::tests::dynamic_registration_is_visible_across_clones ... ok
[INFO] [stdout] test mcp::tests::extract_arg_present ... ok
[INFO] [stdout] test mcp::tests::extract_arg_absent_returns_none ... ok
[INFO] [stdout] test mcp::tests::extract_id_absent_is_none ... ok
[INFO] [stdout] test mcp::tests::extract_id_null_returns_null_string ... ok
[INFO] [stdout] test mcp::tests::completion_truncates_to_100_values_and_reports_has_more ... ok
[INFO] [stdout] test mcp::tests::completion_returns_matching_values_for_a_registered_tool_argument ... ok
[INFO] [stdout] test mcp::tests::extract_id_number ... ok
[INFO] [stdout] test mcp::tests::extract_id_string ... ok
[INFO] [stdout] test mcp::tests::extract_raw_object ... ok
[INFO] [stdout] test mcp::tests::extract_str_simple ... ok
[INFO] [stdout] test mcp::tests::handle_request_without_context_gives_tool_with_context_an_empty_context ... ok
[INFO] [stdout] test mcp::tests::extract_raw_string_value ... ok
[INFO] [stdout] test mcp::tests::extract_str_does_not_match_substrings ... ok
[INFO] [stdout] test mcp::tests::extract_str_escaped_quotes ... ok
[INFO] [stdout] test mcp::tests::extract_raw_number ... ok
[INFO] [stdout] test mcp::tests::extract_raw_nested_objects ... ok
[INFO] [stdout] test mcp::tests::extract_str_missing_key ... ok
[INFO] [stdout] test mcp::tests::initialize_advertises_logging_capability_when_enabled ... ok
[INFO] [stdout] test mcp::tests::initialize_advertises_completions_capability_once_one_is_registered ... ok
[INFO] [stdout] test mcp::tests::initialize_advertises_resources_subscribe_true ... ok
[INFO] [stdout] test mcp::tests::initialize_honors_an_older_client_version ... ok
[INFO] [stdout] test mcp::tests::initialize_advertises_list_changed_true_for_tools_resources_prompts ... ok
[INFO] [stdout] test mcp::tests::initialize_returns_protocol_version ... ok
[INFO] [stdout] test mcp::tests::initialize_without_params_at_all_does_not_error ... ok
[INFO] [stdout] test mcp::tests::initialize_negotiates_down_to_server_version_for_a_newer_client ... ok
[INFO] [stdout] test mcp::tests::initialize_matching_client_version_is_echoed ... ok
[INFO] [stdout] test mcp::tests::initialize_omits_logging_capability_by_default ... ok
[INFO] [stdout] test ingress::tests::tls_tests::https_get_fails_when_server_cert_is_not_signed_by_the_trusted_ca ... ok
[INFO] [stdout] test ingress::tests::tls_tests::https_get_succeeds_against_a_server_signed_by_the_trusted_ca ... ok
[INFO] [stdout] test mcp::tests::initialize_returns_mcp_session_id_header ... ok
[INFO] [stdout] test mcp::tests::initialize_without_protocol_version_defaults_to_server_version ... ok
[INFO] [stdout] test mcp::tests::initialized_notification_returns_202 ... ok
[INFO] [stdout] test mcp::tests::is_cancelled_defaults_to_false_without_a_cancellation_notification ... ok
[INFO] [stdout] test mcp::tests::json_escape_newlines ... ok
[INFO] [stdout] test mcp::tests::json_escape_plain_text_unchanged ... ok
[INFO] [stdout] test mcp::tests::json_escape_quotes_and_backslash ... ok
[INFO] [stdout] test mcp::tests::initialize_omits_completions_capability_by_default ... ok
[INFO] [stdout] test mcp::tests::list_roots_fails_without_a_session_id_even_with_roots_declared ... ok
[INFO] [stdout] test mcp::tests::log_below_the_set_level_is_filtered_out_and_never_queued ... ok
[INFO] [stdout] test mcp::tests::log_level_orders_from_debug_to_emergency ... ok
[INFO] [stdout] test mcp::tests::log_delivers_a_notifications_message_frame_with_level_logger_and_data ... ok
[INFO] [stdout] test mcp::tests::log_level_parse_rejects_unknown_strings ... ok
[INFO] [stdout] test mcp::tests::log_without_logger_omits_the_logger_field ... ok
[INFO] [stdout] test mcp::tests::missing_method_field_returns_invalid_request ... ok
[INFO] [stdout] test mcp::tests::no_auth_configured_allows_all ... ok
[INFO] [stdout] test mcp::tests::notify_delivers_a_frame_with_method_and_params_to_a_connected_client ... ok
[INFO] [stdout] test mcp::tests::mcp_path_override_with_at ... ok
[INFO] [stdout] test mcp::tests::notify_reaches_every_connected_client ... ok
[INFO] [stdout] test mcp::tests::list_roots_fails_fast_without_roots_capability_declared ... ok
[INFO] [stdout] test mcp::tests::notify_drops_a_client_whose_buffer_fills_up ... ok
[INFO] [stdout] test mcp::tests::notify_resource_updated_for_an_unsubscribed_uri_is_a_no_op ... ok
[INFO] [stdout] test mcp::tests::notify_without_params_omits_the_params_field ... ok
[INFO] [stdout] test mcp::tests::log_is_delivered_by_default_at_every_level ... ok
[INFO] [stdout] test mcp::tests::notify_resource_updated_delivers_to_the_subscribed_session ... ok
[INFO] [stdout] test mcp::tests::log_level_parse_round_trips_with_as_str ... ok
[INFO] [stdout] test mcp::tests::notify_resource_updated_does_not_reach_an_unsubscribed_session ... ok
[INFO] [stdout] test mcp::tests::plain_tool_still_works_unaffected_by_context_plumbing ... ok
[INFO] [stdout] test mcp::tests::list_roots_full_round_trip_and_caches_within_the_session ... ok
[INFO] [stdout] test mcp::tests::prompts_list_contains_registered_prompts ... ok
[INFO] [stdout] test mcp::tests::notifications_cancelled_for_an_unknown_request_id_is_a_silent_no_op ... ok
[INFO] [stdout] test mcp::tests::progress_token_numeric_type_round_trips_unquoted ... ok
[INFO] [stdout] test mcp::tests::prompts_list_includes_argument_definitions ... ok
[INFO] [stdout] test mcp::tests::prompts_get_unknown_prompt_returns_error ... ok
[INFO] [stdout] test mcp::tests::register_prompt_makes_it_immediately_usable ... ok
[INFO] [stdout] test mcp::tests::prompts_get_returns_messages ... ok
[INFO] [stdout] test mcp::tests::register_resource_makes_it_immediately_readable ... ok
[INFO] [stdout] test mcp::tests::prompts_list_paginates_when_page_size_set ... ok
[INFO] [stdout] test mcp::tests::remove_prompt_removes_it ... ok
[INFO] [stdout] test mcp::tests::remove_resource_by_uri_template_removes_it ... ok
[INFO] [stdout] test mcp::tests::register_tool_makes_it_immediately_callable ... ok
[INFO] [stdout] test mcp::tests::ping_returns_empty_result ... ok
[INFO] [stdout] test mcp::tests::remove_tool_returns_false_when_not_found_and_sends_no_notification ... ok
[INFO] [stdout] test mcp::tests::resources_list_contains_registered_resource ... ok
[INFO] [stdout] test mcp::tests::remove_tool_returns_true_and_removes_it ... ok
[INFO] [stdout] test mcp::tests::register_tool_pushes_tools_list_changed_notification ... ok
[INFO] [stdout] test mcp::tests::resources_list_paginates_when_page_size_set ... ok
[INFO] [stdout] test mcp::tests::report_progress_omits_total_and_message_when_not_given ... ok
[INFO] [stdout] test ingress::tests::tls_tests::https_get_sends_the_bearer_token ... ok
[INFO] [stdout] test mcp::tests::resources_read_returns_content ... ok
[INFO] [stdout] test mcp::tests::resources_read_unknown_uri_returns_error ... ok
[INFO] [stdout] test mcp::tests::report_progress_is_a_safe_no_op_without_a_live_server_context ... ok
[INFO] [stdout] test mcp::tests::sample_fails_fast_without_sampling_capability_declared ... ok
[INFO] [stdout] test mcp::tests::sample_fails_without_a_session_id_even_with_sampling_declared ... ok
[INFO] [stdout] test mcp::tests::split_array_elements_ignores_commas_inside_nested_objects_and_strings ... ok
[INFO] [stdout] test mcp::tests::set_log_level_unknown_level_returns_invalid_params ... ok
[INFO] [stdout] test mcp::tests::roots_list_changed_notification_invalidates_the_cache ... ok
[INFO] [stdout] test mcp::tests::split_array_elements_single_element ... ok
[INFO] [stdout] test mcp::tests::start_sse_stream_returns_event_stream_headers_and_a_reader ... ok
[INFO] [stdout] test mcp::tests::set_log_level_missing_level_returns_invalid_params ... ok
[INFO] [stdout] test mcp::tests::set_log_level_with_valid_level_succeeds ... ok
[INFO] [stdout] test mcp::tests::subscribe_without_a_session_id_returns_invalid_params ... ok
[INFO] [stdout] test mcp::tests::subscribe_with_a_session_id_succeeds ... ok
[INFO] [stdout] test mcp::tests::tool_handler_observes_a_cancellation_sent_mid_call ... ok
[INFO] [stdout] test mcp::tests::sample_full_round_trip_via_sse_and_post_response ... ok
[INFO] [stdout] test mcp::tests::subscribe_missing_uri_returns_invalid_params ... ok
[INFO] [stdout] test mcp::tests::tools_call_embedded_resource_serializes_uri_mime_type_and_text ... ok
[INFO] [stdout] test mcp::tests::tool_with_context_sees_empty_client_info_for_unrecognized_session_id ... ok
[INFO] [stdout] test mcp::tests::tool_with_context_sees_client_info_recorded_at_initialize_via_execute ... ok
[INFO] [stdout] test mcp::tests::tools_call_error_returns_is_error_true ... ok
[INFO] [stdout] test mcp::tests::tools_list_annotated_tool_serializes_camel_case_hints ... ok
[INFO] [stdout] test mcp::tests::tools_call_echo_returns_content ... ok
[INFO] [stdout] test mcp::tests::tools_call_without_progress_token_reports_nothing ... ok
[INFO] [stdout] test mcp::tests::tools_call_unknown_tool_returns_error ... ok
[INFO] [stdout] test mcp::tests::tools_call_image_content_serializes_data_and_mime_type ... ok
[INFO] [stdout] test mcp::tests::tools_call_with_progress_token_delivers_progress_notifications_over_sse ... ok
[INFO] [stdout] test mcp::tests::tools_list_annotated_tool_with_all_hints_none_emits_empty_object ... ok
[INFO] [stdout] test mcp::tests::tools_list_cursor_past_the_end_returns_an_empty_page ... ok
[INFO] [stdout] test mcp::tests::tools_list_contains_registered_tools ... ok
[INFO] [stdout] test mcp::tests::tools_list_empty_when_no_tools ... ok
[INFO] [stdout] test mcp::tests::tools_list_first_page_returns_page_size_items_and_next_cursor ... ok
[INFO] [stdout] test mcp::tests::tools_list_invalid_cursor_returns_invalid_params_error ... ok
[INFO] [stdout] test mcp::tests::tools_list_plain_tool_has_no_annotations_key ... ok
[INFO] [stdout] test mcp::tests::unsubscribe_removes_the_uri_entry_entirely_once_empty ... ok
[INFO] [stdout] test mcp::tests::tools_list_second_page_via_cursor_returns_remainder_with_no_next_cursor ... ok
[INFO] [stdout] test mcp::tests::tools_list_without_page_size_is_unpaginated_and_has_no_next_cursor ... ok
[INFO] [stdout] test mcp::tests::unsubscribe_without_a_session_id_returns_invalid_params ... ok
[INFO] [stdout] test mcp::tests::unsubscribe_stops_further_notifications ... ok
[INFO] [stdout] test mcp::tests::wrap_forwards_non_mcp_to_existing_app ... ok
[INFO] [stdout] test metrics::tests::circuit_breaker_state_appears_in_prometheus_text ... ok
[INFO] [stdout] test mcp::tests::wrap_mcp_takes_priority_over_wrapped_app ... ok
[INFO] [stdout] test mcp::tests::two_initialize_calls_get_different_session_ids ... ok
[INFO] [stdout] test metrics::tests::connection_close_decrements_active_connections ... ok
[INFO] [stdout] test metrics::tests::connection_open_increments_active_connections ... ok
[INFO] [stdout] test metrics::tests::histogram_buckets_are_cumulative ... ok
[INFO] [stdout] test metrics::tests::metrics_layer_records_500_on_handler_error ... ok
[INFO] [stdout] test metrics::tests::histogram_includes_bucket_sum_and_count_lines ... ok
[INFO] [stdout] test metrics::tests::metrics_layer_propagates_handler_error ... ok
[INFO] [stdout] test metrics::tests::metrics_layer_records_route_on_success ... ok
[INFO] [stdout] test metrics::tests::metrics_layer_returns_handler_response_unchanged ... ok
[INFO] [stdout] test mcp::tests::unknown_method_returns_method_not_found ... ok
[INFO] [stdout] test metrics::tests::circuit_breaker_state_reflects_closed_backend_as_zero ... ok
[INFO] [stdout] test metrics::tests::open_and_close_net_zero ... ok
[INFO] [stdout] test metrics::tests::metrics_layer_strips_query_string_from_path ... ok
[INFO] [stdout] test metrics::tests::prometheus_text_contains_required_metric_names ... ok
[INFO] [stdout] test metrics::tests::record_error_increments_errors_total ... ok
[INFO] [stdout] test metrics::tests::prometheus_text_contains_help_and_type_lines ... ok
[INFO] [stdout] test metrics::tests::prometheus_text_type_annotations_are_correct ... ok
[INFO] [stdout] test metrics::tests::record_request_called_multiple_times_accumulates ... ok
[INFO] [stdout] test metrics::tests::record_request_increments_requests_total ... ok
[INFO] [stdout] test metrics::tests::prometheus_text_metric_values_are_parseable_numbers ... ok
[INFO] [stdout] test metrics::tests::record_route_appears_in_prometheus_text ... ok
[INFO] [stdout] test metrics::tests::record_route_counts_accumulate_for_same_key ... ok
[INFO] [stdout] test middleware::tests::counting_middleware_counts_requests ... ok
[INFO] [stdout] test metrics::tests::record_route_separates_by_method ... ok
[INFO] [stdout] test middleware::tests::middleware_can_short_circuit ... ok
[INFO] [stdout] test middleware::tests::inner_app_still_serves_requests_normally ... ok
[INFO] [stdout] test metrics::tests::record_route_separates_by_status ... ok
[INFO] [stdout] test middleware::tests::middleware_can_add_response_header ... ok
[INFO] [stdout] test middleware::tests::middleware_sees_request_method_and_uri ... ok
[INFO] [stdout] test middleware::tests::middleware_runs_before_inner_app ... ok
[INFO] [stdout] test middleware::tests::no_middleware_passes_through_to_inner_app ... ok
[INFO] [stdout] test metrics::tests::prometheus_text_requests_reflect_recorded_requests ... ok
[INFO] [stdout] test middleware::tests::second_middleware_short_circuits_does_not_reach_inner_app ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_3g2_file ... ok
[INFO] [stdout] test metrics::tests::route_prometheus_text_contains_correct_help_and_type_lines ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_7z_file ... ok
[INFO] [stdout] test middleware::tests::multiple_middlewares_run_in_order ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_audio_aac_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_audio_flac_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_audio_oga_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_audio_wav_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_azv_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_avi_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_abiword_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_bin_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_binary_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_cda_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_crt_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_css_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_doc_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_docx_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_csh_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_eot_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_csv_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_gz_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_html_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_apng_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_htm_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_ics_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_avif_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_bmp_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_cur_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_jfif_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_jif_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_gif_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_jpeg_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_ico_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_jpe_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_png_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_svg_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_tiff_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_jar_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_jpg_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_json_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_jsonld_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_midi_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_mid_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_mp3_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_mjs_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_mp4_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_mpkg_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_tif_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_ods_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_odp_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_odt_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_php_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_image_webp_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_js_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_rar_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_ppt_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_sh_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_pptx_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_rtf_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_swf_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_tar_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_text_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_3gp_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_m4p_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_ts_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_ttf_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_m4v_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_mpeg_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_mpg_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_mp4_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_ogg_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_ogv_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_ogx_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_opus_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_otf_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_pdf_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_quicktime_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_vsd_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_video_webm_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_wasm_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_webm_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_xhtml_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_xls_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_woff2_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_xml_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_woff_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_xlsx_file ... ok
[INFO] [stdout] test mime_type::tests::wasm_mime_type_constant ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_xul_file ... ok
[INFO] [stdout] test http_client::tests::tests::timeout_returns_error ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_zip_file ... ok
[INFO] [stdout] test mcp::tests::split_array_elements_empty_array_returns_empty_vec ... ok
[INFO] [stdout] test mcp::tests::sample_error_response_is_surfaced_to_the_caller ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_bz2_file ... ok
[INFO] [stdout] test mime_type::tests::detect_mime_type_for_bz_file ... ok
[INFO] [stdout] test otel::tests::as_header_propagates_sampled_flag ... ok
[INFO] [stdout] test otel::tests::as_header_roundtrips ... ok
[INFO] [stdout] test null::tests::null_check ... ok
[INFO] [stdout] test mcp::tests::split_array_elements_simple ... ok
[INFO] [stdout] test otel::tests::client_span_helper_uses_client_kind ... ok
[INFO] [stdout] test otel::tests::child_span_inherits_parents_unsampled_state ... ok
[INFO] [stdout] test otel::tests::current_traceparent_is_none_outside_span ... ok
[INFO] [stdout] test otel::tests::finish_carries_kind ... ok
[INFO] [stdout] test otel::tests::otel_layer_creates_span_for_incoming_request ... ok
[INFO] [stdout] test otel::tests::otel_layer_accepts_incoming_traceparent ... ok
[INFO] [stdout] test otel::tests::otel_layer_handles_invalid_traceparent_gracefully ... ok
[INFO] [stdout] test otel::tests::new_span_id_is_16_hex_chars ... ok
[INFO] [stdout] test otel::tests::otel_layer_passes_through_without_setup ... ok
[INFO] [stdout] test otel::tests::child_span_inherits_parents_sampled_state ... ok
[INFO] [stdout] test otel::tests::otlp_build_body_is_valid_json_structure ... ok
[INFO] [stdout] test otel::tests::new_trace_id_is_32_hex_chars ... ok
[INFO] [stdout] test otel::tests::otlp_build_body_contains_service_name ... ok
[INFO] [stdout] test otel::tests::otlp_build_body_includes_parent_span_id_when_present ... ok
[INFO] [stdout] test otel::tests::otlp_build_body_renders_client_kind ... ok
[INFO] [stdout] test otel::tests::explicit_end_behaves_same_as_drop ... ok
[INFO] [stdout] test otel::tests::otlp_build_body_renders_generic_attributes ... ok
[INFO] [stdout] test otel::tests::otlp_build_body_error_span_has_status_code_2 ... ok
[INFO] [stdout] test otel::tests::otlp_build_body_omits_http_attributes_when_http_method_empty ... ok
[INFO] [stdout] test otel::tests::parse_rejects_too_few_parts ... ok
[INFO] [stdout] test otel::tests::otlp_build_body_renders_internal_kind ... ok
[INFO] [stdout] test otel::tests::parse_rejects_short_trace_id ... ok
[INFO] [stdout] test otel::tests::parse_rejects_wrong_version ... ok
[INFO] [stdout] test otel::tests::otlp_exporter_parses_http_prefix ... ok
[INFO] [stdout] test otel::tests::parse_rejects_invalid_hex ... ok
[INFO] [stdout] test otel::tests::record_error_sets_status_and_message_attribute ... ok
[INFO] [stdout] test otel::tests::parse_valid_traceparent_sampled ... ok
[INFO] [stdout] test otel::tests::span_helper_uses_internal_kind ... ok
[INFO] [stdout] test otel::tests::stdout_format_span_includes_kind_and_attributes ... ok
[INFO] [stdout] test otel::tests::span_drop_restores_parent_as_current ... ok
[INFO] [stdout] test otel::tests::successive_ids_are_distinct ... ok
[INFO] [stdout] test pagination::tests::cursor_page_has_next_when_cursor_present ... ok
[INFO] [stdout] test otel::tests::span_with_no_active_parent_has_no_parent_id ... ok
[INFO] [stdout] test otel::tests::three_levels_deep_nesting_chains_correctly ... ok
[INFO] [stdout] test pagination::tests::cursor_page_link_header_invalid_base_url_returns_none ... ok
[INFO] [stdout] test pagination::tests::cursor_page_link_header_with_next_cursor ... ok
[INFO] [stdout] test pagination::tests::cursor_page_link_header_without_next_cursor_is_none ... ok
[INFO] [stdout] test pagination::tests::cursor_page_no_next_when_cursor_absent ... ok
[INFO] [stdout] test pagination::tests::last_page_has_prev_but_not_next ... ok
[INFO] [stdout] test pagination::tests::cursor_page_map_transforms_items_and_preserves_cursor ... ok
[INFO] [stdout] test pagination::tests::link_header_contains_correct_page_numbers ... ok
[INFO] [stdout] test pagination::tests::link_header_first_page_omits_first_and_prev ... ok
[INFO] [stdout] test pagination::tests::link_header_invalid_base_url_returns_none ... ok
[INFO] [stdout] test pagination::tests::link_header_last_page_omits_next_and_last ... ok
[INFO] [stdout] test otel::tests::set_attribute_appears_in_span_data ... ok
[INFO] [stdout] test otel::tests::set_error_sets_status_code_2 ... ok
[INFO] [stdout] test body::multipart_form_data::tests::parse_multipart_request_body_image_no_end_boundary ... ok
[INFO] [stdout] test otel::tests::setup_with_exporter_is_callable_and_does_not_panic ... ok
[INFO] [stdout] test otel::tests::parse_valid_traceparent_not_sampled ... ok
[INFO] [stdout] test pagination::tests::link_header_middle_page_has_all_four_rels ... ok
[INFO] [stdout] test pagination::tests::link_header_preserves_existing_query_params ... ok
[INFO] [stdout] test pagination::tests::first_page_has_next_but_not_prev ... ok
[INFO] [stdout] test pagination::tests::link_header_single_page_returns_none ... ok
[INFO] [stdout] test pagination::tests::map_transforms_items_and_preserves_metadata ... ok
[INFO] [stdout] test pagination::tests::middle_page_has_next_and_prev ... ok
[INFO] [stdout] test otel::tests::setup_from_env_second_call_is_noop ... ok
[INFO] [stdout] test pagination::tests::single_page_has_neither_next_nor_prev ... ok
[INFO] [stdout] test pagination::tests::new_computes_exact_total_pages ... ok
[INFO] [stdout] test proxy::backend_parse_tests::empty_host_returns_none ... ok
[INFO] [stdout] test pagination::tests::new_zero_total_items_has_zero_pages ... ok
[INFO] [stdout] test proxy::backend_parse_tests::bare_host_port ... ok
[INFO] [stdout] test proxy::backend_parse_tests::grpcs_scheme_explicit_port ... ok
[INFO] [stdout] test proxy::backend_parse_tests::grpcs_scheme_sets_tls ... ok
[INFO] [stdout] test proxy::backend_parse_tests::h2s_scheme_explicit_port ... ok
[INFO] [stdout] test proxy::backend_parse_tests::bare_host_no_port_defaults_to_80 ... ok
[INFO] [stdout] test proxy::backend_parse_tests::h2_scheme_plain ... ok
[INFO] [stdout] test pagination::tests::new_computes_total_pages ... ok
[INFO] [stdout] test proxy::backend_parse_tests::h2s_scheme_sets_tls ... ok
[INFO] [stdout] test proxy::tests::circuit_breaker_records_failure_and_opens_after_threshold ... ok
[INFO] [stdout] test proxy::tests::chunked_multi_chunk_response_is_decoded_correctly ... ok
[INFO] [stdout] test proxy::backend_parse_tests::http_scheme ... ok
[INFO] [stdout] test proxy::tests::chunked_response_is_decoded_and_poolable ... ok
[INFO] [stdout] test proxy::backend_parse_tests::grpc_scheme_plain ... ok
[INFO] [stdout] test proxy::backend_parse_tests::https_scheme_explicit_port ... ok
[INFO] [stdout] test proxy::backend_parse_tests::https_scheme_sets_tls_and_default_port ... ok
[INFO] [stdout] test proxy::tests::concat_reader_drains_prefix_then_inner ... ok
[INFO] [stdout] test pagination::tests::new_clamps_page_and_per_page_to_minimum_one ... ok
[INFO] [stdout] test proxy::tests::circuit_breaker_skips_open_backend_without_dialing ... ok
[INFO] [stdout] test proxy::tests::forwarded_request_includes_x_forwarded_for ... ok
[INFO] [stdout] test proxy::tests::path_prefix_passes_non_matching_to_inner_app ... ok
[INFO] [stdout] test proxy::tests::hop_by_hop_headers_are_stripped ... ok
[INFO] [stdout] test otel::tests::otlp_build_body_no_parent_span_id_when_root ... ok
[INFO] [stdout] test proxy::tests::circuit_breaker_records_success_on_successful_proxy ... ok
[INFO] [stdout] test proxy::tests::pool_respects_max_idle_limit ... ok
[INFO] [stdout] test otel::tests::nested_span_parent_id_is_outer_span_id ... ok
[INFO] [stdout] test proxy::tests::path_prefix_proxies_matching_requests ... ok
[INFO] [stdout] test proxy::tests::connection_close_response_is_not_reusable ... ok
[INFO] [stdout] test proxy::tests::proxy_buffers_small_content_length_response ... ok
[INFO] [stdout] test proxy::tests::h2_reverse_proxy_does_not_panic_under_current_thread_runtime ... ok
[INFO] [stdout] test proxy::tests::proxy_returns_502_when_all_backends_refuse ... ok
[INFO] [stdout] test proxy::tests::proxy_can_be_used_as_middleware_wrap ... ok
[INFO] [stdout] test proxy::tests::proxy_returns_upstream_status_code ... ok
[INFO] [stdout] test proxy::tests::proxy_fails_over_to_second_backend_when_first_is_down ... ok
[INFO] [stdout] test proxy::tests::proxy_preserves_upstream_body ... ok
[INFO] [stdout] test proxy::tests::proxy_with_no_backends_returns_502 ... ok
[INFO] [stdout] test proxy::tests::proxy_with_builder_options_compiles_and_works ... ok
[INFO] [stdout] test proxy::tests::proxy_forwards_and_returns_200 ... ok
[INFO] [stdout] test proxy::tests::should_stream_detects_chunked ... ok
[INFO] [stdout] test proxy::tests::should_stream_large_content_length ... ok
[INFO] [stdout] test proxy::tests::should_stream_detects_sse ... ok
[INFO] [stdout] test proxy::tests::should_not_stream_small_content_length ... ok
[INFO] [stdout] test proxy::tests::without_circuit_breaker_behavior_is_completely_unchanged ... ok
[INFO] [stdout] test proxy_config::health::tests::h2_scheme_is_plain_with_explicit_port ... ok
[INFO] [stdout] test proxy_config::health::tests::bare_host_port_no_scheme_is_plain ... ok
[INFO] [stdout] test proxy_config::health::tests::https_scheme_is_tls_default_443 ... ok
[INFO] [stdout] test proxy_config::health::tests::http_scheme_is_plain_default_80 ... ok
[INFO] [stdout] test proxy_config::health::tests::empty_host_returns_none ... ok
[INFO] [stdout] test proxy::tests::pool_evicts_stale_connections ... ok
[INFO] [stdout] test proxy_config::health::tests::ipv6_literal_with_port ... ok
[INFO] [stdout] test proxy_config::health::tests::path_component_is_dropped ... ok
[INFO] [stdout] test proxy_config::health::tests::ws_scheme_is_plain_default_80 ... ok
[INFO] [stdout] test proxy_config::health::tests::ws_scheme_explicit_port ... ok
[INFO] [stdout] test proxy_config::health::tests::wss_scheme_explicit_port ... ok
[INFO] [stdout] test proxy_config::health::tests::wss_scheme_is_tls_default_443 ... ok
[INFO] [stdout] test proxy_config::parser::tests::parse_route ... ok
[INFO] [stdout] test proxy_config::parser::tests::parse_nested_rewrite_array ... ok
[INFO] [stdout] test proxy_config::parser::tests::parse_server_section ... ok
[INFO] [stdout] test proxy_config::parser::tests::parse_route_middleware ... ok
[INFO] [stdout] test body::multipart_form_data::tests::parse_multipart_request_body_image ... ok
[INFO] [stdout] test proxy_config::parser::tests::parse_value_array ... ok
[INFO] [stdout] test proxy_config::parser::tests::strip_comments_test ... ok
[INFO] [stdout] test proxy_config::parser::tests::parse_value_string ... ok
[INFO] [stdout] test proxy_config::parser::tests::parse_tcp_proxy ... ok
[INFO] [stdout] test proxy_config::parser::tests::parse_upstream_health_check ... ok
[INFO] [stdout] test proxy_config::parser::tests::parse_upstream ... ok
[INFO] [stdout] test proxy_config::tests::config_driven_app_falls_back_to_app_for_unmatched ... ok
[INFO] [stdout] test proxy_config::tests::bearer_auth_passes_with_correct_token ... ok
[INFO] [stdout] test proxy_config::tests::bearer_auth_returns_401_without_authorization_header ... ok
[INFO] [stdout] test proxy_config::tests::bearer_auth_returns_401_with_wrong_token ... ok
[INFO] [stdout] test proxy_config::tests::config_driven_app_redirect ... ok
[INFO] [stdout] test proxy_config::tests::dynamic_proxy_default_strategy_is_round_robin ... ok
[INFO] [stdout] test proxy_config::tests::config_driven_app_multiple_routes_first_match_wins ... ok
[INFO] [stdout] test proxy_config::tests::config_driven_app_with_config_pins_fallback_cors_denial ... ok
[INFO] [stdout] test proxy_config::tests::config_driven_app_routes_to_respond_handler ... ok
[INFO] [stdout] test proxy::tests::pool_does_not_reuse_connection_close_response ... ok
[INFO] [stdout] test proxy_config::tests::dynamic_proxy_ip_hash_is_sticky_per_client ... ok
[INFO] [stdout] test proxy_config::tests::config_driven_app_ip_hash_strategy_is_sticky_end_to_end ... ok
[INFO] [stdout] test proxy_config::tests::dynamic_proxy_least_connections_avoids_busy_backend ... ok
[INFO] [stdout] test proxy_config::tests::dynamic_proxy_random_always_picks_a_live_backend ... ok
[INFO] [stdout] test proxy_config::tests::dynamic_proxy_round_robin_cycles_backends ... ok
[INFO] [stdout] test proxy_config::tests::dynamic_proxy_unknown_strategy_falls_back_to_round_robin ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_basic_auth ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_cache_middleware ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_ip_filter ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_jwt_auth ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_rewrite_request_rules ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_redirect_302 ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_route_middleware ... ok
[INFO] [stdout] test proxy::tests::proxy_returns_502_when_backend_silently_closes ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_rewrite_response_rules ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_routes ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_health_check ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_bearer_auth ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_ws_proxy ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_max_body_size ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_udp_proxy ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_tcp_proxy ... ok
[INFO] [stdout] test proxy_config::tests::from_str_ws_proxy_health_check_defaults ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_timeout_ms ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_upstreams ... ok
[INFO] [stdout] test proxy_config::tests::ip_allow_filter_blocks_ip_not_in_allowlist ... ok
[INFO] [stdout] test proxy_config::tests::ip_deny_filter_blocks_listed_ip ... ok
[INFO] [stdout] test proxy_config::tests::is_proxy_mode_false_when_no_config_file ... ok
[INFO] [stdout] test proxy_config::tests::max_body_size_absent_by_default ... ok
[INFO] [stdout] test proxy_config::tests::max_body_size_allows_body_within_limit ... ok
[INFO] [stdout] test proxy_config::tests::max_body_size_rejects_oversized_body_with_413 ... ok
[INFO] [stdout] test proxy_config::tests::max_body_size_zero_means_unset_not_zero_byte_limit ... ok
[INFO] [stdout] test proxy_config::tests::rate_limit_middleware_returns_429_after_limit ... ok
[INFO] [stdout] test proxy_config::tests::from_str_parses_ws_proxy_health_check ... ok
[INFO] [stdout] test proxy_config::tests::redirect_action_substitutes_dollar_path ... ok
[INFO] [stdout] test proxy_config::tests::route_matcher_host ... ok
[INFO] [stdout] test proxy_config::tests::rewrite_response_header_injected ... ok
[INFO] [stdout] test proxy_config::tests::route_matcher_host_and_path_both_required ... ok
[INFO] [stdout] test proxy_config::tests::respond_action_sets_content_type_header ... ok
[INFO] [stdout] test proxy_config::tests::route_matcher_content_type_prefix_matches ... ok
[INFO] [stdout] test proxy_config::tests::route_matcher_exact_path ... ok
[INFO] [stdout] test proxy_config::tests::route_matcher_method_filter ... ok
[INFO] [stdout] test proxy_config::tests::route_matcher_method_case_insensitive ... ok
[INFO] [stdout] test proxy_config::tests::route_matcher_no_criteria_matches_all ... ok
[INFO] [stdout] test proxy_config::tests::route_matcher_path_prefix ... ok
[INFO] [stdout] test proxy_config::tests::route_matcher_path_with_query_string ... ok
[INFO] [stdout] test proxy_config::tests::timeout_ms_absent_by_default ... ok
[INFO] [stdout] test proxy_config::tests::route_matcher_sni_hostname ... ok
[INFO] [stdout] test proxy::tests::pool_reuses_connection_for_keepalive_response ... ok
[INFO] [stdout] test proxy_config::tests::static_action_serves_file_from_configured_root ... ok
[INFO] [stdout] test proxy_config::tests::static_action_serves_index_for_directory_request ... ok
[INFO] [stdout] test proxy_config::tests::static_action_missing_file_is_404 ... ok
[INFO] [stdout] test proxy_config::tests::static_action_rejects_path_traversal ... ok
[INFO] [stdout] test range::example::as_response ... ok
[INFO] [stdout] test range::example::as_response_range_shortcut ... ok
[INFO] [stdout] test body::multipart_form_data::tests::generate ... ok
[INFO] [stdout] test range::tests::content_range_raw_regex_malformed_bytes ... ok
[INFO] [stdout] test range::tests::content_range_raw_regex_end_not_a_number ... ok
[INFO] [stdout] test proxy::tests::shared_pool_is_used_across_proxy_instances ... ok
[INFO] [stdout] test range::tests::check_range_response_is_ok_two_part ... ok
[INFO] [stdout] test range::tests::content_range_raw_regex_empty_string ... ok
[INFO] [stdout] test range::tests::content_range_raw_regex_bytes_random_case ... ok
[INFO] [stdout] test range::tests::content_range_raw_regex_random_string ... ok
[INFO] [stdout] test range::tests::content_range_raw_regex_whitespace ... ok
[INFO] [stdout] test range::tests::content_range_raw_regex_whitespace_uppercase ... ok
[INFO] [stdout] test range::tests::end_bigger_than_filesize_parse_content_range_header_value ... ok
[INFO] [stdout] test range::tests::parse_content_range_header_value ... ok
[INFO] [stdout] test range::tests::no_empty_string_between_header_and_body_in_parse_multipart_body ... ok
[INFO] [stdout] test range::tests::parse_multipart_body ... ok
[INFO] [stdout] test range::tests::parse_range_test ... ok
[INFO] [stdout] test range::tests::start_after_end_parse_content_range_header_value ... ok
[INFO] [stdout] test range::tests::start_bigger_than_filesize_parse_content_range_header_value ... ok
[INFO] [stdout] test rate_limit::tests::different_keys_are_tracked_independently ... ok
[INFO] [stdout] test rate_limit::tests::first_request_is_allowed ... ok
[INFO] [stdout] test range::tests::check_range_response_is_ok_single_part ... ok
[INFO] [stdout] test rate_limit::tests::redis_check_errors_when_server_unreachable ... ok
[INFO] [stdout] test range::tests::content_range_raw_regex ... ok
[INFO] [stdout] test range::tests::content_range_raw_regex_size_not_a_number ... ok
[INFO] [stdout] test range::tests::malformed_header_parse_content_range_header_value ... ok
[INFO] [stdout] test range::tests::content_range_raw_regex_start_not_a_number ... ok
[INFO] [stdout] test rate_limit::tests::redis_request_exceeding_limit_is_denied ... ok
[INFO] [stdout] test rate_limit::tests::expired_requests_do_not_count ... ok
[INFO] [stdout] test rate_limit::tests::redis_different_keys_are_tracked_independently ... ok
[INFO] [stdout] test rate_limit::tests::redis_requests_within_limit_are_allowed ... ok
[INFO] [stdout] test rate_limit::tests::redis_first_request_is_allowed ... ok
[INFO] [stdout] test rate_limit::tests::redis_set_limits_takes_effect_immediately ... ok
[INFO] [stdout] test rate_limit::tests::redis_zero_max_requests_always_denies ... ok
[INFO] [stdout] test rate_limit::tests::redis_reset_clears_state_for_key ... ok
[INFO] [stdout] test rate_limit::tests::remaining_never_underflows ... ok
[INFO] [stdout] test rate_limit::tests::request_exceeding_limit_is_denied ... ok
[INFO] [stdout] test rate_limit::tests::remaining_decrements_on_each_check ... ok
[INFO] [stdout] test rate_limit::tests::requests_within_limit_are_allowed ... ok
[INFO] [stdout] test proxy::tests::round_robin_distributes_across_backends ... ok
[INFO] [stdout] test rate_limit::tests::zero_max_requests_always_denies ... ok
[INFO] [stdout] test request::example::generate ... ok
[INFO] [stdout] test rate_limit::tests::reset_clears_state_for_key ... ok
[INFO] [stdout] test request::example::path ... ok
[INFO] [stdout] test request::example::parse_array_of_bytes_as_request ... ok
[INFO] [stdout] test request::example::query ... ok
[INFO] [stdout] test request::tests::get_domain_empty_host ... ok
[INFO] [stdout] test rate_limit::tests::redis_remaining_decrements_on_each_check ... ok
[INFO] [stdout] test request::tests::form_urlencoded_content_type ... ok
[INFO] [stdout] test request::tests::get_domain_no_port ... ok
[INFO] [stdout] test request::tests::get_domain_port_present ... ok
[INFO] [stdout] test request::tests::form_urlencoded_content_type_ends_with_new_line ... ok
[INFO] [stdout] test request::tests::get_domain_no_host ... ok
[INFO] [stdout] test request::tests::get_port_empty_host ... ok
[INFO] [stdout] test request::tests::get_port ... ok
[INFO] [stdout] test request::tests::get_path_no_path ... ok
[INFO] [stdout] test request::tests::get_port_no_host ... ok
[INFO] [stdout] test request::tests::get_query ... ok
[INFO] [stdout] test request::tests::get_port_no_port ... ok
[INFO] [stdout] test request::tests::test_request_empty_request_uri ... ok
[INFO] [stdout] test request::tests::get_query_no_query ... ok
[INFO] [stdout] test request::tests::method ... ok
[INFO] [stdout] test request::tests::method_and_request_uri_and_http_version_regex ... ok
[INFO] [stdout] test request::tests::multipart_form_data_content_type ... ok
[INFO] [stdout] test request::tests::test_request_lowercase ... ok
[INFO] [stdout] test request::tests::test_request_not_ok_empty_request ... ok
[INFO] [stdout] test request::tests::test_request_not_ok_zeros_request ... ok
[INFO] [stdout] test request::tests::test_request_ok_with_ukrainian_characters ... ok
[INFO] [stdout] test request::tests::test_request_randomcase ... ok
[INFO] [stdout] test request::tests::test_request_ok ... ok
[INFO] [stdout] test request::tests::test_request_ok_with_special_characters ... ok
[INFO] [stdout] test request_id::tests::custom_header_name_is_honored ... ok
[INFO] [stdout] test request_id::tests::generate_request_id_produces_unique_values ... ok
[INFO] [stdout] test request::tests::text_plain_content_type ... ok
[INFO] [stdout] test request_id::tests::generate_request_id_is_uuid_shaped ... ok
[INFO] [stdout] test proxy_config::tests::route_timeout_ms_cuts_off_a_slow_upstream ... ok
[INFO] [stdout] test request_id::tests::preserves_an_incoming_id_unchanged ... ok
[INFO] [stdout] test request_id::tests::request_id_extractor_reads_the_header_when_present ... ok
[INFO] [stdout] test request_id::tests::request_id_extractor_is_empty_when_absent ... ok
[INFO] [stdout] test request_id::tests::request_id_extractor_sees_the_id_injected_by_the_middleware ... ok
[INFO] [stdout] test request_log::tests::capacity_evicts_oldest ... ok
[INFO] [stdout] test request_id::tests::response_status_is_unaffected ... ok
[INFO] [stdout] test request_log::tests::push_and_recent ... ok
[INFO] [stdout] test request_log::tests::recent_errors_filters ... ok
[INFO] [stdout] test request_log::tests::recent_n_returns_tail ... ok
[INFO] [stdout] test response::tests::check_is_multipart_byteranges_content_type ... ok
[INFO] [stdout] test response::example::parse ... ok
[INFO] [stdout] test response::tests::error ... ok
[INFO] [stdout] test response::tests::http_version_and_status_code_and_reason_phrase_200_regex ... ok
[INFO] [stdout] test response::tests::http_version_and_status_code_and_reason_phrase_404_regex ... ok
[INFO] [stdout] test response::example::build ... ok
[INFO] [stdout] test response::tests::http_version_and_status_code_and_reason_phrase_200_regex_random_case ... ok
[INFO] [stdout] test request_id::tests::two_requests_without_an_incoming_id_get_different_ids ... ok
[INFO] [stdout] test response::tests::http_version_and_status_code_and_reason_phrase_empty_string_newline ... ok
[INFO] [stdout] test response::tests::it_generates_successful_response_with_additional_headers ... ok
[INFO] [stdout] test response::tests::parse_no_boundary_at_the_beginning ... ok
[INFO] [stdout] test response::tests::http_version_and_status_code_and_reason_phrase_empty_string ... ok
[INFO] [stdout] test rewrite::tests::request_header_remove_is_case_insensitive ... ok
[INFO] [stdout] test rewrite::tests::original_request_is_not_mutated ... ok
[INFO] [stdout] test response::tests::status_code_reason_phrase ... ok
[INFO] [stdout] test response::tests::parse_no_boundary_at_the_end ... ok
[INFO] [stdout] test rewrite::tests::request_uri_add_prefix_prepends ... ok
[INFO] [stdout] test rewrite::tests::request_header_remove_removes_header ... ok
[INFO] [stdout] test rewrite::tests::request_header_set_adds_new_header ... ok
[INFO] [stdout] test rewrite::tests::request_header_set_replaces_existing_header ... ok
[INFO] [stdout] test rewrite::tests::request_uri_strip_prefix_noop_when_absent ... ok
[INFO] [stdout] test rewrite::tests::response_body_replace_handles_multiple_occurrences ... ok
[INFO] [stdout] test rewrite::tests::request_uri_set_replaces_uri ... ok
[INFO] [stdout] test rewrite::tests::request_uri_strip_prefix_normalizes_to_slash ... ok
[INFO] [stdout] test rewrite::tests::response_body_replace_noop_on_empty_needle ... ok
[INFO] [stdout] test rewrite::tests::request_uri_strip_prefix_strips_present_prefix ... ok
[INFO] [stdout] test rewrite::tests::response_body_replace_noop_when_no_match ... ok
[INFO] [stdout] test rewrite::tests::response_body_replace_substitutes_bytes ... ok
[INFO] [stdout] test rewrite::tests::response_header_set_replaces_existing ... ok
[INFO] [stdout] test rewrite::tests::response_header_set_adds_new_header ... ok
[INFO] [stdout] test router::tests::first_matching_route_wins ... ok
[INFO] [stdout] test router::tests::literal_route_matches ... ok
[INFO] [stdout] test router::tests::literal_route_no_match_different_path ... ok
[INFO] [stdout] test rewrite::tests::response_header_remove_removes_header ... ok
[INFO] [stdout] test rewrite::tests::response_status_overrides_code_and_reason ... ok
[INFO] [stdout] test router::tests::method_mismatch_returns_none ... ok
[INFO] [stdout] test request::tests::get_path ... ok
[INFO] [stdout] test request::tests::test_request_lowercase_not_valid_utf_8 ... ok
[INFO] [stdout] test router::tests::post_route_registered_with_post_method ... ok
[INFO] [stdout] test request::tests::test_request_not_ok ... ok
[INFO] [stdout] test request::tests::test_request_not_ok_dummy_not_valid_request ... ok
[INFO] [stdout] test router::tests::multiple_path_params_are_extracted ... ok
[INFO] [stdout] test router::tests::no_routes_returns_none ... ok
[INFO] [stdout] test router::tests::query_string_is_ignored_during_matching ... ok
[INFO] [stdout] test router::tests::root_route_matches_slash ... ok
[INFO] [stdout] test scheduler::tests::cron_parse_all_stars ... ok
[INFO] [stdout] test router::tests::partial_path_does_not_match ... ok
[INFO] [stdout] test scheduler::tests::cron_parse_error_invalid_value ... ok
[INFO] [stdout] test scheduler::tests::cron_parse_every_minute ... ok
[INFO] [stdout] test router::tests::wildcard_captures_remainder ... ok
[INFO] [stdout] test scheduler::tests::cron_parse_every_quarter_hour ... ok
[INFO] [stdout] test scheduler::tests::cron_parse_exact_midnight_jan1 ... ok
[INFO] [stdout] test scheduler::tests::cron_parse_weekday_only ... ok
[INFO] [stdout] test scheduler::tests::days_to_ymd_epoch_zero ... ok
[INFO] [stdout] test scheduler::tests::days_to_ymd_2024_jan_01 ... ok
[INFO] [stdout] test scheduler::tests::days_to_ymd_leap_day_2024 ... ok
[INFO] [stdout] test scheduler::tests::epoch_to_datetime_known_time ... ok
[INFO] [stdout] test scheduler::tests::epoch_to_datetime_midnight_2024_jan_01 ... ok
[INFO] [stdout] test scheduler::tests::cron_parse_error_wrong_field_count ... ok
[INFO] [stdout] test request_id::tests::generates_and_injects_an_id_when_none_is_present ... ok
[INFO] [stdout] test scheduler::tests::field_any ... ok
[INFO] [stdout] test scheduler::tests::field_combined ... ok
[INFO] [stdout] test scheduler::tests::field_exact ... ok
[INFO] [stdout] test scheduler::tests::field_error_zero_step ... ok
[INFO] [stdout] test scheduler::tests::field_list ... ok
[INFO] [stdout] test scheduler::tests::field_range ... ok
[INFO] [stdout] test router::tests::path_param_is_extracted ... ok
[INFO] [stdout] test scheduler::tests::field_error_out_of_range ... ok
[INFO] [stdout] test server::tests::address_to_socket_addr_parses_ipv6 ... ok
[INFO] [stdout] test scheduler::tests::field_step ... ok
[INFO] [stdout] test scheduler::tests::ymd_to_days_leap_day_2024 ... ok
[INFO] [stdout] test scheduler::tests::scheduler_default ... ok
[INFO] [stdout] test scheduler::tests::scheduler_initial_delay_applies_to_last_task ... ok
[INFO] [stdout] test scheduler::tests::scheduler_registers_tasks ... ok
[INFO] [stdout] test scheduler::tests::ymd_to_days_2024_jan_01 ... ok
[INFO] [stdout] test scheduler::tests::ymd_to_days_epoch_zero ... ok
[INFO] [stdout] test scheduler::tests::ymd_to_days_is_inverse_of_days_to_ymd ... ok
[INFO] [stdout] test server::tests::body_larger_than_a_single_read_is_fully_accumulated ... ok
[INFO] [stdout] test server::tests::address_to_socket_addr_returns_none_for_negative_port ... ok
[INFO] [stdout] test server::tests::check_range_response_for_not_proper_range_header ... ok
[INFO] [stdout] test server::tests::check_range_response_for_not_proper_range_header_range_start_malformed ... ok
[INFO] [stdout] test server::tests::check_range_response_for_not_proper_range_header_range_end_bigger_than_filesize ... ok
[INFO] [stdout] test server::tests::connection_close_header_serves_one_request_and_stops ... ok
[INFO] [stdout] test server::tests::check_range_response_for_not_proper_range_header_range_start_bigger_than_end ... ok
[INFO] [stdout] test server::tests::check_range_response_for_not_proper_range_header_malformed ... ok
[INFO] [stdout] test server::tests::connection_info_peer_addr_parses_ipv4 ... ok
[INFO] [stdout] test server::tests::connection_info_peer_addr_returns_none_for_bad_ip ... ok
[INFO] [stdout] test server::tests::continue_response_is_a_bare_100_status_line ... ok
[INFO] [stdout] test server::tests::check_range_response_for_not_proper_range_header_range_end_malformed ... ok
[INFO] [stdout] test server::tests::expect_unsupported_value_returns_417_without_reading_body ... ok
[INFO] [stdout] test server::tests::expect_100_continue_with_oversized_body_gets_413_not_100_continue ... ok
[INFO] [stdout] test server::tests::expect_100_continue_sends_interim_response_then_reads_body ... ok
[INFO] [stdout] test server::tests::get_request_body_has_no_trailing_padding ... ok
[INFO] [stdout] test server::tests::it_generates_directory_listing_with_parent_link_for_nested_static_subdirectory ... ok
[INFO] [stdout] test server::tests::http11_explicit_keep_alive_serves_multiple_requests ... ok
[INFO] [stdout] test server::tests::http10_defaults_to_connection_close ... ok
[INFO] [stdout] test server::tests::it_generates_directory_listing_for_static_directory_without_index_html ... ok
[INFO] [stdout] test server::tests::it_generates_bad_request_for_non_ut8_char_in_request ... ok
[INFO] [stdout] test server::tests::it_generates_successful_response_with_index_html ... ok
[INFO] [stdout] test server::tests::it_generates_successful_response_with_static_file_in_subdirectory ... ok
[INFO] [stdout] test server::tests::keep_alive_http11_serves_two_requests_on_same_stream ... ok
[INFO] [stdout] test server::tests::it_generates_successful_response_with_index_html_as_symlink ... ok
[INFO] [stdout] test server::tests::it_generates_successful_response_with_static_file_in_subdirectory_to_head_request ... ok
[INFO] [stdout] test server::tests::it_generates_not_found_page_for_absent_route ... ok
[INFO] [stdout] test server::tests::it_generates_not_found_page_for_absent_static_file ... ok
[INFO] [stdout] test server::tests::it_generates_successful_response_with_static_file_in_multiple_static_directories ... ok
[INFO] [stdout] test server_config::tests::server_config_tests::custom_config_isolates_from_env ... ok
[INFO] [stdout] test server_config::tests::server_config_tests::default_cors_allow_all_is_true ... ok
[INFO] [stdout] test server_config::tests::server_config_tests::from_env_defaults_match_struct_defaults ... ok
[INFO] [stdout] test server::tests::write_chunked_file_produces_valid_chunked_encoding ... FAILED
[INFO] [stdout] test server::tests::it_generates_successful_response_with_static_file ... ok
[INFO] [stdout] test server::tests::max_body_size_allows_requests_within_the_limit ... ok
[INFO] [stdout] test service_discovery::consul::tests::falls_back_to_node_address_when_service_address_empty ... ok
[INFO] [stdout] test service_discovery::consul::tests::discovers_healthy_instances_with_service_address ... ok
[INFO] [stdout] test service_discovery::consul::tests::returns_empty_when_connection_fails ... ok
[INFO] [stdout] test response::tests::it_generates_successful_response_with_additional_headers_and_non_utf8_file ... ok
[INFO] [stdout] test service_discovery::consul::tests::returns_empty_on_malformed_json ... ok
[INFO] [stdout] test service_discovery::consul::tests::returns_empty_on_non_success_status ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::build_query_encodes_header_and_question ... ok
[INFO] [stdout] test server::tests::max_body_size_zero_means_unlimited ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::expand_by_weight_caps_extreme_weight ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::expand_by_weight_empty_input_returns_empty ... ok
[INFO] [stdout] test server::tests::max_body_size_rejects_oversized_declared_content_length ... ok
[INFO] [stdout] test server::tests::no_expect_header_never_sends_100_continue ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::encode_name_strips_trailing_dot ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::expand_by_weight_repeats_proportionally_to_weight ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::expand_by_weight_strips_trailing_dot_from_target ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::expand_by_weight_zero_weight_still_gets_one_copy ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::expand_by_weight_keeps_only_lowest_priority_tier ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::parse_response_nxdomain_returns_empty_not_error ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::query_times_out_when_nothing_responds ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::read_name_follows_compression_pointer ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::parse_response_rejects_mismatched_id ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::parse_response_extracts_srv_records ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::read_name_rejects_pointer_loop ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::read_name_errors_on_truncated_label ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::read_name_without_compression ... ok
[INFO] [stdout] test service_discovery::docker::tests::decode_chunked_empty_body ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::parse_response_errors_on_short_buffer ... ok
[INFO] [stdout] test service_discovery::dns_srv::tests::query_against_mock_resolver_returns_parsed_records ... ok
[INFO] [stdout] test service_discovery::docker::tests::parse_containers_returns_empty_on_malformed_json ... ok
[INFO] [stdout] test service_discovery::docker::tests::decode_chunked_reassembles_body ... ok
[INFO] [stdout] test service_discovery::docker::tests::parse_containers_returns_empty_when_not_an_array ... ok
[INFO] [stdout] test service_discovery::docker::tests::parse_containers_extracts_label_value_as_backend ... ok
[INFO] [stdout] test service_discovery::docker::tests::parse_containers_skips_empty_label_value ... ok
[INFO] [stdout] test service_discovery::docker::tests::discover_returns_empty_when_socket_does_not_exist ... ok
[INFO] [stdout] test service_discovery::docker::tests::parse_containers_skips_containers_without_the_label ... ok
[INFO] [stdout] test service_discovery::docker::tests::parse_http_response_malformed_returns_empty ... ok
[INFO] [stdout] test service_discovery::docker::tests::parse_http_response_non_success_status_returns_empty ... ok
[INFO] [stdout] test service_discovery::docker::tests::parse_http_response_chunked_style ... ok
[INFO] [stdout] test proxy_config::tests::route_without_timeout_ms_waits_for_the_full_upstream_response ... ok
[INFO] [stdout] test service_discovery::docker::tests::parse_http_response_content_length_style ... ok
[INFO] [stdout] test service_discovery::etcd::tests::apply_watch_line_delete_removes_key ... ok
[INFO] [stdout] test service_discovery::etcd::tests::apply_watch_line_explicit_put_updates_state ... ok
[INFO] [stdout] test service_discovery::etcd::tests::apply_watch_line_delete_of_unknown_key_is_a_noop ... ok
[INFO] [stdout] test service_discovery::etcd::tests::apply_watch_line_no_events_key_is_ignored ... ok
[INFO] [stdout] test service_discovery::docker::tests::discover_queries_mock_docker_socket ... ok
[INFO] [stdout] test service_discovery::etcd::tests::apply_watch_line_put_without_type_field_defaults_to_put ... ok
[INFO] [stdout] test service_discovery::etcd::tests::base64_decode_to_string_works ... ok
[INFO] [stdout] test service_discovery::etcd::tests::base64_round_trips ... ok
[INFO] [stdout] test service_discovery::etcd::tests::kv_range_connection_failure_returns_error ... ok
[INFO] [stdout] test service_discovery::etcd::tests::base64_decode_rejects_invalid_characters ... ok
[INFO] [stdout] test service_discovery::etcd::tests::prefix_range_end_all_0xff_yields_no_upper_bound ... ok
[INFO] [stdout] test service_discovery::json_lite::tests::consul_like_response_parses ... ok
[INFO] [stdout] test service_discovery::etcd::tests::run_once_returns_error_when_no_endpoints ... ok
[INFO] [stdout] test service_discovery::json_lite::tests::get_on_non_object_returns_none ... ok
[INFO] [stdout] test service_discovery::json_lite::tests::parses_empty_object_and_array ... ok
[INFO] [stdout] test service_discovery::json_lite::tests::parses_scalars ... ok
[INFO] [stdout] test service_discovery::json_lite::tests::parses_nested_object_and_array ... ok
[INFO] [stdout] test service_discovery::etcd::tests::prefix_range_end_increments_last_byte ... ok
[INFO] [stdout] test service_discovery::json_lite::tests::as_str_as_f64_as_array_type_mismatches_return_none ... ok
[INFO] [stdout] test service_discovery::etcd::tests::run_once_applies_initial_list_and_one_watch_event_then_stream_ends ... ok
[INFO] [stdout] test service_discovery::json_lite::tests::parses_string_escapes ... ok
[INFO] [stdout] test service_discovery::json_lite::tests::parses_unicode_escape ... ok
[INFO] [stdout] test range::tests::get_right_content_range_of_a_file ... ok
[INFO] [stdout] test service_discovery::etcd::tests::prefix_range_end_empty_yields_no_upper_bound ... ok
[INFO] [stdout] test service_discovery::json_lite::tests::parses_whitespace_between_tokens ... ok
[INFO] [stdout] test service_discovery::json_lite::tests::rejects_malformed_json ... ok
[INFO] [stdout] test service_discovery::tests::clones_share_backend_list ... ok
[INFO] [stdout] test service_discovery::tests::env_prefix_empty_when_no_vars ... ok
[INFO] [stdout] test service_discovery::tests::env_prefix_reads_env_vars ... ok
[INFO] [stdout] test service_discovery::tests::file_source_returns_empty_on_missing_file ... ok
[INFO] [stdout] test service_discovery::tests::static_start_is_noop ... ok
[INFO] [stdout] test service_discovery::tests::static_source_returns_backends ... ok
[INFO] [stdout] test service_discovery::tests::update_replaces_backends ... ok
[INFO] [stdout] test session::tests::create_generates_non_empty_id ... ok
[INFO] [stdout] test session::tests::cloned_store_shares_data ... ok
[INFO] [stdout] test service_discovery::tests::file_source_ignores_comments_and_blank_lines ... ok
[INFO] [stdout] test service_discovery::tests::file_source_reads_file ... ok
[INFO] [stdout] test session::tests::create_with_id_uses_provided_id ... ok
[INFO] [stdout] test session::tests::load_unknown_id_returns_none ... ok
[INFO] [stdout] test session::tests::destroy_cookie_sets_max_age_zero ... ok
[INFO] [stdout] test session::tests::destroy_removes_session ... ok
[INFO] [stdout] test session::tests::is_empty_reflects_store_state ... ok
[INFO] [stdout] test session::tests::purge_expired_keeps_live_sessions ... ok
[INFO] [stdout] test session::tests::load_returns_created_session ... ok
[INFO] [stdout] test session::tests::session_contains ... ok
[INFO] [stdout] test session::tests::session_cookie_contains_id_and_name ... ok
[INFO] [stdout] test session::tests::save_persists_changes ... ok
[INFO] [stdout] test session::tests::session_id_from_request_reads_named_cookie ... ok
[INFO] [stdout] test session::tests::session_remove ... ok
[INFO] [stdout] test session::tests::expired_session_not_loadable ... ok
[INFO] [stdout] test session::tests::purge_expired_removes_expired_entries ... ok
[INFO] [stdout] test session::tests::unsaved_changes_are_not_visible ... ok
[INFO] [stdout] test service_discovery::etcd::tests::prefix_range_end_drops_trailing_0xff_bytes ... ok
[INFO] [stdout] test service_discovery::etcd::tests::kv_range_decodes_base64_keys_and_values ... ok
[INFO] [stdout] test session::tests::session_id_from_request_returns_none_without_cookie_header ... ok
[INFO] [stdout] test session::tests::session_id_from_request_returns_none_when_missing ... ok
[INFO] [stdout] test service_discovery::tests::update_to_empty_clears_list ... ok
[INFO] [stdout] test session::tests::session_get_returns_none_for_missing_key ... ok
[INFO] [stdout] test session::tests::session_set_and_get ... ok
[INFO] [stdout] test service_discovery::etcd::tests::kv_range_empty_kvs_returns_empty_map ... ok
[INFO] [stdout] test service_discovery::consul::tests::returns_empty_for_empty_array ... ok
[INFO] [stdout] test sse::tests::data_only_event ... ok
[INFO] [stdout] test sse::tests::empty_data_field_is_preserved ... ok
[INFO] [stdout] test sse::tests::event_with_all_fields ... ok
[INFO] [stdout] test sse::tests::event_with_id ... ok
[INFO] [stdout] test sse::tests::into_response_cache_control_no_cache ... ok
[INFO] [stdout] test sse::tests::event_with_type ... ok
[INFO] [stdout] test sse::tests::multi_line_data_produces_multiple_data_lines ... ok
[INFO] [stdout] test sse::tests::into_response_x_accel_buffering_no ... ok
[INFO] [stdout] test sse::tests::sse_push_raw_event ... ok
[INFO] [stdout] test sse::tests::into_response_content_type_is_event_stream ... ok
[INFO] [stdout] test sse::tests::into_response_status_200 ... ok
[INFO] [stdout] test sse::tests::sse_comment ... ok
[INFO] [stdout] test sse::tests::sse_retry_directive ... ok
[INFO] [stdout] test state::tests::container_resolution_miss_does_not_panic_the_handler ... ok
[INFO] [stdout] test state::tests::container_resolves_concrete_service_through_a_request ... ok
[INFO] [stdout] test sse::tests::sse_data_convenience ... ok
[INFO] [stdout] test sse::tests::sse_multiple_events_concatenated ... ok
[INFO] [stdout] test sse::tests::sse_event_convenience ... ok
[INFO] [stdout] test state::tests::first_matching_route_wins ... ok
[INFO] [stdout] test state::tests::own_routes_still_take_priority_over_fallback_when_config_is_pinned ... ok
[INFO] [stdout] test state::tests::wildcard_captures_remaining_path ... ok
[INFO] [stdout] test state::tests::unmatched_request_returns_404 ... ok
[INFO] [stdout] test state::tests::path_params_and_state_together ... ok
[INFO] [stdout] test state::tests::post_handler_receives_state ... ok
[INFO] [stdout] test state::tests::put_patch_delete_are_registered ... ok
[INFO] [stdout] test state::tests::container_resolves_trait_object_service_through_a_request ... ok
[INFO] [stdout] test state::tests::state_accessible_in_get_handler ... ok
[INFO] [stdout] test state::tests::state_accessor_returns_inner_value ... ok
[INFO] [stdout] test state::tests::with_config_allows_cors_for_configured_origin_on_fallback_request ... ok
[INFO] [stdout] test state::tests::unmatched_request_falls_through_to_app ... ok
[INFO] [stdout] test test_client::tests::header_is_accessible_case_insensitive ... ok
[INFO] [stdout] test test_client::tests::get_unknown_path_returns_404 ... ok
[INFO] [stdout] test symbol::tests::symbol_check ... ok
[INFO] [stdout] test test_client::tests::body_bytes_matches_body_text ... ok
[INFO] [stdout] test test_client::tests::is_success_false_for_4xx ... ok
[INFO] [stdout] test test_client::tests::body_text_is_accessible ... ok
[INFO] [stdout] test state::tests::with_config_pins_cors_denial_on_fallback_request ... ok
[INFO] [stdout] test test_client::tests::get_healthz_returns_200 ... ok
[INFO] [stdout] test test_client::tests::request_header_is_forwarded ... ok
[INFO] [stdout] test thread_pool::tests::thread_pool_test ... ok
[INFO] [stdout] test test_client::tests::get_metrics_returns_200 ... ok
[INFO] [stdout] test timeout::tests::async_tests::with_timeout_async_returns_result_when_future_is_fast ... ok
[INFO] [stdout] test timeout::tests::with_timeout_can_be_registered_for_multiple_routes_with_different_durations ... ok
[INFO] [stdout] test test_client::tests::post_with_body_text ... ok
[INFO] [stdout] test timeout::tests::with_timeout_returns_result_when_handler_is_fast ... ok
[INFO] [stdout] test state::tests::state_is_shared_across_concurrent_handlers ... ok
[INFO] [stdout] test timeout::tests::timeout_layer_new_passes_through_fast_application ... ok
[INFO] [stdout] test url::example::build_query ... ok
[INFO] [stdout] test url::example::build_url ... ok
[INFO] [stdout] test url::example::parse_query ... ok
[INFO] [stdout] test url::example::uri_decode ... ok
[INFO] [stdout] test url::example::parse_url ... ok
[INFO] [stdout] test timeout::tests::concurrent_timeout_layer_calls_do_not_interfere ... ok
[INFO] [stdout] test timeout::tests::with_timeout_state_returns_result_when_handler_is_fast ... ok
[INFO] [stdout] test url::example::uri_encode ... ok
[INFO] [stdout] test url::path::tests::build ... ok
[INFO] [stdout] test url::path::tests::build_non_url ... ok
[INFO] [stdout] test url::path::tests::build_v2 ... ok
[INFO] [stdout] test url::path::tests::build_v3 ... ok
[INFO] [stdout] test url::path::tests::build_v4 ... ok
[INFO] [stdout] test url::path::tests::extract ... ok
[INFO] [stdout] test url::path::tests::build_v5 ... ok
[INFO] [stdout] test url::path::tests::extract_v3 ... ok
[INFO] [stdout] test url::path::tests::extract_v2 ... ok
[INFO] [stdout] test url::path::tests::extract_v4 ... ok
[INFO] [stdout] true None None Some("/some/path/")
[INFO] [stdout] false Some("id") None None
[INFO] [stdout] false Some("id") None None
[INFO] [stdout] test url::path::tests::extract_v5 ... ok
[INFO] [stdout] test url::path::tests::is_matching ... ok
[INFO] [stdout] true None None Some("/some/path/")
[INFO] [stdout] false Some("id") None None
[INFO] [stdout] false Some("id") None None
[INFO] [stdout] false Some("id") None None
[INFO] [stdout] true None None Some("/another/path/")
[INFO] [stdout] false Some("name") None None
[INFO] [stdout] false Some("name") None None
[INFO] [stdout] test url::path::tests::is_matching_control_char_path ... ok
[INFO] [stdout] test url::path::tests::is_matching_whitespace_path ... ok
[INFO] [stdout] test url::path::tests::is_matching_multiple_tokens ... ok
[INFO] [stdout] test url::path::tests::is_matching_whitespace_pattern ... ok
[INFO] [stdout] test url::path::tests::parts ... ok
[INFO] [stdout] test url::path::tests::parts_extra_nested_token ... ok
[INFO] [stdout] test url::path::tests::parts_malformed_whitespace ... ok
[INFO] [stdout] test url::path::tests::parts_extra_opening_bracket ... ok
[INFO] [stdout] test url::path::tests::parts_malformed ... ok
[INFO] [stdout] test url::tests::build_query_empty_map_returns_empty_string ... ok
[INFO] [stdout] test url::tests::build_query_single_entry ... ok
[INFO] [stdout] test url::tests::build_url_minimal_no_query_no_fragment ... ok
[INFO] [stdout] test url::tests::build_url_with_port ... ok
[INFO] [stdout] test url::tests::decode_already_decoded_string_unchanged ... ok
[INFO] [stdout] test url::tests::build_parse_roundtrip ... ok
[INFO] [stdout] test url::tests::encode_decode ... ok
[INFO] [stdout] test url::tests::encode_plain_alphanumeric_unchanged ... ok
[INFO] [stdout] test url::tests::parse_query_empty_string_returns_empty_map ... ok
[INFO] [stdout] test url::tests::encode_empty_string ... ok
[INFO] [stdout] test url::tests::decode_empty_string ... ok
[INFO] [stdout] test url::tests::parse_query_multiple_pairs ... ok
[INFO] [stdout] test url::tests::parse_query_single_key_value ... ok
[INFO] [stdout] test url::tests::parse_url_extracts_scheme_host_path ... ok
[INFO] [stdout] test url::tests::parse_url_with_fragment ... ok
[INFO] [stdout] test url::tests::parse_url_without_query_has_none ... ok
[INFO] [stdout] test validate::tests::add_multiple_errors ... ok
[INFO] [stdout] test url::tests::parse_url_with_port ... ok
[INFO] [stdout] test validate::tests::add_records_field_and_message ... ok
[INFO] [stdout] test validate::tests::domain_starting_with_dot_rejected ... ok
[INFO] [stdout] test validate::tests::domain_ending_with_dot_rejected ... ok
[INFO] [stdout] test validate::tests::domain_with_no_dot_rejected ... ok
[INFO] [stdout] test validate::tests::empty_local_part_rejected ... ok
[INFO] [stdout] test validate::tests::empty_string_rejected ... ok
[INFO] [stdout] test validate::tests::https_url_accepted ... ok
[INFO] [stdout] test validate::tests::http_url_accepted ... ok
[INFO] [stdout] test validate::tests::into_json_escapes_backslash_and_quotes ... ok
[INFO] [stdout] test validate::tests::into_json_multiple_errors ... ok
[INFO] [stdout] test validate::tests::into_json_single_error ... ok
[INFO] [stdout] test validate::tests::missing_at_sign_rejected ... ok
[INFO] [stdout] test validate::tests::new_errors_is_empty ... ok
[INFO] [stdout] test validate::tests::valid_emails_pass ... ok
[INFO] [stdout] test validate::tests::validated_422_body_is_json_with_errors_key ... ok
[INFO] [stdout] test validate::tests::validated_extraction_error_returns_400_not_422 ... ok
[INFO] [stdout] test websocket::tests::accept_key_matches_rfc_6455_example ... ok
[INFO] [stdout] test validate::tests::validated_returns_422_when_validation_fails ... ok
[INFO] [stdout] test validate::tests::validated_ok_when_extraction_and_validation_succeed ... ok
[INFO] [stdout] test websocket::tests::base64_empty ... ok
[INFO] [stdout] test websocket::tests::base64_single_byte ... ok
[INFO] [stdout] test websocket::tests::base64_three_bytes ... ok
[INFO] [stdout] test websocket::tests::base64_two_bytes ... ok
[INFO] [stdout] test websocket::tests::handshake_response_errors_without_key ... ok
[INFO] [stdout] test websocket::tests::handshake_response_includes_correct_accept ... ok
[INFO] [stdout] test websocket::tests::handshake_response_includes_upgrade_header ... ok
[INFO] [stdout] test websocket::tests::handshake_response_returns_101 ... ok
[INFO] [stdout] test websocket::tests::is_upgrade_request_detects_websocket ... ok
[INFO] [stdout] test validate::tests::ftp_and_bare_domain_rejected ... ok
[INFO] [stdout] test websocket::tests::is_upgrade_request_rejects_missing_key ... ok
[INFO] [stdout] test websocket::tests::is_upgrade_request_rejects_plain_get ... ok
[INFO] [stdout] test websocket::tests::is_upgrade_request_rejects_wrong_upgrade_value ... ok
[INFO] [stdout] test websocket::tests::read_frame_binary ... ok
[INFO] [stdout] test websocket::tests::read_frame_close_with_code ... ok
[INFO] [stdout] test websocket::tests::read_frame_ping ... ok
[INFO] [stdout] test websocket::tests::read_frame_text ... ok
[INFO] [stdout] test websocket::tests::base64_longer_string ... ok
[INFO] [stdout] test websocket::tests::round_trip_binary_frame ... ok
[INFO] [stdout] test websocket::tests::round_trip_text_frame ... ok
[INFO] [stdout] test websocket::tests::send_text_convenience ... ok
[INFO] [stdout] test websocket::tests::sha1_empty_input ... ok
[INFO] [stdout] test websocket::tests::sha1_abc ... ok
[INFO] [stdout] test websocket::tests::write_frame_close ... ok
[INFO] [stdout] test websocket::tests::write_frame_text ... ok
[INFO] [stdout] test websocket::tests::write_frame_ping ... ok
[INFO] [stdout] test ws_proxy::backend_parse_tests::bare_host_port ... ok
[INFO] [stdout] test ws_proxy::backend_parse_tests::bare_host_no_port_defaults_to_80 ... ok
[INFO] [stdout] test ws_proxy::backend_parse_tests::path_component_is_ignored ... ok
[INFO] [stdout] test ws_proxy::backend_parse_tests::empty_host_returns_none ... ok
[INFO] [stdout] test ws_proxy::backend_parse_tests::ws_default_port_is_80 ... ok
[INFO] [stdout] test ws_proxy::backend_parse_tests::ws_scheme_default_port ... ok
[INFO] [stdout] test ws_proxy::backend_parse_tests::ws_scheme_plain ... ok
[INFO] [stdout] test ws_proxy::backend_parse_tests::wss_scheme_explicit_port ... ok
[INFO] [stdout] test ws_proxy::backend_parse_tests::wss_scheme_sets_tls ... ok
[INFO] [stdout] test ws_proxy::live_backends_tests::new_filters_out_unparseable_backends ... ok
[INFO] [stdout] test ws_proxy::live_backends_tests::new_picks_backends_in_round_robin_order ... ok
[INFO] [stdout] test ws_proxy::live_backends_tests::pick_backend_reflects_live_list_updates ... ok
[INFO] [stdout] test ws_proxy::live_backends_tests::pick_backend_returns_none_when_live_list_is_empty ... ok
[INFO] [stdout] test ws_proxy::backend_parse_tests::wss_default_port_is_443 ... ok
[INFO] [stdout] test timeout::tests::timeout_layer_new_returns_504_for_slow_application ... ok
[INFO] [stdout] test timeout::tests::timeout_layer_returns_504_body_as_text ... ok
[INFO] [stdout] test timeout::tests::timeout_layer_from_arc_wraps_a_trait_object ... ok
[INFO] [stdout] test timeout::tests::async_tests::with_timeout_async_returns_504_when_future_is_slow ... ok
[INFO] [stdout] test timeout::tests::timeout_layer_does_not_block_the_caller_for_the_slow_apps_full_duration ... ok
[INFO] [stdout] test timeout::tests::with_timeout_state_returns_504_when_handler_is_slow ... ok
[INFO] [stdout] test timeout::tests::with_timeout_returns_504_when_handler_is_slow ... ok
[INFO] [stdout] test proxy::tests::proxy_streams_sse_response ... ok
[INFO] [stdout] test proxy::tests::proxy_streams_chunked_response ... ok
[INFO] [stdout] test timeout::tests::async_tests::with_timeout_async_actually_cancels_the_future_at_the_deadline ... ok
[INFO] [stdout] test mcp::tests::list_roots_times_out_when_the_client_never_responds ... ok
[INFO] [stdout] test mcp::tests::sample_times_out_when_the_client_never_responds ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- app::controller::directory_listing::tests::js_file_retrieval_with_disk_override stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'app::controller::directory_listing::tests::js_file_retrieval_with_disk_override' (2867) panicked at src/app/controller/directory_listing/tests.rs:96:73:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "unable to create file: Read-only file system (os error 30)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x56b6e3a02a08 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x56b6e3a1c48a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x56b6e3a1c48a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x56b6e3a07d22 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x56b6e3a07d22 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x56b6e39dcf16 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x56b6e39dcf16 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x56b6e39f8c99 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x56b6e348820c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x56b6e348820c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x56b6e39f8f12 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x56b6e39f8f12 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x56b6e39dcfd2 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x56b6e39d1d29 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x56b6e39de06d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x56b6e3a1cc4c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x56b6e3a1c9c2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x56b6e2ecb327 - <core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x56b6e2ecb327 - rust_web_server[1ceee31dad5de83e]::app::controller::directory_listing::tests::js_file_retrieval_with_disk_override
[INFO] [stdout]                                at /opt/rustwide/workdir/src/app/controller/directory_listing/tests.rs:96:73
[INFO] [stdout]   22:     0x56b6e2e6b0f7 - rust_web_server[1ceee31dad5de83e]::app::controller::directory_listing::tests::js_file_retrieval_with_disk_override::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/app/controller/directory_listing/tests.rs:82:42
[INFO] [stdout]   23:     0x56b6e2fbcc06 - <rust_web_server[1ceee31dad5de83e]::app::controller::directory_listing::tests::js_file_retrieval_with_disk_override::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x56b6e347b2eb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x56b6e347b2eb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x56b6e3488b65 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x56b6e3488b65 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x56b6e3488b65 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x56b6e3488b65 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x56b6e3482474 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x56b6e3482474 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x56b6e348bbe2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x56b6e348bbe2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x56b6e3a016ef - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x56b6e3a016ef - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7908a9825aa4 - <unknown>
[INFO] [stdout]   45:     0x7908a98b2a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- app::controller::directory_listing::tests::css_file_retrieval_with_disk_override stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'app::controller::directory_listing::tests::css_file_retrieval_with_disk_override' (2866) panicked at src/app/controller/directory_listing/tests.rs:67:74:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "unable to create file: Read-only file system (os error 30)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x56b6e3a02a08 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x56b6e3a1c48a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x56b6e3a1c48a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x56b6e3a07d22 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x56b6e3a07d22 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x56b6e39dcf16 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x56b6e39dcf16 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x56b6e39f8c99 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x56b6e348820c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x56b6e348820c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x56b6e39f8f12 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x56b6e39f8f12 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x56b6e39dcfd2 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x56b6e39d1d29 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x56b6e39de06d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x56b6e3a1cc4c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x56b6e3a1c9c2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x56b6e2ecc1c7 - <core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x56b6e2ecc1c7 - rust_web_server[1ceee31dad5de83e]::app::controller::directory_listing::tests::css_file_retrieval_with_disk_override
[INFO] [stdout]                                at /opt/rustwide/workdir/src/app/controller/directory_listing/tests.rs:67:74
[INFO] [stdout]   22:     0x56b6e2e6b127 - rust_web_server[1ceee31dad5de83e]::app::controller::directory_listing::tests::css_file_retrieval_with_disk_override::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/app/controller/directory_listing/tests.rs:53:43
[INFO] [stdout]   23:     0x56b6e2fbcc46 - <rust_web_server[1ceee31dad5de83e]::app::controller::directory_listing::tests::css_file_retrieval_with_disk_override::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x56b6e347b2eb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x56b6e347b2eb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x56b6e3488b65 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x56b6e3488b65 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x56b6e3488b65 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x56b6e3488b65 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x56b6e3482474 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x56b6e3482474 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x56b6e348bbe2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x56b6e348bbe2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x56b6e3a016ef - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x56b6e3a016ef - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7908a9825aa4 - <unknown>
[INFO] [stdout]   45:     0x7908a98b2a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- app::controller::favicon::tests::favicon_retrieval stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'app::controller::favicon::tests::favicon_retrieval' (2869) panicked at src/app/controller/favicon/tests.rs:48:41:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "unable to create file: Read-only file system (os error 30)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x56b6e3a02a08 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x56b6e3a1c48a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x56b6e3a1c48a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x56b6e3a07d22 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x56b6e3a07d22 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x56b6e39dcf16 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x56b6e39dcf16 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x56b6e39f8c99 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x56b6e348820c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x56b6e348820c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x56b6e39f8f12 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x56b6e39f8f12 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x56b6e39dcfd2 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x56b6e39d1d29 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x56b6e39de06d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x56b6e3a1cc4c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x56b6e3a1c9c2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x56b6e30f5f77 - <core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x56b6e30f5f77 - rust_web_server[1ceee31dad5de83e]::app::controller::favicon::tests::favicon_retrieval
[INFO] [stdout]                                at /opt/rustwide/workdir/src/app/controller/favicon/tests.rs:48:41
[INFO] [stdout]   22:     0x56b6e309f937 - rust_web_server[1ceee31dad5de83e]::app::controller::favicon::tests::favicon_retrieval::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/app/controller/favicon/tests.rs:11:23
[INFO] [stdout]   23:     0x56b6e2fbcf86 - <rust_web_server[1ceee31dad5de83e]::app::controller::favicon::tests::favicon_retrieval::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x56b6e347b2eb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x56b6e347b2eb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x56b6e3488b65 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x56b6e3488b65 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x56b6e3488b65 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x56b6e3488b65 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x56b6e3482474 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x56b6e3482474 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x56b6e348bbe2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x56b6e348bbe2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x56b6e3a016ef - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x56b6e3a016ef - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7908a9825aa4 - <unknown>
[INFO] [stdout]   45:     0x7908a98b2a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- app::controller::index::tests::file_retrieval stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'app::controller::index::tests::file_retrieval' (2876) panicked at src/app/controller/index/tests.rs:49:7:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "unable to create file: Read-only file system (os error 30)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x56b6e3a02a08 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x56b6e3a1c48a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x56b6e3a1c48a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x56b6e3a07d22 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x56b6e3a07d22 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x56b6e39dcf16 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x56b6e39dcf16 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x56b6e39f8c99 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x56b6e348820c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x56b6e348820c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x56b6e39f8f12 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x56b6e39f8f12 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x56b6e39dcfd2 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x56b6e39d1d29 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x56b6e39de06d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x56b6e3a1cc4c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x56b6e3a1c9c2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x56b6e2d5fb35 - <core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x56b6e2d5fb35 - rust_web_server[1ceee31dad5de83e]::app::controller::index::tests::file_retrieval
[INFO] [stdout]                                at /opt/rustwide/workdir/src/app/controller/index/tests.rs:49:7
[INFO] [stdout]   22:     0x56b6e2d028e7 - rust_web_server[1ceee31dad5de83e]::app::controller::index::tests::file_retrieval::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/app/controller/index/tests.rs:11:20
[INFO] [stdout]   23:     0x56b6e2fbcc86 - <rust_web_server[1ceee31dad5de83e]::app::controller::index::tests::file_retrieval::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x56b6e347b2eb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x56b6e347b2eb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x56b6e3488b65 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x56b6e3488b65 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x56b6e3488b65 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x56b6e3488b65 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x56b6e3482474 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x56b6e3482474 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x56b6e348bbe2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x56b6e348bbe2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x56b6e3a016ef - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x56b6e3a016ef - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7908a9825aa4 - <unknown>
[INFO] [stdout]   45:     0x7908a98b2a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- app::controller::script::tests::file_retrieval stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'app::controller::script::tests::file_retrieval' (2886) panicked at src/app/controller/script/tests.rs:48:39:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "unable to create file: Read-only file system (os error 30)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x56b6e3a02a08 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x56b6e3a1c48a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x56b6e3a1c48a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x56b6e3a07d22 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x56b6e3a07d22 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x56b6e39dcf16 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x56b6e39dcf16 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x56b6e39f8c99 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x56b6e348820c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x56b6e348820c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x56b6e39f8f12 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x56b6e39f8f12 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x56b6e39dcfd2 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x56b6e39d1d29 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x56b6e39de06d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x56b6e3a1cc4c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x56b6e3a1c9c2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x56b6e30f49e1 - <core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x56b6e30f49e1 - rust_web_server[1ceee31dad5de83e]::app::controller::script::tests::file_retrieval
[INFO] [stdout]                                at /opt/rustwide/workdir/src/app/controller/script/tests.rs:48:39
[INFO] [stdout]   22:     0x56b6e309f907 - rust_web_server[1ceee31dad5de83e]::app::controller::script::tests::file_retrieval::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/app/controller/script/tests.rs:11:20
[INFO] [stdout]   23:     0x56b6e2fbcf46 - <rust_web_server[1ceee31dad5de83e]::app::controller::script::tests::file_retrieval::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x56b6e347b2eb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x56b6e347b2eb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x56b6e3488b65 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x56b6e3488b65 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x56b6e3488b65 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x56b6e3488b65 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x56b6e3482474 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x56b6e3482474 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x56b6e348bbe2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x56b6e348bbe2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x56b6e3a016ef - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x56b6e3a016ef - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7908a9825aa4 - <unknown>
[INFO] [stdout]   45:     0x7908a98b2a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- server::tests::write_chunked_file_produces_valid_chunked_encoding stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'server::tests::write_chunked_file_produces_valid_chunked_encoding' (4286) panicked at src/server/tests.rs:1395:40:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x56b6e3a02a08 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x56b6e3a02a08 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x56b6e3a1c48a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x56b6e3a1c48a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x56b6e3a07d22 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x56b6e3a07d22 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x56b6e39dcf16 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x56b6e39dcf16 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x56b6e39f8c99 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x56b6e348820c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x56b6e348820c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x56b6e39f8f12 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x56b6e39f8f12 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x56b6e39dcfd2 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x56b6e39d1d29 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x56b6e39de06d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x56b6e3a1cc4c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x56b6e3a1c9c2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x56b6e2eac1d7 - <core[8fb95b77d25ab6c8]::result::Result<(), std[10d71ac2c42b111e]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x56b6e2eac1d7 - rust_web_server[1ceee31dad5de83e]::server::tests::write_chunked_file_produces_valid_chunked_encoding
[INFO] [stdout]                                at /opt/rustwide/workdir/src/server/tests.rs:1395:40
[INFO] [stdout]   22:     0x56b6e2e6a6d7 - rust_web_server[1ceee31dad5de83e]::server::tests::write_chunked_file_produces_valid_chunked_encoding::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/server/tests.rs:1391:56
[INFO] [stdout]   23:     0x56b6e2fb2cc6 - <rust_web_server[1ceee31dad5de83e]::server::tests::write_chunked_file_produces_valid_chunked_encoding::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x56b6e347b2eb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x56b6e347b2eb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x56b6e3488b65 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x56b6e3488b65 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x56b6e3488b65 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x56b6e3488b65 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x56b6e3488b65 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x56b6e3482474 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x56b6e3482474 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x56b6e348bbe2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x56b6e348bbe2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x56b6e348bbe2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x56b6e3a016ef - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x56b6e3a016ef - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7908a9825aa4 - <unknown>
[INFO] [stdout]   45:     0x7908a98b2a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     app::controller::directory_listing::tests::css_file_retrieval_with_disk_override
[INFO] [stdout]     app::controller::directory_listing::tests::js_file_retrieval_with_disk_override
[INFO] [stdout]     app::controller::favicon::tests::favicon_retrieval
[INFO] [stdout]     app::controller::index::tests::file_retrieval
[INFO] [stdout]     app::controller::script::tests::file_retrieval
[INFO] [stdout]     server::tests::write_chunked_file_produces_valid_chunked_encoding
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1538 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.81s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "709f065f90ca80b0ab15c2c9d38f287abc98219616870659e7935c781efab703", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "709f065f90ca80b0ab15c2c9d38f287abc98219616870659e7935c781efab703", kill_on_drop: false }`
[INFO] [stdout] 709f065f90ca80b0ab15c2c9d38f287abc98219616870659e7935c781efab703
