[INFO] cloning repository https://github.com/dhofheinz/skim
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dhofheinz/skim" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdhofheinz%2Fskim", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdhofheinz%2Fskim'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b0ca2471935fce87c1fe1f72f08b2188f5b18b57
[INFO] testing dhofheinz/skim against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdhofheinz%2Fskim" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dhofheinz/skim
[INFO] finished tweaking git repo https://github.com/dhofheinz/skim
[INFO] tweaked toml for git repo https://github.com/dhofheinz/skim written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dhofheinz/skim on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dhofheinz/skim already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded deadpool v0.12.3
[INFO] [stderr]   Downloaded redox_syscall v0.7.0
[INFO] [stderr]   Downloaded deadpool-runtime v0.1.4
[INFO] [stderr]   Downloaded is-wsl v0.4.0
[INFO] [stderr]   Downloaded secrecy v0.10.3
[INFO] [stderr]   Downloaded is-docker v0.2.0
[INFO] [stderr]   Downloaded open v5.3.3
[INFO] [stderr]   Downloaded mediatype v0.19.20
[INFO] [stderr]   Downloaded reqwest v0.13.1
[INFO] [stderr]   Downloaded wiremock v0.6.5
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.38
[INFO] [stderr]   Downloaded pulldown-cmark v0.12.2
[INFO] [stderr]   Downloaded feed-rs v2.3.1
[INFO] [stderr]   Downloaded moka v0.12.12
[INFO] [stderr]   Downloaded zerocopy v0.8.38
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8d7470e5178f0c8e9346e5d99cbd40814fd8a60c659d15bfd7213c21bc1d264a
[INFO] running `Command { std: "docker" "start" "-a" "8d7470e5178f0c8e9346e5d99cbd40814fd8a60c659d15bfd7213c21bc1d264a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8d7470e5178f0c8e9346e5d99cbd40814fd8a60c659d15bfd7213c21bc1d264a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8d7470e5178f0c8e9346e5d99cbd40814fd8a60c659d15bfd7213c21bc1d264a", kill_on_drop: false }`
[INFO] [stdout] 8d7470e5178f0c8e9346e5d99cbd40814fd8a60c659d15bfd7213c21bc1d264a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2af5214b7045817a22b596c118a16346a1cac6325f7c32f940e0833f5d89afe4
[INFO] running `Command { std: "docker" "start" "-a" "2af5214b7045817a22b596c118a16346a1cac6325f7c32f940e0833f5d89afe4", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling aws-lc-rs v1.15.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling zerocopy v0.8.38
[INFO] [stderr]    Compiling ryu v1.0.22
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling crc v3.4.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling flume v0.11.1
[INFO] [stderr]    Compiling uuid v1.20.0
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling moka v0.12.12
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling is-docker v0.2.0
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling pulldown-cmark v0.12.2
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling is-wsl v0.4.0
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling aws-lc-sys v0.37.0
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling pathdiff v0.2.3
[INFO] [stderr]    Compiling pulldown-cmark-escape v0.11.0
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling open v5.3.3
[INFO] [stderr]    Compiling secrecy v0.10.3
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling enum-as-inner v0.6.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling clap v4.5.57
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling quick-xml v0.37.5
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling mediatype v0.19.20
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling feed-rs v2.3.1
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hickory-proto v0.25.2
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling sqlx-sqlite v0.8.6
[INFO] [stderr]    Compiling hickory-resolver v0.25.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]    Compiling sqlx v0.8.6
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.13.1
[INFO] [stderr]    Compiling skim v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 29s
[INFO] running `Command { std: "docker" "inspect" "2af5214b7045817a22b596c118a16346a1cac6325f7c32f940e0833f5d89afe4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2af5214b7045817a22b596c118a16346a1cac6325f7c32f940e0833f5d89afe4", kill_on_drop: false }`
[INFO] [stdout] 2af5214b7045817a22b596c118a16346a1cac6325f7c32f940e0833f5d89afe4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9bdeff7634d809eb6ec535578c026e9083452a0610022409084ae7199ef17259
[INFO] running `Command { std: "docker" "start" "-a" "9bdeff7634d809eb6ec535578c026e9083452a0610022409084ae7199ef17259", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling proptest v1.9.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling hickory-proto v0.25.2
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling hickory-resolver v0.25.2
[INFO] [stderr]    Compiling sqlx-sqlite v0.8.6
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling sqlx v0.8.6
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.13.1
[INFO] [stderr]    Compiling skim v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 05s
[INFO] running `Command { std: "docker" "inspect" "9bdeff7634d809eb6ec535578c026e9083452a0610022409084ae7199ef17259", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9bdeff7634d809eb6ec535578c026e9083452a0610022409084ae7199ef17259", kill_on_drop: false }`
[INFO] [stdout] 9bdeff7634d809eb6ec535578c026e9083452a0610022409084ae7199ef17259
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 1367eb0b2ad9be0e8ed102bcd234aabddcf0885e7fca4c5bd4d5e8873254f3e3
[INFO] running `Command { std: "docker" "start" "-a" "1367eb0b2ad9be0e8ed102bcd234aabddcf0885e7fca4c5bd4d5e8873254f3e3", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.58s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/skim-cd2f9960e7ebb65f)
[INFO] [stdout] 
[INFO] [stdout] running 180 tests
[INFO] [stdout] test storage::articles::tests::test_upsert_articles_empty_batch ... ok
[INFO] [stdout] test storage::categories::tests::test_create_category ... ok
[INFO] [stdout] test storage::articles::tests::test_mark_all_read_for_feed_empty ... ok
[INFO] [stdout] test storage::articles::tests::test_upsert_articles_update_returns_zero ... ok
[INFO] [stdout] test storage::articles::tests::test_mark_all_read_idempotent ... ok
[INFO] [stdout] test storage::articles::tests::test_upsert_articles_insert ... ok
[INFO] [stdout] test storage::articles::tests::test_mark_article_read ... ok
[INFO] [stdout] test storage::articles::tests::test_unread_counts_after_bulk_mark_read ... ok
[INFO] [stdout] test storage::articles::tests::test_toggle_article_starred ... ok
[INFO] [stdout] test storage::articles::tests::test_get_articles_pagination ... ok
[INFO] [stdout] test storage::articles::tests::test_toggle_article_starred_twice ... ok
[INFO] [stdout] test storage::articles::tests::test_upsert_articles_updates_metadata ... ok
[INFO] [stdout] test storage::articles::tests::test_mark_all_read_for_feed_idempotent ... ok
[INFO] [stdout] test storage::articles::tests::test_mark_all_read ... ok
[INFO] [stdout] test storage::articles::tests::test_mark_all_read_for_feed ... ok
[INFO] [stdout] test storage::articles::tests::test_upsert_articles_mixed_batch ... ok
[INFO] [stdout] test storage::categories::tests::test_create_category_rejects_control_chars_only ... ok
[INFO] [stdout] test storage::categories::tests::test_create_category_rejects_empty_name ... ok
[INFO] [stdout] test storage::categories::tests::test_create_category_rejects_whitespace_only ... ok
[INFO] [stdout] test storage::categories::tests::test_get_categories_tree_ordering ... ok
[INFO] [stdout] test storage::categories::tests::test_create_category_strips_control_chars ... ok
[INFO] [stdout] test storage::categories::tests::test_create_category_trims_whitespace ... ok
[INFO] [stdout] test storage::categories::tests::test_rename_category_strips_control_chars ... ok
[INFO] [stdout] test storage::categories::tests::test_move_feed_to_category ... ok
[INFO] [stdout] test storage::categories::tests::test_max_nesting_depth ... ok
[INFO] [stdout] test storage::categories::tests::test_delete_category_orphans_feeds ... ok
[INFO] [stdout] test storage::categories::tests::test_delete_category_orphans_children ... ok
[INFO] [stdout] test storage::feeds::tests::test_circuit_breaker_threshold_constant ... ok
[INFO] [stdout] test storage::categories::tests::test_rename_category ... ok
[INFO] [stdout] test storage::categories::tests::test_rename_category_trims_whitespace ... ok
[INFO] [stdout] test storage::categories::tests::test_rename_category_rejects_empty_name ... ok
[INFO] [stdout] test storage::categories::tests::test_nested_categories ... ok
[INFO] [stdout] test storage::content_cache::tests::test_cache_content ... ok
[INFO] [stdout] test storage::content_cache::tests::test_evict_expired ... ok
[INFO] [stdout] test storage::content_cache::tests::test_get_expired_returns_none ... ok
[INFO] [stdout] test storage::content_cache::tests::test_cache_content_replace ... ok
[INFO] [stdout] test storage::content_cache::tests::test_cached_article_ids ... ok
[INFO] [stdout] test storage::content_cache::tests::test_cache_stats ... ok
[INFO] [stdout] test storage::content_cache::tests::test_cascade_delete ... ok
[INFO] [stdout] test storage::feeds::tests::test_batch_set_feed_errors ... ok
[INFO] [stdout] test storage::feeds::tests::test_complete_feed_refresh_empty_articles ... ok
[INFO] [stdout] test storage::content_cache::tests::test_prefetch_candidates ... ok
[INFO] [stdout] test storage::feeds::tests::test_complete_feed_refresh_resets_failures ... ok
[INFO] [stdout] test storage::feeds::tests::test_complete_feed_refresh_atomic ... ok
[INFO] [stdout] test storage::feeds::tests::test_delete_feed_cleans_fts ... ok
[INFO] [stdout] test storage::feeds::tests::test_get_feeds_for_export ... ok
[INFO] [stdout] test storage::feeds::tests::test_complete_feed_refresh_upsert ... ok
[INFO] [stdout] test storage::feeds::tests::test_batch_set_feed_errors_empty ... ok
[INFO] [stdout] test storage::feeds::tests::test_get_feeds_for_export_empty ... ok
[INFO] [stdout] test storage::feeds::tests::test_delete_nonexistent_feed ... ok
[INFO] [stdout] test storage::feeds::tests::test_rename_feed_db ... ok
[INFO] [stdout] test storage::feeds::tests::test_delete_feed_cascades ... ok
[INFO] [stdout] test storage::feeds::tests::test_get_active_feeds_filters_high_failures ... ok
[INFO] [stdout] test storage::feeds::tests::test_rename_nonexistent_feed ... ok
[INFO] [stdout] test storage::feeds::tests::test_get_feeds_unread_counts ... ok
[INFO] [stdout] test storage::feeds::tests::test_increment_feed_failures ... ok
[INFO] [stdout] test storage::feeds::tests::test_sync_feeds_empty ... ok
[INFO] [stdout] test storage::feeds::tests::test_reset_feed_failures ... ok
[INFO] [stdout] test storage::feeds::tests::test_sync_feeds_insert ... ok
[INFO] [stdout] test storage::feeds::tests::test_sync_feeds_upsert_updates_title ... ok
[INFO] [stdout] test storage::preferences::tests::test_get_preference_missing ... ok
[INFO] [stdout] test storage::feeds::tests::test_sync_feeds_batch_chunking ... ok
[INFO] [stdout] test storage::preferences::tests::test_get_preferences_by_prefix_no_false_matches ... ok
[INFO] [stdout] test storage::preferences::tests::test_set_and_get_preference ... ok
[INFO] [stdout] test storage::preferences::tests::test_get_preferences_by_prefix_empty ... ok
[INFO] [stdout] test storage::feeds::tests::test_sync_feeds_batch_upsert ... ok
[INFO] [stdout] test storage::preferences::tests::test_get_preferences_by_prefix ... ok
[INFO] [stdout] test storage::preferences::tests::test_set_preference_upsert ... ok
[INFO] [stdout] test storage::preferences::tests::test_set_preference_updates_timestamp ... ok
[INFO] [stdout] test storage::reading_history::tests::test_get_reading_history ... ok
[INFO] [stdout] test storage::reading_history::tests::test_null_duration_on_unclosed ... ok
[INFO] [stdout] test storage::reading_history::tests::test_cascade_delete_on_article_removal ... ok
[INFO] [stdout] test storage::reading_history::tests::test_reading_stats_zero_days ... ok
[INFO] [stdout] test storage::reading_history::tests::test_record_open_close ... ok
[INFO] [stdout] test storage::reading_history::tests::test_reading_stats_calculation ... ok
[INFO] [stdout] test storage::search::tests::test_fts_consistency_detailed_empty ... ok
[INFO] [stdout] test storage::search::tests::test_fts_consistency_check_consistent ... ok
[INFO] [stdout] test storage::search::tests::test_fts5_content_column_indexed ... ok
[INFO] [stdout] test storage::search::tests::test_fts_consistency_detailed_consistent ... ok
[INFO] [stdout] test storage::search::tests::test_search_scope_default_unchanged ... ok
[INFO] [stdout] test storage::search::tests::test_search_articles_rejects_long_query ... ok
[INFO] [stdout] test storage::search::tests::test_fts_rebuild_empty_table ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_and_case_insensitive ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_and_limit ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_flat_parens_ok ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_length_limit ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_nesting_depth_exceeded ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_nesting_depth_ok ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_normal_term_length ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_or_case_insensitive ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_parentheses_limit ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_or_limit ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_rejects_column_filter_syntax ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_term_length_strips_decorators ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_unbalanced_parentheses ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_term_too_long ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_wildcard_limit ... ok
[INFO] [stdout] test storage::types::tests::test_cantopen_message_returns_instance_locked ... ok
[INFO] [stdout] test storage::types::tests::test_error_code_5_returns_instance_locked ... ok
[INFO] [stdout] test storage::types::tests::test_error_code_6_returns_instance_locked ... ok
[INFO] [stdout] test storage::types::tests::test_non_database_error_variant_returns_other ... ok
[INFO] [stdout] test storage::types::tests::test_no_code_with_lock_message_falls_through_to_string_match ... ok
[INFO] [stdout] test storage::types::tests::test_unknown_code_with_lock_message_falls_through_to_string_match ... ok
[INFO] [stdout] test storage::types::tests::test_unrelated_error_returns_other ... ok
[INFO] [stdout] test util::text::tests::test_ascii_truncation ... ok
[INFO] [stdout] test util::text::tests::test_cjk_truncation ... ok
[INFO] [stdout] test storage::search::tests::test_fts_consistency_after_operations ... ok
[INFO] [stdout] test util::text::tests::test_edge_case_widths ... ok
[INFO] [stdout] test util::text::tests::test_emoji_truncation ... ok
[INFO] [stdout] test util::text::tests::test_exact_fit ... ok
[INFO] [stdout] test util::text::tests::test_min_width ... ok
[INFO] [stdout] test util::text::tests::test_no_panic_on_utf8_boundaries ... ok
[INFO] [stdout] test util::text::tests::test_strip_ansi_color_codes ... ok
[INFO] [stdout] test util::text::tests::test_strip_ansi_cursor_movement ... ok
[INFO] [stdout] test util::text::tests::test_strip_bare_esc ... ok
[INFO] [stdout] test util::text::tests::test_strip_clean_text_returns_borrowed ... ok
[INFO] [stdout] test util::text::tests::test_strip_control_chars_removes_controls ... ok
[INFO] [stdout] test util::text::tests::test_strip_empty_string ... ok
[INFO] [stdout] test util::text::tests::test_strip_mixed_content ... ok
[INFO] [stdout] test util::text::tests::test_strip_osc_with_bel ... ok
[INFO] [stdout] test util::text::tests::test_strip_preserves_tabs_newlines_cr ... ok
[INFO] [stdout] test util::text::tests::test_strip_removes_del ... ok
[INFO] [stdout] test util::text::tests::test_strip_unicode_preserved ... ok
[INFO] [stdout] test util::url_validator::tests::test_ipv4_mapped_ipv6_loopback_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_ipv4_mapped_ipv6_private_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_ipv6_loopback_rejected ... ok
[INFO] [stdout] test storage::search::tests::test_search_articles_rejects_too_many_parentheses ... ok
[INFO] [stdout] test storage::search::tests::test_search_articles_rejects_too_many_or ... ok
[INFO] [stdout] test util::url_validator::tests::test_link_local_ipv4_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_link_local_ipv6_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_localhost_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_private_ips_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_no_userinfo_accepted ... ok
[INFO] [stdout] test util::url_validator::tests::test_url_with_port_on_private_ip ... ok
[INFO] [stdout] test util::url_validator::tests::test_userinfo_encoded_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_userinfo_username_only_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_userinfo_username_password_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_valid_url_with_port_accepted ... ok
[INFO] [stdout] test util::url_validator::tests::test_valid_public_url_accepted ... ok
[INFO] [stdout] test storage::search::tests::test_search_articles_rejects_too_many_and ... ok
[INFO] [stdout] test util::url_validator::tests::test_valid_urls ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_backtick ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_data_scheme ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_encoded_cr_lowercase ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_encoded_cr_uppercase ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_encoded_crlf ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_encoded_lf_lowercase ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_encoded_lf_uppercase ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_file_scheme ... ok
[INFO] [stdout] test util::url_validator::tests::test_invalid_schemes ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_javascript_scheme ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_null_byte ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_malformed ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_pipe ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_raw_carriage_return ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_raw_newline ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_semicolon ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_backslash ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_dollar ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_del ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_unicode_line_separator ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_unicode_paragraph_separator ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_userinfo ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_valid_http ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_valid_https ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_valid_with_fragment ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_valid_with_path ... ok
[INFO] [stdout] test util::url_validator::tests::test_zero_address_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_valid_with_query_params ... ok
[INFO] [stdout] test storage::search::tests::test_fts_rebuild_index ... ok
[INFO] [stdout] test storage::search::tests::test_fts_rebuild_maintains_searchability ... ok
[INFO] [stdout] test storage::search::tests::test_search_articles_rejects_too_many_wildcards ... ok
[INFO] [stdout] test storage::search::tests::test_search_all_scope ... ok
[INFO] [stdout] test storage::search::tests::test_index_content ... ok
[INFO] [stdout] test storage::search::tests::test_search_empty_query ... ok
[INFO] [stdout] test storage::search::tests::test_search_no_results ... ok
[INFO] [stdout] test storage::search::tests::test_search_by_title ... ok
[INFO] [stdout] test storage::search::tests::test_search_title_and_summary_scope ... ok
[INFO] [stdout] test storage::reading_history::tests::test_top_feeds_ranking ... ok
[INFO] [stdout] test util::text::tests::test_strip_osc_with_st ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 180 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.77s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/skim-7fbc705bce26c895)
[INFO] [stdout] 
[INFO] [stdout] running 410 tests
[INFO] [stdout] test app::tests::test_config_theme_variant_from_str ... ok
[INFO] [stdout] test app::tests::test_clamp_selections_valid_indices ... ok
[INFO] [stdout] test app::tests::test_clamp_scroll_within_bounds ... ok
[INFO] [stdout] test app::tests::test_clamp_selections_empty_lists ... ok
[INFO] [stdout] test app::tests::test_category_filter_feeds ... ok
[INFO] [stdout] test app::tests::test_category_collapse_expand ... ok
[INFO] [stdout] test app::tests::test_clamp_scroll_exceeds_max ... ok
[INFO] [stdout] test app::tests::test_clamp_reader_scroll_with_loaded_content ... ok
[INFO] [stdout] test app::tests::test_category_focus_cycle ... ok
[INFO] [stdout] test app::tests::test_category_selection_clamp ... ok
[INFO] [stdout] test app::tests::test_context_menu_open_close ... ok
[INFO] [stdout] test app::tests::test_config_keybinding_overrides_applied_to_app ... ok
[INFO] [stdout] test app::tests::test_all_bindings_include_theme_and_help ... ok
[INFO] [stdout] test app::tests::test_clamp_scroll_content_smaller_than_viewport ... ok
[INFO] [stdout] test app::tests::test_category_tree_building ... ok
[INFO] [stdout] test app::tests::test_feed_deleted_event_updates_state ... ok
[INFO] [stdout] test app::tests::test_keybinding_override_preserves_theme_cycling ... ok
[INFO] [stdout] test app::tests::test_delete_cancel ... ok
[INFO] [stdout] test app::tests::test_cycle_theme_dark_to_light ... ok
[INFO] [stdout] test app::tests::test_clamp_selections_out_of_bounds ... ok
[INFO] [stdout] test app::tests::test_cycle_theme_light_to_dark ... ok
[INFO] [stdout] test app::tests::test_cycle_theme_full_round_trip ... ok
[INFO] [stdout] test app::tests::test_category_panel_toggle ... ok
[INFO] [stdout] test app::tests::test_dismiss_whats_new ... ok
[INFO] [stdout] test app::tests::test_context_menu_delegates_delete ... ok
[INFO] [stdout] test app::tests::test_exit_reader_resets_scroll ... ok
[INFO] [stdout] test app::tests::test_snapshot_default_on_empty_json ... ok
[INFO] [stdout] test app::tests::test_snapshot_forward_compatible ... ok
[INFO] [stdout] test app::tests::test_snapshot_json_round_trip ... ok
[INFO] [stdout] test app::tests::test_restore_unknown_focus_defaults_to_feeds ... ok
[INFO] [stdout] test app::tests::test_reader_content_lines_loaded ... ok
[INFO] [stdout] test app::tests::test_scroll_up_at_zero ... ok
[INFO] [stdout] test app::tests::test_delete_confirm_flow ... ok
[INFO] [stdout] test app::tests::test_restore_clamps_out_of_bounds ... ok
[INFO] [stdout] test app::tests::test_nav_empty_list ... ok
[INFO] [stdout] test app::tests::test_keybinding_registry_has_cycle_theme ... ok
[INFO] [stdout] test app::tests::test_scroll_down_increment ... ok
[INFO] [stdout] test app::tests::test_selected_category_id ... ok
[INFO] [stdout] test app::tests::test_reader_content_lines_idle ... ok
[INFO] [stdout] test app::tests::test_set_theme_updates_variant_and_styles ... ok
[INFO] [stdout] test app::tests::test_snapshot_captures_state ... ok
[INFO] [stdout] test config::tests::test_debug_masks_api_key ... ok
[INFO] [stdout] test config::tests::test_debug_shows_none_when_no_api_key ... ok
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test config::tests::test_empty_file_returns_default ... ok
[INFO] [stdout] test app::tests::test_theme_unknown_role_returns_default ... ok
[INFO] [stdout] test config::tests::test_full_config ... ok
[INFO] [stdout] test config::tests::test_invalid_toml_returns_error ... ok
[INFO] [stdout] test config::tests::test_keybindings_empty_map ... ok
[INFO] [stdout] test config::tests::test_missing_file_returns_default ... ok
[INFO] [stdout] test config::tests::test_partial_config_uses_defaults_for_missing ... ok
[INFO] [stdout] test config::tests::test_too_large_file_rejected ... ok
[INFO] [stdout] test config::tests::test_unknown_keys_accepted ... ok
[INFO] [stdout] test config::tests::test_whitespace_only_file_returns_default ... ok
[INFO] [stdout] test config::tests::test_wrong_type_returns_error ... ok
[INFO] [stdout] test app::tests::test_status_not_expired_before_3_seconds ... ok
[INFO] [stdout] test app::tests::test_restore_applies_state ... ok
[INFO] [stdout] test app::tests::test_status_expires_after_3_seconds ... ok
[INFO] [stdout] test app::tests::test_sync_feed_cache_updates_existing_titles ... ok
[INFO] [stdout] test app::tests::test_theme_defaults_to_dark ... ok
[INFO] [stdout] test app::tests::test_sync_feed_cache_removes_stale_entries ... ok
[INFO] [stdout] test app::tests::test_sync_feed_cache_handles_empty_feeds ... ok
[INFO] [stdout] test app::tests::test_show_help_keybinding_exists ... ok
[INFO] [stdout] test app::tests::test_theme_set_status_on_cycle ... ok
[INFO] [stdout] test app::tests::test_update_feed_cache_incremental ... ok
[INFO] [stdout] test app::tests::test_theme_styles_differ_between_variants ... ok
[INFO] [stdout] test content::jina::tests::test_is_archive_link ... ok
[INFO] [stdout] test app::tests::test_update_feed_cache_removes_deleted ... ok
[INFO] [stdout] test content::jina::tests::test_preserve_short_archive_list ... ok
[INFO] [stdout] test content::jina::tests::test_preserve_legitimate_content ... ok
[INFO] [stdout] test content::jina::tests::test_strip_archive_links ... ok
[INFO] [stdout] test app::tests::test_move_feed_to_category_state ... ok
[INFO] [stdout] test content::jina::tests::test_strip_comment_scaffolding ... ok
[INFO] [stdout] test content::jina::tests::test_strip_menu_remnant ... ok
[INFO] [stdout] test content::jina::tests::test_fetch_content_success ... ok
[INFO] [stdout] test content::jina::tests::test_strip_wordpress_footer ... ok
[INFO] [stdout] test content::jina::tests::test_strip_skip_to_content ... ok
[INFO] [stdout] test feed::discovery::tests::test_discover_from_html_finds_and_parses_feed ... ok
[INFO] [stdout] test content::jina::tests::test_host_confusion_base_url_rejected ... ok
[INFO] [stdout] test feed::discovery::tests::test_discover_invalid_url ... ok
[INFO] [stdout] test content::jina::tests::test_empty_response ... ok
[INFO] [stdout] test feed::discovery::tests::test_discover_localhost_rejected ... ok
[INFO] [stdout] test feed::discovery::tests::test_find_atom_link_in_html ... ok
[INFO] [stdout] test feed::discovery::tests::test_find_feed_link_absolute_url ... ok
[INFO] [stdout] test feed::discovery::tests::test_find_feed_link_protocol_relative ... ok
[INFO] [stdout] test feed::discovery::tests::test_find_feed_link_reversed_attrs ... ok
[INFO] [stdout] test feed::discovery::tests::test_find_feed_link_single_quotes ... ok
[INFO] [stdout] test feed::discovery::tests::test_find_rss_link_in_html ... ok
[INFO] [stdout] test feed::discovery::tests::test_no_feed_link_in_html ... ok
[INFO] [stdout] test feed::discovery::tests::test_parse_atom_metadata ... ok
[INFO] [stdout] test feed::discovery::tests::test_parse_feed_strips_control_chars_from_description ... ok
[INFO] [stdout] test feed::discovery::tests::test_parse_feed_strips_control_chars_from_title ... ok
[INFO] [stdout] test feed::discovery::tests::test_parse_feed_without_title_defaults ... ok
[INFO] [stdout] test feed::discovery::tests::test_parse_invalid_xml_returns_not_a_feed ... ok
[INFO] [stdout] test feed::discovery::tests::test_parse_rss_metadata ... ok
[INFO] [stdout] test feed::discovery::tests::test_resolve_absolute_url ... ok
[INFO] [stdout] test feed::discovery::tests::test_resolve_protocol_relative ... ok
[INFO] [stdout] test feed::discovery::tests::test_resolve_protocol_relative_normalizes_path ... ok
[INFO] [stdout] test feed::discovery::tests::test_resolve_protocol_relative_uses_parser ... ok
[INFO] [stdout] test feed::discovery::tests::test_resolve_relative_path ... ok
[INFO] [stdout] test feed::discovery::tests::test_resolve_relative_url ... ok
[INFO] [stdout] test feed::fetcher::tests::test_empty_feed_success ... ok
[INFO] [stdout] test app::tests::test_theme_style_resolves_all_roles ... ok
[INFO] [stdout] test feed::discovery::tests::test_discover_direct_rss ... ok
[INFO] [stdout] test content::jina::tests::test_http_404 ... ok
[INFO] [stdout] test feed::discovery::tests::test_discover_not_a_feed ... ok
[INFO] [stdout] test feed::discovery::tests::test_discover_ambiguous_content_type_tries_feed_first ... ok
[INFO] [stdout] test feed::opml::tests::test_deeply_nested_opml_rejected ... ok
[INFO] [stdout] test feed::opml::tests::test_empty_opml ... ok
[INFO] [stdout] test feed::opml::tests::test_export_categories_depth_limit ... ok
[INFO] [stdout] test feed::opml::tests::test_export_categories_empty ... ok
[INFO] [stdout] test feed::opml::tests::test_export_categories_file_atomic ... ok
[INFO] [stdout] test feed::opml::tests::test_export_categories_roundtrip ... ok
[INFO] [stdout] test feed::opml::tests::test_export_categories_with_html_url ... ok
[INFO] [stdout] test feed::opml::tests::test_export_categories_xml_escaping ... ok
[INFO] [stdout] test feed::opml::tests::test_export_nested_categories ... ok
[INFO] [stdout] test feed::opml::tests::test_export_opml_empty_feeds ... ok
[INFO] [stdout] test feed::opml::tests::test_export_opml_round_trip ... ok
[INFO] [stdout] test feed::opml::tests::test_export_opml_xml_escaping ... ok
[INFO] [stdout] test feed::opml::tests::test_export_to_file ... ok
[INFO] [stdout] test feed::opml::tests::test_export_uncategorized_at_root ... ok
[INFO] [stdout] test feed::opml::tests::test_export_with_categories ... ok
[INFO] [stdout] test feed::opml::tests::test_fallback_to_text ... ok
[INFO] [stdout] test feed::opml::tests::test_fallback_to_url ... ok
[INFO] [stdout] test feed::opml::tests::test_malformed_xml_error ... ok
[INFO] [stdout] test feed::opml::tests::test_nesting_at_depth_limit_allowed ... ok
[INFO] [stdout] test feed::opml::tests::test_parse_opml_content ... ok
[INFO] [stdout] test feed::opml::tests::test_skip_invalid_scheme_feeds ... ok
[INFO] [stdout] test feed::opml::tests::test_skip_localhost_feeds ... ok
[INFO] [stdout] test feed::opml::tests::test_skip_private_ip_feeds ... ok
[INFO] [stdout] test feed::opml::tests::test_xxe_entity_in_url_attribute ... ok
[INFO] [stdout] test feed::opml::tests::test_xxe_internal_entity_not_expanded ... ok
[INFO] [stdout] test feed::opml::tests::test_xxe_parameter_entity_not_expanded ... ok
[INFO] [stdout] test feed::opml::tests::test_xxe_protection ... ok
[INFO] [stdout] test feed::parser::tests::test_article_without_url_included ... ok
[INFO] [stdout] test feed::parser::tests::test_file_scheme_rejected ... ok
[INFO] [stdout] test feed::parser::tests::test_ftp_scheme_rejected ... ok
[INFO] [stdout] test feed::parser::tests::test_guid_deterministic ... ok
[INFO] [stdout] test feed::discovery::tests::test_discover_private_ip_rejected ... ok
[INFO] [stdout] test feed::parser::tests::test_localhost_url_rejected ... ok
[INFO] [stdout] test feed::parser::tests::test_loopback_ip_rejected ... ok
[INFO] [stdout] test feed::parser::tests::test_mixed_valid_and_invalid_urls ... ok
[INFO] [stdout] test feed::parser::tests::test_parse_atom_basic ... ok
[INFO] [stdout] test content::jina::tests::test_localhost_rejected ... ok
[INFO] [stdout] test feed::parser::tests::test_parse_malformed_xml_error ... ok
[INFO] [stdout] test feed::parser::tests::test_parse_empty_feed ... ok
[INFO] [stdout] test feed::parser::tests::test_parse_missing_guid_generates_hash ... ok
[INFO] [stdout] test feed::parser::tests::test_parse_missing_title_defaults_untitled ... ok
[INFO] [stdout] test feed::parser::tests::test_private_ip_10_rejected ... ok
[INFO] [stdout] test feed::parser::tests::test_private_ip_172_16_rejected ... ok
[INFO] [stdout] test feed::parser::tests::test_private_ip_192_168_rejected ... ok
[INFO] [stdout] test feed::parser::tests::test_valid_http_url_accepted ... ok
[INFO] [stdout] test feed::parser::tests::test_valid_https_url_accepted ... ok
[INFO] [stdout] test keybindings::tests::test_action_describe ... ok
[INFO] [stdout] test keybindings::tests::test_all_bindings_non_empty ... ok
[INFO] [stdout] test keybindings::tests::test_apply_overrides_bad_key ... ok
[INFO] [stdout] test keybindings::tests::test_apply_overrides_unknown_action ... ok
[INFO] [stdout] test keybindings::tests::test_apply_overrides_valid ... ok
[INFO] [stdout] test keybindings::tests::test_ctrl_modifiers ... ok
[INFO] [stdout] test keybindings::tests::test_default_nav_keys ... ok
[INFO] [stdout] test keybindings::tests::test_default_registry_has_quit ... ok
[INFO] [stdout] test keybindings::tests::test_export_only_in_feed_list ... ok
[INFO] [stdout] test keybindings::tests::test_format_key_display ... ok
[INFO] [stdout] test keybindings::tests::test_override_preserves_contexts ... ok
[INFO] [stdout] test keybindings::tests::test_parse_key_string_ctrl ... ok
[INFO] [stdout] test keybindings::tests::test_parse_key_string_function_keys ... ok
[INFO] [stdout] test feed::parser::tests::test_parse_rss_basic ... ok
[INFO] [stdout] test keybindings::tests::test_parse_key_string_single_char ... ok
[INFO] [stdout] test keybindings::tests::test_reader_context_overrides_global ... ok
[INFO] [stdout] test keybindings::tests::test_parse_key_string_named_keys ... ok
[INFO] [stdout] test keybindings::tests::test_search_context ... ok
[INFO] [stdout] test keybindings::tests::test_unknown_key_returns_none ... ok
[INFO] [stdout] test preferences::tests::test_config_file_load_and_merge ... ok
[INFO] [stdout] test preferences::tests::test_config_keybindings_flattened ... ok
[INFO] [stdout] test feed::fetcher::tests::test_refresh_success ... ok
[INFO] [stdout] test preferences::tests::test_config_to_db_round_trip ... ok
[INFO] [stdout] test keybindings::tests::test_reader_falls_back_to_global_for_quit ... ok
[INFO] [stdout] test preferences::tests::test_from_config_fallback ... ok
[INFO] [stdout] test preferences::tests::test_corrupt_snapshot_ignored ... ok
[INFO] [stdout] test preferences::tests::test_db_overrides_config ... ok
[INFO] [stdout] test preferences::tests::test_get_returns_none_for_unknown ... ok
[INFO] [stdout] test preferences::tests::test_refresh_interval_parse ... ok
[INFO] [stdout] test preferences::tests::test_load_defaults_from_config ... ok
[INFO] [stdout] test preferences::tests::test_preferences_survive_reload ... ok
[INFO] [stdout] test preferences::tests::test_session_snapshot_round_trip ... ok
[INFO] [stdout] test preferences::tests::test_restore_session_from_db ... ok
[INFO] [stdout] test preferences::tests::test_set_persists_and_updates_memory ... ok
[INFO] [stdout] test storage::articles::tests::test_mark_all_read ... ok
[INFO] [stdout] test feed::fetcher::tests::test_malformed_feed_parse_error ... ok
[INFO] [stdout] test feed::parser::tests::test_guid_never_empty ... ok
[INFO] [stdout] test storage::articles::tests::test_mark_all_read_for_feed ... ok
[INFO] [stdout] test storage::articles::tests::test_mark_all_read_idempotent ... ok
[INFO] [stdout] test content::jina::tests::test_http_base_url_rejected ... ok
[INFO] [stdout] test storage::articles::tests::test_get_articles_pagination ... ok
[INFO] [stdout] test preferences::tests::test_restore_session_default_false ... ok
[INFO] [stdout] test storage::articles::tests::test_mark_all_read_for_feed_idempotent ... ok
[INFO] [stdout] test storage::articles::tests::test_toggle_article_starred ... ok
[INFO] [stdout] test storage::articles::tests::test_toggle_article_starred_twice ... ok
[INFO] [stdout] test storage::articles::tests::test_upsert_articles_empty_batch ... ok
[INFO] [stdout] test storage::articles::tests::test_mark_all_read_for_feed_empty ... ok
[INFO] [stdout] test storage::articles::tests::test_upsert_articles_mixed_batch ... ok
[INFO] [stdout] test storage::articles::tests::test_upsert_articles_update_returns_zero ... ok
[INFO] [stdout] test content::jina::tests::test_invalid_url_rejected ... ok
[INFO] [stdout] test storage::articles::tests::test_upsert_articles_insert ... ok
[INFO] [stdout] test storage::categories::tests::test_create_category_rejects_control_chars_only ... ok
[INFO] [stdout] test storage::articles::tests::test_upsert_articles_updates_metadata ... ok
[INFO] [stdout] test storage::articles::tests::test_mark_article_read ... ok
[INFO] [stdout] test storage::categories::tests::test_create_category ... ok
[INFO] [stdout] test storage::categories::tests::test_create_category_strips_control_chars ... ok
[INFO] [stdout] test storage::categories::tests::test_create_category_rejects_whitespace_only ... ok
[INFO] [stdout] test storage::categories::tests::test_create_category_rejects_empty_name ... ok
[INFO] [stdout] test storage::categories::tests::test_delete_category_orphans_children ... ok
[INFO] [stdout] test storage::categories::tests::test_create_category_trims_whitespace ... ok
[INFO] [stdout] test storage::categories::tests::test_delete_category_orphans_feeds ... ok
[INFO] [stdout] test storage::categories::tests::test_get_categories_tree_ordering ... ok
[INFO] [stdout] test storage::categories::tests::test_max_nesting_depth ... ok
[INFO] [stdout] test storage::categories::tests::test_move_feed_to_category ... ok
[INFO] [stdout] test storage::categories::tests::test_nested_categories ... ok
[INFO] [stdout] test storage::categories::tests::test_rename_category ... ok
[INFO] [stdout] test storage::categories::tests::test_rename_category_strips_control_chars ... ok
[INFO] [stdout] test storage::categories::tests::test_rename_category_rejects_empty_name ... ok
[INFO] [stdout] test content::jina::tests::test_localhost_base_url_allowed ... ok
[INFO] [stdout] test storage::categories::tests::test_rename_category_trims_whitespace ... ok
[INFO] [stdout] test storage::content_cache::tests::test_cache_content ... ok
[INFO] [stdout] test storage::content_cache::tests::test_cache_content_replace ... ok
[INFO] [stdout] test storage::articles::tests::test_unread_counts_after_bulk_mark_read ... ok
[INFO] [stdout] test storage::content_cache::tests::test_cache_stats ... ok
[INFO] [stdout] test storage::feeds::tests::test_circuit_breaker_threshold_constant ... ok
[INFO] [stdout] test storage::content_cache::tests::test_cached_article_ids ... ok
[INFO] [stdout] test storage::content_cache::tests::test_get_expired_returns_none ... ok
[INFO] [stdout] test storage::feeds::tests::test_batch_set_feed_errors ... ok
[INFO] [stdout] test storage::content_cache::tests::test_cascade_delete ... ok
[INFO] [stdout] test storage::content_cache::tests::test_evict_expired ... ok
[INFO] [stdout] test storage::feeds::tests::test_batch_set_feed_errors_empty ... ok
[INFO] [stdout] test storage::feeds::tests::test_complete_feed_refresh_empty_articles ... ok
[INFO] [stdout] test storage::feeds::tests::test_delete_nonexistent_feed ... ok
[INFO] [stdout] test storage::feeds::tests::test_complete_feed_refresh_resets_failures ... ok
[INFO] [stdout] test storage::feeds::tests::test_complete_feed_refresh_atomic ... ok
[INFO] [stdout] test storage::feeds::tests::test_delete_feed_cascades ... ok
[INFO] [stdout] test storage::feeds::tests::test_complete_feed_refresh_upsert ... ok
[INFO] [stdout] test storage::content_cache::tests::test_prefetch_candidates ... ok
[INFO] [stdout] test storage::feeds::tests::test_delete_feed_cleans_fts ... ok
[INFO] [stdout] test storage::feeds::tests::test_get_feeds_for_export ... ok
[INFO] [stdout] test content::jina::tests::test_private_ip_rejected ... ok
[INFO] [stdout] test feed::fetcher::tests::test_refresh_404_error ... ok
[INFO] [stdout] test storage::feeds::tests::test_get_feeds_for_export_empty ... ok
[INFO] [stdout] test storage::feeds::tests::test_get_feeds_unread_counts ... ok
[INFO] [stdout] test storage::feeds::tests::test_reset_feed_failures ... ok
[INFO] [stdout] test config::tests::test_file_at_size_limit_accepted ... ok
[INFO] [stdout] test storage::feeds::tests::test_sync_feeds_insert ... ok
[INFO] [stdout] test storage::feeds::tests::test_rename_nonexistent_feed ... ok
[INFO] [stdout] test storage::feeds::tests::test_sync_feeds_empty ... ok
[INFO] [stdout] test storage::feeds::tests::test_get_active_feeds_filters_high_failures ... ok
[INFO] [stdout] test storage::feeds::tests::test_sync_feeds_upsert_updates_title ... ok
[INFO] [stdout] test storage::feeds::tests::test_sync_feeds_batch_chunking ... ok
[INFO] [stdout] test storage::preferences::tests::test_get_preferences_by_prefix ... ok
[INFO] [stdout] test storage::feeds::tests::test_sync_feeds_batch_upsert ... ok
[INFO] [stdout] test storage::preferences::tests::test_set_and_get_preference ... ok
[INFO] [stdout] test storage::preferences::tests::test_get_preferences_by_prefix_empty ... ok
[INFO] [stdout] test storage::preferences::tests::test_get_preference_missing ... ok
[INFO] [stdout] test storage::preferences::tests::test_set_preference_upsert ... ok
[INFO] [stdout] test storage::reading_history::tests::test_reading_stats_zero_days ... ok
[INFO] [stdout] test storage::reading_history::tests::test_null_duration_on_unclosed ... ok
[INFO] [stdout] test storage::reading_history::tests::test_cascade_delete_on_article_removal ... ok
[INFO] [stdout] test storage::reading_history::tests::test_record_open_close ... ok
[INFO] [stdout] test storage::reading_history::tests::test_reading_stats_calculation ... ok
[INFO] [stdout] test storage::search::tests::test_fts_consistency_detailed_consistent ... ok
[INFO] [stdout] test storage::search::tests::test_fts_consistency_check_consistent ... ok
[INFO] [stdout] test storage::search::tests::test_fts_consistency_after_operations ... ok
[INFO] [stdout] test storage::feeds::tests::test_increment_feed_failures ... ok
[INFO] [stdout] test storage::search::tests::test_fts_consistency_detailed_empty ... ok
[INFO] [stdout] test storage::search::tests::test_fts_rebuild_empty_table ... ok
[INFO] [stdout] test storage::feeds::tests::test_rename_feed_db ... ok
[INFO] [stdout] test storage::preferences::tests::test_get_preferences_by_prefix_no_false_matches ... ok
[INFO] [stdout] test storage::search::tests::test_index_content ... ok
[INFO] [stdout] test storage::search::tests::test_search_all_scope ... ok
[INFO] [stdout] test storage::search::tests::test_fts_rebuild_index ... ok
[INFO] [stdout] test storage::search::tests::test_fts_rebuild_maintains_searchability ... ok
[INFO] [stdout] test storage::search::tests::test_search_articles_rejects_long_query ... ok
[INFO] [stdout] test storage::search::tests::test_search_articles_rejects_too_many_and ... ok
[INFO] [stdout] test storage::search::tests::test_search_scope_default_unchanged ... ok
[INFO] [stdout] test storage::reading_history::tests::test_top_feeds_ranking ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_and_case_insensitive ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_and_limit ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_flat_parens_ok ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_length_limit ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_nesting_depth_exceeded ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_nesting_depth_ok ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_normal_term_length ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_or_case_insensitive ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_or_limit ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_parentheses_limit ... ok
[INFO] [stdout] test storage::search::tests::test_search_articles_rejects_too_many_or ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_term_length_strips_decorators ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_rejects_column_filter_syntax ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_term_too_long ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_unbalanced_parentheses ... ok
[INFO] [stdout] test storage::search::tests::test_validate_fts_query_wildcard_limit ... ok
[INFO] [stdout] test storage::types::tests::test_error_code_5_returns_instance_locked ... ok
[INFO] [stdout] test storage::types::tests::test_cantopen_message_returns_instance_locked ... ok
[INFO] [stdout] test storage::types::tests::test_error_code_6_returns_instance_locked ... ok
[INFO] [stdout] test storage::types::tests::test_no_code_with_lock_message_falls_through_to_string_match ... ok
[INFO] [stdout] test storage::types::tests::test_non_database_error_variant_returns_other ... ok
[INFO] [stdout] test storage::types::tests::test_unrelated_error_returns_other ... ok
[INFO] [stdout] test theme::tests::dark_palette_feed_selected_matches_original ... ok
[INFO] [stdout] test theme::tests::dark_palette_focus_border_matches_original ... ok
[INFO] [stdout] test theme::tests::dark_palette_reader_code_block_matches_original ... ok
[INFO] [stdout] test theme::tests::dark_palette_stars_matches_original ... ok
[INFO] [stdout] test storage::search::tests::test_search_articles_rejects_too_many_parentheses ... ok
[INFO] [stdout] test storage::search::tests::test_search_articles_rejects_too_many_wildcards ... ok
[INFO] [stdout] test storage::search::tests::test_search_by_title ... ok
[INFO] [stdout] test storage::search::tests::test_search_empty_query ... ok
[INFO] [stdout] test theme::tests::light_palette_differs_from_dark ... ok
[INFO] [stdout] test theme::tests::role_names_count_matches_palette_fields ... ok
[INFO] [stdout] test theme::tests::style_map_has_all_roles ... ok
[INFO] [stdout] test storage::search::tests::test_search_no_results ... ok
[INFO] [stdout] test theme::tests::variant_from_str_name ... ok
[INFO] [stdout] test theme::tests::style_map_returns_default_for_unknown ... ok
[INFO] [stdout] test ui::articles::tests::test_format_relative_time_days ... ok
[INFO] [stdout] test ui::articles::tests::test_format_relative_time_hours ... ok
[INFO] [stdout] test ui::articles::tests::test_format_relative_time_future ... ok
[INFO] [stdout] test ui::articles::tests::test_format_relative_time_minutes ... ok
[INFO] [stdout] test ui::articles::tests::test_format_relative_time_older_shows_date ... ok
[INFO] [stdout] test ui::articles::tests::test_scope_persists_across_sessions ... ok
[INFO] [stdout] test ui::articles::tests::test_search_scope_indicator_text ... ok
[INFO] [stdout] test ui::reader::tests::test_render_bold ... ok
[INFO] [stdout] test theme::tests::style_map_resolves_known_roles ... ok
[INFO] [stdout] test ui::reader::tests::test_render_code_block ... ok
[INFO] [stdout] test ui::reader::tests::test_render_empty ... ok
[INFO] [stdout] test ui::reader::tests::test_render_italic ... ok
[INFO] [stdout] test ui::reader::tests::test_render_link ... ok
[INFO] [stdout] test ui::reader::tests::test_render_plain_text ... ok
[INFO] [stdout] test ui::reader::tests::test_render_unicode ... ok
[INFO] [stdout] test ui::articles::tests::test_scope_toggle_visual_update ... ok
[INFO] [stdout] test ui::articles::tests::test_format_relative_time_none ... ok
[INFO] [stdout] test util::text::tests::test_ascii_truncation ... ok
[INFO] [stdout] test util::text::tests::test_edge_case_widths ... ok
[INFO] [stdout] test util::text::tests::test_emoji_truncation ... ok
[INFO] [stdout] test util::text::tests::test_cjk_truncation ... ok
[INFO] [stdout] test util::text::tests::test_exact_fit ... ok
[INFO] [stdout] test util::text::tests::test_min_width ... ok
[INFO] [stdout] test util::text::tests::test_strip_ansi_cursor_movement ... ok
[INFO] [stdout] test util::text::tests::test_strip_bare_esc ... ok
[INFO] [stdout] test util::text::tests::test_strip_clean_text_returns_borrowed ... ok
[INFO] [stdout] test util::text::tests::test_strip_control_chars_removes_controls ... ok
[INFO] [stdout] test util::text::tests::test_strip_empty_string ... ok
[INFO] [stdout] test util::text::tests::test_strip_mixed_content ... ok
[INFO] [stdout] test util::text::tests::test_strip_osc_with_bel ... ok
[INFO] [stdout] test util::text::tests::test_strip_osc_with_st ... ok
[INFO] [stdout] test util::text::tests::test_no_panic_on_utf8_boundaries ... ok
[INFO] [stdout] test util::text::tests::test_strip_ansi_color_codes ... ok
[INFO] [stdout] test util::text::tests::test_strip_removes_del ... ok
[INFO] [stdout] test util::text::tests::test_strip_preserves_tabs_newlines_cr ... ok
[INFO] [stdout] test util::text::tests::test_strip_unicode_preserved ... ok
[INFO] [stdout] test util::url_validator::tests::test_invalid_schemes ... ok
[INFO] [stdout] test util::url_validator::tests::test_ipv4_mapped_ipv6_loopback_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_ipv6_loopback_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_ipv4_mapped_ipv6_private_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_link_local_ipv4_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_link_local_ipv6_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_localhost_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_url_with_port_on_private_ip ... ok
[INFO] [stdout] test util::url_validator::tests::test_private_ips_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_userinfo_encoded_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_userinfo_username_only_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_userinfo_username_password_rejected ... ok
[INFO] [stdout] test util::url_validator::tests::test_valid_public_url_accepted ... ok
[INFO] [stdout] test util::url_validator::tests::test_valid_url_with_port_accepted ... ok
[INFO] [stdout] test util::url_validator::tests::test_valid_urls ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_backslash ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_backtick ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_data_scheme ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_del ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_dollar ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_encoded_cr_lowercase ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_encoded_cr_uppercase ... ok
[INFO] [stdout] test util::url_validator::tests::test_no_userinfo_accepted ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_encoded_crlf ... ok
[INFO] [stdout] test storage::search::tests::test_search_title_and_summary_scope ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_encoded_lf_uppercase ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_file_scheme ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_encoded_lf_lowercase ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_javascript_scheme ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_malformed ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_null_byte ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_pipe ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_raw_carriage_return ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_semicolon ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_unicode_line_separator ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_raw_newline ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_unicode_paragraph_separator ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_valid_http ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_rejects_userinfo ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_valid_with_path ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_valid_https ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_valid_with_fragment ... ok
[INFO] [stdout] test util::url_validator::tests::test_validate_url_for_open_valid_with_query_params ... ok
[INFO] [stdout] test storage::types::tests::test_unknown_code_with_lock_message_falls_through_to_string_match ... ok
[INFO] [stdout] test theme::tests::dark_palette_status_bar_matches_original ... ok
[INFO] [stdout] test theme::tests::dark_palette_whatsnew_focused_matches_original ... ok
[INFO] [stdout] test ui::reader::tests::test_render_heading ... ok
[INFO] [stdout] test util::url_validator::tests::test_zero_address_rejected ... ok
[INFO] [stdout] test storage::reading_history::tests::test_get_reading_history ... ok
[INFO] [stdout] test storage::preferences::tests::test_set_preference_updates_timestamp ... ok
[INFO] [stdout] test storage::search::tests::test_fts5_content_column_indexed ... ok
[INFO] [stdout] test feed::fetcher::tests::test_refresh_503_retry_then_success ... ok
[INFO] [stdout] test content::jina::tests::test_http_500 ... ok
[INFO] [stdout] test content::jina::tests::test_https_base_url_allowed ... ok
[INFO] [stdout] test content::jina::tests::test_ipv6_loopback_base_url_allowed ... ok
[INFO] [stdout] test feed::fetcher::tests::test_refresh_500_error_retries_then_fails ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 410 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.38s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/content_cache.rs (/opt/rustwide/target/debug/deps/content_cache-c485cba22797f864)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test test_cached_article_ids_empty_input ... ok
[INFO] [stdout] test test_prefetch_candidates_respects_limit ... ok
[INFO] [stdout] test test_cache_replace_updates_content ... ok
[INFO] [stdout] test test_cache_stats_empty ... ok
[INFO] [stdout] test test_content_searchable_after_indexing ... ok
[INFO] [stdout] test test_prefetch_candidates_excludes_cached ... ok
[INFO] [stdout] test test_content_not_searchable_with_title_summary_scope ... ok
[INFO] [stdout] test test_cached_article_ids_returns_subset ... ok
[INFO] [stdout] test test_prefetch_candidates_for_feed ... ok
[INFO] [stdout] test test_cached_article_ids_empty_returns_empty ... ok
[INFO] [stdout] test test_evict_expired_no_valid_entries_affected ... ok
[INFO] [stdout] test test_cache_stats_accuracy ... ok
[INFO] [stdout] test test_cache_content_and_get ... ok
[INFO] [stdout] test test_prefetch_candidates_excludes_read ... ok
[INFO] [stdout] test test_cache_and_index_workflow ... ok
[INFO] [stdout] test test_cascade_delete_removes_cache ... ok
[INFO] [stdout] test test_uncached_article_returns_none ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/feed_lifecycle.rs (/opt/rustwide/target/debug/deps/feed_lifecycle-20fc743cad6bbd88)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test test_rename_feed_updates_title ... ok
[INFO] [stdout] test test_subscribe_feed_appears_in_list ... ok
[INFO] [stdout] test test_categorize_feed_updates_category_id ... ok
[INFO] [stdout] test test_export_includes_all_feeds ... ok
[INFO] [stdout] test test_delete_category_uncategorizes_feeds ... ok
[INFO] [stdout] test test_subscribe_with_html_url ... ok
[INFO] [stdout] test test_uncategorize_feed ... ok
[INFO] [stdout] test test_delete_nonexistent_feed_is_idempotent ... ok
[INFO] [stdout] test test_nested_categories_with_feeds ... ok
[INFO] [stdout] test test_delete_feed_cleans_fts ... ok
[INFO] [stdout] test test_delete_feed_removes_articles ... ok
[INFO] [stdout] test test_subscribe_duplicate_url_updates_title ... ok
[INFO] [stdout] test test_full_lifecycle_subscribe_categorize_delete ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests skim
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test src/util/text.rs - util::text::display_width (line 23) ... ok
[INFO] [stdout] test src/util/mod.rs - util (line 10) ... ok
[INFO] [stdout] test src/util/text.rs - util::text::truncate_to_width (line 76) ... ok
[INFO] [stdout] test src/util/url_validator.rs - util::url_validator::validate_url (line 54) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.37s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "1367eb0b2ad9be0e8ed102bcd234aabddcf0885e7fca4c5bd4d5e8873254f3e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1367eb0b2ad9be0e8ed102bcd234aabddcf0885e7fca4c5bd4d5e8873254f3e3", kill_on_drop: false }`
[INFO] [stdout] 1367eb0b2ad9be0e8ed102bcd234aabddcf0885e7fca4c5bd4d5e8873254f3e3
