[INFO] cloning repository https://github.com/rhoopr/icloudpd-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rhoopr/icloudpd-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frhoopr%2Ficloudpd-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frhoopr%2Ficloudpd-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 25591bc80cd0daa47982937a947a7fb57957d6ba [INFO] testing rhoopr/icloudpd-rs against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frhoopr%2Ficloudpd-rs" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/rhoopr/icloudpd-rs [INFO] removed 0 missing tests [INFO] finished tweaking git repo https://github.com/rhoopr/icloudpd-rs [INFO] tweaked toml for git repo https://github.com/rhoopr/icloudpd-rs written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/rhoopr/icloudpd-rs on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/rhoopr/icloudpd-rs already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a15bff70653ffb89aeb1d2075edc139d88b729f24eb296cb4e82df05ecd6d00b [INFO] running `Command { std: "docker" "start" "-a" "a15bff70653ffb89aeb1d2075edc139d88b729f24eb296cb4e82df05ecd6d00b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a15bff70653ffb89aeb1d2075edc139d88b729f24eb296cb4e82df05ecd6d00b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a15bff70653ffb89aeb1d2075edc139d88b729f24eb296cb4e82df05ecd6d00b", kill_on_drop: false }` [INFO] [stdout] a15bff70653ffb89aeb1d2075edc139d88b729f24eb296cb4e82df05ecd6d00b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fd1de7f3e34168dff07e184c6b215d5f54aedfba0eaee976900b74444af20825 [INFO] running `Command { std: "docker" "start" "-a" "fd1de7f3e34168dff07e184c6b215d5f54aedfba0eaee976900b74444af20825", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling aws-lc-rs v1.16.2 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling rand_core v0.10.0 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling num-conv v0.2.1 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling cookie v0.18.1 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [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 http-body v1.0.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling cc v1.2.58 [INFO] [stderr] Compiling psl-types v2.0.11 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling rustls-native-certs v0.8.3 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling base64ct v1.8.3 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling winnow v1.0.0 [INFO] [stderr] Compiling cmake v0.1.58 [INFO] [stderr] Compiling crc-catalog v2.4.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling iri-string v0.7.11 [INFO] [stderr] Compiling cpufeatures v0.3.0 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling password-hash v0.5.0 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling toml_parser v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling atomic v0.6.1 [INFO] [stderr] Compiling crc v3.4.0 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling toml_datetime v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling serde_spanned v1.1.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling aws-lc-sys v0.39.1 [INFO] [stderr] Compiling libsqlite3-sys v0.37.0 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling console v0.16.3 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling rtoolbox v0.0.3 [INFO] [stderr] Compiling quick-xml v0.37.5 [INFO] [stderr] Compiling hashlink v0.11.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling mutate_once v0.1.2 [INFO] [stderr] Compiling unit-prefix v0.5.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling shell-words v1.1.1 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling toml_writer v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling toml v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling indicatif v0.18.4 [INFO] [stderr] Compiling little_exif v0.6.23 [INFO] [stderr] Compiling kamadak-exif v0.6.1 [INFO] [stderr] Compiling rpassword v7.4.0 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling pbkdf2 v0.12.2 [INFO] [stderr] Compiling rand v0.10.0 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling fs4 v0.13.1 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling sd-notify v0.5.0 [INFO] [stderr] Compiling urlencoding v2.1.3 [INFO] [stderr] Compiling rustc-hash v2.1.2 [INFO] [stderr] Compiling data-encoding v2.10.0 [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 displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling dialoguer v0.11.0 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling publicsuffix v2.3.0 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling cookie_store v0.22.1 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling rusqlite v0.39.0 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling rustls-webpki v0.103.10 [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] Compiling icloudpd-rs v0.4.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 31s [INFO] running `Command { std: "docker" "inspect" "fd1de7f3e34168dff07e184c6b215d5f54aedfba0eaee976900b74444af20825", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fd1de7f3e34168dff07e184c6b215d5f54aedfba0eaee976900b74444af20825", kill_on_drop: false }` [INFO] [stdout] fd1de7f3e34168dff07e184c6b215d5f54aedfba0eaee976900b74444af20825 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1e7b398344fa6514e506e86c9b1d54bb2b5c03e57b02cac3d4d18e37abcd60a9 [INFO] running `Command { std: "docker" "start" "-a" "1e7b398344fa6514e506e86c9b1d54bb2b5c03e57b02cac3d4d18e37abcd60a9", kill_on_drop: false }` [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling predicates-core v1.0.10 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling assert_cmd v2.2.0 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling dotenvy v0.15.7 [INFO] [stderr] Compiling predicates-tree v1.0.13 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling icloudpd-rs v0.4.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 40.02s [INFO] running `Command { std: "docker" "inspect" "1e7b398344fa6514e506e86c9b1d54bb2b5c03e57b02cac3d4d18e37abcd60a9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1e7b398344fa6514e506e86c9b1d54bb2b5c03e57b02cac3d4d18e37abcd60a9", kill_on_drop: false }` [INFO] [stdout] 1e7b398344fa6514e506e86c9b1d54bb2b5c03e57b02cac3d4d18e37abcd60a9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 7dff8ad863469ea1ac43e4887865dc790c5a4a1d4839363fdd020ef21361d56a [INFO] running `Command { std: "docker" "start" "-a" "7dff8ad863469ea1ac43e4887865dc790c5a4a1d4839363fdd020ef21361d56a", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.44s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/icloudpd_rs-f651b162b270a040) [INFO] [stdout] [INFO] [stdout] running 686 tests [INFO] [stdout] test auth::endpoints::tests::for_domain_com_returns_correct_urls ... ok [INFO] [stdout] test auth::endpoints::tests::for_domain_empty_string_returns_error ... ok [INFO] [stdout] test auth::endpoints::tests::for_domain_uk_returns_error ... ok [INFO] [stdout] test auth::error::tests::from_json_error ... ok [INFO] [stdout] test auth::error::tests::from_io_error ... ok [INFO] [stdout] test auth::endpoints::tests::error_message_mentions_unsupported_domain ... ok [INFO] [stdout] test auth::error::tests::other_variants_are_not_two_factor_required ... ok [INFO] [stdout] test auth::error::tests::invalid_token_display ... ok [INFO] [stdout] test auth::error::tests::two_factor_failed_display ... ok [INFO] [stdout] test auth::error::tests::two_factor_required_is_detected ... ok [INFO] [stdout] test auth::error::tests::two_factor_required_display ... ok [INFO] [stdout] test auth::responses::tests::test_account_login_response_domain_to_use ... ok [INFO] [stdout] test auth::responses::tests::test_account_login_response_extra_fields ... ok [INFO] [stdout] test auth::responses::tests::test_ds_info_defaults ... ok [INFO] [stdout] test auth::responses::tests::test_account_login_response_full ... ok [INFO] [stdout] test auth::responses::tests::test_webservices_no_ckdatabasews ... ok [INFO] [stdout] test auth::responses::tests::test_account_login_response_minimal ... ok [INFO] [stdout] test auth::session::tests::test_is_cookie_expired_past ... ok [INFO] [stdout] test auth::session::tests::test_is_cookie_expired_future ... ok [INFO] [stdout] test auth::session::tests::test_sanitize_username ... ok [INFO] [stdout] test auth::session::tests::test_sanitize_username_empty ... ok [INFO] [stdout] test auth::session::tests::test_sanitize_username_unicode ... ok [INFO] [stdout] test auth::error::tests::api_error_display ... ok [INFO] [stdout] test auth::srp::tests::test_compute_k_deterministic ... ok [INFO] [stdout] test auth::srp::tests::test_compute_x_deterministic ... ok [INFO] [stdout] test auth::srp::tests::test_compute_m1_and_m2_deterministic ... ok [INFO] [stdout] test auth::session::tests::test_sanitize_username_all_special ... ok [INFO] [stdout] test auth::endpoints::tests::for_domain_cn_returns_cn_urls ... ok [INFO] [stdout] test auth::responses::tests::test_srp_init_response_deserialize ... ok [INFO] [stdout] test auth::responses::tests::test_webservice_endpoint ... ok [INFO] [stdout] test auth::session::tests::test_is_cookie_expired_no_expiry ... ok [INFO] [stdout] test auth::srp::tests::test_get_auth_headers_with_session_data ... ok [INFO] [stdout] test auth::srp::tests::test_get_auth_headers_cn_domain ... ok [INFO] [stdout] test auth::tests::test_requires_2fa_challenged_and_trusted ... ok [INFO] [stdout] test auth::tests::test_requires_2fa_no_qualifying_device ... ok [INFO] [stdout] test auth::tests::test_requires_2fa_trusted_no_challenge ... ok [INFO] [stdout] test auth::srp::tests::test_get_auth_headers_com_domain ... ok [INFO] [stdout] test auth::tests::test_requires_2fa_untrusted_no_challenge ... ok [INFO] [stdout] test auth::tests::test_requires_2fa_wrong_hsa_version ... ok [INFO] [stdout] test auth::tests::test_requires_2fa_no_ds_info ... ok [INFO] [stdout] test auth::tests::test_requires_2fa_all_conditions_met ... ok [INFO] [stdout] test auth::error::tests::failed_login_display ... ok [INFO] [stdout] test auth::twofa::tests::test_is_valid_2fa_code_accepts_valid ... ok [INFO] [stdout] test auth::twofa::tests::test_is_valid_2fa_code_accepts_leading_zeros ... ok [INFO] [stdout] test cli::tests::test_albums_multiple ... ok [INFO] [stdout] test auth::srp::tests::test_compute_u_deterministic ... ok [INFO] [stdout] test cli::tests::test_albums_empty_by_default ... ok [INFO] [stdout] test cli::tests::test_align_raw_accepts_original ... ok [INFO] [stdout] test cli::tests::test_align_raw_accepts_as_is ... ok [INFO] [stdout] test cli::tests::test_align_raw_accepts_alternative ... ok [INFO] [stdout] test cli::tests::test_align_raw_none_by_default ... ok [INFO] [stdout] test cli::tests::test_auth_only_default_false ... ok [INFO] [stdout] test cli::tests::test_auth_only_flag ... ok [INFO] [stdout] test cli::tests::test_bare_invocation_without_username ... ok [INFO] [stdout] test cli::tests::test_align_raw_rejects_invalid ... ok [INFO] [stdout] test cli::tests::test_config_flag_custom ... ok [INFO] [stdout] test cli::tests::test_config_global_before_subcommand ... ok [INFO] [stdout] test cli::tests::test_config_global_with_reset_state_subcommand ... ok [INFO] [stdout] test cli::tests::test_config_flag_default ... ok [INFO] [stdout] test cli::tests::test_config_global_with_status_subcommand ... ok [INFO] [stdout] test cli::tests::test_config_global_with_sync_subcommand ... ok [INFO] [stdout] test cli::tests::test_config_global_with_verify_subcommand ... ok [INFO] [stdout] test cli::tests::test_cookie_directory_custom ... ok [INFO] [stdout] test cli::tests::test_cookie_directory_none_by_default ... ok [INFO] [stdout] test cli::tests::test_directory_custom ... ok [INFO] [stdout] test cli::tests::test_domain_accepts_cn ... ok [INFO] [stdout] test cli::tests::test_directory_none_by_default ... ok [INFO] [stdout] test cli::tests::test_domain_accepts_com ... ok [INFO] [stdout] test cli::tests::test_domain_rejects_invalid ... ok [INFO] [stdout] test cli::tests::test_domain_none_by_default ... ok [INFO] [stdout] test auth::srp::tests::test_derive_apple_password_s2k_fo ... ok [INFO] [stdout] test cli::tests::test_dry_run_default_false ... ok [INFO] [stdout] test cli::tests::test_folder_structure_custom ... ok [INFO] [stdout] test cli::tests::test_folder_structure_none_by_default ... ok [INFO] [stdout] test cli::tests::test_force_size_flag ... ok [INFO] [stdout] test cli::tests::test_import_existing_subcommand ... ok [INFO] [stdout] test cli::tests::test_import_existing_without_username ... ok [INFO] [stdout] test cli::tests::test_keep_unicode_in_filenames_flag ... ok [INFO] [stdout] test cli::tests::test_library_accepts_custom_value ... ok [INFO] [stdout] test cli::tests::test_list_albums_flag ... ok [INFO] [stdout] test cli::tests::test_library_none_by_default ... ok [INFO] [stdout] test cli::tests::test_list_libraries_flag ... ok [INFO] [stdout] test cli::tests::test_live_photo_mov_filename_policy_all_variants ... ok [INFO] [stdout] test cli::tests::test_log_level_accepts_value ... ok [INFO] [stdout] test cli::tests::test_backwards_compatibility_no_subcommand ... ok [INFO] [stdout] test cli::tests::test_log_level_all_variants ... ok [INFO] [stdout] test cli::tests::test_max_retries_custom ... ok [INFO] [stdout] test cli::tests::test_file_match_policy_all_variants ... ok [INFO] [stdout] test cli::tests::test_live_photo_size_all_variants ... ok [INFO] [stdout] test cli::tests::test_log_level_none_by_default ... ok [INFO] [stdout] test auth::srp::tests::test_derive_apple_password_s2k ... ok [INFO] [stdout] test cli::tests::test_max_retries_none_by_default ... ok [INFO] [stdout] test cli::tests::test_max_retries_zero_disables ... ok [INFO] [stdout] test cli::tests::test_no_incremental_and_reset_sync_token_together ... ok [INFO] [stdout] test cli::tests::test_no_incremental_default_false ... ok [INFO] [stdout] test cli::tests::test_no_progress_bar_flag ... ok [INFO] [stdout] test cli::tests::test_no_incremental_flag ... ok [INFO] [stdout] test cli::tests::test_notification_script_none_by_default ... ok [INFO] [stdout] test cli::tests::test_notification_script_flag ... ok [INFO] [stdout] test cli::tests::test_notify_systemd_default_false ... ok [INFO] [stdout] test cli::tests::test_notify_systemd_flag ... ok [INFO] [stdout] test cli::tests::test_pid_file_default_none ... ok [INFO] [stdout] test cli::tests::test_recent_none_by_default ... ok [INFO] [stdout] test cli::tests::test_password_flag ... ok [INFO] [stdout] test cli::tests::test_recent_accepts_value ... ok [INFO] [stdout] test cli::tests::test_password_none_by_default ... ok [INFO] [stdout] test cli::tests::test_reset_state_subcommand_without_username ... ok [INFO] [stdout] test cli::tests::test_reset_state_subcommand ... ok [INFO] [stdout] test cli::tests::test_pid_file_flag ... ok [INFO] [stdout] test cli::tests::test_reset_sync_token_default_false ... ok [INFO] [stdout] test cli::tests::test_reset_sync_token_flag ... ok [INFO] [stdout] test cli::tests::test_set_exif_datetime_flag ... ok [INFO] [stdout] test cli::tests::test_retry_delay_custom ... ok [INFO] [stdout] test cli::tests::test_retry_failed_without_username ... ok [INFO] [stdout] test cli::tests::test_size_accepts_value ... ok [INFO] [stdout] test cli::tests::test_size_none_by_default ... ok [INFO] [stdout] test cli::tests::test_size_all_variants ... ok [INFO] [stdout] test cli::tests::test_retry_delay_none_by_default ... ok [INFO] [stdout] test cli::tests::test_skip_created_after ... ok [INFO] [stdout] test cli::tests::test_skip_created_before ... ok [INFO] [stdout] test cli::tests::test_skip_videos_flag ... ok [INFO] [stdout] test cli::tests::test_skip_photos_flag ... ok [INFO] [stdout] test cli::tests::test_retry_failed_subcommand ... ok [INFO] [stdout] test cli::tests::test_status_with_failed_flag ... ok [INFO] [stdout] test cli::tests::test_status_subcommand ... ok [INFO] [stdout] test cli::tests::test_skip_live_photos_flag ... ok [INFO] [stdout] test cli::tests::test_submit_code_requires_code_arg ... ok [INFO] [stdout] test cli::tests::test_submit_code_with_config ... ok [INFO] [stdout] test cli::tests::test_submit_code_without_username ... ok [INFO] [stdout] test cli::tests::test_submit_code_subcommand ... ok [INFO] [stdout] test cli::tests::test_sync_subcommand ... ok [INFO] [stdout] test cli::tests::test_temp_suffix_custom ... ok [INFO] [stdout] test cli::tests::test_status_subcommand_without_username ... ok [INFO] [stdout] test cli::tests::test_temp_suffix_none_by_default ... ok [INFO] [stdout] test cli::tests::test_threads_num_accepts_valid_value ... ok [INFO] [stdout] test cli::tests::test_threads_num_none_by_default ... ok [INFO] [stdout] test cli::tests::test_threads_num_rejects_zero ... ok [INFO] [stdout] test cli::tests::test_verify_subcommand_with_checksums ... ok [INFO] [stdout] test config::tests::test_build_align_raw_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_albums_no_toml_no_cli ... ok [INFO] [stdout] test config::tests::test_build_all_boolean_flags_cli_overrides ... ok [INFO] [stdout] test config::tests::test_build_albums_empty_toml_empty_cli ... ok [INFO] [stdout] test cli::tests::test_verify_subcommand_without_username ... ok [INFO] [stdout] test cli::tests::test_watch_with_interval ... ok [INFO] [stdout] test config::tests::test_build_all_boolean_flags_from_toml ... ok [INFO] [stdout] test config::tests::test_build_all_defaults_no_toml_exhaustive ... ok [INFO] [stdout] test config::tests::test_build_boolean_flag_from_toml ... ok [INFO] [stdout] test config::tests::test_build_cli_auth_overrides_toml_username ... ok [INFO] [stdout] test config::tests::test_build_cli_albums_override_toml ... ok [INFO] [stdout] test config::tests::test_build_cli_log_level_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_cookie_directory_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_cookie_directory_from_toml ... ok [INFO] [stdout] test config::tests::test_build_boolean_flags_false_in_toml_stays_false ... ok [INFO] [stdout] test config::tests::test_build_cli_flag_overrides_toml_false ... ok [INFO] [stdout] test config::tests::test_build_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_directory_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_domain_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_cookie_directory_tilde_expansion ... ok [INFO] [stdout] test config::tests::test_build_defaults_no_toml ... ok [INFO] [stdout] test config::tests::test_build_directory_tilde_expansion ... ok [INFO] [stdout] test config::tests::test_build_file_match_policy_from_toml ... ok [INFO] [stdout] test config::tests::test_build_domain_from_toml ... ok [INFO] [stdout] test config::tests::test_build_invalid_date_from_toml_errors ... ok [INFO] [stdout] test config::tests::test_build_file_match_policy_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_live_photo_size_from_toml ... ok [INFO] [stdout] test config::tests::test_build_full_toml_all_sections ... ok [INFO] [stdout] test config::tests::test_build_log_level_from_toml ... ok [INFO] [stdout] test config::tests::test_build_hardcoded_default_when_both_absent ... ok [INFO] [stdout] test config::tests::test_build_max_retries_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_mov_filename_policy_from_toml ... ok [INFO] [stdout] test config::tests::test_build_mov_filename_policy_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_notification_script_none_by_default ... ok [INFO] [stdout] test config::tests::test_build_folder_structure_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_live_photo_size_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_passthrough_flags ... ok [INFO] [stdout] test config::tests::test_build_notification_script_from_toml ... ok [INFO] [stdout] test config::tests::test_build_notification_script_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_password_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_pid_file_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_password_from_toml ... ok [INFO] [stdout] test config::tests::test_build_recent_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_recent_from_toml ... ok [INFO] [stdout] test config::tests::test_build_retry_delay_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_retry_delay_from_toml ... ok [INFO] [stdout] test config::tests::test_build_size_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_size_from_toml ... ok [INFO] [stdout] test config::tests::test_build_temp_suffix_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_temp_suffix_from_toml ... ok [INFO] [stdout] test config::tests::test_build_threads_num_zero_from_toml_rejected ... ok [INFO] [stdout] test config::tests::test_build_toml_albums ... ok [INFO] [stdout] test config::tests::test_build_toml_provides_defaults ... ok [INFO] [stdout] test config::tests::test_build_toml_auth_username ... ok [INFO] [stdout] test config::tests::test_build_watch_from_toml ... ok [INFO] [stdout] test config::tests::test_expand_tilde_no_prefix ... ok [INFO] [stdout] test config::tests::test_build_skip_dates_interval_syntax_from_toml ... ok [INFO] [stdout] test config::tests::test_build_skip_dates_from_toml ... ok [INFO] [stdout] test config::tests::test_library_all_case_insensitive ... ok [INFO] [stdout] test config::tests::test_library_all_value ... ok [INFO] [stdout] test config::tests::test_library_all_from_toml ... ok [INFO] [stdout] test config::tests::test_load_toml_config_empty_file ... ok [INFO] [stdout] test config::tests::test_load_toml_config_invalid_toml_syntax ... ok [INFO] [stdout] test config::tests::test_expand_tilde_with_home ... ok [INFO] [stdout] test config::tests::test_load_toml_config_missing_file_not_required ... ok [INFO] [stdout] test config::tests::test_load_toml_config_missing_file_required ... ok [INFO] [stdout] test config::tests::test_load_toml_config_valid_file ... ok [INFO] [stdout] test config::tests::test_load_toml_config_valid_file_required ... ok [INFO] [stdout] test config::tests::test_parse_date_iso ... ok [INFO] [stdout] test config::tests::test_parse_datetime_iso ... ok [INFO] [stdout] test config::tests::test_build_watch_interval_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_build_skip_dates_cli_overrides_toml ... ok [INFO] [stdout] test config::tests::test_parse_interval_days ... ok [INFO] [stdout] test config::tests::test_parse_invalid_date ... ok [INFO] [stdout] test config::tests::test_resolve_auth_defaults_when_both_absent ... ok [INFO] [stdout] test config::tests::test_resolve_auth_all_from_toml ... ok [INFO] [stdout] test config::tests::test_toml_filters_all_fields ... ok [INFO] [stdout] test config::tests::test_toml_auth_password ... ok [INFO] [stdout] test config::tests::test_toml_download_all_fields ... ok [INFO] [stdout] test config::tests::test_toml_nested_retry ... ok [INFO] [stdout] test config::tests::test_resolve_auth_cli_overrides_all ... ok [INFO] [stdout] test config::tests::test_toml_notifications_section ... ok [INFO] [stdout] test config::tests::test_toml_parse_all_domain_variants ... ok [INFO] [stdout] test config::tests::test_toml_parse_all_file_match_policy_variants ... ok [INFO] [stdout] test config::tests::test_toml_parse_all_live_photo_size_variants ... ok [INFO] [stdout] test config::tests::test_toml_parse_all_log_level_variants ... ok [INFO] [stdout] test config::tests::test_toml_parse_all_mov_filename_policy_variants ... ok [INFO] [stdout] test config::tests::test_toml_parse_all_size_variants ... ok [INFO] [stdout] test config::tests::test_toml_parse_enum_values ... ok [INFO] [stdout] test config::tests::test_toml_parse_empty ... ok [INFO] [stdout] test config::tests::test_toml_parse_minimal ... ok [INFO] [stdout] test config::tests::test_toml_reject_invalid_enum_value ... ok [INFO] [stdout] test config::tests::test_toml_photos_all_fields ... ok [INFO] [stdout] test config::tests::test_toml_parse_full ... ok [INFO] [stdout] test config::tests::test_toml_reject_unknown_fields ... ok [INFO] [stdout] test config::tests::test_toml_reject_unknown_fields_in_each_section ... ok [INFO] [stdout] test config::tests::test_toml_empty_sections_accepted ... ok [INFO] [stdout] test config::tests::test_toml_reject_negative_number ... ok [INFO] [stdout] test config::tests::test_toml_reject_wrong_type ... ok [INFO] [stdout] test download::error::tests::test_disk_not_session_expired ... ok [INFO] [stdout] test download::error::tests::test_disk_not_retryable ... ok [INFO] [stdout] test download::error::tests::test_http_401_not_retryable ... ok [INFO] [stdout] test download::error::tests::test_http_401_is_session_expired ... ok [INFO] [stdout] test download::error::tests::test_http_403_is_session_expired ... ok [INFO] [stdout] test download::error::tests::test_http_404_not_retryable ... ok [INFO] [stdout] test download::error::tests::test_http_404_not_session_expired ... ok [INFO] [stdout] test download::error::tests::test_http_429_retryable ... ok [INFO] [stdout] test download::error::tests::test_http_500_not_session_expired ... ok [INFO] [stdout] test download::error::tests::test_http_500_retryable ... ok [INFO] [stdout] test download::error::tests::test_http_503_retryable ... ok [INFO] [stdout] test config::tests::test_toml_watch_all_fields ... ok [INFO] [stdout] test download::error::tests::test_content_length_mismatch_retryable ... ok [INFO] [stdout] test download::error::tests::test_other_not_retryable ... ok [INFO] [stdout] test download::exif::tests::test_get_exif_no_exif_data ... ok [INFO] [stdout] test download::exif::tests::test_set_exif_preserves_existing ... ok [INFO] [stdout] test config::tests::test_toml_parse_all_align_raw_variants ... ok [INFO] [stdout] test download::file::tests::test_compute_sha256_known_content ... ok [INFO] [stdout] test download::file::tests::test_base32_encode ... ok [INFO] [stdout] test download::file::tests::test_content_length_check_after_resume_fallback ... ok [INFO] [stdout] test download::file::tests::test_temp_download_path_custom_suffix ... ok [INFO] [stdout] test download::file::tests::test_temp_download_path_derives_from_checksum ... ok [INFO] [stdout] test download::file::tests::test_compute_sha256_nonexistent_file ... ok [INFO] [stdout] test download::file::tests::test_temp_download_path_part_suffix ... ok [INFO] [stdout] test download::file::tests::test_temp_download_path_invalid_base64 ... ok [INFO] [stdout] test download::file::tests::test_temp_download_path_same_checksum_same_result ... ok [INFO] [stdout] test download::file::tests::test_temp_download_path_valid_checksum ... ok [INFO] [stdout] test download::error::tests::test_http_403_not_retryable ... ok [INFO] [stdout] test download::paths::tests::test_add_dedup_suffix ... ok [INFO] [stdout] test download::paths::tests::test_apply_name_id7 ... ok [INFO] [stdout] test download::paths::tests::test_apply_name_id7_no_extension ... ok [INFO] [stdout] test download::paths::tests::test_base64_id7_length ... ok [INFO] [stdout] test download::paths::tests::test_clean_filename ... ok [INFO] [stdout] test download::exif::tests::test_set_and_get_exif_roundtrip ... ok [INFO] [stdout] test download::paths::tests::test_find_ampm_variant_returns_none_for_non_ampm ... ok [INFO] [stdout] test download::paths::tests::test_generate_fingerprint_filename ... ok [INFO] [stdout] test download::paths::tests::test_generate_fingerprint_filename_unknown_type ... ok [INFO] [stdout] test download::paths::tests::test_find_ampm_variant_finds_match ... ok [INFO] [stdout] test download::paths::tests::test_insert_suffix ... ok [INFO] [stdout] test download::paths::tests::test_insert_suffix_medium_thumb ... ok [INFO] [stdout] test download::paths::tests::test_item_type_extension ... ok [INFO] [stdout] test download::paths::tests::test_live_photo_mov_path_original ... ok [INFO] [stdout] test download::paths::tests::test_live_photo_mov_path_suffix_non_heic ... ok [INFO] [stdout] test download::paths::tests::test_live_photo_mov_path_suffix_heic ... ok [INFO] [stdout] test download::paths::tests::test_live_photo_mov_path_suffix_no_extension ... ok [INFO] [stdout] test download::paths::tests::test_map_filename_extension_known_types ... ok [INFO] [stdout] test download::paths::tests::test_map_filename_extension_webp ... ok [INFO] [stdout] test download::paths::tests::test_normalize_ampm_already_no_space ... ok [INFO] [stdout] test download::paths::tests::test_normalize_ampm_am ... ok [INFO] [stdout] test download::paths::tests::test_normalize_ampm_no_change_without_ampm ... ok [INFO] [stdout] test download::paths::tests::test_normalize_ampm_strips_narrow_no_break_space ... ok [INFO] [stdout] test download::paths::tests::test_normalize_ampm_strips_space ... ok [INFO] [stdout] test download::paths::tests::test_remove_unicode_chars ... ok [INFO] [stdout] test download::paths::tests::test_remove_unicode_strips_narrow_no_break_space ... ok [INFO] [stdout] test download::paths::tests::test_sanitize_path_component_dots_and_spaces ... ok [INFO] [stdout] test download::paths::tests::test_sanitize_path_component_empty ... ok [INFO] [stdout] test download::paths::tests::test_sanitize_path_component_normal ... ok [INFO] [stdout] test download::paths::tests::test_sanitize_path_component_reserved_names_non_windows ... ok [INFO] [stdout] test download::paths::tests::test_sanitize_path_component_traversal ... ok [INFO] [stdout] test download::tests::test_change_event_asset_extraction ... ok [INFO] [stdout] test download::tests::test_change_event_filtering_counts_and_extraction ... ok [INFO] [stdout] test download::tests::test_change_event_filtering_downloadable_reasons ... ok [INFO] [stdout] test download::tests::test_create_progress_bar_hidden_when_disabled ... ok [INFO] [stdout] test download::tests::test_create_progress_bar_hidden_when_only_print_filenames ... ok [INFO] [stdout] test download::tests::test_create_progress_bar_with_total ... ok [INFO] [stdout] test download::tests::test_default_strips_unicode_from_filename ... ok [INFO] [stdout] test download::tests::test_determine_media_type_image_no_live_is_photo ... ok [INFO] [stdout] test download::tests::test_determine_media_type_image_with_live_is_live_photo_image ... ok [INFO] [stdout] test download::tests::test_determine_media_type_live_original_on_image_is_live_photo_video ... ok [INFO] [stdout] test download::tests::test_determine_media_type_live_original_on_movie_is_video ... ok [INFO] [stdout] test download::tests::test_determine_media_type_movie_original_is_video ... ok [INFO] [stdout] test download::tests::test_download_context_known_ids_populated_for_retry_only ... ok [INFO] [stdout] test download::tests::test_download_task_size ... ok [INFO] [stdout] test download::tests::test_extract_skip_candidates_date_after_filter ... ok [INFO] [stdout] test download::tests::test_extract_skip_candidates_date_before_filter ... ok [INFO] [stdout] test download::paths::tests::test_map_filename_extension_no_extension ... ok [INFO] [stdout] test download::paths::tests::test_map_filename_extension_unknown_type ... ok [INFO] [stdout] test download::tests::test_extract_skip_candidates_force_size_no_fallback ... ok [INFO] [stdout] test download::tests::test_extract_skip_candidates_live_photo ... ok [INFO] [stdout] test download::tests::test_extract_skip_candidates_skip_live_photos ... ok [INFO] [stdout] test download::tests::test_extract_skip_candidates_skip_photos ... ok [INFO] [stdout] test download::tests::test_extract_skip_candidates_skip_videos ... ok [INFO] [stdout] test download::tests::test_filter_asset_as_is_downloads_original ... ok [INFO] [stdout] test download::tests::test_filter_asset_produces_task ... ok [INFO] [stdout] test download::tests::test_filter_asset_uses_raw_policy_swap ... ok [INFO] [stdout] test download::tests::test_filter_deduplicates_file_with_different_size ... ok [INFO] [stdout] test download::tests::test_extract_skip_candidates_photo ... ok [INFO] [stdout] test download::tests::test_extract_skip_candidates_size_fallback_to_original ... ok [INFO] [stdout] test download::tests::test_filter_deduplicates_live_photo_mov_collision ... ok [INFO] [stdout] test download::tests::test_filter_detects_case_insensitive_collision ... ok [INFO] [stdout] test download::tests::test_filter_live_photo_dedup_suffix_consistent_with_mov ... ok [INFO] [stdout] test download::tests::test_filter_produces_live_photo_mov_task ... ok [INFO] [stdout] test download::tests::test_filter_skips_asset_without_requested_version ... ok [INFO] [stdout] test download::tests::test_filter_skips_existing_file ... ok [INFO] [stdout] test download::tests::test_filter_live_photo_original_policy ... ok [INFO] [stdout] test download::tests::test_filter_no_live_photo_for_videos ... ok [INFO] [stdout] test download::tests::test_filter_skips_live_photo_when_configured ... ok [INFO] [stdout] test download::tests::test_filter_skips_photos_when_configured ... ok [INFO] [stdout] test download::tests::test_filter_skips_videos_when_configured ... ok [INFO] [stdout] test download::tests::test_filter_skips_existing_live_photo_mov ... ok [INFO] [stdout] test download::tests::test_filter_uses_fingerprint_fallback_without_filename ... ok [INFO] [stdout] test download::tests::test_format_duration_125_seconds ... ok [INFO] [stdout] test download::tests::test_filter_video_task_carries_size ... ok [INFO] [stdout] test download::tests::test_format_duration_3661_seconds ... ok [INFO] [stdout] test download::tests::test_format_duration_hours ... ok [INFO] [stdout] test download::tests::test_format_duration_ignores_sub_second ... ok [INFO] [stdout] test download::tests::test_format_duration_seconds_only ... ok [INFO] [stdout] test download::tests::test_format_duration_minutes_and_seconds ... ok [INFO] [stdout] test download::tests::test_hash_download_config_changes_on_align_raw ... ok [INFO] [stdout] test download::tests::test_hash_download_config_changes_on_file_match_policy ... ok [INFO] [stdout] test download::tests::test_hash_download_config_changes_on_directory ... ok [INFO] [stdout] test download::tests::test_hash_download_config_changes_on_folder_structure ... ok [INFO] [stdout] test download::tests::test_hash_download_config_changes_on_keep_unicode ... ok [INFO] [stdout] test download::tests::test_hash_download_config_changes_on_live_photo_size ... ok [INFO] [stdout] test download::tests::test_hash_download_config_changes_on_live_photo_mov_filename_policy ... ok [INFO] [stdout] test download::tests::test_hash_download_config_changes_on_size ... ok [INFO] [stdout] test download::tests::test_hash_download_config_ignores_unrelated_fields ... ok [INFO] [stdout] test download::tests::test_hash_download_config_deterministic ... ok [INFO] [stdout] test download::tests::test_hash_download_config_is_16_hex_chars ... ok [INFO] [stdout] test download::tests::test_incremental_filters_skip_deletions ... ok [INFO] [stdout] test download::tests::test_incremental_modified_events_are_downloadable ... ok [INFO] [stdout] test download::tests::test_keep_unicode_preserves_non_ascii ... ok [INFO] [stdout] test download::tests::test_filter_live_photo_medium_size ... ok [INFO] [stdout] test download::tests::test_name_id7_skips_existing_file ... ok [INFO] [stdout] test download::tests::test_normalized_path_borrow_for_hashmap_lookup ... ok [INFO] [stdout] test download::tests::test_normalized_path_case_different_paths_equal_on_case_insensitive ... ok [INFO] [stdout] test download::tests::test_normalized_path_case_equality ... ok [INFO] [stdout] test download::tests::test_normalized_path_hash_consistency ... ok [INFO] [stdout] test download::tests::test_normalized_path_hashmap_case_insensitive_lookup ... ok [INFO] [stdout] test download::tests::test_medium_size_adds_suffix ... ok [INFO] [stdout] test download::tests::test_name_id7_produces_task_with_id_suffix ... ok [INFO] [stdout] test download::tests::test_name_id7_live_photo_produces_two_tasks_with_id_suffix ... ok [INFO] [stdout] test download::tests::test_normalized_path_new_stores_normalized_form ... ok [INFO] [stdout] test download::tests::test_normalized_path_normalize_returns_lowercase_on_macos ... ok [INFO] [stdout] test download::tests::test_raw_policy_as_alternative_no_swap_when_orig_not_raw ... ok [INFO] [stdout] test download::tests::test_raw_policy_as_alternative_swaps_when_orig_is_raw ... ok [INFO] [stdout] test download::tests::test_raw_policy_as_is_no_swap ... ok [INFO] [stdout] test download::tests::test_raw_policy_as_original_no_swap_when_alt_not_raw ... ok [INFO] [stdout] test download::tests::test_run_download_pass_processes_tasks_when_not_cancelled ... ignored, stack overflow in debug builds; run with --release [INFO] [stdout] test download::tests::test_run_download_pass_skips_all_tasks_when_cancelled ... ignored, stack overflow in debug builds; run with --release [INFO] [stdout] test download::tests::test_raw_policy_as_original_swaps_when_alt_is_raw ... ok [INFO] [stdout] test download::tests::test_raw_policy_no_alternative_no_swap ... ok [INFO] [stdout] test download::tests::test_set_file_mtime_negative_timestamp ... ok [INFO] [stdout] test download::tests::test_set_file_mtime_nonexistent_file ... ok [INFO] [stdout] test download::tests::test_set_file_mtime_positive_timestamp ... ok [INFO] [stdout] test download::tests::test_set_file_mtime_zero_timestamp ... ok [INFO] [stdout] test download::tests::test_should_download_fast_different_version_size ... ok [INFO] [stdout] test download::tests::test_should_download_fast_downloaded_changed_checksum ... ok [INFO] [stdout] test download::tests::test_should_download_fast_downloaded_matching_checksum ... ok [INFO] [stdout] test download::tests::test_should_download_fast_trust_state_returns_false ... ok [INFO] [stdout] test download::tests::test_should_download_fast_unknown_asset_returns_true ... ok [INFO] [stdout] test download::tests::test_sync_result_partial_failure ... ok [INFO] [stdout] test download::tests::test_sync_result_session_expired ... ok [INFO] [stdout] test download::tests::test_thumb_size_adds_suffix ... ok [INFO] [stdout] test icloud::error::tests::connection_display_contains_message ... ok [INFO] [stdout] test icloud::error::tests::from_io_error_creates_io_variant ... ok [INFO] [stdout] test icloud::error::tests::from_serde_json_error_creates_json_variant ... ok [INFO] [stdout] test icloud::error::tests::service_not_activated_display_mentions_code_reason_and_adp ... ok [INFO] [stdout] test icloud::photos::album::tests::test_changes_stream_empty_page_continues ... ok [INFO] [stdout] test icloud::photos::album::tests::test_changes_stream_hard_deleted_record ... ok [INFO] [stdout] test icloud::photos::album::tests::test_changes_stream_invalid_token_yields_typed_error ... ok [INFO] [stdout] test icloud::photos::album::tests::test_changes_stream_multiple_pages ... ok [INFO] [stdout] test icloud::photos::album::tests::test_changes_stream_single_page ... ok [INFO] [stdout] test icloud::photos::album::tests::test_changes_stream_zone_error ... ok [INFO] [stdout] test icloud::photos::album::tests::test_fetcher_count_capped_by_concurrency ... ok [INFO] [stdout] test icloud::photos::album::tests::test_fetcher_count_exact_pages ... ok [INFO] [stdout] test icloud::photos::album::tests::test_fetcher_count_concurrency_one ... ok [INFO] [stdout] test icloud::photos::album::tests::test_fetcher_count_partial_page ... ok [INFO] [stdout] test icloud::photos::album::tests::test_fetcher_count_single_page ... ok [INFO] [stdout] test icloud::photos::album::tests::test_fetcher_count_more_pages_than_concurrency ... ok [INFO] [stdout] test icloud::photos::album::tests::test_list_query_ascending_offset_zero ... ok [INFO] [stdout] test icloud::photos::album::tests::test_list_query_results_limit_double_page_size ... ok [INFO] [stdout] test icloud::photos::album::tests::test_list_query_with_extra_filter ... ok [INFO] [stdout] test icloud::photos::album::tests::test_list_query_with_offset ... ok [INFO] [stdout] test icloud::photos::album::tests::test_list_query_zone_id_passed_through ... ok [INFO] [stdout] test icloud::photos::album::tests::test_photo_stream_limit_one_yields_exactly_one ... ok [INFO] [stdout] test icloud::photos::album::tests::test_photo_stream_limit_zero_yields_nothing ... ok [INFO] [stdout] test icloud::photos::album::tests::test_photo_stream_no_total_count_uses_single_fetcher ... ok [INFO] [stdout] test icloud::photos::album::tests::test_fetcher_count_zero_items ... ok [INFO] [stdout] test download::tests::test_normalized_path_lowercases_on_case_insensitive ... ok [INFO] [stdout] test icloud::photos::album::tests::test_photo_stream_small_recent_uses_single_fetcher ... ok [INFO] [stdout] test icloud::photos::album::tests::test_photo_stream_with_token_no_sync_token_in_response ... ok [INFO] [stdout] test icloud::photos::album::tests::test_photo_stream_with_token_returns_sync_token ... ok [INFO] [stdout] test icloud::photos::album::tests::test_photo_stream_with_token_setup_does_not_panic ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_asset_date ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_asset_no_master_ref_emits_standalone ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_asset_then_master_pairs ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_asset_without_master_ref ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_cross_page_soft_deleted_master_reconciles ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_default_returns_empty ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_flush_unpaired_records ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_hard_delete_emitted_immediately ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_master_then_asset_pairs ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_multiple_pages_accumulation ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_new_returns_empty ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_multiple_pairs_across_pages ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_non_photo_records_skipped ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_normal_master_with_soft_deleted_asset_reconciles ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_same_page_asset_before_master ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_same_page_pairing ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_soft_deleted_asset_emitted_with_reason ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_soft_deleted_asset_with_master ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_classify_deleted_none ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_buffer_soft_deleted_master_with_normal_asset_reconciles ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_classify_hard_deleted ... ok [INFO] [stdout] test icloud::photos::album::tests::test_photo_stream_with_token_last_token_wins ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_classify_hidden ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_classify_is_deleted_null_value ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_classify_is_deleted_string_not_integer ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_classify_is_hidden_zero ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_classify_is_deleted_zero ... ok [INFO] [stdout] test icloud::photos::album::tests::test_photo_stream_with_token_empty_album ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_classify_soft_deleted_takes_priority_over_hidden ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_classify_normal_record ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_classify_soft_deleted ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_extract_master_ref_malformed_no_record_name ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_display ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_extract_master_ref_malformed_no_value ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_extract_master_ref_valid ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_extract_master_ref_record_name_not_string ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_extract_master_ref_missing ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_filename_encrypted_bytes ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_filename_string_type ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_from_records_missing_optional_fields ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_filename_missing ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_from_records_extracts_fields ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_id_present ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_item_type_fallback_from_extension ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_get_version_and_contains_version ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_item_type_movie ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_item_type_webp_from_extension_fallback ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_id_missing ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_struct_sizes ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_item_type_webp_from_uti ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_versions_missing_checksum ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_item_type_image ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_versions_builds_map ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_versions_multiple_photo_sizes ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_versions_prefers_asset_record_over_master ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_versions_missing_download_url ... ok [INFO] [stdout] test icloud::photos::asset::tests::test_versions_video_uses_video_lookup ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_changes_database_response_no_changes ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_changed_zone_info ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_changes_database_response_with_zones ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_changes_zone_response_with_records ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_changes_zone_result_with_error ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_changes_zone_result_more_coming ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_batch_query_response ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_hard_deleted_record_null_record_type ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_query_response ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_query_response_empty ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_query_response_with_sync_token_and_continuation ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_record_with_change_tag_and_deleted ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_record_missing_fields ... ok [INFO] [stdout] test auth::twofa::tests::submit_2fa_code_rejects_too_long ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_query_response_without_sync_token ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_record_without_change_tag_and_deleted ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_zone_list_empty ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_zone_list_response ... ok [INFO] [stdout] test icloud::photos::library::tests::test_clone_independence ... ok [INFO] [stdout] test icloud::photos::library::tests::test_clone_preserves_service_endpoint ... ok [INFO] [stdout] test icloud::photos::library::tests::test_zone_name_null_defaults_to_primary ... ok [INFO] [stdout] test icloud::photos::cloudkit::tests::test_zone_id_round_trip ... ok [INFO] [stdout] test icloud::photos::library::tests::test_zone_name_primary ... ok [INFO] [stdout] test icloud::photos::library::tests::test_clone_preserves_zone_name ... ok [INFO] [stdout] test icloud::photos::library::tests::test_zone_name_shared ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_build_changes_database_request_none ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_build_changes_database_request_some ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_build_changes_zone_request_with_token ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_desired_keys_contains_critical_fields ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_desired_keys_not_empty ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_build_changes_zone_request_custom_limit ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_build_changes_zone_request_without_token ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_desired_keys_values_matches_keys ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_encode_params_basic ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_encode_params_empty ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_encode_params_bool ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_encode_params_number ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_item_type_from_str_images ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_item_type_from_str_movie ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_encode_params_special_chars ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_item_type_all_raw_images ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_item_type_from_str_unknown ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_item_type_from_str_webp ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_encode_params_multiple_sorted ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_photo_version_lookup_contains_all_sizes ... ok [INFO] [stdout] test icloud::photos::queries::tests::test_video_version_lookup_has_original ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_changes_zone_error_bad_request_no_reason ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_changes_zone_error_no_error ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_changes_zone_error_zone_not_found ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_changes_zone_error_bad_request ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_changes_zone_error_unknown_code_is_unexpected ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_cloudkit_errors_access_denied_is_service_not_activated ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_cloudkit_errors_empty_records_ok ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_cloudkit_errors_authentication_failed_is_service_not_activated ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_cloudkit_errors_cas_op_lock ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_cloudkit_errors_no_reason_defaults_to_unknown ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_cloudkit_errors_pass_through_normal ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_cloudkit_errors_per_record ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_cloudkit_errors_private_db_disabled_by_reason ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_cloudkit_errors_server_error_message_fallback ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_cloudkit_errors_top_level_retryable ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_cloudkit_errors_throttled ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_cloudkit_errors_top_level_non_retryable ... ok [INFO] [stdout] test icloud::photos::session::tests::test_check_cloudkit_errors_zone_not_found_is_service_not_activated ... ok [INFO] [stdout] test icloud::photos::session::tests::test_classify_non_retryable_cloudkit_error ... ok [INFO] [stdout] test icloud::photos::session::tests::test_classify_non_reqwest_error_aborts ... ok [INFO] [stdout] test icloud::photos::session::tests::test_classify_retryable_cloudkit_error ... ok [INFO] [stdout] test icloud::photos::session::tests::test_cloudkit_server_error_display ... ok [INFO] [stdout] test icloud::photos::session::tests::test_is_service_not_activated_normal_error ... ok [INFO] [stdout] test icloud::photos::session::tests::test_sync_token_error_display_empty_reason ... ok [INFO] [stdout] test icloud::photos::session::tests::test_sync_token_error_display_invalid_token ... ok [INFO] [stdout] test icloud::photos::session::tests::test_sync_token_error_display_zone_not_found ... ok [INFO] [stdout] test icloud::photos::session::tests::test_sync_token_error_downcast_from_anyhow ... ok [INFO] [stdout] test icloud::photos::smart_folders::tests::test_all_smart_folders_have_nonempty_types ... ok [INFO] [stdout] test icloud::photos::smart_folders::tests::test_all_smart_folders_have_unique_names ... ok [INFO] [stdout] test icloud::photos::smart_folders::tests::test_bursts_has_no_filter ... ok [INFO] [stdout] test icloud::photos::smart_folders::tests::test_favorites_has_filter ... ok [INFO] [stdout] test icloud::photos::smart_folders::tests::test_recently_deleted_has_no_filter ... ok [INFO] [stdout] test icloud::photos::smart_folders::tests::test_smart_folder_filter_field_structure ... ok [INFO] [stdout] test icloud::photos::smart_folders::tests::test_smart_folder_filter_produces_valid_json ... ok [INFO] [stdout] test icloud::photos::smart_folders::tests::test_smart_folders_count ... ok [INFO] [stdout] test icloud::photos::smart_folders::tests::test_hidden_has_no_filter ... ok [INFO] [stdout] test icloud::photos::smart_folders::tests::test_smart_folders_names ... ok [INFO] [stdout] test icloud::photos::tests::test_changes_database_multiple_zones ... ok [INFO] [stdout] test icloud::photos::tests::test_changes_database_url_construction ... ok [INFO] [stdout] test icloud::photos::tests::test_changes_database_with_params_in_url ... ok [INFO] [stdout] test icloud::photos::tests::test_changes_database_with_token ... ok [INFO] [stdout] test icloud::photos::tests::test_changes_database_none_token ... ok [INFO] [stdout] test icloud::photos::types::tests::asset_version_size_variants_have_distinct_repr_values ... ok [INFO] [stdout] test auth::session::tests::test_persist_jar_cookies_no_redundant_writes ... ok [INFO] [stdout] test notifications::tests::event_as_str ... ok [INFO] [stdout] test icloud::photos::types::tests::from_version_size_all_variants ... ok [INFO] [stdout] test notifications::tests::notifier_none_is_noop ... ok [INFO] [stdout] test icloud::photos::library::tests::test_zone_name_missing_defaults_to_primary ... ok [INFO] [stdout] test notifications::tests::notify_with_nonexistent_script ... ok [INFO] [stdout] test notifications::tests::run_script_success ... ok [INFO] [stdout] test retry::tests::test_default_config ... ok [INFO] [stdout] test retry::tests::test_delay_capped_at_max ... ok [INFO] [stdout] test retry::tests::test_delay_exponential_backoff ... ok [INFO] [stdout] test retry::tests::test_delay_zero_base ... ok [INFO] [stdout] test notifications::tests::run_script_nonzero_exit ... ok [INFO] [stdout] test retry::tests::test_retry_exhausted ... ok [INFO] [stdout] test retry::tests::test_retry_abort_on_non_retryable ... ok [INFO] [stdout] test icloud::photos::types::tests::asset_version_size_is_one_byte ... ok [INFO] [stdout] test auth::session::tests::test_expired_cookies_pruned_on_load ... ok [INFO] [stdout] test retry::tests::test_retry_succeeds_after_failures ... ok [INFO] [stdout] test setup::tests::test_generate_toml_defaults_only ... ok [INFO] [stdout] test setup::tests::test_generate_toml_albums_array ... ok [INFO] [stdout] test setup::tests::test_generate_toml_full ... ok [INFO] [stdout] test setup::tests::test_generate_toml_enum_values ... ok [INFO] [stdout] test setup::tests::test_escape_toml_string ... ok [INFO] [stdout] test setup::tests::test_generate_toml_full_roundtrip_values ... ok [INFO] [stdout] test auth::session::tests::test_cookiejar_directory_at_path_skipped ... ok [INFO] [stdout] test shutdown::tests::child_tokens_observe_parent_cancel ... ok [INFO] [stdout] test setup::tests::test_generate_toml_roundtrip ... ok [INFO] [stdout] test shutdown::tests::token_starts_uncancelled ... ok [INFO] [stdout] test retry::tests::test_retry_succeeds_first_try ... ok [INFO] [stdout] test shutdown::tests::install_returns_live_token ... ok [INFO] [stdout] test state::db::tests::test_get_downloaded_checksums ... ok [INFO] [stdout] test state::db::tests::test_get_downloaded_ids ... ok [INFO] [stdout] test state::db::tests::test_get_all_downloaded ... ok [INFO] [stdout] test state::db::tests::test_get_summary ... ok [INFO] [stdout] test state::db::tests::test_get_all_known_ids ... ok [INFO] [stdout] test state::db::tests::test_mark_downloaded_batch_empty ... ok [INFO] [stdout] test state::db::tests::test_mark_failed_batch ... ok [INFO] [stdout] test state::db::tests::test_mark_failed_and_get_failed ... ok [INFO] [stdout] test auth::twofa::tests::submit_2fa_code_rejects_empty ... ok [INFO] [stdout] test state::db::tests::test_mark_downloaded_batch ... ok [INFO] [stdout] test state::db::tests::test_mark_failed_batch_empty ... ok [INFO] [stdout] test state::db::tests::test_mark_downloaded_then_should_not_download ... ok [INFO] [stdout] test state::db::tests::test_reset_failed ... ok [INFO] [stdout] test state::db::tests::test_metadata_get_set ... ok [INFO] [stdout] test state::db::tests::test_should_download_file_missing ... ok [INFO] [stdout] test state::db::tests::test_retry_failed_returns_zero_when_no_failures ... ok [INFO] [stdout] test state::db::tests::test_should_download_checksum_changed ... ok [INFO] [stdout] test state::db::tests::test_retry_failed_resets_only_failed ... ok [INFO] [stdout] test state::db::tests::test_upsert_and_should_download_pending ... ok [INFO] [stdout] test state::db::tests::test_sync_run_lifecycle ... ok [INFO] [stdout] test state::db::tests::test_upsert_preserves_status ... ok [INFO] [stdout] test state::error::tests::migration_from_rusqlite_error ... ok [INFO] [stdout] test state::error::tests::open_error_display_includes_path ... ok [INFO] [stdout] test state::error::tests::query_helper_creates_correct_variant ... ok [INFO] [stdout] test state::error::tests::query_display_format ... ok [INFO] [stdout] test state::error::tests::unsupported_schema_version_display_includes_both_versions ... ok [INFO] [stdout] test state::schema::tests::test_fresh_db_migration ... ok [INFO] [stdout] test state::schema::tests::test_idempotent_migration ... ok [INFO] [stdout] test state::db::tests::test_open_creates_db ... ok [INFO] [stdout] test state::schema::tests::test_unsupported_version ... ok [INFO] [stdout] test state::schema::tests::test_tables_created ... ok [INFO] [stdout] test state::schema::tests::test_v1_to_v3_migration ... ok [INFO] [stdout] test state::schema::tests::test_v2_to_v3_migration ... ok [INFO] [stdout] test state::types::tests::test_asset_record_new_pending ... ok [INFO] [stdout] test state::types::tests::test_asset_record_new_pending_with_added_at ... ok [INFO] [stdout] test state::types::tests::test_asset_record_size ... ok [INFO] [stdout] test state::types::tests::test_asset_status_from_invalid ... ok [INFO] [stdout] test state::types::tests::test_asset_status_is_one_byte ... ok [INFO] [stdout] test state::db::tests::test_should_download_not_in_db ... ok [INFO] [stdout] test state::types::tests::test_media_type_from_invalid ... ok [INFO] [stdout] test state::types::tests::test_asset_status_round_trip ... ok [INFO] [stdout] test state::db::tests::test_touch_last_seen ... ok [INFO] [stdout] test state::schema::tests::test_metadata_table_created ... ok [INFO] [stdout] test state::schema::tests::test_v1_to_v2_migration ... ok [INFO] [stdout] test state::schema::tests::test_indexes_created ... ok [INFO] [stdout] test state::types::tests::test_media_type_round_trip ... ok [INFO] [stdout] test state::types::tests::test_version_size_key_all_from_asset_version_size ... ok [INFO] [stdout] test state::types::tests::test_version_size_key_from_asset_version_size ... ok [INFO] [stdout] test state::types::tests::test_version_size_key_from_invalid ... ok [INFO] [stdout] test state::types::tests::test_version_size_key_from_str_aliases ... ok [INFO] [stdout] test state::types::tests::test_version_size_key_round_trip ... ok [INFO] [stdout] test state::types::tests::test_media_type_is_one_byte ... ok [INFO] [stdout] test state::types::tests::test_version_size_key_is_one_byte ... ok [INFO] [stdout] test state::types::tests::test_sync_run_stats_default ... ok [INFO] [stdout] test state::types::tests::test_version_size_key_size ... ok [INFO] [stdout] test systemd::tests::enabled_notifier_does_not_panic ... ok [INFO] [stdout] test tests::build_photos_params_empty_client_id ... ok [INFO] [stdout] test tests::build_photos_params_includes_client_id_and_dsid ... ok [INFO] [stdout] test tests::build_photos_params_no_dsid ... ok [INFO] [stdout] test tests::make_password_provider_with_some ... ok [INFO] [stdout] test tests::redacting_writer_flush ... ok [INFO] [stdout] test tests::pid_file_guard_creates_and_removes ... ok [INFO] [stdout] test tests::pid_file_guard_handles_missing_parent ... ok [INFO] [stdout] test tests::redacting_writer_replaces_password ... ok [INFO] [stdout] test tests::redacting_writer_short_buffer_passthrough ... ok [INFO] [stdout] test download::error::tests::test_http_connection_error_retryable ... ok [INFO] [stdout] test types::tests::domain_serde_round_trip ... ok [INFO] [stdout] test tests::verify_local_checksum_nonexistent_file_errors ... ok [INFO] [stdout] test types::tests::live_photo_mov_filename_policy_serde_round_trip ... ok [INFO] [stdout] test types::tests::live_photo_size_serde_round_trip ... ok [INFO] [stdout] test types::tests::log_level_serde_round_trip ... ok [INFO] [stdout] test types::tests::raw_treatment_policy_serde_round_trip ... ok [INFO] [stdout] test systemd::tests::disabled_notifier_is_noop ... ok [INFO] [stdout] test types::tests::test_domain_as_str ... ok [INFO] [stdout] test types::tests::file_match_policy_serde_round_trip ... ok [INFO] [stdout] test tests::redacting_writer_empty_password_passthrough ... ok [INFO] [stdout] test tests::redacting_writer_no_password_passthrough ... ok [INFO] [stdout] test types::tests::test_live_photo_size_to_asset_version_size ... ok [INFO] [stdout] test types::tests::version_size_serde_round_trip ... ok [INFO] [stdout] test tests::verify_local_checksum_mismatch ... ok [INFO] [stdout] test tests::verify_local_checksum_match ... ok [INFO] [stdout] test auth::session::tests::test_lock_file_prevents_concurrent_sessions ... ok [INFO] [stdout] test auth::twofa::tests::submit_2fa_code_rejects_non_digits ... ok [INFO] [stdout] test icloud::photos::session::tests::test_classify_network_error_retries ... ok [INFO] [stdout] test icloud::photos::session::tests::test_shared_session_implements_photos_session ... ok [INFO] [stdout] test auth::twofa::tests::submit_2fa_code_rejects_too_short ... ok [INFO] [stdout] test auth::session::tests::test_persist_jar_cookies_saves_and_reloads ... ok [INFO] [stdout] test auth::session::tests::test_lock_released_on_drop ... ok [INFO] [stdout] test auth::session::tests::test_lock_file_different_users_allowed ... ok [INFO] [stdout] test notifications::tests::notify_runs_script_with_env_vars ... ok [INFO] [stderr] Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-4a294bf778ccf02a) [INFO] [stdout] [INFO] [stdout] test result: ok. 684 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 1.22s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 72 tests [INFO] [stdout] test cookie_directory_flag_works_on_verify ... ok [INFO] [stdout] test file_match_policy_rejects_invalid ... ok [INFO] [stdout] test bare_invocation_with_username_and_directory_parses ... ok [INFO] [stdout] test domain_flag_works_on_status ... ok [INFO] [stdout] test album_flag_accepts_multiple ... ok [INFO] [stdout] test align_raw_rejects_invalid ... ok [INFO] [stdout] test config_flag_accepted ... ok [INFO] [stdout] test import_existing_recent_flag ... ok [INFO] [stdout] test import_existing_help_succeeds ... ok [INFO] [stdout] test domain_rejects_invalid ... ok [INFO] [stdout] test help_flag_succeeds ... ok [INFO] [stdout] test help_lists_all_subcommands ... ok [INFO] [stdout] test import_existing_requires_directory ... ok [INFO] [stdout] test import_existing_accepts_no_progress_bar ... ok [INFO] [stdout] test live_photo_size_rejects_invalid ... ok [INFO] [stdout] test live_photo_mov_filename_policy_rejects_invalid ... ok [INFO] [stdout] test import_existing_folder_structure_flag ... ok [INFO] [stdout] test live_photo_mov_filename_policy_accepts_valid ... ok [INFO] [stdout] test no_incremental_and_reset_sync_token_together ... ok [INFO] [stdout] test max_retries_rejects_non_numeric ... ok [INFO] [stdout] test log_level_before_subcommand ... ok [INFO] [stdout] test domain_accepts_com_and_cn ... ok [INFO] [stdout] test log_level_invalid_rejected ... ok [INFO] [stdout] test import_existing_short_d_flag ... ok [INFO] [stdout] test file_match_policy_accepts_valid ... ok [INFO] [stdout] test password_flag_works_on_submit_code ... ok [INFO] [stdout] test only_print_filenames_visible_in_help ... ok [INFO] [stdout] test align_raw_accepts_valid ... ok [INFO] [stdout] test retry_delay_rejects_non_numeric ... ok [INFO] [stdout] test retry_failed_accepts_sync_token_flags ... ok [INFO] [stdout] test log_level_debug_accepted ... ok [INFO] [stdout] test reset_state_help_succeeds ... ok [INFO] [stdout] test password_from_env_var ... ok [INFO] [stdout] test short_u_flag_accepted ... ok [INFO] [stdout] test short_l_flag_accepted ... ok [INFO] [stdout] test config_explicit_nonexistent_path_fails_at_runtime ... ok [INFO] [stdout] test status_help_succeeds ... ok [INFO] [stdout] test live_photo_size_accepts_valid ... ok [INFO] [stdout] test size_rejects_invalid_variant ... ok [INFO] [stdout] test short_d_flag_accepted ... ok [INFO] [stdout] test retry_failed_accepts_sync_flags ... ok [INFO] [stdout] test recent_rejects_non_numeric ... ok [INFO] [stdout] test short_y_flag_on_reset_state ... ok [INFO] [stdout] test short_a_flag_accepted ... ok [INFO] [stdout] test retry_failed_help_succeeds ... ok [INFO] [stdout] test submit_code_requires_code_argument ... ok [INFO] [stdout] test sync_help_succeeds ... ok [INFO] [stdout] test short_p_flag_accepted ... ok [INFO] [stdout] test threads_num_rejects_zero ... ok [INFO] [stdout] test submit_code_accepts_code_argument ... ok [INFO] [stdout] test submit_code_help_succeeds ... ok [INFO] [stdout] test unknown_flag_fails ... ok [INFO] [stdout] test sync_help_lists_sync_token_flags ... ok [INFO] [stdout] test threads_num_rejects_negative ... ok [INFO] [stdout] test unknown_flag_on_status_fails ... ok [INFO] [stdout] test threads_num_rejects_non_numeric ... ok [INFO] [stdout] test unknown_flag_on_subcommand_fails ... ok [INFO] [stdout] test log_level_global_flag_works_with_all_subcommands ... ok [INFO] [stdout] test size_accepts_all_valid_variants ... ok [INFO] [stdout] test watch_with_interval_rejects_non_numeric ... ok [INFO] [stdout] test verify_help_succeeds ... ok [INFO] [stdout] test log_level_all_variants_accepted ... ok [INFO] [stdout] test username_from_env_var ... ok [INFO] [stdout] test unknown_subcommand_fails ... ok [INFO] [stdout] test threads_num_accepts_positive ... ok [INFO] [stdout] test version_flag ... ok [INFO] [stdout] test config_global_flag_works_with_all_subcommands ... ok [INFO] [stdout] test submit_code_fails_without_username ... ok [INFO] [stdout] test boolean_sync_flags_accepted ... ok [INFO] [stdout] test unknown_flag_on_all_subcommands_fails ... ok [INFO] [stdout] test value_sync_flags_accepted ... ok [INFO] [stdout] test auth_flags_accepted_on_all_subcommands ... ok [INFO] [stderr] Running tests/setup_auth.rs (/opt/rustwide/target/debug/deps/setup_auth-d263ac831f1368a5) [INFO] [stdout] [INFO] [stdout] test result: ok. 72 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.74s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test verify_preauth_session ... ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/state.rs (/opt/rustwide/target/debug/deps/state-e0106a028ab48719) [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test verify_no_db_prints_informational_message ... ok [INFO] [stdout] test status_failed_flag_accepted ... ok [INFO] [stdout] test reset_state_no_db_prints_message ... ok [INFO] [stdout] test status_no_db_prints_informational_message ... ok [INFO] [stdout] test metadata_missing_key_returns_no_rows ... ok [INFO] [stdout] test metadata_empty_string_is_stored_not_null ... ok [INFO] [stdout] test metadata_persists_across_close_and_reopen ... ok [INFO] [stdout] test metadata_upsert_overwrites_existing_value ... ok [INFO] [stdout] test metadata_clear_token_by_setting_empty ... ok [INFO] [stdout] test metadata_multiple_zone_tokens_isolated ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stderr] Running tests/state_auth.rs (/opt/rustwide/target/debug/deps/state_auth-95a9f6df8e0624b8) [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test import_existing_custom_folder_structure ... ok [INFO] [stdout] test verify_after_sync_reports_results ... ok [INFO] [stdout] test verify_checksums_detects_corruption ... ok [INFO] [stdout] test reset_state_deletes_db_after_sync ... ok [INFO] [stdout] test verify_checksums_after_sync ... ok [INFO] [stdout] test reset_state_without_yes_does_not_delete ... ok [INFO] [stdout] test import_existing_with_nonexistent_directory_fails ... ok [INFO] [stdout] test import_existing_matches_synced_files ... ok [INFO] [stdout] test import_existing_empty_directory_reports_zero_matches ... ok [INFO] [stdout] test retry_failed_with_no_db_succeeds ... ok [INFO] [stdout] test dry_run_stores_sync_token_bug ... ok [INFO] [stdout] test status_after_sync_shows_counts ... ok [INFO] [stdout] test verify_detects_missing_files ... ok [INFO] [stdout] test retry_failed_after_successful_sync_is_noop ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.00s [INFO] [stdout] [INFO] [stderr] Running tests/sync.rs (/opt/rustwide/target/debug/deps/sync-8f4a06f572778442) [INFO] [stdout] [INFO] [stdout] running 27 tests [INFO] [stdout] test sync_keep_unicode_preserves_special_chars ... ok [INFO] [stdout] test sync_date_filters_exclude_by_creation_date ... ok [INFO] [stdout] test list_libraries_prints_output ... ok [INFO] [stdout] test sync_custom_folder_structure ... ok [INFO] [stdout] test sync_live_photo_mov_policy_controls_naming ... ok [INFO] [stdout] test sync_align_raw_controls_raw_naming ... ok [INFO] [stdout] test sync_nonexistent_album_fails ... ok [INFO] [stdout] test sync_force_size_succeeds_when_available ... ok [INFO] [stdout] test sync_dry_run_downloads_nothing ... ok [INFO] [stdout] test sync_notification_script_fires_event ... ok [INFO] [stdout] test sync_name_id7_appends_asset_id ... ok [INFO] [stdout] test sync_album_downloads_all_asset_types ... ok [INFO] [stdout] test list_albums_prints_album_names ... ok [INFO] [stdout] test sync_bare_invocation_works_like_sync ... ok [INFO] [stdout] test sync_idempotent_second_run_noop ... ok [INFO] [stdout] test sync_pid_file_cleaned_up_after_sync ... ok [INFO] [stdout] test sync_nonexistent_library_fails ... ok [INFO] [stdout] test zz_bad_credentials_fails ... ok [INFO] [stdout] test sync_set_exif_datetime_embeds_date ... ok [INFO] [stdout] test sync_skip_live_photos_excludes_companions ... ok [INFO] [stdout] test sync_skip_videos_excludes_video_files ... ok [INFO] [stdout] test sync_temp_suffix_leaves_no_remnants ... ok [INFO] [stdout] test sync_threads_num_reflected_in_log ... ok [INFO] [stdout] test sync_without_directory_fails ... ok [INFO] [stdout] test sync_skip_all_media_downloads_nothing ... ok [INFO] [stdout] test sync_size_medium_produces_smaller_files ... ok [INFO] [stdout] test sync_skip_photos_excludes_image_files ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 16.03s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "7dff8ad863469ea1ac43e4887865dc790c5a4a1d4839363fdd020ef21361d56a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7dff8ad863469ea1ac43e4887865dc790c5a4a1d4839363fdd020ef21361d56a", kill_on_drop: false }` [INFO] [stdout] 7dff8ad863469ea1ac43e4887865dc790c5a4a1d4839363fdd020ef21361d56a