[INFO] cloning repository https://github.com/boul2gom/yt-dlp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/boul2gom/yt-dlp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fboul2gom%2Fyt-dlp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fboul2gom%2Fyt-dlp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ce2e1073974ea28578e571ca3bba049121f771b4
[INFO] testing boul2gom/yt-dlp 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%2Fboul2gom%2Fyt-dlp" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/boul2gom/yt-dlp
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/boul2gom/yt-dlp
[INFO] tweaked toml for git repo https://github.com/boul2gom/yt-dlp written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/boul2gom/yt-dlp 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] crate git repo https://github.com/boul2gom/yt-dlp already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating git repository `https://github.com/boul2gom/lofty-rs`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rand_core v0.10.0
[INFO] [stderr]   Downloaded test-log v0.2.20
[INFO] [stderr]   Downloaded test-log-core v0.2.20
[INFO] [stderr]   Downloaded test-log-macros v0.2.20
[INFO] [stderr]   Downloaded digest v0.11.2
[INFO] [stderr]   Downloaded hybrid-array v0.4.8
[INFO] [stderr]   Downloaded zip v8.5.1
[INFO] [stderr]   Downloaded reqwest v0.13.2
[INFO] [stderr]   Downloaded resolv-conf v0.7.6
[INFO] [stderr]   Downloaded arcstr v1.2.0
[INFO] [stderr]   Downloaded ipconfig v0.3.4
[INFO] [stderr]   Downloaded redb v4.1.0
[INFO] [stderr]   Downloaded redis v1.2.0
[INFO] [stderr]   Downloaded m3u8-rs v6.0.0
[INFO] [stderr]   Downloaded id3 v1.16.4
[INFO] [stderr]   Downloaded mintex v0.1.4
[INFO] [stderr]   Downloaded mp4ameta v0.13.0
[INFO] [stderr]   Downloaded dhat v0.3.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] c6cec436134126a2c7573669a32584edd45968df3fe5edc9394db0e2dab9dc8c
[INFO] running `Command { std: "docker" "start" "c6cec436134126a2c7573669a32584edd45968df3fe5edc9394db0e2dab9dc8c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c6cec436134126a2c7573669a32584edd45968df3fe5edc9394db0e2dab9dc8c", 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" "c6cec436134126a2c7573669a32584edd45968df3fe5edc9394db0e2dab9dc8c" "/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" "c6cec436134126a2c7573669a32584edd45968df3fe5edc9394db0e2dab9dc8c", 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" "c6cec436134126a2c7573669a32584edd45968df3fe5edc9394db0e2dab9dc8c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling aws-lc-rs v1.16.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling zlib-rs v0.6.3
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling brotli-decompressor v5.0.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling brotli v8.0.2
[INFO] [stderr]    Compiling hybrid-array v0.4.8
[INFO] [stderr]    Compiling compression-core v0.4.31
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling aws-lc-sys v0.39.0
[INFO] [stderr]    Compiling lzma-sys v0.1.20
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling block-buffer v0.12.0
[INFO] [stderr]    Compiling crypto-common v0.2.1
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling iri-string v0.7.11
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling compression-codecs v0.4.37
[INFO] [stderr]    Compiling digest v0.11.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 tokio-macros v2.7.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_with_macros v3.18.0
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling lofty_attr v0.12.0 (https://github.com/boul2gom/lofty-rs#d2e41640)
[INFO] [stderr]    Compiling typed-builder-macro v0.23.2
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling async-lock v3.4.2
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling async-compression v0.4.41
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling ogg_pager v0.7.1 (https://github.com/boul2gom/lofty-rs#d2e41640)
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling pastey v0.2.1
[INFO] [stderr]    Compiling typed-path v0.12.3
[INFO] [stderr]    Compiling yt-dlp v2.7.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tagptr v0.2.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling lofty v0.23.3 (https://github.com/boul2gom/lofty-rs#d2e41640)
[INFO] [stderr]    Compiling moka v0.12.15
[INFO] [stderr]    Compiling zip v8.5.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling tar v0.4.45
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling xz2 v0.1.7
[INFO] [stderr]    Compiling typed-builder v0.23.2
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling ordered-float v5.3.0
[INFO] [stderr]    Compiling media-seek v0.4.0 (/opt/rustwide/workdir/crates/media-seek)
[INFO] [stderr]    Compiling serde_with v3.18.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling id3 v1.16.4
[INFO] [stderr]    Compiling downcast-rs v2.0.2
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling mp4ameta v0.13.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[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.2
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 41s
[INFO] running `Command { std: "docker" "inspect" "c6cec436134126a2c7573669a32584edd45968df3fe5edc9394db0e2dab9dc8c", 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" "c6cec436134126a2c7573669a32584edd45968df3fe5edc9394db0e2dab9dc8c" "/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 tokio v1.52.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling env_filter v1.0.1
[INFO] [stderr]    Compiling test-log-core v0.2.20
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling lofty v0.23.3 (https://github.com/boul2gom/lofty-rs#d2e41640)
[INFO] [stderr]    Compiling test-log-macros v0.2.20
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling zip v8.5.1
[INFO] [stderr]    Compiling env_logger v0.11.10
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling unit-prefix v0.5.2
[INFO] [stderr]    Compiling indicatif v0.18.4
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling media-seek v0.4.0 (/opt/rustwide/workdir/crates/media-seek)
[INFO] [stderr]    Compiling moka v0.12.15
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling test-log v0.2.20
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling async-compression v0.4.41
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling hyper v1.8.1
[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.2
[INFO] [stderr]    Compiling yt-dlp v2.7.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `assert_format_count` is never used
[INFO] [stdout]  --> tests/common/../common/assertions.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn assert_format_count(video: &Video, expected: usize) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_has_audio_format` is never used
[INFO] [stdout]   --> tests/common/../common/assertions.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn assert_has_audio_format(video: &Video) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_has_video_format` is never used
[INFO] [stdout]   --> tests/common/../common/assertions.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn assert_has_video_format(video: &Video) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_has_chapters` is never used
[INFO] [stdout]   --> tests/common/../common/assertions.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn assert_has_chapters(video: &Video) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_has_heatmap` is never used
[INFO] [stdout]   --> tests/common/../common/assertions.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn assert_has_heatmap(video: &Video) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_video_valid` is never used
[INFO] [stdout]   --> tests/common/../common/assertions.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn assert_video_valid(video: &Video) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_event_received` is never used
[INFO] [stdout]   --> tests/common/../common/assertions.rs:73:14
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub async fn assert_event_received(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_video_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn load_video_fixture() -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_live_video_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn load_live_video_fixture() -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_short_video_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn load_short_video_fixture() -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_twitch_live_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn load_twitch_live_fixture() -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_drm_video_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn load_drm_video_fixture() -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_chapters_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn load_chapters_fixture() -> Vec<Chapter> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_reel_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn load_reel_fixture() -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_hls_server` is never used
[INFO] [stdout]   --> tests/common/../common/server.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_hls_server() -> MockServer {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_e2e_live_video` is never used
[INFO] [stdout]   --> tests/e2e/helpers.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn load_e2e_live_video(base_url: &str) -> yt_dlp::model::Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hls_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn hls_fixture(name: &str) -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `subtitle_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn subtitle_fixture(name: &str) -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_fixture_with_url` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn load_fixture_with_url<T: serde::de::DeserializeOwned>(name: &str, base_url: &str) -> T {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_video_with_mock_urls` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn load_video_with_mock_urls(mock_server_url: &str) -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_live_video_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn load_live_video_fixture() -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_short_video_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn load_short_video_fixture() -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_twitch_live_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn load_twitch_live_fixture() -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_drm_video_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn load_drm_video_fixture() -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_chapters_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn load_chapters_fixture() -> Vec<Chapter> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_reel_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn load_reel_fixture() -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_subtitle_string` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn load_subtitle_string(name: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_hls_fixture` is never used
[INFO] [stdout]    --> tests/common/../common/fixtures.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn load_hls_fixture(name: &str, mock_server_url: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `temp_test_dir` is never used
[INFO] [stdout]    --> tests/common/../common/fixtures.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn temp_test_dir() -> tempfile::TempDir {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `len` is never used
[INFO] [stdout]   --> tests/common/../common/media_seek.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl MockRangeFetcher {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_hls_server` is never used
[INFO] [stdout]   --> tests/common/../common/server.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn setup_hls_server() -> MockServer {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_media_server` is never used
[INFO] [stdout]   --> tests/common/../common/server.rs:52:14
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub async fn setup_media_server() -> MockServer {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hls_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn hls_fixture(name: &str) -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_live_video_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn load_live_video_fixture() -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_drm_video_fixture` is never used
[INFO] [stdout]   --> tests/common/../common/fixtures.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn load_drm_video_fixture() -> Video {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_hls_fixture` is never used
[INFO] [stdout]    --> tests/common/../common/fixtures.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn load_hls_fixture(name: &str, mock_server_url: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `temp_test_dir` is never used
[INFO] [stdout]    --> tests/common/../common/fixtures.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn temp_test_dir() -> tempfile::TempDir {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `len` is never used
[INFO] [stdout]   --> tests/common/../common/media_seek.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl MockRangeFetcher {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 38s
[INFO] running `Command { std: "docker" "inspect" "c6cec436134126a2c7573669a32584edd45968df3fe5edc9394db0e2dab9dc8c", 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" "c6cec436134126a2c7573669a32584edd45968df3fe5edc9394db0e2dab9dc8c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: function `assert_format_count` is never used
[INFO] [stderr]  --> tests/common/../common/assertions.rs:7:8
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn assert_format_count(video: &Video, expected: usize) {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_has_audio_format` is never used
[INFO] [stderr]   --> tests/common/../common/assertions.rs:18:8
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub fn assert_has_audio_format(video: &Video) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_has_video_format` is never used
[INFO] [stderr]   --> tests/common/../common/assertions.rs:26:8
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub fn assert_has_video_format(video: &Video) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_has_chapters` is never used
[INFO] [stderr]   --> tests/common/../common/assertions.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn assert_has_chapters(video: &Video) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_has_heatmap` is never used
[INFO] [stderr]   --> tests/common/../common/assertions.rs:39:8
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub fn assert_has_heatmap(video: &Video) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_video_valid` is never used
[INFO] [stderr]   --> tests/common/../common/assertions.rs:64:8
[INFO] [stderr]    |
[INFO] [stderr] 64 | pub fn assert_video_valid(video: &Video) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_event_received` is never used
[INFO] [stderr]   --> tests/common/../common/assertions.rs:73:14
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub async fn assert_event_received(
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_video_fixture` is never used
[INFO] [stderr]   --> tests/common/../common/fixtures.rs:38:8
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub fn load_video_fixture() -> Video {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_live_video_fixture` is never used
[INFO] [stderr]   --> tests/common/../common/fixtures.rs:57:8
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub fn load_live_video_fixture() -> Video {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_short_video_fixture` is never used
[INFO] [stderr]   --> tests/common/../common/fixtures.rs:63:8
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub fn load_short_video_fixture() -> Video {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_twitch_live_fixture` is never used
[INFO] [stderr]   --> tests/common/../common/fixtures.rs:69:8
[INFO] [stderr]    |
[INFO] [stderr] 69 | pub fn load_twitch_live_fixture() -> Video {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_drm_video_fixture` is never used
[INFO] [stderr]   --> tests/common/../common/fixtures.rs:75:8
[INFO] [stderr]    |
[INFO] [stderr] 75 | pub fn load_drm_video_fixture() -> Video {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_chapters_fixture` is never used
[INFO] [stderr]   --> tests/common/../common/fixtures.rs:87:8
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub fn load_chapters_fixture() -> Vec<Chapter> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_reel_fixture` is never used
[INFO] [stderr]   --> tests/common/../common/fixtures.rs:93:8
[INFO] [stderr]    |
[INFO] [stderr] 93 | pub fn load_reel_fixture() -> Video {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `setup_hls_server` is never used
[INFO] [stderr]   --> tests/common/../common/server.rs:12:14
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub async fn setup_hls_server() -> MockServer {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_e2e_live_video` is never used
[INFO] [stderr]   --> tests/e2e/helpers.rs:32:8
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub fn load_e2e_live_video(base_url: &str) -> yt_dlp::model::Video {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hls_fixture` is never used
[INFO] [stderr]   --> tests/common/../common/fixtures.rs:23:8
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub fn hls_fixture(name: &str) -> PathBuf {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `subtitle_fixture` is never used
[INFO] [stderr]   --> tests/common/../common/fixtures.rs:28:8
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub fn subtitle_fixture(name: &str) -> PathBuf {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_fixture_with_url` is never used
[INFO] [stderr]   --> tests/common/../common/fixtures.rs:46:8
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub fn load_fixture_with_url<T: serde::de::DeserializeOwned>(name: &str, base_url: &str) -> T {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_video_with_mock_urls` is never used
[INFO] [stderr]   --> tests/common/../common/fixtures.rs:52:8
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub fn load_video_with_mock_urls(mock_server_url: &str) -> Video {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_subtitle_string` is never used
[INFO] [stderr]   --> tests/common/../common/fixtures.rs:99:8
[INFO] [stderr]    |
[INFO] [stderr] 99 | pub fn load_subtitle_string(name: &str) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_hls_fixture` is never used
[INFO] [stderr]    --> tests/common/../common/fixtures.rs:105:8
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub fn load_hls_fixture(name: &str, mock_server_url: &str) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `temp_test_dir` is never used
[INFO] [stderr]    --> tests/common/../common/fixtures.rs:117:8
[INFO] [stderr]     |
[INFO] [stderr] 117 | pub fn temp_test_dir() -> tempfile::TempDir {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `len` is never used
[INFO] [stderr]   --> tests/common/../common/media_seek.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl MockRangeFetcher {
[INFO] [stderr]    | --------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 17 |     pub fn len(&self) -> usize {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `setup_media_server` is never used
[INFO] [stderr]   --> tests/common/../common/server.rs:52:14
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub async fn setup_media_server() -> MockServer {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `yt-dlp` (test "e2e") generated 16 warnings
[INFO] [stderr] warning: `yt-dlp` (test "integration") generated 16 warnings (7 duplicates)
[INFO] [stderr] warning: `yt-dlp` (test "unit") generated 6 warnings (6 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.63s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/yt_dlp-bef2c0e6c64fe4f6)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]      Running tests/e2e.rs (/opt/rustwide/target/debug/deps/e2e-69f8f795ccb1814e)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 68 tests
[INFO] [stdout] test cancellation::shutdown_idempotent ... ok
[INFO] [stdout] test cache_pipeline::repeated_manager_download_with_cache ... ok
[INFO] [stdout] test cancellation::cloned_downloader_shares_cancellation ... ok
[INFO] [stdout] test cancellation::cancel_inflight_download ... ok
[INFO] [stdout] test cancellation::cancel_queued_download ... ok
[INFO] [stdout] test cache_pipeline::manager_download_works_with_cache_enabled ... ok
[INFO] [stdout] test cache_pipeline::cache_layer_activates_after_setup ... ok
[INFO] [stdout] test cancellation::shutdown_sets_cancellation_flag ... ok
[INFO] [stdout] test download_manager_e2e::cancel_download ... ok
[INFO] [stdout] test download_combine::download_builder_with_priority ... ok
[INFO] [stdout] test download_combine::download_audio_and_video_separately ... ok
[INFO] [stdout] test cancellation::cancel_emits_event ... ok
[INFO] [stdout] test download_combine::download_builder_execute_fails_without_ffmpeg ... ok
[INFO] [stdout] test download_combine::download_builder_with_quality_preferences_fails_without_ffmpeg ... ok
[INFO] [stdout] test download_manager_e2e::concurrent_downloads_with_progress ... ok
[INFO] [stdout] test download_manager_e2e::download_ids_are_unique ... ok
[INFO] [stdout] test download_partial::download_video_partial_no_chapters_returns_error ... ok
[INFO] [stdout] test download_manager_e2e::download_status_transitions ... ok
[INFO] [stdout] test download_manager_e2e::enqueue_multiple_with_priorities ... ok
[INFO] [stdout] test download_partial::partial_download_via_range ... ok
[INFO] [stdout] test download_partial::download_builder_partial_chapter ... ok
[INFO] [stdout] test download_partial::range_request_sent_to_server ... ok
[INFO] [stdout] test download_partial::download_builder_partial_time_range_falls_back ... ok
[INFO] [stdout] test download_partial::download_video_partial_chapter_out_of_bounds_returns_error ... ok
[INFO] [stdout] test download_partial::download_video_partial_no_formats_returns_error ... ok
[INFO] [stdout] test download_manager_e2e::events_for_concurrent_downloads ... ok
[INFO] [stdout] test download_video::download_to_exact_path ... ok
[INFO] [stdout] test download_video::download_specific_format ... ok
[INFO] [stdout] test download_video::download_audio_stream ... ok
[INFO] [stdout] test download_video::download_reel_with_priority_no_combined_format ... ok
[INFO] [stdout] test download_video::download_single_format_via_manager ... ok
[INFO] [stdout] test download_video::download_audio_stream_with_quality ... ok
[INFO] [stdout] test download_video::download_video_stream ... ok
[INFO] [stdout] test error_paths::cancel_download_does_not_hang ... ok
[INFO] [stdout] test error_paths::download_404_url_returns_error ... ok
[INFO] [stdout] test error_paths::drm_format_metadata_preserved ... ok
[INFO] [stdout] test download_video::download_video_with_priority_selects_combined_format ... ok
[INFO] [stdout] test download_video::download_with_progress_tracking ... ok
[INFO] [stdout] test error_paths::download_drm_format_still_fetches_bytes ... ok
[INFO] [stdout] test error_paths::download_empty_response_body ... ok
[INFO] [stdout] test download_video::download_video_stream_with_quality ... ok
[INFO] [stdout] test download_video::download_video_with_quality_fails_without_ffmpeg ... ok
[INFO] [stdout] test events_pipeline::event_subscriber_count_tracked ... ok
[INFO] [stdout] test events_pipeline::event_sequence_order ... ok
[INFO] [stdout] test events_pipeline::completed_event_has_correct_id ... ok
[INFO] [stdout] test events_pipeline::events_emitted_during_download ... ok
[INFO] [stdout] test pipeline_fluent::download_format_to_exact_path ... ok
[INFO] [stdout] test pipeline_fluent::download_format_by_reference ... ok
[INFO] [stdout] test pipeline_fluent::download_thumbnail ... ok
[INFO] [stdout] test events_pipeline::multiple_subscribers_receive_events ... ok
[INFO] [stdout] test pipeline_fluent::postprocess_video_fails_without_ffmpeg ... ok
[INFO] [stdout] test pipeline_fluent::download_and_continue_fails_without_ffmpeg ... ok
[INFO] [stdout] test pipeline_fluent::event_stream_accessible ... ok
[INFO] [stdout] test playlist::playlist_entries_have_metadata ... ok
[INFO] [stdout] test playlist::playlist_fixture_loads ... ok
[INFO] [stdout] test playlist::download_playlist_fails_without_ytdlp ... ok
[INFO] [stdout] test pipeline_fluent::download_video_stream_to_path ... ok
[INFO] [stdout] test playlist::download_playlist_range_fails_without_ytdlp ... ok
[INFO] [stdout] test playlist::download_playlist_items_fails_without_ytdlp ... ok
[INFO] [stdout] test pipeline_fluent::download_video_stream_via_pipeline ... ok
[INFO] [stdout] test playlist::download_playlist_parallel_fails_without_ytdlp ... ok
[INFO] [stdout] test playlist::simulate_playlist_via_manager ... ok
[INFO] [stdout] test subtitle::download_all_subtitles_no_fallback_empty ... ok
[INFO] [stdout] test subtitle::download_subtitle_unavailable_language_no_fallback ... ok
[INFO] [stdout] test subtitle::download_subtitle_from_user_subtitles ... ok
[INFO] [stdout] test subtitle::download_all_subtitles_with_fallback ... ok
[INFO] [stdout] test subtitle::download_subtitle_with_automatic_captions ... ok
[INFO] [stdout] test error_paths::download_slow_route_respects_timeout ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 68 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.30s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-6e2c821fea6a74d6)
[INFO] [stdout] 
[INFO] [stdout] running 161 tests
[INFO] [stdout] test builder::build_with_cookies ... ok
[INFO] [stdout] test builder::build_with_netrc ... ok
[INFO] [stdout] test builder::build_with_proxy ... ok
[INFO] [stdout] test builder::build_with_add_arg ... ok
[INFO] [stdout] test builder::display ... ok
[INFO] [stdout] test builder::build_with_defaults ... ok
[INFO] [stdout] test builder::build_with_max_concurrent_downloads ... ok
[INFO] [stdout] test builder::build_with_timeout ... ok
[INFO] [stdout] test builder::build_with_cookies_from_browser ... ok
[INFO] [stdout] test cache_memory::clean_does_not_error ... ok
[INFO] [stdout] test cache_memory::playlist_get_miss_returns_none ... ok
[INFO] [stdout] test cache_memory::playlist_invalidate ... ok
[INFO] [stdout] test cache_memory::playlist_put_and_get ... ok
[INFO] [stdout] test builder::build_with_args ... ok
[INFO] [stdout] test cache_memory::video_get_miss_returns_none ... ok
[INFO] [stdout] test builder::build_with_user_agent ... ok
[INFO] [stdout] test cache_memory::video_put_and_get ... ok
[INFO] [stdout] test cache_memory::video_remove ... ok
[INFO] [stdout] test builder::output_directory_created ... ok
[INFO] [stdout] test builder::build_with_speed_profile ... ok
[INFO] [stdout] test builder::post_build_setters ... ok
[INFO] [stdout] test builder::event_bus_created ... ok
[INFO] [stdout] test builder::shutdown_and_check ... ok
[INFO] [stdout] test download_manager::priority_ordering ... ok
[INFO] [stdout] test download_manager::config_getters ... ok
[INFO] [stdout] test download_manager::cancel_download ... ok
[INFO] [stdout] test event_bus::backpressure_does_not_panic ... ok
[INFO] [stdout] test download_manager::concurrent_downloads ... ok
[INFO] [stdout] test download_manager::cleanup_finished_does_not_error ... ok
[INFO] [stdout] test event_bus::display_and_debug ... ok
[INFO] [stdout] test event_bus::multiple_subscribers_receive_same_event ... ok
[INFO] [stdout] test event_bus::emit_accepts_arc_event ... ok
[INFO] [stdout] test event_bus::stream_receives_events ... ok
[INFO] [stdout] test event_bus::subscriber_count_tracks_drops ... ok
[INFO] [stdout] test download_manager::status_transitions ... ok
[INFO] [stdout] test download_manager::enqueue_with_progress_callback ... ok
[INFO] [stdout] test download_manager::enqueue_and_wait_for_completion ... ok
[INFO] [stdout] test fetcher::fetch_json_success ... ok
[INFO] [stdout] test fetcher::display_and_debug ... ok
[INFO] [stdout] test fetcher::builder_chain ... ok
[INFO] [stdout] test download_manager::with_event_bus_emits_events ... ok
[INFO] [stdout] test fetcher::fetch_asset_downloads_file ... ok
[INFO] [stdout] test fetcher::fetch_asset_simple_fallback ... ok
[INFO] [stdout] test fetcher::fetch_json_404_returns_error ... ok
[INFO] [stdout] test fetcher::with_range_constraint ... ok
[INFO] [stdout] test fetcher::fetch_text_success ... ok
[INFO] [stdout] test fetcher_range::fetch_first_50_bytes ... ok
[INFO] [stdout] test fs_io::create_dir_idempotent ... ok
[INFO] [stdout] test fs_io::create_dir_nested ... ok
[INFO] [stdout] test fs_io::create_file_overwrites_existing ... ok
[INFO] [stdout] test fs_io::create_file_with_parent_dirs ... ok
[INFO] [stdout] test fs_io::create_parent_dir ... ok
[INFO] [stdout] test fetcher_range::fetch_404_returns_error ... ok
[INFO] [stdout] test fetcher::fetch_retries_on_server_error ... ok
[INFO] [stdout] test fs_io::extract_video_id_from_filename ... ok
[INFO] [stdout] test fs_io::extract_video_id_no_brackets ... ok
[INFO] [stdout] test fs_io::random_filename_unique ... ok
[INFO] [stdout] test fs_io::remove_temp_file ... ok
[INFO] [stdout] test fs_io::random_filename_length ... ok
[INFO] [stdout] test fs_io::remove_temp_file_nonexistent ... ok
[INFO] [stdout] test github::debug_github_fetcher_returns_nonempty_string ... ok
[INFO] [stdout] test github::display_asset_shows_name ... ok
[INFO] [stdout] test fs_io::extract_zip ... ok
[INFO] [stdout] test github::display_github_fetcher_shows_repo_info ... ok
[INFO] [stdout] test github::display_libraries_shows_both_paths ... ok
[INFO] [stdout] test github::display_release_shows_tag_and_asset_count ... ok
[INFO] [stdout] test github::display_wanted_release_with_checksum_shows_hash ... ok
[INFO] [stdout] test github::display_wanted_release_without_checksum_shows_none ... ok
[INFO] [stdout] test fetcher_range::fetch_server_error_returns_error ... ok
[INFO] [stdout] test github::display_library_installer_shows_path ... ok
[INFO] [stdout] test fs_io::set_executable ... ok
[INFO] [stdout] test fetcher_range::fetch_with_custom_headers ... ok
[INFO] [stdout] test github::wanted_release_download_succeeds ... ok
[INFO] [stdout] test fetcher_range::fetch_returns_correct_bytes ... ok
[INFO] [stdout] test cache_memory::video_ttl_expires_entries ... ok
[INFO] [stdout] test http_client::display_http_client_config_default_shows_false ... ok
[INFO] [stdout] test http_client::display_http_client_config_with_timeout_shows_seconds ... ok
[INFO] [stdout] test media_seek::adts::adts_find_byte_range_is_non_empty ... ok
[INFO] [stdout] test media_seek::adts::adts_init_end_byte_is_zero ... ok
[INFO] [stdout] test media_seek::adts::adts_linear_index_byte_range_monotone ... ok
[INFO] [stdout] test media_seek::adts::parse_adts_fixture_succeeds ... ok
[INFO] [stdout] test media_seek::adts::parse_truncated_adts_returns_parse_failed ... ok
[INFO] [stdout] test media_seek::errors::index_not_found_error_displays_reason ... ok
[INFO] [stdout] test media_seek::errors::parse_empty_file_fails ... ok
[INFO] [stdout] test media_seek::errors::parse_mp4_ftyp_only_returns_index_not_found ... ok
[INFO] [stdout] test media_seek::errors::parse_mp4_no_moov_no_sidx_returns_index_not_found ... ok
[INFO] [stdout] test media_seek::errors::parse_ogg_without_total_size_returns_parse_failed ... ok
[INFO] [stdout] test media_seek::errors::parse_random_bytes_returns_unsupported ... ok
[INFO] [stdout] test media_seek::errors::parse_truncated_flac_returns_parse_failed ... ok
[INFO] [stdout] test media_seek::errors::parse_truncated_mp3_returns_parse_failed ... ok
[INFO] [stdout] test media_seek::errors::parse_truncated_wav_returns_parse_failed ... ok
[INFO] [stdout] test media_seek::fetcher::mock_fetcher_clamps_end ... ok
[INFO] [stdout] test media_seek::fetcher::mock_fetcher_out_of_bounds_error ... ok
[INFO] [stdout] test media_seek::fetcher::mock_fetcher_returns_correct_bytes ... ok
[INFO] [stdout] test media_seek::mp3::parse_mp3_fixture_succeeds ... ok
[INFO] [stdout] test media_seek::mp3::parse_mp3_free_format_detects_frame_size ... ok
[INFO] [stdout] test media_seek::mp3::parse_mp3_free_format_too_short_returns_parse_failed ... ok
[INFO] [stdout] test media_seek::mp3::parse_mp3_id3v1_detected_via_fetch_when_probe_shorter_than_file ... ok
[INFO] [stdout] test media_seek::mp3::parse_mp3_id3v1_trailer_stripped_when_probe_covers_file ... ok
[INFO] [stdout] test media_seek::mp3::parse_mp3_single_id3v2_tag_succeeds ... ok
[INFO] [stdout] test media_seek::mp3::parse_mp3_stacked_id3v2_tags_succeeds ... ok
[INFO] [stdout] test media_seek::mp3::parse_mp3_vbri_invalid_entry_bytes_falls_back_to_cbr ... ok
[INFO] [stdout] test media_seek::mp3::parse_mp3_xing_fallback_uses_actual_total_size ... ok
[INFO] [stdout] test media_seek::mp3::parse_mpeg_layer1_cbr_succeeds ... ok
[INFO] [stdout] test media_seek::mp3::parse_mpeg_layer2_cbr_succeeds ... ok
[INFO] [stdout] test media_seek::parsers::parse_adts_fixture_succeeds ... ok
[INFO] [stdout] test media_seek::parsers::parse_aiff_fixture_succeeds ... ok
[INFO] [stdout] test media_seek::parsers::parse_classic_mp4_fixture_succeeds ... ok
[INFO] [stdout] test media_seek::parsers::parse_flac_fixture_succeeds ... ok
[INFO] [stdout] test media_seek::parsers::parse_flv_fixture_is_detected ... ok
[INFO] [stdout] test media_seek::parsers::parse_fmp4_with_sidx_succeeds ... ok
[INFO] [stdout] test media_seek::parsers::parse_m4a_fixture_succeeds ... ok
[INFO] [stdout] test media_seek::parsers::parse_mp3_fixture_succeeds ... ok
[INFO] [stdout] test media_seek::parsers::parse_ogg_opus_fixture_succeeds ... ok
[INFO] [stdout] test media_seek::parsers::parse_ogg_theora_codec_returns_named_parse_failed ... ok
[INFO] [stdout] test fetcher_range::fetch_tail_bytes ... ok
[INFO] [stdout] test media_seek::parsers::parse_ts_fixture_is_detected ... ok
[INFO] [stdout] test media_seek::parsers::parse_wav_fixture_succeeds ... ok
[INFO] [stdout] test media_seek::parsers::parse_webm_fixture_succeeds ... ok
[INFO] [stdout] test http_client::build_http_client_default_config_succeeds ... ok
[INFO] [stdout] test media_seek::seeking::adts_full_vs_partial_byte_range ... ok
[INFO] [stdout] test media_seek::seeking::flac_find_byte_range_returns_some ... ok
[INFO] [stdout] test media_seek::seeking::flv_seek_when_parsed ... ok
[INFO] [stdout] test media_seek::seeking::fmp4_find_byte_range_covers_file ... ok
[INFO] [stdout] test media_seek::seeking::aiff_find_byte_range_partial ... ok
[INFO] [stdout] test media_seek::parsers::parse_ogg_vorbis_fixture_succeeds ... ok
[INFO] [stdout] test http_client::build_http_client_with_http2_adaptive_window ... ok
[INFO] [stdout] test media_seek::seeking::mp3_find_byte_range_covers_file ... ok
[INFO] [stdout] test media_seek::seeking::m4a_find_byte_range_returns_some ... ok
[INFO] [stdout] test media_seek::seeking::ts_seek_when_parsed ... ok
[INFO] [stdout] test media_seek::seeking::mp4_find_byte_range_returns_some ... ok
[INFO] [stdout] test http_client::build_http_client_with_custom_timeout ... ok
[INFO] [stdout] test media_seek::seeking::wav_byte_range_end_monotone_with_duration ... ok
[INFO] [stdout] test media_seek::seeking::wav_full_vs_partial_byte_range ... ok
[INFO] [stdout] test metadata::add_metadata_to_flac_succeeds ... ok
[INFO] [stdout] test metadata::add_metadata_to_mp3_succeeds ... ok
[INFO] [stdout] test metadata::add_metadata_to_wav_succeeds ... ok
[INFO] [stdout] test metadata::add_thumbnail_to_mp3_succeeds ... ok
[INFO] [stdout] test metadata::chapter_contains_timestamp ... ok
[INFO] [stdout] test metadata::chapter_duration ... ok
[INFO] [stdout] test metadata::extract_basic_metadata_contains_key_fields ... ok
[INFO] [stdout] test metadata::extract_basic_metadata_skips_date_when_zero ... ok
[INFO] [stdout] test metadata::playlist_metadata_fields ... ok
[INFO] [stdout] test progress_tracker::progress_info_copy ... ok
[INFO] [stdout] test progress_tracker::progress_info_debug ... ok
[INFO] [stdout] test progress_tracker::progress_info_equality ... ok
[INFO] [stdout] test progress_tracker::progress_info_percentage_complete ... ok
[INFO] [stdout] test progress_tracker::progress_info_percentage_zero_downloaded ... ok
[INFO] [stdout] test progress_tracker::progress_tracker_callback ... ok
[INFO] [stdout] test progress_tracker::progress_tracker_callback_thread_safe ... ok
[INFO] [stdout] test github::wanted_release_download_checksum_mismatch_fails ... ok
[INFO] [stdout] test progress_tracker::progress_tracker_default ... ok
[INFO] [stdout] test progress_tracker::progress_tracker_multiple_subscribers ... ok
[INFO] [stdout] test progress_tracker::progress_tracker_single_update ... ok
[INFO] [stdout] test media_seek::seeking::ogg_full_vs_partial_byte_range ... ok
[INFO] [stdout] test progress_tracker::progress_tracker_multiple_updates ... ok
[INFO] [stdout] test http_client::build_http_client_with_user_agent ... ok
[INFO] [stdout] test http_client::create_http_client_no_proxy_succeeds ... ok
[INFO] [stdout] test media_seek::seeking::mp4_byte_range_start_before_end ... ok
[INFO] [stdout] test media_seek::seeking::webm_full_vs_partial_byte_range ... ok
[INFO] [stdout] test metadata::add_metadata_to_m4a_succeeds ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 161 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.14s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/unit.rs (/opt/rustwide/target/debug/deps/unit-5bf84a5d1c553c73)
[INFO] [stdout] 
[INFO] [stdout] running 645 tests
[INFO] [stdout] test config::audio_codec_default_is_copy ... ok
[INFO] [stdout] test config::download_priority_default ... ok
[INFO] [stdout] test config::audio_codec_ffmpeg_name ... ok
[INFO] [stdout] test cache_config::build_cache_config_with_all_fields_sets_correctly ... ok
[INFO] [stdout] test cache_config::build_cache_config_with_minimal_args_succeeds ... ok
[INFO] [stdout] test config::encoding_preset_default_is_medium ... ok
[INFO] [stdout] test config::encoding_preset_ffmpeg_name ... ok
[INFO] [stdout] test config::ffmpeg_filter_display ... ok
[INFO] [stdout] test config::download_priority_display ... ok
[INFO] [stdout] test config::download_priority_from_i32 ... ok
[INFO] [stdout] test cache_config::display_cache_config_with_redis_url_shows_url ... ok
[INFO] [stdout] test cache_config::display_cache_config_contains_cache_dir_path ... ok
[INFO] [stdout] test cache_config::display_cache_config_without_redis_shows_none ... ok
[INFO] [stdout] test cache_config::clone_cache_config_preserves_all_fields ... ok
[INFO] [stdout] test config::ffmpeg_filter_to_string ... ok
[INFO] [stdout] test config::download_status_display ... ok
[INFO] [stdout] test config::manager_config_from_speed_profile ... ok
[INFO] [stdout] test config::manager_config_with_speed_profile ... ok
[INFO] [stdout] test config::manager_config_default ... ok
[INFO] [stdout] test config::progress_info_percentage ... ok
[INFO] [stdout] test config::progress_info_percentage_zero_total ... ok
[INFO] [stdout] test config::resolution_dimensions ... ok
[INFO] [stdout] test config::speed_profile_aggressive_values ... ok
[INFO] [stdout] test config::progress_info_display ... ok
[INFO] [stdout] test config::resolution_ffmpeg_scale ... ok
[INFO] [stdout] test config::speed_profile_balanced_values ... ok
[INFO] [stdout] test config::speed_profile_conservative_values ... ok
[INFO] [stdout] test config::manager_config_display ... ok
[INFO] [stdout] test config::speed_profile_default_is_balanced ... ok
[INFO] [stdout] test config::resolution_display ... ok
[INFO] [stdout] test config::speed_profile_max_parallel_large_files ... ok
[INFO] [stdout] test config::speed_profile_optimal_segments_large_file ... ok
[INFO] [stdout] test config::speed_profile_display ... ok
[INFO] [stdout] test config::speed_profile_optimal_segments_medium_file ... ok
[INFO] [stdout] test config::speed_profile_optimal_segments_small_file ... ok
[INFO] [stdout] test config::speed_profile_playlist_concurrent ... ok
[INFO] [stdout] test config::post_process_config_new_is_empty ... ok
[INFO] [stdout] test config::post_process_config_builder ... ok
[INFO] [stdout] test config::video_codec_display ... ok
[INFO] [stdout] test config::video_codec_default_is_copy ... ok
[INFO] [stdout] test config::video_codec_ffmpeg_name ... ok
[INFO] [stdout] test error::archive_error_corrupted_display ... ok
[INFO] [stdout] test error::error_archive_display ... ok
[INFO] [stdout] test error::archive_error_invalid_format_display ... ok
[INFO] [stdout] test error::archive_error_debug ... ok
[INFO] [stdout] test config::watermark_position_ffmpeg ... ok
[INFO] [stdout] test config::post_process_config_display ... ok
[INFO] [stdout] test error::error_cache_expired_constructor ... ok
[INFO] [stdout] test error::error_cache_miss_constructor ... ok
[INFO] [stdout] test error::error_binary_not_found_display ... ok
[INFO] [stdout] test error::error_checksum_mismatch_display ... ok
[INFO] [stdout] test error::error_debug ... ok
[INFO] [stdout] test error::error_cache_expired_display ... ok
[INFO] [stdout] test error::error_cache_miss_display ... ok
[INFO] [stdout] test error::error_archive_source_chaining ... ok
[INFO] [stdout] test error::error_download_failed_constructor ... ok
[INFO] [stdout] test error::error_download_failed_display ... ok
[INFO] [stdout] test error::error_format_incompatible_display ... ok
[INFO] [stdout] test error::error_format_no_url_display ... ok
[INFO] [stdout] test error::error_command_failed_display ... ok
[INFO] [stdout] test error::error_from_zip_error ... ok
[INFO] [stdout] test error::error_download_cancelled_display ... ok
[INFO] [stdout] test error::error_invalid_partial_range_constructor ... ok
[INFO] [stdout] test error::error_invalid_header_display ... ok
[INFO] [stdout] test error::error_from_serde_json ... ok
[INFO] [stdout] test error::error_invalid_partial_range_display ... ok
[INFO] [stdout] test error::error_from_io_source_chaining ... ok
[INFO] [stdout] test error::error_from_io ... ok
[INFO] [stdout] test error::error_io_constructor ... ok
[INFO] [stdout] test error::error_io_source_chaining ... ok
[INFO] [stdout] test error::error_io_display ... ok
[INFO] [stdout] test error::error_format_not_available_display ... ok
[INFO] [stdout] test error::error_io_with_path_constructor ... ok
[INFO] [stdout] test error::error_io_with_path_display ... ok
[INFO] [stdout] test error::error_json_source_chaining ... ok
[INFO] [stdout] test error::error_metadata_display ... ok
[INFO] [stdout] test error::error_no_binary_release_display ... ok
[INFO] [stdout] test error::error_no_thumbnail_display ... ok
[INFO] [stdout] test error::error_metadata_constructor ... ok
[INFO] [stdout] test error::error_subtitle_not_available_display ... ok
[INFO] [stdout] test error::error_timeout_display ... ok
[INFO] [stdout] test error::error_path_validation_constructor ... ok
[INFO] [stdout] test error::error_unknown_display ... ok
[INFO] [stdout] test error::error_url_validation_constructor ... ok
[INFO] [stdout] test error::error_url_expired_display ... ok
[INFO] [stdout] test error::error_unexpected_status_display ... ok
[INFO] [stdout] test error::error_url_validation_display ... ok
[INFO] [stdout] test error::error_path_validation_display ... ok
[INFO] [stdout] test error::error_json_constructor ... ok
[INFO] [stdout] test error::error_video_fetch_display ... ok
[INFO] [stdout] test error::error_video_missing_field_display ... ok
[INFO] [stdout] test error::error_video_fetch_constructor ... ok
[INFO] [stdout] test events::event_bus_debug_display ... ok
[INFO] [stdout] test events::event_bus_default_capacity ... ok
[INFO] [stdout] test events::event_bus_emit_and_subscribe ... ok
[INFO] [stdout] test events::event_bus_arc_event ... ok
[INFO] [stdout] test events::event_bus_no_subscribers ... ok
[INFO] [stdout] test events::event_bus_multiple_events ... ok
[INFO] [stdout] test events::event_bus_emit_if_subscribed ... ok
[INFO] [stdout] test events::event_bus_clone ... ok
[INFO] [stdout] test events::event_display_generic ... ok
[INFO] [stdout] test events::event_bus_subscriber_count ... ok
[INFO] [stdout] test events::event_display_progress ... ok
[INFO] [stdout] test events::event_filter_and_then_chaining ... ok
[INFO] [stdout] test events::event_filter_default_is_all ... ok
[INFO] [stdout] test events::event_filter_download_id ... ok
[INFO] [stdout] test events::event_filter_event_types ... ok
[INFO] [stdout] test events::event_filter_exclude_progress ... ok
[INFO] [stdout] test events::event_download_id_for_download_events ... ok
[INFO] [stdout] test events::event_filter_only_completed ... ok
[INFO] [stdout] test events::event_filter_only_downloads ... ok
[INFO] [stdout] test events::event_filter_only_failed ... ok
[INFO] [stdout] test events::event_filter_debug_display ... ok
[INFO] [stdout] test events::event_filter_only_progress ... ok
[INFO] [stdout] test events::event_filter_all_matches_everything ... ok
[INFO] [stdout] test events::event_is_progress ... ok
[INFO] [stdout] test events::event_filter_only_terminal ... ok
[INFO] [stdout] test events::event_filter_only_post_process ... ok
[INFO] [stdout] test events::event_filter_only_metadata ... ok
[INFO] [stdout] test events::event_type_names ... ok
[INFO] [stdout] test events::metadata_type_display ... ok
[INFO] [stdout] test events::event_is_terminal ... ok
[INFO] [stdout] test events::event_is_not_terminal ... ok
[INFO] [stdout] test events::post_process_operation_display ... ok
[INFO] [stdout] test events::event_filter_only_playlist ... ok
[INFO] [stdout] test extractor::build_base_args_with_format_preset_audio_only ... ok
[INFO] [stdout] test extractor::build_base_args_with_format_preset_best ... ok
[INFO] [stdout] test extractor::build_base_args_with_format_preset_custom ... ok
[INFO] [stdout] test extractor::build_base_args_with_player_client_and_skip_dash ... ok
[INFO] [stdout] test extractor::build_base_args_with_format_preset_modern_codecs ... ok
[INFO] [stdout] test extractor::build_base_args_with_format_preset_medium ... ok
[INFO] [stdout] test extractor::build_base_args_default ... ok
[INFO] [stdout] test extractor::build_base_args_with_format_preset_legacy_compatible ... ok
[INFO] [stdout] test extractor::build_base_args_includes_custom_args ... ok
[INFO] [stdout] test extractor::build_base_args_with_player_client_android ... ok
[INFO] [stdout] test extractor::build_base_args_with_player_client_ios ... ok
[INFO] [stdout] test extractor::build_base_args_with_player_client_tv_embedded ... ok
[INFO] [stdout] test extractor::build_base_args_with_skip_dash ... ok
[INFO] [stdout] test extractor::build_base_args_with_player_client_web ... ok
[INFO] [stdout] test extractor::extractor_name_eq ... ok
[INFO] [stdout] test extractor::extractor_name_generic_none_display ... ok
[INFO] [stdout] test extractor::detector_youtu_be_fast_path ... ok
[INFO] [stdout] test extractor::detector_youtube_url_fast_path ... ok
[INFO] [stdout] test extractor::extractor_name_generic_with_name_display ... ok
[INFO] [stdout] test extractor::extractor_name_youtube_display ... ok
[INFO] [stdout] test extractor::format_preset_custom ... ok
[INFO] [stdout] test extractor::format_preset_debug ... ok
[INFO] [stdout] test extractor::extractor_name_hash ... ok
[INFO] [stdout] test extractor::format_preset_eq ... ok
[INFO] [stdout] test extractor::generic_build_base_args_includes_no_progress_and_dump_json ... ok
[INFO] [stdout] test extractor::generic_extractor_config_with_arg ... ok
[INFO] [stdout] test extractor::generic_extractor_config_with_timeout ... ok
[INFO] [stdout] test extractor::generic_for_extractor_sets_name ... ok
[INFO] [stdout] test extractor::generic_new_creates_extractor ... ok
[INFO] [stdout] test extractor::generic_supports_all_urls ... ok
[INFO] [stdout] test extractor::generic_with_credentials_adds_args ... ok
[INFO] [stdout] test extractor::generic_with_extractor_args_formats_correctly ... ok
[INFO] [stdout] test extractor::player_client_copy ... ok
[INFO] [stdout] test extractor::player_client_debug ... ok
[INFO] [stdout] test extractor::player_client_eq ... ok
[INFO] [stdout] test extractor::supports_url_case_insensitive ... ok
[INFO] [stdout] test extractor::supports_url_channel ... ok
[INFO] [stdout] test extractor::supports_url_http ... ok
[INFO] [stdout] test extractor::supports_url_mobile ... ok
[INFO] [stdout] test extractor::supports_url_music ... ok
[INFO] [stdout] test extractor::supports_url_nocookie ... ok
[INFO] [stdout] test extractor::supports_url_playlist ... ok
[INFO] [stdout] test extractor::supports_url_rejects_notyoutube ... ok
[INFO] [stdout] test extractor::supports_url_rejects_tiktok ... ok
[INFO] [stdout] test extractor::supports_url_rejects_vimeo ... ok
[INFO] [stdout] test extractor::supports_url_short_link ... ok
[INFO] [stdout] test extractor::supports_url_standard_watch ... ok
[INFO] [stdout] test extractor::supports_url_ytplaylist ... ok
[INFO] [stdout] test extractor::supports_url_ytsearch ... ok
[INFO] [stdout] test extractor::youtube_name ... ok
[INFO] [stdout] test extractor::youtube_skip_dash_manifest ... ok
[INFO] [stdout] test extractor::youtube_clone ... ok
[INFO] [stdout] test extractor::youtube_new ... ok
[INFO] [stdout] test extractor::youtube_extractor_config_with_arg ... ok
[INFO] [stdout] test extractor::youtube_supports_url_instance_method ... ok
[INFO] [stdout] test extractor::youtube_with_format_preset ... ok
[INFO] [stdout] test extractor::youtube_with_player_client ... ok
[INFO] [stdout] test extractor::youtube_extractor_config_with_timeout ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_codec_copy ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_default ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_complex_filter ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_multiple_inputs ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_arbitrary_args ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_full_chain ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_new_is_empty ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_no_output ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_output_placed_last ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_output_without_overwrite ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_overwrite ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_overwrite_before_output ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_single_arg ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_with_string_owned ... ok
[INFO] [stdout] test ffmpeg_args::ffmpeg_args_single_input ... ok
[INFO] [stdout] test fs_utils::create_temp_path_no_parent ... ok
[INFO] [stdout] test fs_utils::create_temp_path_contains_stem ... ok
[INFO] [stdout] test fs_utils::create_temp_path_uses_extension ... ok
[INFO] [stdout] test fs_utils::create_temp_path_unique ... ok
[INFO] [stdout] test fs_utils::mime_type_ass ... ok
[INFO] [stdout] test fs_utils::mime_type_case_insensitive ... ok
[INFO] [stdout] test fs_utils::create_temp_path_preserves_parent ... ok
[INFO] [stdout] test fs_utils::mime_type_jpeg ... ok
[INFO] [stdout] test fs_utils::mime_type_jpg ... ok
[INFO] [stdout] test fs_utils::mime_type_m4a ... ok
[INFO] [stdout] test fs_utils::mime_type_mp3 ... ok
[INFO] [stdout] test fs_utils::mime_type_mp4 ... ok
[INFO] [stdout] test fs_utils::mime_type_no_extension ... ok
[INFO] [stdout] test fs_utils::mime_type_png ... ok
[INFO] [stdout] test fs_utils::mime_type_srt ... ok
[INFO] [stdout] test fs_utils::mime_type_unknown ... ok
[INFO] [stdout] test fs_utils::mime_type_ssa ... ok
[INFO] [stdout] test fs_utils::mime_type_vtt ... ok
[INFO] [stdout] test fs_utils::mime_type_webm ... ok
[INFO] [stdout] test fs_utils::try_extension_hidden_file ... ok
[INFO] [stdout] test fs_utils::try_extension_mp4 ... ok
[INFO] [stdout] test fs_utils::try_extension_no_ext ... ok
[INFO] [stdout] test fs_utils::try_name_no_parent ... ok
[INFO] [stdout] test fs_utils::try_extension_webm ... ok
[INFO] [stdout] test fs_utils::try_name_simple ... ok
[INFO] [stdout] test fs_utils::try_parent_nested ... ok
[INFO] [stdout] test fs_utils::try_parent_simple ... ok
[INFO] [stdout] test fs_utils::try_path_str_relative ... ok
[INFO] [stdout] test fs_utils::try_path_str_unicode ... ok
[INFO] [stdout] test fs_utils::try_path_str_valid ... ok
[INFO] [stdout] test fs_utils::try_without_extension_dotted ... ok
[INFO] [stdout] test fs_utils::try_without_extension_simple ... ok
[INFO] [stdout] test media_seek::byte_range::byte_range_copy ... ok
[INFO] [stdout] test media_seek::byte_range::byte_range_inequality ... ok
[INFO] [stdout] test events::event_download_id_for_non_download_events ... ok
[INFO] [stdout] test media_seek::byte_range::byte_range_equality ... ok
[INFO] [stdout] test media_seek::byte_range::byte_range_debug ... ok
[INFO] [stdout] test media_seek::detection::detect_ebml_magic_as_webm ... ok
[INFO] [stdout] test media_seek::detection::detect_classic_mp4_from_fixture ... ok
[INFO] [stdout] test media_seek::detection::detect_empty_probe_returns_error ... ok
[INFO] [stdout] test media_seek::detection::detect_adts_from_fixture ... ok
[INFO] [stdout] test media_seek::detection::detect_flac_magic_is_not_unsupported ... ok
[INFO] [stdout] test media_seek::detection::detect_id3_as_mp3 ... ok
[INFO] [stdout] test media_seek::detection::detect_fmp4_from_fixture ... ok
[INFO] [stdout] test media_seek::detection::detect_flv_magic_is_not_unsupported ... ok
[INFO] [stdout] test media_seek::detection::detect_isobmff_ftyp_is_not_unsupported ... ok
[INFO] [stdout] test media_seek::detection::detect_flv_from_fixture ... ok
[INFO] [stdout] test media_seek::detection::detect_mp3_from_fixture ... ok
[INFO] [stdout] test media_seek::detection::detect_ogg_magic_is_not_unsupported ... ok
[INFO] [stdout] test media_seek::detection::detect_riff_avi_magic_is_not_unsupported ... ok
[INFO] [stdout] test media_seek::detection::detect_too_short_probe_returns_error ... ok
[INFO] [stdout] test media_seek::detection::detect_riff_wave_magic_is_not_unsupported ... ok
[INFO] [stdout] test media_seek::detection::detect_ts_from_fixture ... ok
[INFO] [stdout] test media_seek::detection::detect_unsupported_returns_error ... ok
[INFO] [stdout] test media_seek::detection::detect_aiff_from_fixture ... ok
[INFO] [stdout] test media_seek::error::error_is_debug ... ok
[INFO] [stdout] test media_seek::error::error_parse_failed_display ... ok
[INFO] [stdout] test media_seek::error::error_unsupported_format_display ... ok
[INFO] [stdout] test media_seek::error::error_fetch_failed_display ... ok
[INFO] [stdout] test media_seek::detection::detect_webm_from_fixture ... ok
[INFO] [stdout] test media_seek::detection::detect_wav_from_fixture ... ok
[INFO] [stdout] test media_seek::index::mp3_index_find_range ... ok
[INFO] [stdout] test media_seek::detection::detect_flac_from_fixture ... ok
[INFO] [stdout] test media_seek::index::segment_entry_clone ... ok
[INFO] [stdout] test media_seek::index::container_index_init_end_byte ... ok
[INFO] [stdout] test media_seek::index::segment_entry_debug ... ok
[INFO] [stdout] test metadata::add_metadata_if_some_none ... ok
[INFO] [stdout] test metadata::add_metadata_if_some_float ... ok
[INFO] [stdout] test metadata::add_metadata_if_some_with_value ... ok
[INFO] [stdout] test metadata::add_metadata_if_some_numeric ... ok
[INFO] [stdout] test media_seek::index::wav_linear_index_zero_duration ... ok
[INFO] [stdout] test metadata::extract_basic_metadata_from_fixture ... ok
[INFO] [stdout] test metadata::extract_audio_format_metadata_video_format ... ok
[INFO] [stdout] test metadata::extract_basic_metadata_no_channel ... ok
[INFO] [stdout] test metadata::extract_basic_metadata_no_tags ... ok
[INFO] [stdout] test metadata::extract_basic_metadata_with_timestamp ... ok
[INFO] [stdout] test metadata::extract_video_format_metadata_with_format ... ok
[INFO] [stdout] test media_seek::detection::detect_ogg_vorbis_from_fixture ... ok
[INFO] [stdout] test metadata::format_timestamp_year_only ... ok
[INFO] [stdout] test metadata::format_timestamp_zero ... ok
[INFO] [stdout] test metadata::metadata_manager_clone ... ok
[INFO] [stdout] test metadata::metadata_manager_default ... ok
[INFO] [stdout] test metadata::metadata_manager_eq ... ok
[INFO] [stdout] test metadata::metadata_manager_ne ... ok
[INFO] [stdout] test metadata::metadata_manager_new ... ok
[INFO] [stdout] test metadata::metadata_manager_with_ffmpeg_path ... ok
[INFO] [stdout] test metadata::playlist_metadata_clone ... ok
[INFO] [stdout] test metadata::playlist_metadata_fields ... ok
[INFO] [stdout] test metadata::format_timestamp_valid ... ok
[INFO] [stdout] test metadata::extract_video_format_metadata_audio_format ... ok
[INFO] [stdout] test media_seek::detection::detect_ogg_opus_from_fixture ... ok
[INFO] [stdout] test model::drm::drm_status_deserialize_false_bool ... ok
[INFO] [stdout] test metadata::playlist_metadata_no_total ... ok
[INFO] [stdout] test model::drm::drm_status_default ... ok
[INFO] [stdout] test metadata::extract_audio_format_metadata_with_format ... ok
[INFO] [stdout] test model::drm::drm_status_deserialize_bool ... ok
[INFO] [stdout] test model::drm::drm_status_deserialize_string ... ok
[INFO] [stdout] test media_seek::index::aiff_linear_index_find_range ... ok
[INFO] [stdout] test model::drm::drm_status_deserialize_string_maybe ... ok
[INFO] [stdout] test model::drm::drm_status_deserialize_string_fairplay_is_error ... ok
[INFO] [stdout] test media_seek::index::wav_linear_index_find_range ... ok
[INFO] [stdout] test model::drm::drm_status_display ... ok
[INFO] [stdout] test model::drm::drm_status_deserialize_unknown_string_is_error ... ok
[INFO] [stdout] test model::format::dynamic_range_display ... ok
[INFO] [stdout] test model::format::container_display ... ok
[INFO] [stdout] test model::format::extension_as_str ... ok
[INFO] [stdout] test model::format::extension_display ... ok
[INFO] [stdout] test model::format::extension_from_str ... ok
[INFO] [stdout] test model::drm::drm_status_deserialize_true_bool ... ok
[INFO] [stdout] test model::drm::drm_status_deserialize_string_no ... ok
[INFO] [stdout] test model::format::format_display ... ok
[INFO] [stdout] test model::format::extension_serde_roundtrip ... ok
[INFO] [stdout] test model::format::extension_serde_unknown_variant ... ok
[INFO] [stdout] test model::format::format_is_storyboard ... ok
[INFO] [stdout] test model::format::format_type_display ... ok
[INFO] [stdout] test model::format::format_type_checks ... ok
[INFO] [stdout] test model::drm::drm_status_deserialize_string_yes ... ok
[INFO] [stdout] test model::format::format_is_video ... ok
[INFO] [stdout] test model::format::format_serde_round_trip ... ok
[INFO] [stdout] test model::format::format_is_audio ... ok
[INFO] [stdout] test model::format::protocol_display ... ok
[INFO] [stdout] test model::selector::audio_quality_display ... ok
[INFO] [stdout] test model::selector::format_preferences_display ... ok
[INFO] [stdout] test model::format::http_headers_browser_defaults ... ok
[INFO] [stdout] test model::format::http_headers_serde_round_trip ... ok
[INFO] [stdout] test model::selector::format_preferences_has_any ... ok
[INFO] [stdout] test model::format::http_headers_to_header_map ... ok
[INFO] [stdout] test model::format::format_url_available ... ok
[INFO] [stdout] test model::selector::matches_audio_codec_any ... ok
[INFO] [stdout] test model::selector::matches_audio_codec_mp3 ... ok
[INFO] [stdout] test model::selector::matches_audio_codec_opus ... ok
[INFO] [stdout] test model::selector::matches_video_codec_any ... ok
[INFO] [stdout] test model::selector::matches_video_codec_av1 ... ok
[INFO] [stdout] test model::selector::matches_video_codec_custom ... ok
[INFO] [stdout] test model::selector::matches_video_codec_avc1 ... ok
[INFO] [stdout] test model::selector::matches_audio_codec_aac ... ok
[INFO] [stdout] test model::selector::matches_video_codec_vp9 ... ok
[INFO] [stdout] test model::selector::storyboard_quality_display ... ok
[INFO] [stdout] test model::selector::thumbnail_quality_display ... ok
[INFO] [stdout] test model::selector::video_quality_display ... ok
[INFO] [stdout] test model::types::add_warnings_to_chapter_validation_sets_all_warnings ... ok
[INFO] [stdout] test model::types::automatic_caption_display ... ok
[INFO] [stdout] test model::types::build_invalid_chapter_validation_sets_errors ... ok
[INFO] [stdout] test model::types::automatic_caption_display_no_lang ... ok
[INFO] [stdout] test model::types::build_valid_chapter_validation_has_empty_errors ... ok
[INFO] [stdout] test model::types::caption_extension_as_str ... ok
[INFO] [stdout] test model::types::automatic_caption_serde_round_trip ... ok
[INFO] [stdout] test model::types::caption_extension_display ... ok
[INFO] [stdout] test model::types::caption_extension_serde_unknown ... ok
[INFO] [stdout] test model::types::chapter_display ... ok
[INFO] [stdout] test model::types::caption_extension_default ... ok
[INFO] [stdout] test model::types::chapter_duration ... ok
[INFO] [stdout] test model::types::chapter_has_title ... ok
[INFO] [stdout] test model::types::chapter_title_contains ... ok
[INFO] [stdout] test model::types::chapter_title_starts_with ... ok
[INFO] [stdout] test model::types::chapter_title_matches ... ok
[INFO] [stdout] test model::types::chapter_duration_in_range ... ok
[INFO] [stdout] test model::types::chapter_serde_round_trip ... ok
[INFO] [stdout] test model::types::chapter_validation_with_warning ... ok
[INFO] [stdout] test model::types::check_chapter_list_is_sorted_returns_false_for_unordered ... ok
[INFO] [stdout] test model::types::check_chapter_list_has_overlaps_returns_true_for_overlapping ... ok
[INFO] [stdout] test model::types::chapter_contains_timestamp ... ok
[INFO] [stdout] test model::types::compute_chapter_list_total_duration_from_fixture ... ok
[INFO] [stdout] test model::types::check_chapter_list_is_sorted_returns_true_for_fixture ... ok
[INFO] [stdout] test model::types::count_chapter_list_entries_from_fixture ... ok
[INFO] [stdout] test model::types::display_chapter_shows_times_and_title ... ok
[INFO] [stdout] test model::types::compute_playlist_download_progress_percentage_correctly ... ok
[INFO] [stdout] test model::types::check_chapter_list_has_overlaps_returns_false_for_fixture ... ok
[INFO] [stdout] test model::types::compute_playlist_download_progress_zero_when_total_zero ... ok
[INFO] [stdout] test model::types::filter_chapter_list_by_duration_returns_all_matching ... ok
[INFO] [stdout] test model::types::filter_chapter_list_with_titles_returns_all_when_all_titled ... ok
[INFO] [stdout] test model::types::filter_chapter_list_with_titles_returns_only_titled ... ok
[INFO] [stdout] test model::types::find_chapter_list_by_exact_title_returns_none_on_no_match ... ok
[INFO] [stdout] test model::types::chapter_title_or_default ... ok
[INFO] [stdout] test model::types::heatmap_display ... ok
[INFO] [stdout] test model::types::find_chapter_list_by_timestamp_returns_none_when_out_of_range ... ok
[INFO] [stdout] test model::types::find_chapter_list_by_exact_title_returns_match ... ok
[INFO] [stdout] test model::types::heatmap_empty ... ok
[INFO] [stdout] test model::types::find_chapter_list_by_title_prefix_returns_match ... ok
[INFO] [stdout] test model::types::heatmap_get_point_at_time ... ok
[INFO] [stdout] test model::types::find_chapter_list_by_timestamp_returns_matching_chapter ... ok
[INFO] [stdout] test model::types::heatmap_point_duration ... ok
[INFO] [stdout] test model::types::heatmap_point_display ... ok
[INFO] [stdout] test model::types::heatmap_point_contains_timestamp ... ok
[INFO] [stdout] test model::types::playlist_available_entries ... ok
[INFO] [stdout] test model::types::playlist_entry_count ... ok
[INFO] [stdout] test model::types::heatmap_serde_round_trip ... ok
[INFO] [stdout] test model::types::display_chapter_validation_shows_key_fields ... ok
[INFO] [stdout] test model::types::playlist_deserialize ... ok
[INFO] [stdout] test model::types::playlist_display ... ok
[INFO] [stdout] test model::types::playlist_entry_duration_minutes ... ok
[INFO] [stdout] test model::types::playlist_entry_display ... ok
[INFO] [stdout] test model::types::display_playlist_download_progress_shows_completion_ratio ... ok
[INFO] [stdout] test model::types::playlist_entry_is_available ... ok
[INFO] [stdout] test model::types::playlist_get_entries_in_range_out_of_bounds ... ok
[INFO] [stdout] test model::types::playlist_filter_by_uploader ... ok
[INFO] [stdout] test model::types::playlist_entry_hash ... ok
[INFO] [stdout] test model::types::playlist_filter_by_duration ... ok
[INFO] [stdout] test model::types::playlist_search_entries_by_title ... ok
[INFO] [stdout] test model::types::playlist_get_entry_by_index ... ok
[INFO] [stdout] test model::types::playlist_serde_round_trip ... ok
[INFO] [stdout] test model::types::playlist_hash ... ok
[INFO] [stdout] test model::types::subtitle_display ... ok
[INFO] [stdout] test model::types::search_chapter_list_by_title_finds_match ... ok
[INFO] [stdout] test model::types::subtitle_file_extension ... ok
[INFO] [stdout] test model::types::subtitle_is_format ... ok
[INFO] [stdout] test model::types::search_chapter_list_by_title_returns_empty_on_no_match ... ok
[INFO] [stdout] test model::types::subtitle_from_automatic_caption ... ok
[INFO] [stdout] test model::types::thumbnail_display_no_resolution ... ok
[INFO] [stdout] test model::types::thumbnail_hash ... ok
[INFO] [stdout] test model::types::validate_chapter_list_produces_warning_for_missing_title ... ok
[INFO] [stdout] test model::types::subtitle_serde_round_trip ... ok
[INFO] [stdout] test model::types::validate_chapter_list_produces_warning_for_time_gap ... ok
[INFO] [stdout] test model::types::playlist_entry_fields ... ok
[INFO] [stdout] test model::types::validate_chapter_list_returns_error_for_inverted_time_range ... ok
[INFO] [stdout] test model::types::validate_chapter_list_returns_valid_for_fixture ... ok
[INFO] [stdout] test model::types::playlist_get_entries_in_range ... ok
[INFO] [stdout] test model::video::drm_video_fixture_has_drm_formats ... ok
[INFO] [stdout] test model::types::thumbnail_serde_round_trip ... ok
[INFO] [stdout] test model::types::validate_chapter_list_returns_valid_for_empty ... ok
[INFO] [stdout] test model::types::playlist_is_complete ... ok
[INFO] [stdout] test model::video::live_video_fixture_is_live ... ok
[INFO] [stdout] test model::types::thumbnail_display ... ok
[INFO] [stdout] test model::video::short_video_fixture_is_short ... ok
[INFO] [stdout] test model::video::format_has_drm_none ... ok
[INFO] [stdout] test model::video::twitch_live_fixture_is_live ... ok
[INFO] [stdout] test model::video::reel_fixture_deserializes ... ok
[INFO] [stdout] test model::video::video_chapter_at_time ... ok
[INFO] [stdout] test model::video::video_deserialize_from_fixture ... ok
[INFO] [stdout] test model::video::video_display ... ok
[INFO] [stdout] test model::video::video_get_chapters ... ok
[INFO] [stdout] test model::video::video_chapters_loaded ... ok
[INFO] [stdout] test model::video::video_has_heatmap ... ok
[INFO] [stdout] test model::video::video_heatmap_highly_engaged ... ok
[INFO] [stdout] test model::video::video_has_chapters_method ... ok
[INFO] [stdout] test model::video::video_heatmap_loaded ... ok
[INFO] [stdout] test network_retry::build_retry_policy_with_custom_values_succeeds ... ok
[INFO] [stdout] test model::video::video_heatmap_most_engaged ... ok
[INFO] [stdout] test network_retry::create_retry_policy_via_new_matches_default ... ok
[INFO] [stdout] test network_retry::display_retry_policy_shows_key_fields ... ok
[INFO] [stdout] test model::video::video_serde_round_trip ... ok
[INFO] [stdout] test model::video::video_has_correct_format_count ... ok
[INFO] [stdout] test network_retry::retry_execute_all_fail_returns_last_error ... ok
[INFO] [stdout] test model::video::video_thumbnails_loaded ... ok
[INFO] [stdout] test network_retry::check_retry_policy_default_values_match_expectations ... ok
[INFO] [stdout] test model::video::video_formats_include_all_types ... ok
[INFO] [stdout] test network_retry::retry_execute_with_condition_stops_on_non_retryable ... ok
[INFO] [stdout] test network_retry::retry_execute_succeeds_on_first_attempt ... ok
[INFO] [stdout] test partial_range::chapter_range_equal_start_end_returns_ok ... ok
[INFO] [stdout] test model::video::video_hash_uses_identity_fields ... ok
[INFO] [stdout] test partial_range::chapter_range_get_times_returns_none ... ok
[INFO] [stdout] test partial_range::chapter_range_start_greater_than_end_returns_err ... ok
[INFO] [stdout] test partial_range::chapter_range_valid_returns_ok ... ok
[INFO] [stdout] test partial_range::chapter_range_to_ytdlp_arg_formats_correctly ... ok
[INFO] [stdout] test partial_range::display_single_chapter ... ok
[INFO] [stdout] test partial_range::display_time_range ... ok
[INFO] [stdout] test partial_range::display_chapter_range ... ok
[INFO] [stdout] test partial_range::single_chapter_get_times_returns_none ... ok
[INFO] [stdout] test partial_range::single_chapter_needs_chapter_metadata ... ok
[INFO] [stdout] test network_retry::retry_execute_succeeds_after_initial_failure ... ok
[INFO] [stdout] test partial_range::single_chapter_returns_self ... ok
[INFO] [stdout] test partial_range::single_chapter_to_ytdlp_arg_formats_correctly ... ok
[INFO] [stdout] test partial_range::time_range_get_times_returns_pair ... ok
[INFO] [stdout] test partial_range::time_range_needs_no_chapter_metadata ... ok
[INFO] [stdout] test partial_range::time_range_negative_start_returns_err ... ok
[INFO] [stdout] test partial_range::time_range_start_equals_end_returns_err ... ok
[INFO] [stdout] test partial_range::time_range_start_greater_than_end_returns_err ... ok
[INFO] [stdout] test partial_range::time_range_to_ytdlp_arg_formats_correctly ... ok
[INFO] [stdout] test partial_range::chapter_range_needs_chapter_metadata ... ok
[INFO] [stdout] test partial_range::time_range_valid_returns_ok ... ok
[INFO] [stdout] test partial_range::to_time_range_from_chapter_range_resolves ... ok
[INFO] [stdout] test partial_range::to_time_range_chapter_range_out_of_bounds_returns_none ... ok
[INFO] [stdout] test partial_range::to_time_range_from_single_chapter_resolves ... ok
[INFO] [stdout] test partial_range::to_time_range_from_time_range_returns_clone ... ok
[INFO] [stdout] test partial_range::to_time_range_single_chapter_out_of_bounds_returns_none ... ok
[INFO] [stdout] test platform::convert_architecture_x64_as_str_returns_x64 ... ok
[INFO] [stdout] test platform::convert_architecture_armv7l_as_str_returns_value ... ok
[INFO] [stdout] test platform::convert_architecture_unknown_as_str_returns_value ... ok
[INFO] [stdout] test platform::convert_architecture_aarch64_as_str_returns_arm64 ... ok
[INFO] [stdout] test platform::convert_platform_linux_as_str_returns_linux ... ok
[INFO] [stdout] test platform::convert_platform_mac_as_str_returns_osx ... ok
[INFO] [stdout] test platform::convert_platform_unknown_as_str_returns_value ... ok
[INFO] [stdout] test platform::convert_platform_windows_as_str_returns_windows ... ok
[INFO] [stdout] test platform::detect_architecture_returns_known_variant ... ok
[INFO] [stdout] test platform::display_architecture_armv7l_shows_capitalized ... ok
[INFO] [stdout] test platform::detect_platform_returns_known_variant ... ok
[INFO] [stdout] test platform::display_architecture_unknown_shows_arch_name ... ok
[INFO] [stdout] test platform::display_architecture_aarch64_shows_capitalized ... ok
[INFO] [stdout] test platform::display_architecture_x64_shows_x64 ... ok
[INFO] [stdout] test platform::display_architecture_x86_shows_x86 ... ok
[INFO] [stdout] test platform::display_platform_mac_shows_mac_name ... ok
[INFO] [stdout] test platform::display_platform_linux_shows_linux_name ... ok
[INFO] [stdout] test platform::display_platform_unknown_shows_os_name ... ok
[INFO] [stdout] test platform::convert_architecture_x86_as_str_returns_x86 ... ok
[INFO] [stdout] test process::create_process_output_with_zero_exit_code_succeeds ... ok
[INFO] [stdout] test platform::display_platform_windows_shows_windows_name ... ok
[INFO] [stdout] test process::display_process_output_shows_code_and_len ... ok
[INFO] [stdout] test process::create_process_output_fields_are_accessible ... ok
[INFO] [stdout] test process::create_process_output_with_nonzero_exit_code_has_stderr ... ok
[INFO] [stdout] test proxy::proxy_config_build_url_with_auth ... ok
[INFO] [stdout] test proxy::proxy_config_build_url_encodes_special_chars ... ok
[INFO] [stdout] test proxy::proxy_config_build_url_no_auth ... ok
[INFO] [stdout] test proxy::proxy_config_build_url_no_scheme ... ok
[INFO] [stdout] test proxy::proxy_config_chaining ... ok
[INFO] [stdout] test proxy::proxy_config_display_with_auth ... ok
[INFO] [stdout] test proxy::proxy_config_display_no_auth ... ok
[INFO] [stdout] test proxy::proxy_config_debug ... ok
[INFO] [stdout] test proxy::proxy_config_new ... ok
[INFO] [stdout] test proxy::proxy_config_with_auth ... ok
[INFO] [stdout] test proxy::proxy_config_with_no_proxy ... ok
[INFO] [stdout] test proxy::proxy_config_ytdlp_arg_no_auth ... ok
[INFO] [stdout] test proxy::proxy_config_ytdlp_arg_with_auth ... ok
[INFO] [stdout] test proxy::proxy_type_display_http ... ok
[INFO] [stdout] test proxy::proxy_config_to_reqwest_proxy_http ... ok
[INFO] [stdout] test proxy::proxy_config_to_reqwest_proxy_socks5 ... ok
[INFO] [stdout] test proxy::proxy_config_to_reqwest_proxy_https ... ok
[INFO] [stdout] test proxy::proxy_type_display_https ... ok
[INFO] [stdout] test proxy::proxy_type_hash ... ok
[INFO] [stdout] test proxy::proxy_type_display_socks5 ... ok
[INFO] [stdout] test proxy::proxy_type_eq ... ok
[INFO] [stdout] test segment::create_segment_context_literal_with_resuming_flag_true ... ok
[INFO] [stdout] test segment::create_segment_context_initializes_all_fields ... ok
[INFO] [stdout] test segment::update_segment_context_progress_calls_callback ... ok
[INFO] [stdout] test segment::debug_segment_context_shows_key_fields ... ok
[INFO] [stdout] test process::execute_command_nonexistent_binary_returns_error ... ok
[INFO] [stdout] test process::execute_command_echo_returns_output ... ok
[INFO] [stdout] test segment::create_segment_context_with_callback_stores_it ... ok
[INFO] [stdout] test segment::update_segment_context_progress_without_callback_does_not_panic ... ok
[INFO] [stdout] test segment::display_segment_context_shows_bytes ... ok
[INFO] [stdout] test selection::best_audio_format_empty ... ok
[INFO] [stdout] test selection::best_audio_format_selects_highest_quality ... ok
[INFO] [stdout] test segment::update_segment_context_progress_increments_bytes ... ok
[INFO] [stdout] test selection::best_audio_format_tiebreak_by_channels ... ok
[INFO] [stdout] test selection::best_video_format_empty_formats ... ok
[INFO] [stdout] test selection::best_audio_format_tiebreak_by_abr ... ok
[INFO] [stdout] test selection::best_audio_format_tiebreak_by_sample_rate ... ok
[INFO] [stdout] test selection::best_audio_format_no_audio ... ok
[INFO] [stdout] test selection::best_video_format_no_video_formats ... ok
[INFO] [stdout] test selection::best_video_format_selects_highest_quality ... ok
[INFO] [stdout] test selection::best_video_format_tiebreak_by_fps ... ok
[INFO] [stdout] test selection::best_video_format_tiebreak_by_vbr ... ok
[INFO] [stdout] test selection::compare_video_formats_ordering ... ok
[INFO] [stdout] test selection::compare_audio_formats_ordering ... ok
[INFO] [stdout] test selection::mixed_formats_only_selects_correct_type ... ok
[INFO] [stdout] test selection::select_audio_format_codec_filter_opus ... ok
[INFO] [stdout] test selection::select_audio_format_best ... ok
[INFO] [stdout] test selection::select_audio_format_codec_filter_aac ... ok
[INFO] [stdout] test selection::select_audio_format_codec_fallback ... ok
[INFO] [stdout] test selection::select_audio_format_custom_bitrate ... ok
[INFO] [stdout] test selection::select_audio_format_low_targets_96kbps ... ok
[INFO] [stdout] test selection::select_audio_format_worst ... ok
[INFO] [stdout] test selection::select_audio_format_medium_targets_128kbps ... ok
[INFO] [stdout] test selection::select_storyboard_best ... ok
[INFO] [stdout] test selection::select_audio_format_empty ... ok
[INFO] [stdout] test selection::select_storyboard_worst ... ok
[INFO] [stdout] test selection::best_video_format_tiebreak_by_height ... ok
[INFO] [stdout] test selection::select_thumbnail_best ... ok
[INFO] [stdout] test selection::select_audio_format_high_targets_192kbps ... ok
[INFO] [stdout] test selection::select_video_format_best ... ok
[INFO] [stdout] test selection::select_thumbnail_empty ... ok
[INFO] [stdout] test selection::select_thumbnail_minimum_resolution ... ok
[INFO] [stdout] test selection::select_thumbnail_worst ... ok
[INFO] [stdout] test selection::select_video_format_codec_fallback ... ok
[INFO] [stdout] test selection::select_video_format_high_targets_1080p ... ok
[INFO] [stdout] test selection::select_video_format_empty ... ok
[INFO] [stdout] test selection::select_video_format_custom_height ... ok
[INFO] [stdout] test selection::select_video_format_codec_filter_vp9 ... ok
[INFO] [stdout] test selection::select_video_format_low_targets_480p ... ok
[INFO] [stdout] test selection::select_video_format_fallback_when_no_exact_height ... ok
[INFO] [stdout] test selection::select_video_format_medium_targets_720p ... ok
[INFO] [stdout] test selection::worst_audio_format_selects_lowest ... ok
[INFO] [stdout] test selection::storyboard_formats_returns_sorted ... ok
[INFO] [stdout] test subtitle::add_warning_to_validation_result_sets_warnings ... ok
[INFO] [stdout] test selection::single_audio_format_is_both_best_and_worst ... ok
[INFO] [stdout] test selection::single_video_format_is_both_best_and_worst ... ok
[INFO] [stdout] test selection::storyboard_formats_empty_when_none ... ok
[INFO] [stdout] test selection::worst_video_format_selects_lowest_quality ... ok
[INFO] [stdout] test subtitle::add_warnings_to_validation_result_sets_all_warnings ... ok
[INFO] [stdout] test selection::select_video_format_worst ... ok
[INFO] [stdout] test subtitle::build_invalid_validation_result_sets_errors ... ok
[INFO] [stdout] test subtitle::build_valid_validation_result_succeeds ... ok
[INFO] [stdout] test subtitle::check_format_compatible_mkv_accepts_all_formats ... ok
[INFO] [stdout] test subtitle::check_format_compatible_avi_accepts_srt_only ... ok
[INFO] [stdout] test subtitle::check_format_compatible_mp4_accepts_vtt_and_srt ... ok
[INFO] [stdout] test subtitle::check_format_compatible_unknown_container_is_permissive ... ok
[INFO] [stdout] test subtitle::convert_same_format_passthrough ... ok
[INFO] [stdout] test subtitle::check_format_compatible_is_case_insensitive ... ok
[INFO] [stdout] test subtitle::detect_format_ssa ... ok
[INFO] [stdout] test subtitle::detect_format_srt_from_fixture ... ok
[INFO] [stdout] test subtitle::convert_srt_fixture_to_vtt ... ok
[INFO] [stdout] test subtitle::detect_format_unknown_returns_error ... ok
[INFO] [stdout] test subtitle::detect_format_vtt_from_fixture ... ok
[INFO] [stdout] test subtitle::convert_unsupported_format_returns_error ... ok
[INFO] [stdout] test subtitle::detect_format_ass ... ok
[INFO] [stdout] test subtitle::validate_nonexistent_file_returns_invalid ... ok
[INFO] [stdout] test subtitle::validate_ass_valid_file ... ok
[INFO] [stdout] test subtitle::validate_ass_missing_script_info ... ok
[INFO] [stdout] test subtitle::validate_empty_file_returns_invalid ... ok
[INFO] [stdout] test test_extractor::test_extractor_debug_format ... ok
[INFO] [stdout] test test_extractor::test_extractor_fetch_playlist_returns_fixture ... ok
[INFO] [stdout] test subtitle::validate_vtt_missing_header ... ok
[INFO] [stdout] test test_extractor::test_extractor_generic_name ... ok
[INFO] [stdout] test test_extractor::test_extractor_generic_supports_all_urls ... ok
[INFO] [stdout] test test_extractor::test_extractor_supports_youtube_urls ... ok
[INFO] [stdout] test test_extractor::test_extractor_with_mock_server_rewrites_urls ... ok
[INFO] [stdout] test test_extractor::test_extractor_fetch_video_returns_fixture ... ok
[INFO] [stdout] test test_extractor::test_extractor_youtube_name ... ok
[INFO] [stdout] test validation::sanitize_filename_clean ... ok
[INFO] [stdout] test validation::sanitize_filename_long_name ... ok
[INFO] [stdout] test validation::sanitize_filename_only_special_becomes_download ... ok
[INFO] [stdout] test validation::sanitize_filename_preserves_unicode ... ok
[INFO] [stdout] test validation::sanitize_filename_removes_colons ... ok
[INFO] [stdout] test validation::sanitize_filename_removes_control_chars ... ok
[INFO] [stdout] test validation::sanitize_filename_removes_double_dots ... ok
[INFO] [stdout] test validation::sanitize_filename_empty_becomes_download ... ok
[INFO] [stdout] test validation::sanitize_filename_removes_null_bytes ... ok
[INFO] [stdout] test validation::sanitize_filename_removes_quotes ... ok
[INFO] [stdout] test validation::sanitize_filename_removes_slashes ... ok
[INFO] [stdout] test validation::sanitize_filename_removes_special_chars ... ok
[INFO] [stdout] test validation::sanitize_filename_removes_tab_and_newline ... ok
[INFO] [stdout] test validation::sanitize_path_absolute ... ok
[INFO] [stdout] test validation::sanitize_path_current_dir_stripped ... ok
[INFO] [stdout] test validation::sanitize_path_deeply_nested_valid ... ok
[INFO] [stdout] test validation::sanitize_path_dotdot_in_component ... ok
[INFO] [stdout] test validation::sanitize_path_empty_after_filter ... ok
[INFO] [stdout] test validation::sanitize_filename_whitespace_only_becomes_download ... ok
[INFO] [stdout] test validation::sanitize_path_nested ... ok
[INFO] [stdout] test validation::sanitize_path_simple ... ok
[INFO] [stdout] test validation::sanitize_path_traversal ... ok
[INFO] [stdout] test validation::validate_youtube_url_ftp_scheme ... ok
[INFO] [stdout] test validation::sanitize_path_multiple_traversals ... ok
[INFO] [stdout] test validation::validate_youtube_url_http ... ok
[INFO] [stdout] test validation::validate_youtube_url_invalid_domain ... ok
[INFO] [stdout] test validation::validate_youtube_url_invalid_format ... ok
[INFO] [stdout] test validation::validate_youtube_url_javascript_scheme ... ok
[INFO] [stdout] test validation::validate_youtube_url_mobile_subdomain ... ok
[INFO] [stdout] test validation::validate_youtube_url_music_subdomain ... ok
[INFO] [stdout] test validation::validate_youtube_url_nocookie ... ok
[INFO] [stdout] test validation::validate_youtube_url_standard ... ok
[INFO] [stdout] test validation::validate_youtube_url_unsafe_scheme ... ok
[INFO] [stdout] test subtitle::validate_srt_fixture_is_valid ... ok
[INFO] [stdout] test subtitle::validate_vtt_invalid_time_range ... ok
[INFO] [stdout] test validation::validate_youtube_url_short ... ok
[INFO] [stdout] test subtitle::validate_vtt_fixture_is_valid ... ok
[INFO] [stdout] test subtitle::convert_vtt_fixture_to_srt ... ok
[INFO] [stdout] test subtitle::convert_vtt_removes_voice_tags ... ok
[INFO] [stdout] test error::error_http_constructor ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 645 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests yt_dlp
[INFO] [stdout] 
[INFO] [stdout] running 126 tests
[INFO] [stdout] test src/../README.md - (line 1006) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1090) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1047) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1178) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1143) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1210) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1242) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1289) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1348) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1388) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1456) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1489) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1613) ... ignored
[INFO] [stdout] test src/../README.md - (line 167) ... ignored
[INFO] [stdout] test src/../README.md - (line 1546) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1670) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1711) ... ignored
[INFO] [stdout] test src/../README.md - (line 1758) ... ignored
[INFO] [stdout] test src/../README.md - (line 1799) ... ignored
[INFO] [stdout] test src/../README.md - (line 1825) ... ignored
[INFO] [stdout] test src/../README.md - (line 183) ... ignored
[INFO] [stdout] test src/../README.md - (line 1873) ... ignored
[INFO] [stdout] test src/../README.md - (line 1913) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1964) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1991) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 204) ... ignored
[INFO] [stdout] test src/../README.md - (line 2018) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 2048) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 2174) ... ignored
[INFO] [stdout] test src/../README.md - (line 2203) ... ignored
[INFO] [stdout] test src/../README.md - (line 2246) ... ignored
[INFO] [stdout] test src/../README.md - (line 2105) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 2077) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 2316) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 2282) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 1422) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 2548) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 2133) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 2467) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 240) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 2567) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 2433) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 2586) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 2604) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 265) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 293) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 328) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 313) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 343) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 393) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 423) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 484) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 458) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 510) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 544) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 578) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 367) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 605) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 636) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 667) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 701) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 750) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 793) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 876) - compile ... ok
[INFO] [stdout] test src/../README.md - (line 965) - compile ... ok
[INFO] [stdout] test src/cache/config.rs - cache::config::CacheConfig (line 100) - compile ... ok
[INFO] [stdout] test src/client/builder.rs - client::builder::DownloaderBuilder (line 24) - compile ... ok
[INFO] [stdout] test src/client/pipeline.rs - client::pipeline::Downloader::event_stream (line 300) - compile ... ok
[INFO] [stdout] test src/client/deps/ffmpeg.rs - client::deps::ffmpeg::BuildFetcher (line 30) - compile ... ok
[INFO] [stdout] test src/client/pipeline.rs - client::pipeline::Downloader::fetch (line 25) - compile ... ok
[INFO] [stdout] test src/client/builder.rs - client::builder::DownloaderBuilder::with_speed_profile (line 247) - compile ... ok
[INFO] [stdout] test src/client/pipeline.rs - client::pipeline::Downloader::postprocess_video (line 211) - compile ... ok
[INFO] [stdout] test src/client/deps/mod.rs - client::deps::Libraries (line 56) - compile ... ok
[INFO] [stdout] test src/client/streams/pipeline/download.rs - client::streams::pipeline::download::Downloader::download_video (line 29) - compile ... ok
[INFO] [stdout] test src/client/deps/mod.rs - client::deps::LibraryInstaller (line 27) - compile ... ok
[INFO] [stdout] test src/client/proxy.rs - client::proxy::ProxyConfig (line 12) - compile ... ok
[INFO] [stdout] test src/client/streams/pipeline/playlist.rs - client::streams::pipeline::playlist::Downloader::download_playlist (line 136) - compile ... ok
[INFO] [stdout] test src/client/streams/pipeline/combine.rs - client::streams::pipeline::combine::Downloader::combine_audio_and_video (line 340) - compile ... ok
[INFO] [stdout] test src/client/pipeline.rs - client::pipeline::Downloader::download_and_continue (line 67) - compile ... ok
[INFO] [stdout] test src/client/streams/quality.rs - client::streams::quality::Downloader::download_audio_stream_with_quality (line 323) - compile ... ok
[INFO] [stdout] test src/client/streams/pipeline/playlist.rs - client::streams::pipeline::playlist::Downloader::fetch_playlist_infos (line 27) - compile ... ok
[INFO] [stdout] test src/client/streams/quality.rs - client::streams::quality::Downloader::download_video_stream_with_quality (line 216) - compile ... ok
[INFO] [stdout] test src/client/streams/quality.rs - client::streams::quality::Downloader::download_video_with_quality (line 28) - compile ... ok
[INFO] [stdout] test src/download/engine/partial.rs - download::engine::partial::PartialRange (line 14) - compile ... ok
[INFO] [stdout] test src/download/manager.rs - download::manager::DownloadManager::cancel (line 402) - compile ... ok
[INFO] [stdout] test src/download/manager.rs - download::manager::DownloadManager::enqueue (line 176) - compile ... ok
[INFO] [stdout] test src/events/bus.rs - events::bus::EventBus::stream (line 137) ... ignored
[INFO] [stdout] test src/download/manager.rs - download::manager::DownloadManager::progress_stream (line 526) - compile ... ok
[INFO] [stdout] test src/events/mod.rs - events (line 22) ... ignored
[INFO] [stdout] test src/events/mod.rs - events (line 40) ... ignored
[INFO] [stdout] test src/download/manager.rs - download::manager::DownloadManager::wait_for_completion (line 457) - compile ... ok
[INFO] [stdout] test src/executor/ffmpeg.rs - executor::ffmpeg::FfmpegArgs (line 17) - compile ... ok
[INFO] [stdout] test src/executor/mod.rs - executor::Executor (line 23) - compile ... ok
[INFO] [stdout] test src/extractor/generic.rs - extractor::generic::Generic::with_credentials (line 124) - compile ... ok
[INFO] [stdout] test src/extractor/generic.rs - extractor::generic::Generic::with_extractor_args (line 91) - compile ... ok
[INFO] [stdout] test src/extractor/youtube.rs - extractor::youtube::Youtube::fetch_channel (line 198) - compile ... ok
[INFO] [stdout] test src/extractor/youtube.rs - extractor::youtube::Youtube::with_player_client (line 139) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader (line 123) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader (line 143) - compile ... ok
[INFO] [stdout] test src/extractor/youtube.rs - extractor::youtube::Youtube::search (line 307) - compile ... ok
[INFO] [stdout] test src/client/pipeline.rs - client::pipeline::Downloader::pipeline (line 142) - compile ... ok
[INFO] [stdout] test src/client/streams/pipeline/fetch.rs - client::streams::pipeline::fetch::Downloader::fetch_video_infos (line 110) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader (line 80) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader (line 99) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader::append_args (line 601) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader::builder (line 212) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader::set_timeout (line 644) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader::add_arg (line 677) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader::detect_extractor (line 883) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader::with_new_binaries (line 387) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader::youtube_extractor (line 465) - compile ... ok
[INFO] [stdout] test src/macros.rs - macros::install_libraries (line 60) - compile ... ok
[INFO] [stdout] test src/macros.rs - macros::youtube (line 9) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader::set_cache (line 798) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader::download (line 268) - compile ... ok
[INFO] [stdout] test src/macros.rs - macros::ytdlp_args (line 38) ... ignored
[INFO] [stdout] test src/lib.rs - Downloader::update_downloader (line 758) - compile ... ok
[INFO] [stdout] test src/lib.rs - Downloader::shutdown (line 840) - compile ... ok
[INFO] [stdout] test src/metadata/api.rs - metadata::api::MetadataManager::add_metadata (line 31) - compile ... ok
[INFO] [stdout] test src/metadata/api.rs - metadata::api::MetadataManager::add_thumbnail_to_file (line 190) - compile ... ok
[INFO] [stdout] test src/utils/network/retry.rs - utils::network::retry::RetryPolicy::execute (line 59) - compile ... ok
[INFO] [stdout] test src/utils/validation.rs - utils::validation::sanitize_filename (line 178) ... ok
[INFO] [stdout] test src/prelude.rs - prelude (line 8) ... ok
[INFO] [stdout] test src/utils/network/retry.rs - utils::network::retry::RetryPolicy (line 16) ... ok
[INFO] [stdout] test src/utils/validation.rs - utils::validation::sanitize_path (line 92) ... ok
[INFO] [stdout] test src/utils/validation.rs - utils::validation::validate_youtube_url (line 30) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 110 passed; 0 failed; 16 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 18.09s; merged doctests compilation took 17.57s
[INFO] running `Command { std: "docker" "inspect" "c6cec436134126a2c7573669a32584edd45968df3fe5edc9394db0e2dab9dc8c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c6cec436134126a2c7573669a32584edd45968df3fe5edc9394db0e2dab9dc8c", kill_on_drop: false }`
[INFO] [stdout] c6cec436134126a2c7573669a32584edd45968df3fe5edc9394db0e2dab9dc8c
