[INFO] cloning repository https://github.com/davidfmelian-cpu/Google-cli [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/davidfmelian-cpu/Google-cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavidfmelian-cpu%2FGoogle-cli", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavidfmelian-cpu%2FGoogle-cli'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a3768d0e82ad83cca2da97724e46bea4ff0e6dbd [INFO] testing davidfmelian-cpu/Google-cli against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavidfmelian-cpu%2FGoogle-cli" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/davidfmelian-cpu/Google-cli [INFO] finished tweaking git repo https://github.com/davidfmelian-cpu/Google-cli [INFO] tweaked toml for git repo https://github.com/davidfmelian-cpu/Google-cli written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/davidfmelian-cpu/Google-cli on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/davidfmelian-cpu/Google-cli 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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f19f824cd9d7b4c40dfd9d2719272af9e64f321eb5c9e266ba665e40d7fe7a35 [INFO] running `Command { std: "docker" "start" "-a" "f19f824cd9d7b4c40dfd9d2719272af9e64f321eb5c9e266ba665e40d7fe7a35", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f19f824cd9d7b4c40dfd9d2719272af9e64f321eb5c9e266ba665e40d7fe7a35", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f19f824cd9d7b4c40dfd9d2719272af9e64f321eb5c9e266ba665e40d7fe7a35", kill_on_drop: false }` [INFO] [stdout] f19f824cd9d7b4c40dfd9d2719272af9e64f321eb5c9e266ba665e40d7fe7a35 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 85e292f6fac9e83255888ee44b8f8dca63f1f0b644db82b304e553c59bb389e5 [INFO] running `Command { std: "docker" "start" "-a" "85e292f6fac9e83255888ee44b8f8dca63f1f0b644db82b304e553c59bb389e5", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling writeable v0.6.2 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling litemap v0.8.1 [INFO] [stderr] Compiling cc v1.2.58 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling num-conv v0.2.1 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling cpufeatures v0.2.17 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling phf v0.11.3 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling universal-hash v0.5.1 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling line-clipping v0.3.7 [INFO] [stderr] Compiling iri-string v0.7.12 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling opaque-debug v0.3.1 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling polyval v0.6.2 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling mime_guess2 v2.3.1 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling ghash v0.5.1 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling ctr v0.9.2 [INFO] [stderr] Compiling aead v0.5.2 [INFO] [stderr] Compiling sha1_smol v1.0.1 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling seahash v4.1.0 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling aes-gcm v0.10.3 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling mail-builder v0.4.4 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling hostname v0.4.2 [INFO] [stderr] Compiling keyring v3.6.3 [INFO] [stderr] Compiling dotenvy v0.15.7 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling chrono-tz v0.10.4 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling time v0.3.47 [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 serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling zeroize_derive v1.4.3 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling kasuari v0.4.12 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling rustls-webpki v0.103.10 [INFO] [stderr] Compiling rustls-native-certs v0.8.3 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling derive_builder v0.20.2 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tracing-appender v0.2.4 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling yup-oauth2 v12.1.2 [INFO] [stderr] Compiling google-workspace v0.22.5 (/opt/rustwide/workdir/crates/google-workspace) [INFO] [stderr] Compiling google-workspace-cli v0.22.5 (/opt/rustwide/workdir/crates/google-workspace-cli) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 02s [INFO] running `Command { std: "docker" "inspect" "85e292f6fac9e83255888ee44b8f8dca63f1f0b644db82b304e553c59bb389e5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "85e292f6fac9e83255888ee44b8f8dca63f1f0b644db82b304e553c59bb389e5", kill_on_drop: false }` [INFO] [stdout] 85e292f6fac9e83255888ee44b8f8dca63f1f0b644db82b304e553c59bb389e5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ab0c172fa73946fc4406cc66d3dababb4aced17f9afdbcc65d0bce030744dbec [INFO] running `Command { std: "docker" "start" "-a" "ab0c172fa73946fc4406cc66d3dababb4aced17f9afdbcc65d0bce030744dbec", kill_on_drop: false }` [INFO] [stderr] Compiling sdd v3.0.10 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling serial_test_derive v3.4.0 [INFO] [stderr] Compiling scc v2.4.0 [INFO] [stderr] Compiling serial_test v3.4.0 [INFO] [stderr] Compiling google-workspace v0.22.5 (/opt/rustwide/workdir/crates/google-workspace) [INFO] [stderr] Compiling google-workspace-cli v0.22.5 (/opt/rustwide/workdir/crates/google-workspace-cli) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 26.00s [INFO] running `Command { std: "docker" "inspect" "ab0c172fa73946fc4406cc66d3dababb4aced17f9afdbcc65d0bce030744dbec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ab0c172fa73946fc4406cc66d3dababb4aced17f9afdbcc65d0bce030744dbec", kill_on_drop: false }` [INFO] [stdout] ab0c172fa73946fc4406cc66d3dababb4aced17f9afdbcc65d0bce030744dbec [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 3ba280b883366c2935478a49279d6840a23b7e4c8f7a0350978c42e1ae37f256 [INFO] running `Command { std: "docker" "start" "-a" "3ba280b883366c2935478a49279d6840a23b7e4c8f7a0350978c42e1ae37f256", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.50s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/google_workspace-68482b7a92e44d9c) [INFO] [stdout] [INFO] [stdout] running 82 tests [INFO] [stdout] test client::tests::retry_delay_caps_at_boundary ... ok [INFO] [stdout] test client::tests::retry_delay_caps_large_header_value ... ok [INFO] [stdout] test client::tests::retry_delay_falls_back_on_unparseable_header ... ok [INFO] [stdout] test error::tests::test_error_to_json_access_not_configured_with_url ... ok [INFO] [stdout] test error::tests::test_error_to_json_access_not_configured_without_url ... ok [INFO] [stdout] test client::tests::retry_delay_falls_back_to_exponential_on_missing_header ... ok [INFO] [stdout] test discovery::tests::test_deserialize_defaults ... ok [INFO] [stdout] test error::tests::test_error_to_json_auth ... ok [INFO] [stdout] test error::tests::test_exit_code_auth ... ok [INFO] [stdout] test error::tests::test_error_to_json_other ... ok [INFO] [stdout] test error::tests::test_exit_code_discovery ... ok [INFO] [stdout] test error::tests::test_exit_code_validation ... ok [INFO] [stdout] test services::tests::test_resolve_service_known ... ok [INFO] [stdout] test error::tests::test_error_to_json_validation ... ok [INFO] [stdout] test error::tests::test_exit_code_other ... ok [INFO] [stdout] test validate::tests::test_dir_path_cwd ... ok [INFO] [stdout] test error::tests::test_error_to_json_api ... ok [INFO] [stdout] test client::tests::retry_delay_passes_through_small_header_value ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_already_encoded ... ok [INFO] [stdout] test validate::tests::test_dir_path_rejects_absolute ... ok [INFO] [stdout] test validate::tests::test_encode_path_preserving_slashes_escapes_reserved_chars ... ok [INFO] [stdout] test validate::tests::test_encode_path_preserving_slashes_spaces_and_unicode ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_path_traversal ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_plain_id ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_spaces ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_unicode ... ok [INFO] [stdout] test validate::tests::test_file_path_rejects_control_chars ... ok [INFO] [stdout] test validate::tests::test_encode_path_preserving_slashes_hierarchical_name ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_query_injection ... ok [INFO] [stdout] test validate::tests::test_file_path_rejects_symlink_escape ... ok [INFO] [stdout] test validate::tests::test_dir_path_rejects_traversal ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_control_chars ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_absolute ... ok [INFO] [stdout] test validate::tests::test_file_path_rejects_traversal_via_nonexistent_prefix ... ok [INFO] [stdout] test validate::tests::test_file_path_relative_is_ok ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_email ... ok [INFO] [stdout] test validate::tests::test_output_dir_non_existing_subdir ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_fragment_injection ... ok [INFO] [stdout] test validate::tests::test_file_path_rejects_traversal ... ok [INFO] [stdout] test error::tests::test_error_to_json_discovery ... ok [INFO] [stdout] test error::tests::test_exit_codes_are_distinct ... ok [INFO] [stdout] test discovery::tests::test_deserialize_rest_description ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_rtl_override ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_symlink_traversal ... ok [INFO] [stdout] test error::tests::test_exit_code_api ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_null_bytes ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_zero_width_chars ... ok [INFO] [stdout] test validate::tests::test_reject_dangerous_chars_bom ... ok [INFO] [stdout] test validate::tests::test_reject_dangerous_chars_clean ... ok [INFO] [stdout] test validate::tests::test_reject_dangerous_chars_newline ... ok [INFO] [stdout] test validate::tests::test_reject_dangerous_chars_paragraph_separator ... ok [INFO] [stdout] test validate::tests::test_reject_dangerous_chars_rtl_override ... ok [INFO] [stdout] test validate::tests::test_reject_dangerous_chars_tab ... ok [INFO] [stdout] test validate::tests::test_validate_api_identifier_empty ... ok [INFO] [stdout] test validate::tests::test_validate_api_identifier_rejects_path_traversal ... ok [INFO] [stdout] test validate::tests::test_reject_dangerous_chars_zero_width_joiner ... ok [INFO] [stdout] test validate::tests::test_validate_api_identifier_valid ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_bidi_embedding ... ok [INFO] [stdout] test validate::tests::test_reject_dangerous_chars_zero_width_space ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_traversal ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_control_chars ... ok [INFO] [stdout] test validate::tests::test_reject_dangerous_chars_unicode_line_separator ... ok [INFO] [stdout] test validate::tests::test_validate_api_identifier_rejects_special_chars ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_empty ... ok [INFO] [stdout] test validate::tests::test_reject_dangerous_chars_del ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_homoglyphs_pass_through ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_percent_bypass ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_query_injection ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_rtl_override ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_zero_width_chars ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_overlong_accepted ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_traversal ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_valid ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_unicode_line_separator ... ok [INFO] [stdout] test validate::tests::test_output_dir_relative_subdir ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_unicode_line_seps ... ok [INFO] [stdout] test services::tests::test_resolve_service_unknown ... ok [INFO] [stdout] test validate::tests::test_reject_dangerous_chars_normal_unicode_ok ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_error_messages_are_clear ... ok [INFO] [stdout] test client::tests::build_client_succeeds ... ok [INFO] [stdout] test client::tests::shared_client_succeeds ... ok [INFO] [stdout] test client::tests::shared_client_can_be_reused ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 82 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/gws-6d717f36a9177b69) [INFO] [stdout] [INFO] [stdout] running 709 tests [INFO] [stdout] test auth::tests::response_text_or_placeholder_returns_placeholder_on_error ... ok [INFO] [stdout] test auth::tests::has_proxy_env_returns_false_when_unset ... ok [INFO] [stdout] test auth::tests::has_proxy_env_returns_true_when_set ... ok [INFO] [stdout] test auth::tests::response_text_or_placeholder_returns_body ... ok [INFO] [stdout] test auth::tests::test_get_quota_project_priority_config ... ok [INFO] [stdout] test auth::tests::test_get_quota_project_priority_env_var ... ok [INFO] [stdout] test auth::tests::test_get_quota_project_reads_adc ... ok [INFO] [stdout] test auth::tests::test_load_credentials_env_file_missing ... ok [INFO] [stdout] test auth_commands::tests::build_proxy_auth_url_encodes_scope_and_redirect_uri ... ok [INFO] [stdout] test auth::tests::test_scoped_token_provider_uses_get_token ... ok [INFO] [stdout] test auth_commands::tests::config_dir_primary_uses_dot_config ... ok [INFO] [stdout] test auth::tests::test_load_credentials_default_path_authorized_user ... ok [INFO] [stdout] test auth::tests::test_load_credentials_env_file_authorized_user ... ok [INFO] [stdout] test auth_commands::tests::extract_authorization_code_rejects_missing_code ... ok [INFO] [stdout] test auth_commands::tests::extract_authorization_code_returns_code ... ok [INFO] [stdout] test auth_commands::tests::extract_refresh_token_empty_array ... ok [INFO] [stdout] test auth_commands::tests::extract_refresh_token_from_yup_oauth2_format ... ok [INFO] [stdout] test auth_commands::tests::extract_refresh_token_invalid_json ... ok [INFO] [stdout] test auth::tests::test_load_credentials_env_file_service_account ... ok [INFO] [stdout] test auth_commands::tests::extract_refresh_token_missing_token ... ok [INFO] [stdout] test auth_commands::tests::extract_refresh_token_object_format ... ok [INFO] [stdout] test auth_commands::tests::extract_scopes_from_doc_filters_app_only ... ok [INFO] [stdout] test auth_commands::tests::credential_store_save_load_round_trip ... ok [INFO] [stdout] test auth::tests::test_load_credentials_adc_env_var_authorized_user ... ok [INFO] [stdout] test auth_commands::tests::extract_scopes_from_doc_empty_auth ... ok [INFO] [stdout] test auth_commands::tests::extract_scopes_from_doc_readonly_filter ... ok [INFO] [stdout] test auth_commands::tests::filter_restrictive_removes_metadata_when_broader_present ... ok [INFO] [stdout] test auth_commands::tests::filter_restrictive_removes_metadata_when_full_gmail_present ... ok [INFO] [stdout] test auth_commands::tests::filter_scopes_by_services_empty_set_returns_all ... ok [INFO] [stdout] test auth_commands::tests::filter_restrictive_keeps_metadata_when_only_scope ... ok [INFO] [stdout] Manage authentication for Google Workspace APIs [INFO] [stdout] [INFO] [stdout] Usage: auth [COMMAND] [INFO] [stdout] [INFO] [stdout] Commands: [INFO] [stdout] login Authenticate via OAuth2 (opens browser) [INFO] [stdout] setup Configure GCP project + OAuth client (requires gcloud) [INFO] [stdout] status Show current authentication state [INFO] [stdout] export Print decrypted credentials to stdout [INFO] [stdout] logout Clear saved credentials and token cache [INFO] [stdout] help Print this message or the help of the given subcommand(s) [INFO] [stdout] [INFO] [stdout] Options: [INFO] [stdout] -h, --help Print help [INFO] [stdout] test auth_commands::tests::filter_scopes_by_services_none_returns_all ... ok [INFO] [stdout] test auth_commands::tests::find_unmatched_services_identifies_missing ... ok [INFO] [stdout] test auth::tests::test_get_quota_project_priority_adc_fallback ... ok [INFO] [stdout] test auth::tests::test_load_credentials_encrypted_takes_priority_over_default ... ok [INFO] [stdout] test auth::tests::test_load_credentials_adc_env_var_service_account ... ok [INFO] [stdout] test auth_commands::tests::handle_auth_command_empty_args_prints_usage ... ok [INFO] [stdout] test auth::tests::test_load_credentials_adc_env_var_missing_file ... ok [INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_apps_groups_settings ... ok [INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_apps_licensing ... ok [INFO] [stdout] Manage authentication for Google Workspace APIs [INFO] [stdout] [INFO] [stdout] Usage: auth [COMMAND] [INFO] [stdout] [INFO] [stdout] Commands: [INFO] [stdout] login Authenticate via OAuth2 (opens browser) [INFO] [stdout] setup Configure GCP project + OAuth client (requires gcloud) [INFO] [stdout] status Show current authentication state [INFO] [stdout] export Print decrypted credentials to stdout [INFO] [stdout] logout Clear saved credentials and token cache [INFO] [stdout] help Print this message or the help of the given subcommand(s) [INFO] [stdout] [INFO] [stdout] Options: [INFO] [stdout] -h, --help Print help [INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_chat_admin ... ok [INFO] [stdout] test auth_commands::tests::handle_auth_command_invalid_subcommand ... ok [INFO] [stdout] test auth_commands::tests::handle_status_succeeds_without_credentials ... ok [INFO] [stdout] test auth_commands::tests::handle_auth_command_help_short_flag_returns_ok ... ok [INFO] [stdout] Manage authentication for Google Workspace APIs [INFO] [stdout] [INFO] [stdout] Usage: auth [COMMAND] [INFO] [stdout] [INFO] [stdout] Commands: [INFO] [stdout] login Authenticate via OAuth2 (opens browser) [INFO] [stdout] setup Configure GCP project + OAuth client (requires gcloud) [INFO] [stdout] status Show current authentication state [INFO] [stdout] export Print decrypted credentials to stdout [INFO] [stdout] logout Clear saved credentials and token cache [INFO] [stdout] help Print this message or the help of the given subcommand(s) [INFO] [stdout] [INFO] [stdout] Options: [INFO] [stdout] -h, --help Print help [INFO] [stdout] test auth_commands::tests::handle_auth_command_help_flag_returns_ok ... ok [INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_directory_readonly ... ok [INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_ediscovery ... ok [INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_apps_alerts ... ok [INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_normal_scopes_not_admin ... ok [INFO] [stdout] test auth_commands::tests::mask_secret_boundary ... ok [INFO] [stdout] test auth_commands::tests::mask_secret_multibyte_utf8 ... ok [INFO] [stdout] test auth_commands::tests::mask_secret_long_string ... ok [INFO] [stdout] test auth_commands::tests::mask_secret_short_string ... ok [INFO] [stdout] test auth_commands::tests::read_refresh_token_from_cache_reads_encrypted_storage ... ok [INFO] [stdout] test auth::tests::test_load_credentials_corrupt_encrypted_falls_through_to_plaintext ... ok [INFO] [stdout] test auth_commands::tests::resolve_client_credentials_from_env_vars ... ok [INFO] [stdout] test auth_commands::tests::resolve_credentials_fails_without_env_vars_or_config ... ok [INFO] [stdout] test auth_commands::tests::read_refresh_token_from_cache_requires_refresh_token ... ok [INFO] [stdout] test auth::tests::test_load_credentials_encrypted_file ... ok [INFO] [stdout] test auth::tests::test_get_token_env_var_empty_falls_through ... ok [INFO] [stdout] test auth_commands::tests::config_dir_fallback_to_legacy ... ok [INFO] [stdout] test auth_commands::tests::config_dir_returns_gws_subdir ... ok [INFO] [stdout] test auth_commands::tests::plain_credentials_path_respects_env_var ... ok [INFO] [stdout] test auth_commands::tests::plain_credentials_path_defaults_to_config_dir ... ok [INFO] [stdout] test auth::tests::test_load_credentials_no_options ... ok [INFO] [stdout] test auth_commands::tests::resolve_credentials_uses_env_vars_when_present ... ok [INFO] [stdout] test auth::tests::test_load_credentials_corrupt_encrypted_file_is_removed ... ok [INFO] [stdout] test auth::tests::test_get_token_from_env_var ... ok [INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_classroom ... ok [INFO] [stdout] test auth_commands::tests::resolve_client_credentials_missing_env_vars_uses_config ... ok [INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_cloud_identity ... ok [INFO] [stdout] test auth_commands::tests::scope_matches_service_aliases ... ok [INFO] [stdout] test auth_commands::tests::scope_matches_service_cloud_platform_always_matches ... ok [INFO] [stdout] test auth_commands::tests::scope_matches_service_no_match ... ok [INFO] [stdout] test auth_commands::tests::scope_matches_service_no_partial_name_collision ... ok [INFO] [stdout] test auth_commands::tests::scope_matches_service_chat ... ok [INFO] [stdout] test auth_commands::tests::scope_matches_service_exact_match ... ok [INFO] [stdout] test auth_commands::tests::scope_matches_service_people_contacts ... ok [INFO] [stdout] test auth_commands::tests::token_cache_path_is_in_config_dir ... ok [INFO] [stdout] test commands::tests::test_all_commands_always_shown ... ok [INFO] [stdout] test auth_commands::tests::scope_matches_service_prefix_match ... ok [INFO] [stdout] test credential_store::tests::backend_from_env_file_uppercase ... ok [INFO] [stdout] test credential_store::tests::backend_from_env_invalid_defaults_to_keyring ... ok [INFO] [stdout] test credential_store::tests::decrypt_rejects_short_data ... ok [INFO] [stdout] test credential_store::tests::decrypt_rejects_tampered_ciphertext ... ok [INFO] [stdout] test credential_store::tests::each_encryption_produces_different_output ... ok [INFO] [stdout] test credential_store::tests::encrypt_decrypt_empty ... ok [INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_groups ... ok [INFO] [stdout] test auth_commands::tests::find_unmatched_services_all_matched ... ok [INFO] [stdout] test credential_store::tests::ensure_key_dir_creates_nested_dirs ... ok [INFO] [stdout] test credential_store::tests::encrypt_decrypt_round_trip ... ok [INFO] [stdout] test credential_store::tests::file_backend_skips_keyring_entirely ... ok [INFO] [stdout] test auth_commands::tests::resolve_scopes_full_returns_full_scopes ... ok [INFO] [stdout] test credential_store::tests::file_backend_generates_when_missing ... ok [INFO] [stdout] test commands::tests::test_sanitize_arg_present ... ok [INFO] [stdout] test credential_store::tests::backend_default_is_keyring ... ok [INFO] [stdout] test credential_store::tests::backend_from_env_file_lowercase ... ok [INFO] [stdout] test credential_store::tests::file_backend_reads_existing_key ... ok [INFO] [stdout] test credential_store::tests::get_or_create_key_is_deterministic ... ok [INFO] [stdout] test credential_store::tests::get_or_create_key_produces_256_bits ... ok [INFO] [stdout] test credential_store::tests::keyring_backend_invalid_keyring_data_uses_file ... ok [INFO] [stdout] test auth_commands::tests::resolve_scopes_explicit_scopes_bypass_services_filter ... ok [INFO] [stdout] test auth_commands::tests::resolve_scopes_services_filter_unknown_service_ignored ... ok [INFO] [stdout] test credential_store::tests::keyring_backend_no_entry_reads_file ... ok [INFO] [stdout] test auth_commands::tests::resolve_scopes_returns_custom_scopes ... ok [INFO] [stdout] test credential_store::tests::keyring_backend_platform_error_falls_back_to_file ... ok [INFO] [stdout] test auth_commands::tests::resolve_scopes_services_takes_priority_with_full ... ok [INFO] [stdout] test credential_store::tests::keyring_backend_no_entry_no_file_keyring_set_fails ... ok [INFO] [stdout] test credential_store::tests::keyring_backend_creates_file_backup_when_missing ... ok [INFO] [stdout] test credential_store::tests::keyring_backend_no_entry_no_file_generates_and_saves_both ... ok [INFO] [stdout] test credential_store::tests::race_loser_syncs_winner_key_to_keyring ... ok [INFO] [stdout] test credential_store::tests::keyring_backend_returns_keyring_key ... ok [INFO] [stdout] test auth_commands::tests::resolve_scopes_with_services_filter ... ok [INFO] [stdout] test credential_store::tests::read_key_file_missing ... ok [INFO] [stdout] test credential_store::tests::read_key_file_wrong_length ... ok [INFO] [stdout] test credential_store::tests::save_key_file_exclusive_rejects_existing_file ... ok [INFO] [stdout] test auth_commands::tests::resolve_scopes_readonly_returns_readonly_scopes ... ok [INFO] [stdout] test error::tests::test_error_label_contains_variant_name ... ok [INFO] [stdout] test error::tests::test_colorize_respects_no_color_env ... ok [INFO] [stdout] test error::tests::test_sanitize_for_terminal_strips_control_chars ... ok [INFO] [stdout] test credential_store::tests::race_loser_corrupt_file_overwrites ... ok [INFO] [stdout] test credential_store::tests::read_key_file_valid ... ok [INFO] [stdout] test credential_store::tests::read_key_file_invalid_base64 ... ok [INFO] [stdout] test executor::test_extract_enable_url_typical_message ... ok [INFO] [stdout] test credential_store::tests::keyring_backend_platform_error_no_file_generates ... ok [INFO] [stdout] test credential_store::tests::key_is_stable_across_calls ... ok [INFO] [stdout] test auth_commands::tests::resolve_scopes_returns_defaults_when_no_flag ... ok [INFO] [stdout] test executor::test_get_value_type_helper ... ok [INFO] [stdout] test executor::test_handle_error_response_access_not_configured_with_url ... ok [INFO] [stdout] test credential_store::tests::save_key_file_overwrites_existing ... ok [INFO] [stdout] test executor::tests::test_build_multipart_body ... ok [INFO] [stdout] test credential_store::tests::save_key_file_exclusive_creates_new_file ... ok [INFO] [stdout] test executor::test_handle_error_response_non_json ... ok [INFO] [stdout] test executor::tests::test_auth_method_equality ... ok [INFO] [stdout] test executor::test_handle_error_response_access_not_configured_errors_array ... ok [INFO] [stdout] test executor::tests::test_build_multipart_body_no_metadata ... ok [INFO] [stdout] test executor::tests::test_build_multipart_bytes_with_metadata ... ok [INFO] [stdout] test executor::tests::test_build_multipart_bytes_without_metadata ... ok [INFO] [stdout] test credential_store::tests::keyring_backend_syncs_file_when_keyring_differs ... ok [INFO] [stdout] test executor::tests::test_build_url_basic ... ok [INFO] [stdout] test executor::tests::test_build_url_encodes_path_parameter_chars ... ok [INFO] [stdout] test executor::tests::test_build_url_errors_for_path_param_not_in_template ... ok [INFO] [stdout] test executor::tests::test_build_url_plus_expansion_preserves_slashes ... ok [INFO] [stdout] test executor::tests::test_build_url_flatpath_fallback_on_mismatch ... ok [INFO] [stdout] test executor::tests::test_build_url_plus_expansion_rejects_reserved_chars ... ok [INFO] [stdout] test executor::tests::test_build_multipart_stream_content_length ... ok [INFO] [stdout] test executor::tests::test_build_url_plus_expansion_rejects_path_traversal ... ok [INFO] [stdout] test executor::tests::test_build_url_query_params ... ok [INFO] [stdout] test executor::tests::test_build_url_does_not_replace_placeholder_like_values ... ok [INFO] [stdout] test executor::tests::test_build_url_substitution ... ok [INFO] [stdout] test executor::tests::test_build_multipart_stream_large_file ... ok [INFO] [stdout] test executor::tests::test_handle_error_response_401 ... ok [INFO] [stdout] test executor::tests::test_handle_error_response_401_with_oauth_does_not_mask_error ... ok [INFO] [stdout] test executor::tests::test_mime_to_extension_more_types ... ok [INFO] [stdout] test executor::tests::test_pagination_config_default ... ok [INFO] [stdout] test executor::tests::test_resolve_upload_mime_explicit_enables_import_conversion ... ok [INFO] [stdout] test executor::tests::test_handle_error_response_api_error ... ok [INFO] [stdout] test executor::tests::test_resolve_upload_mime_explicit_flag ... ok [INFO] [stdout] test executor::tests::test_resolve_upload_mime_extension_beats_metadata ... ok [INFO] [stdout] test executor::tests::test_resolve_upload_mime_extension_when_no_metadata ... ok [INFO] [stdout] test executor::tests::test_build_url_upload_endpoint_substitutes_path_params ... ok [INFO] [stdout] test executor::tests::test_resolve_upload_mime_fallback ... ok [INFO] [stdout] test executor::tests::test_resolve_upload_mime_metadata_fallback_for_unknown_extension ... ok [INFO] [stdout] test executor::tests::test_validate_body_deep_validation ... ok [INFO] [stdout] test executor::tests::test_validate_body_unknown_field ... ok [INFO] [stdout] test executor::tests::test_validate_body_valid ... ok [INFO] [stdout] test formatter::tests::test_extract_items ... ok [INFO] [stdout] test formatter::tests::test_extract_items_none ... ok [INFO] [stdout] test formatter::tests::test_format_csv ... ok [INFO] [stdout] test formatter::tests::test_format_csv_array_of_arrays ... ok [INFO] [stdout] test formatter::tests::test_format_csv_escape ... ok [INFO] [stdout] test formatter::tests::test_format_csv_flat_scalars ... ok [INFO] [stdout] test formatter::tests::test_format_csv_flat_scalars_with_escaping ... ok [INFO] [stdout] test formatter::tests::test_format_json ... ok [INFO] [stdout] test formatter::tests::test_format_table_array_of_objects ... ok [INFO] [stdout] test formatter::tests::test_format_table_empty_array ... ok [INFO] [stdout] test formatter::tests::test_format_table_multibyte_truncation_does_not_panic ... ok [INFO] [stdout] test formatter::tests::test_format_table_nested_object_flattened ... ok [INFO] [stdout] test formatter::tests::test_format_table_nested_objects_in_array ... ok [INFO] [stdout] test formatter::tests::test_format_table_single_object ... ok [INFO] [stdout] test formatter::tests::test_format_table_multibyte_exact_boundary ... ok [INFO] [stdout] test formatter::tests::test_format_value_paginated_csv_continuation_no_header ... ok [INFO] [stdout] test formatter::tests::test_format_value_paginated_table_first_page_has_header ... ok [INFO] [stdout] test formatter::tests::test_format_value_paginated_csv_first_page_has_header ... ok [INFO] [stdout] test formatter::tests::test_format_value_paginated_yaml_has_document_separator ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_colon_in_string_is_quoted ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_hash_in_string_is_quoted_not_block ... ok [INFO] [stdout] test formatter::tests::test_format_yaml ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_multiline_still_uses_block ... ok [INFO] [stdout] test formatter::tests::test_output_format_from_str ... ok [INFO] [stdout] test formatter::tests::test_output_format_parse_known ... ok [INFO] [stdout] test formatter::tests::test_output_format_parse_unknown_returns_err ... ok [INFO] [stdout] test fs_util::tests::test_atomic_write_creates_file ... ok [INFO] [stdout] test fs_util::tests::test_atomic_write_overwrites_existing ... ok [INFO] [stdout] test generate_skills::tests::test_capitalize_first_basic ... ok [INFO] [stdout] test fs_util::tests::test_atomic_write_leaves_no_tmp_file ... ok [INFO] [stdout] test generate_skills::tests::test_lookup_method_description_found ... ok [INFO] [stdout] test formatter::tests::test_format_value_paginated_table_continuation_no_header ... ok [INFO] [stdout] test generate_skills::tests::test_lookup_method_description_missing_method ... ok [INFO] [stdout] test generate_skills::tests::test_lookup_method_description_missing_resource ... ok [INFO] [stdout] test generate_skills::tests::test_capitalize_first_empty ... ok [INFO] [stdout] test generate_skills::tests::test_helper_skill_frontmatter_uses_block_sequences ... ok [INFO] [stdout] test fs_util::tests::test_atomic_write_async_creates_file ... ok [INFO] [stdout] test generate_skills::tests::test_lookup_method_description_no_description ... ok [INFO] [stdout] test generate_skills::tests::test_persona_skill_frontmatter_uses_block_sequences ... ok [INFO] [stdout] test generate_skills::tests::test_product_name_from_title_adds_google ... ok [INFO] [stdout] test generate_skills::tests::test_product_name_from_title_no_api_suffix ... ok [INFO] [stdout] test generate_skills::tests::test_product_name_from_title_strips_api ... ok [INFO] [stdout] test generate_skills::tests::test_truncate_desc_adds_period ... ok [INFO] [stdout] test generate_skills::tests::test_truncate_desc_capitalizes ... ok [INFO] [stdout] test generate_skills::tests::test_shared_skill_frontmatter_uses_block_sequences ... ok [INFO] [stdout] test generate_skills::tests::test_truncate_desc_ellipsis_no_period ... ok [INFO] [stdout] test generate_skills::tests::test_truncate_desc_preserves_existing_period ... ok [INFO] [stdout] test generate_skills::tests::test_service_skill_frontmatter_uses_block_sequences ... ok [INFO] [stdout] test generate_skills::tests::test_recipe_skill_frontmatter_uses_block_sequences ... ok [INFO] [stdout] test generate_skills::tests::test_truncate_desc_replaces_quotes ... ok [INFO] [stdout] test executor::test_execute_method_dry_run ... ok [INFO] [stdout] test generate_skills::tests::test_truncate_desc_truncates_long ... ok [INFO] [stdout] test executor::test_execute_method_missing_path_param ... ok [INFO] [stdout] test generate_skills::tests::test_truncate_desc_short ... ok [INFO] [stdout] test executor::test_extract_enable_url_trims_trailing_punctuation ... ok [INFO] [stdout] test executor::tests::test_build_url_repeated_query_param_expands_array ... ok [INFO] [stdout] test executor::test_extract_enable_url_no_url ... ok [INFO] [stdout] test executor::test_extract_enable_url_non_http ... ok [INFO] [stdout] test helpers::calendar::tests::agenda_day_boundaries_use_account_timezone ... ok [INFO] [stdout] test helpers::calendar::tests::test_build_insert_request ... ok [INFO] [stdout] test auth_commands::tests::resolve_scopes_handles_multiple_custom ... ok [INFO] [stdout] test helpers::calendar::tests::test_build_insert_request_with_optional_fields ... ok [INFO] [stdout] test helpers::chat::tests::test_build_send_request ... ok [INFO] [stdout] test helpers::drive::tests::test_build_metadata_with_parent ... ok [INFO] [stdout] test helpers::drive::tests::test_determine_filename_explicit ... ok [INFO] [stdout] test helpers::chat::tests::test_parse_send_args ... ok [INFO] [stdout] test helpers::chat::tests::test_parse_send_args_rejects_query_injection_in_space ... ok [INFO] [stdout] test helpers::drive::tests::test_determine_filename_from_path ... ok [INFO] [stdout] test helpers::drive::tests::test_determine_filename_invalid_path ... ok [INFO] [stdout] test helpers::chat::tests::test_parse_send_args_rejects_traversal_in_space ... ok [INFO] [stdout] test helpers::calendar::tests::test_build_insert_request_with_meet ... ok [INFO] [stdout] test helpers::calendar::tests::test_build_insert_request_with_meet_idempotency_robust ... ok [INFO] [stdout] test helpers::calendar::tests::test_build_insert_request_with_meet_is_idempotent ... ok [INFO] [stdout] test helpers::events::renew::tests::test_parse_duration_days ... ok [INFO] [stdout] test helpers::events::renew::tests::test_parse_duration_invalid ... ok [INFO] [stdout] test helpers::events::renew::tests::test_parse_duration_minutes ... ok [INFO] [stdout] test helpers::docs::tests::test_build_write_request ... ok [INFO] [stdout] test helpers::drive::tests::test_build_metadata_no_parent ... ok [INFO] [stdout] test helpers::chat::tests::test_inject_commands ... ok [INFO] [stdout] test helpers::events::renew::tests::test_filter_subscriptions_to_renew ... ok [INFO] [stdout] test helpers::events::renew::tests::test_parse_renew_args_all ... ok [INFO] [stdout] test helpers::events::renew::tests::test_parse_renew_args_missing ... ok [INFO] [stdout] test helpers::events::renew::tests::test_parse_renew_args_name ... ok [INFO] [stdout] test helpers::events::renew::tests::test_parse_rfc3339_rough ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_decode_cloud_event ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_handle_subscribe_validation_missing_events ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_handle_subscribe_validation_missing_project ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_handle_subscribe_validation_missing_target ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_parse_subscribe_args ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_parse_subscribe_args_subscription ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_parse_subscribe_args_invalid_output_dir ... ok [INFO] [stdout] test helpers::events::renew::tests::test_parse_duration_hours ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_process_events_pull_response_empty ... ok [INFO] [stdout] test auth_commands::tests::resolve_scopes_services_takes_priority_with_readonly ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_slug_multiple_event_types_common_prefix ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_slug_non_workspace_prefix ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_slug_single_event_type_chat ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_slug_single_event_type ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_process_events_pull_response ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_build_forward_subject_case_insensitive ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_slug_truncation ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_build_forward_subject_without_prefix ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_build_forward_subject_with_prefix ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_create_forward_raw_message_html ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_create_forward_raw_message_without_body ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_create_forward_raw_message_with_all_optional_headers ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_create_forward_raw_message_references_chain ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_create_forward_raw_message_html_without_body ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_create_forward_raw_message_plain_text_no_inline_images ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_format_forwarded_message_html_escapes_metadata ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_format_forwarded_message_html_with_html_body ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_format_forwarded_message_missing_date ... ok [INFO] [stdout] test helpers::events::tests::test_inject_commands ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_format_forwarded_message_with_cc ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_create_forward_raw_message_html_plain_text_fallback ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_include_original_part_default_html_includes_all ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_include_original_part_default_plain_drops_inline ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_include_original_part_no_attachments_html_keeps_inline ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_include_original_part_no_attachments_plain_drops_everything ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_format_forwarded_message ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_format_forwarded_message_html_conditional_cc ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_format_forwarded_message_html_fallback_plain_text ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_parse_forward_args ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_parse_forward_args_with_all_options ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_parse_forward_args_no_original_attachments ... ok [INFO] [stdout] test helpers::gmail::read::tests::test_format_mailbox_list_single ... ok [INFO] [stdout] test helpers::gmail::read::tests::test_sanitize_for_terminal ... ok [INFO] [stdout] test helpers::gmail::read::tests::test_format_mailbox_list_empty ... ok [INFO] [stdout] test helpers::gmail::read::tests::test_format_mailbox_list_multiple ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_create_forward_raw_message_with_attachment ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_build_reply_all_from_alias_is_self_reply ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_build_reply_all_recipients ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_build_reply_all_remove_primary_returns_empty_to ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_case_insensitive_sender_exclusion ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_build_reply_all_with_remove ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_build_reply_subject_case_insensitive ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_build_reply_subject_with_prefix ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_build_reply_subject_without_prefix ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_create_reply_raw_message_html_with_inline_image ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_create_reply_raw_message_with_all_optional_headers ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_create_reply_raw_message_with_attachment ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_cc_wins_over_bcc ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_intro_pattern ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_create_reply_raw_message_html ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_no_overlap ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_all_three_overlap ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_simple_reply_no_cc_bcc ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_to_wins_over_bcc ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_bcc_fully_overlaps_returns_empty ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_to_wins_over_cc ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_case_insensitive ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_format_quoted_original_html_escapes_metadata ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_format_quoted_original_html_fallback_plain_text ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_format_quoted_original_html_with_html_body ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_format_quoted_original_missing_date ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_intro_pattern_raw_message ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_parse_reply_args ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_parse_reply_args_html_flag ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_with_display_names ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_create_forward_raw_message_html_with_inline_image ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_remove_does_not_match_substring ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_parse_reply_args_with_all_options ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_parse_forward_args_empty_to_returns_error ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_remove_with_display_name_format ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_extract_reply_to_address_falls_back_to_from ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_remove_with_quoted_comma_display_name ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_extra_to_appears_in_raw_message ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_format_quoted_original ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_extract_reply_to_address_prefers_reply_to ... ok [INFO] [stdout] test helpers::gmail::forward::tests::test_parse_forward_args_html_flag ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_format_quoted_original_empty_body ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_cc_none_when_all_filtered ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_parse_reply_args_without_remove_defined ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_excludes_from_alias_from_cc ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_excludes_self_case_insensitive ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_excludes_self_email ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_multi_address_reply_to_deduplicates_cc ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_with_extra_cc ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_with_quoted_comma_display_name ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_deduplicates_cc ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_to_own_message_excludes_self_from_original_to ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_to_own_message_detected_via_alias ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_uses_reply_to_for_to ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_sender_with_display_name_excluded_from_cc ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_to_own_message_ignores_reply_to ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_send_crlf_injection_in_cc_does_not_create_header ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_send_crlf_injection_in_from_does_not_create_header ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_parse_send_args_html_flag ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_parse_send_args_with_from ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_parse_send_args ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_parse_send_args_empty_to_returns_error ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_send_html_raw_message ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_send_with_attachment_produces_multipart ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_send_multiple_to_recipients ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_send_plain_text_raw_message ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_send_with_cc_and_bcc ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_send_without_from_has_no_from_header ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_send_with_from ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_to_own_message_puts_original_to_in_to ... ok [INFO] [stdout] test helpers::gmail::send::tests::test_parse_send_args_with_cc_and_bcc ... ok [INFO] [stdout] test helpers::gmail::tests::test_append_address_list_header_value ... ok [INFO] [stdout] test helpers::gmail::tests::test_build_api_error_falls_back_to_raw_body ... ok [INFO] [stdout] test helpers::gmail::tests::test_attachment_single_file ... ok [INFO] [stdout] test helpers::gmail::tests::test_attachment_multiple_files ... ok [INFO] [stdout] test helpers::gmail::tests::test_attachment_empty_produces_no_multipart ... ok [INFO] [stdout] test helpers::gmail::tests::test_build_references_chain ... ok [INFO] [stdout] test helpers::gmail::tests::test_build_api_error_parses_google_json_format ... ok [INFO] [stdout] test helpers::gmail::tests::test_attachment_with_content_id_and_disposition_attachment_is_not_inline ... ok [INFO] [stdout] test helpers::gmail::tests::test_build_send_metadata_draft_with_thread_id ... ok [INFO] [stdout] test helpers::gmail::tests::test_build_api_error_extracts_top_level_reason ... ok [INFO] [stdout] test helpers::gmail::tests::test_build_send_metadata_draft_without_thread_id ... ok [INFO] [stdout] test helpers::gmail::tests::test_build_send_metadata_with_thread_id ... ok [INFO] [stdout] test helpers::gmail::tests::test_build_api_error_access_not_configured_extracts_url ... ok [INFO] [stdout] test helpers::gmail::tests::test_build_send_metadata_without_thread_id ... ok [INFO] [stdout] test helpers::gmail::tests::test_content_id_all_control_chars_becomes_none ... ok [INFO] [stdout] test helpers::gmail::tests::test_attachment_with_html_body ... ok [INFO] [stdout] test helpers::gmail::tests::test_content_id_crlf_injection_sanitized ... ok [INFO] [stdout] test helpers::gmail::tests::test_extract_html_body_direct ... ok [INFO] [stdout] test helpers::gmail::tests::test_extract_html_body_from_multipart ... ok [INFO] [stdout] test helpers::gmail::tests::test_extract_html_body_missing ... ok [INFO] [stdout] test helpers::gmail::tests::test_extract_payload_contents_does_not_recurse_into_attachments ... ok [INFO] [stdout] test helpers::gmail::tests::test_extract_payload_contents_no_filename_synthesis ... ok [INFO] [stdout] test helpers::gmail::tests::test_extract_payload_contents_simple ... ok [INFO] [stdout] test helpers::gmail::tests::test_extract_html_body_from_nested_multipart ... ok [INFO] [stdout] test helpers::gmail::tests::test_content_id_normalization ... ok [INFO] [stdout] test helpers::gmail::tests::test_extract_plain_text_body_multipart ... ok [INFO] [stdout] test helpers::gmail::tests::test_extract_payload_contents_with_attachment ... ok [INFO] [stdout] test helpers::gmail::tests::test_extract_plain_text_body_no_text_part ... ok [INFO] [stdout] test helpers::gmail::tests::test_extract_plain_text_body_nested_multipart ... ok [INFO] [stdout] test helpers::gmail::tests::test_extract_payload_contents_with_inline_image ... ok [INFO] [stdout] test helpers::gmail::tests::test_extract_plain_text_body_simple ... ok [INFO] [stdout] test helpers::gmail::tests::test_finalize_message_html_inline_creates_multipart_related ... ok [INFO] [stdout] test helpers::gmail::tests::test_finalize_message_html_multiple_inline_images ... ok [INFO] [stdout] test helpers::gmail::tests::test_finalize_message_plain_text_downgrades_inline_to_attachment ... ok [INFO] [stdout] test helpers::gmail::tests::test_format_address_list_with_links ... ok [INFO] [stdout] test helpers::gmail::tests::test_format_date_for_attribution ... ok [INFO] [stdout] test helpers::gmail::tests::test_format_forward_from ... ok [INFO] [stdout] test helpers::gmail::tests::test_header_case_insensitive ... ok [INFO] [stdout] test helpers::gmail::tests::test_filename_control_char_sanitization ... ok [INFO] [stdout] test helpers::gmail::tests::test_format_sender_for_attribution ... ok [INFO] [stdout] test helpers::gmail::tests::test_inject_commands ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_display ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_bare_email ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_empty ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_empty_angle_brackets ... ok [INFO] [stdout] test helpers::gmail::tests::test_finalize_message_html_inline_and_attachment ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_list ... ok [INFO] [stdout] test helpers::gmail::tests::test_html_escape ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_list_filters_empty_emails ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_list_with_quoted_comma ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_malformed_no_closing_bracket ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_non_ascii_display_name ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_strips_control_chars_from_name ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_strips_crlf_injection_in_angle_bracket_email ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_strips_crlf_injection_in_email ... ok [INFO] [stdout] test helpers::gmail::reply::tests::test_create_reply_raw_message_basic ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_quoted_display_name ... ok [INFO] [stdout] test helpers::gmail::tests::test_format_email_link_prevents_mailto_injection ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_strips_null_bytes_from_email ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_strips_tab_from_email ... ok [INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_with_display_name ... ok [INFO] [stdout] test helpers::gmail::tests::test_original_message_default ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_nonexistent_file ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_bare_message_id ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_rejects_directory ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_concatenates_repeated_address_and_reference_headers ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_optional_trimmed ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_minimal ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_missing_thread_id ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_rejects_control_chars ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_snippet_fallback ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_empty_returns_empty_vec ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_multipart_alternative ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_populates_parts ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_profile_display_name ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_profile_display_name_empty ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_profile_display_name_empty_name ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_profile_display_name_no_names_array ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_send_as_response ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_send_as_response_empty ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_send_as_response_skips_missing_email ... ok [INFO] [stdout] test helpers::gmail::tests::test_resolve_draft_method_finds_gmail_drafts_create_method ... ok [INFO] [stdout] test helpers::gmail::tests::test_resolve_html_body_escapes_plain_text_fallback ... ok [INFO] [stdout] test helpers::gmail::tests::test_resolve_send_method_finds_gmail_send_method ... ok [INFO] [stdout] test helpers::gmail::tests::test_resolve_sender_bare_email_case_insensitive ... ok [INFO] [stdout] test helpers::gmail::tests::test_resolve_sender_bare_email_enriched ... ok [INFO] [stdout] test helpers::gmail::tests::test_resolve_html_body_uses_html_when_present ... ok [INFO] [stdout] test helpers::gmail::tests::test_resolve_sender_bare_email_not_in_list_passes_through ... ok [INFO] [stdout] test helpers::gmail::tests::test_resolve_sender_empty_display_name_treated_as_none ... ok [INFO] [stdout] test helpers::gmail::tests::test_resolve_sender_mixed_enriches_only_bare ... ok [INFO] [stdout] test helpers::gmail::tests::test_resolve_sender_no_default_in_list ... ok [INFO] [stdout] test helpers::gmail::tests::test_resolve_sender_no_from_returns_default ... ok [INFO] [stdout] test helpers::gmail::tests::test_resolve_sender_with_display_name_returns_as_is ... ok [INFO] [stdout] test helpers::gmail::tests::test_sanitize_remote_filename_all_control_chars ... ok [INFO] [stdout] test helpers::gmail::tests::test_sanitize_remote_filename_whitespace_only ... ok [INFO] [stdout] test helpers::gmail::tests::test_set_threading_headers_output ... ok [INFO] [stdout] test helpers::gmail::tests::test_split_raw_mailbox_list ... ok [INFO] [stdout] test helpers::gmail::tests::test_rfc2822_display_name_quoting_via_mail_builder ... ok [INFO] [stdout] test helpers::gmail::tests::test_strip_angle_brackets ... ok [INFO] [stdout] test helpers::gmail::tests::test_synthesize_filename_jpeg ... ok [INFO] [stdout] test helpers::gmail::tests::test_synthesize_filename_octet_stream ... ok [INFO] [stdout] test helpers::gmail::tests::test_synthesize_filename_svg ... ok [INFO] [stdout] test helpers::gmail::tests::test_to_mb_address_bare_email ... ok [INFO] [stdout] test helpers::gmail::tests::test_synthesize_filename_no_slash ... ok [INFO] [stdout] test helpers::gmail::tests::test_to_mb_address_list_multiple ... ok [INFO] [stdout] test helpers::gmail::tests::test_to_mb_address_with_display_name ... ok [INFO] [stdout] test helpers::gmail::triage::tests::custom_query_overrides_default ... ok [INFO] [stdout] test helpers::gmail::triage::tests::defaults_max_to_20_and_query_to_unread ... ok [INFO] [stdout] test helpers::gmail::triage::tests::empty_result_message_is_not_json ... ok [INFO] [stdout] test helpers::gmail::triage::tests::explicit_max_overrides_default ... ok [INFO] [stdout] test helpers::gmail::triage::tests::format_defaults_to_table_when_absent ... ok [INFO] [stdout] test helpers::gmail::triage::tests::non_numeric_max_falls_back_to_20 ... ok [INFO] [stdout] test helpers::gmail::triage::tests::format_json_when_specified ... ok [INFO] [stdout] test helpers::gmail::triage::tests::labels_flag_defaults_to_false ... ok [INFO] [stdout] test helpers::gmail::triage::tests::labels_flag_set_when_passed ... ok [INFO] [stdout] test helpers::gmail::watch::tests::test_apply_sanitization_result_block_mode ... ok [INFO] [stdout] test helpers::gmail::watch::tests::test_apply_sanitization_result_no_match ... ok [INFO] [stdout] test helpers::gmail::watch::tests::test_apply_sanitization_result_warn_mode ... ok [INFO] [stdout] test helpers::gmail::watch::tests::test_extract_message_ids_empty ... ok [INFO] [stdout] test helpers::gmail::watch::tests::test_extract_message_ids_from_history ... ok [INFO] [stdout] test helpers::gmail::watch::tests::test_parse_watch_args_full ... ok [INFO] [stdout] test helpers::gmail::watch::tests::test_parse_watch_args_defaults ... ok [INFO] [stdout] test helpers::gmail::watch::tests::test_parse_watch_args_invalid_numbers ... ok [INFO] [stdout] test helpers::gmail::watch::tests::test_parse_watch_args_invalid_output_dir ... ok [INFO] [stdout] test helpers::gmail::watch::tests::test_parse_watch_args_rejects_traversal_subscription ... ok [INFO] [stdout] test helpers::gmail::watch::tests::test_process_pull_response ... ok [INFO] [stdout] test helpers::modelarmor::parsing_tests::test_build_create_template_url ... ok [INFO] [stdout] test helpers::modelarmor::parsing_tests::test_build_create_template_url_encodes_segments ... ok [INFO] [stdout] test helpers::gmail::watch::tests::test_parse_watch_args_invalid_format_rejected_by_clap ... ok [INFO] [stdout] test helpers::modelarmor::parsing_tests::test_inject_commands ... ok [INFO] [stdout] test helpers::modelarmor::parsing_tests::test_parse_create_template_args_json ... ok [INFO] [stdout] test helpers::modelarmor::parsing_tests::test_parse_create_template_args_rejects_traversal ... ok [INFO] [stdout] test helpers::modelarmor::parsing_tests::test_parse_sanitize_args_json ... ok [INFO] [stdout] test helpers::modelarmor::parsing_tests::test_parse_create_template_args_preset ... ok [INFO] [stdout] test helpers::modelarmor::parsing_tests::test_parse_sanitize_args_text ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_build_sanitize_request_data ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_cloud_platform_scope_constant ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_extract_location_different_region ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_extract_location_empty ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_extract_location_no_locations ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_extract_location_trailing_locations ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_extract_location_valid ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_parse_sanitize_response_success ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_regional_base_url ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_regional_base_url_different_region ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_sanitize_config_default ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_sanitize_config_with_template ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_sanitize_mode_from_str_block ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_sanitize_mode_from_str_unknown_defaults_to_warn ... ok [INFO] [stdout] test helpers::modelarmor::tests::test_sanitize_mode_from_str_warn ... ok [INFO] [stdout] test helpers::script::tests::test_process_file_appsscript_json ... ok [INFO] [stdout] test helpers::script::tests::test_process_file_html ... ok [INFO] [stdout] test helpers::script::tests::test_process_file_ignored ... ok [INFO] [stdout] test helpers::script::tests::test_process_file_server_js ... ok [INFO] [stdout] test helpers::script::tests::test_visit_dirs ... ok [INFO] [stdout] test helpers::sheets::tests::test_build_append_request ... ok [INFO] [stdout] test helpers::sheets::tests::test_build_append_request_multi_row ... ok [INFO] [stdout] test helpers::modelarmor::parsing_tests::test_load_preset_template_fallback ... ok [INFO] [stdout] test helpers::sheets::tests::test_build_append_request_with_range ... ok [INFO] [stdout] test helpers::sheets::tests::test_build_read_request ... ok [INFO] [stdout] test helpers::sheets::tests::test_parse_append_args_default_range ... ok [INFO] [stdout] test generate_skills::tests::test_registry_references ... ok [INFO] [stdout] test helpers::sheets::tests::test_parse_append_args_json_multi_row ... ok [INFO] [stdout] test helpers::sheets::tests::test_parse_append_args_json_single_row ... ok [INFO] [stdout] test helpers::sheets::tests::test_parse_append_args_values ... ok [INFO] [stdout] test helpers::sheets::tests::test_parse_read_args ... ok [INFO] [stdout] test helpers::workflows::tests::test_build_email_to_task_cmd ... ok [INFO] [stdout] test helpers::sheets::tests::test_parse_append_args_with_range ... ok [INFO] [stdout] test helpers::workflows::tests::test_build_file_announce_cmd ... ok [INFO] [stdout] test helpers::workflows::tests::test_build_meeting_prep_cmd ... ok [INFO] [stdout] test helpers::workflows::tests::test_build_weekly_digest_cmd ... ok [INFO] [stdout] test helpers::workflows::tests::test_helper_only ... ok [INFO] [stdout] test helpers::workflows::tests::test_build_standup_report_cmd ... ok [INFO] [stdout] test helpers::workflows::tests::test_inject_commands ... ok [INFO] [stdout] test logging::tests::test_env_var_names ... ok [INFO] [stdout] test logging::tests::test_init_logging_default_no_panic ... ok [INFO] [stdout] test oauth_config::tests::test_parse_google_console_format ... ok [INFO] [stdout] test oauth_config::tests::test_parse_invalid_json_fails ... ok [INFO] [stdout] test oauth_config::tests::test_parse_missing_client_id_fails ... ok [INFO] [stdout] test oauth_config::tests::test_parse_missing_optional_fields ... ok [INFO] [stdout] test oauth_config::tests::test_save_load_round_trip ... ok [INFO] [stdout] test output::tests::colorize_returns_text_in_no_color_mode ... ok [INFO] [stdout] test output::tests::sanitize_preserves_newlines_and_tabs ... ok [INFO] [stdout] test helpers::sheets::tests::test_inject_commands ... ok [INFO] [stdout] test output::tests::sanitize_strips_ansi_escape_sequences ... ok [INFO] [stdout] test output::tests::sanitize_strips_bell_and_backspace ... ok [INFO] [stdout] test output::tests::sanitize_strips_bidi_overrides ... ok [INFO] [stdout] test output::tests::sanitize_preserves_normal_unicode ... ok [INFO] [stdout] test output::tests::sanitize_strips_directional_isolates ... ok [INFO] [stdout] test output::tests::sanitize_strips_line_separators ... ok [INFO] [stdout] test output::tests::sanitize_strips_zero_width_chars ... ok [INFO] [stdout] test schema::tests::test_param_to_json ... ok [INFO] [stdout] test schema::tests::test_param_to_json_repeated ... ok [INFO] [stdout] test schema::tests::test_resolve_schema_refs_basic ... ok [INFO] [stdout] test output::tests::sanitize_strips_carriage_return ... ok [INFO] [stdout] test schema::tests::test_schema_to_json_basic ... ok [INFO] [stdout] test schema::tests::test_resolve_schema_refs_nested ... ok [INFO] [stdout] test setup::tests::gcloud_bin_returns_platform_appropriate_name ... ok [INFO] [stdout] test setup::tests::test_account_select_existing_triggers_set_account ... ok [INFO] [stdout] test setup::tests::test_account_select_login_new_triggers_login ... ok [INFO] [stdout] test setup::tests::test_account_select_none_returns_no_selection ... ok [INFO] [stdout] test setup::tests::test_api_select_all_enables_all ... ok [INFO] [stdout] test setup::tests::test_api_select_first_enables_one ... ok [INFO] [stdout] test setup::tests::test_api_select_none_enables_nothing ... ok [INFO] [stdout] test setup::tests::test_enable_apis_with_invalid_project ... ok [INFO] [stdout] test setup::tests::test_enable_apis_with_no_apis_to_enable ... ok [INFO] [stdout] test setup::tests::test_failed_apis_json_structure ... ok [INFO] [stdout] test setup::tests::test_format_project_create_failure_immutable_guidance ... ok [INFO] [stdout] test setup::tests::test_failed_apis_json_empty ... ok [INFO] [stdout] test setup::tests::test_format_project_create_failure_in_use_guidance ... ok [INFO] [stdout] test setup::tests::test_format_project_create_failure_tos_guidance ... ok [INFO] [stdout] test setup::tests::test_format_project_create_failure_invalid_id_guidance ... ok [INFO] [stdout] test setup::tests::test_parse_setup_args_dry_run ... ok [INFO] [stdout] test setup::tests::test_parse_setup_args_dry_run_with_project ... ok [INFO] [stdout] test setup::tests::test_parse_setup_args_empty ... ok [INFO] [stdout] Configure GCP project + OAuth client (requires gcloud) [INFO] [stdout] [INFO] [stdout] Usage: setup [OPTIONS] [INFO] [stdout] [INFO] [stdout] Options: [INFO] [stdout] --project Use a specific GCP project [INFO] [stdout] --login Run `gws auth login` after successful setup [INFO] [stdout] --dry-run Preview changes without making them [INFO] [stdout] -h, --help Print help [INFO] [stdout] test setup::tests::test_parse_setup_args_help_returns_none ... ok [INFO] [stdout] test setup::tests::test_parse_setup_args_rejects_unknown ... ok [INFO] [stdout] test setup::tests::test_parse_setup_args_with_project ... ok [INFO] [stdout] test setup::tests::test_parse_setup_args_with_project_equals ... ok [INFO] [stdout] test setup::tests::test_pipeline_login_new_via_keys ... ok [INFO] [stdout] test setup::tests::test_pipeline_select_account_via_keys ... ok [INFO] [stdout] test setup::tests::test_pipeline_select_all_apis_via_keys ... ok [INFO] [stdout] test setup::tests::test_pipeline_select_project_via_keys ... ok [INFO] [stdout] test setup::tests::test_pipeline_select_two_apis_via_keys ... ok [INFO] [stdout] test setup::tests::test_project_select_create_new ... ok [INFO] [stdout] test setup::tests::test_project_select_enter_manually ... ok [INFO] [stdout] test setup::tests::test_project_select_existing ... ok [INFO] [stdout] test setup::tests::test_parse_setup_args_login_flag ... ok [INFO] [stdout] test setup::tests::test_project_select_none ... ok [INFO] [stdout] test setup::tests::test_should_not_offer_login_prompt_dry_run ... ok [INFO] [stdout] test setup::tests::test_should_not_offer_login_prompt_non_interactive ... ok [INFO] [stdout] test setup::tests::test_should_not_offer_login_prompt_when_login_requested ... ok [INFO] [stdout] test setup::tests::test_should_offer_login_prompt_default_interactive ... ok [INFO] [stdout] test setup::tests::test_workspace_api_ids_all_have_googleapis_suffix ... ok [INFO] [stdout] test setup::tests::test_workspace_api_ids_covers_services ... ok [INFO] [stdout] test setup::tests::test_workspace_api_ids_no_duplicates ... ok [INFO] [stdout] test setup::tests::test_workspace_api_ids_not_empty ... ok [INFO] [stdout] test setup_tui::tests::test_backspace_goes_back ... ok [INFO] [stdout] test setup_tui::tests::test_deselecting_scope_does_not_affect_counterpart ... ok [INFO] [stdout] test setup_tui::tests::test_double_toggle_returns_to_original ... ok [INFO] [stdout] test setup_tui::tests::test_deselect_template_does_not_change_individual_items ... ok [INFO] [stdout] test setup_tui::tests::test_enter_confirms_with_current_state ... ok [INFO] [stdout] test setup_tui::tests::test_esc_cancels ... ok [INFO] [stdout] test setup_tui::tests::test_fixed_item_cannot_be_toggled ... ok [INFO] [stdout] test setup_tui::tests::test_fixed_item_in_single_select_preserved ... ok [INFO] [stdout] test setup_tui::tests::test_fixed_item_preserved_during_toggle_all ... ok [INFO] [stdout] test setup_tui::tests::test_h_goes_back ... ok [INFO] [stdout] test setup_tui::tests::test_input_state_backspace ... ok [INFO] [stdout] test setup_tui::tests::test_input_state_backspace_empty ... ok [INFO] [stdout] test setup_tui::tests::test_input_state_enter_confirms ... ok [INFO] [stdout] test setup_tui::tests::test_input_state_backtab_goes_back ... ok [INFO] [stdout] test setup_tui::tests::test_input_state_esc_cancels ... ok [INFO] [stdout] test setup_tui::tests::test_input_state_new_with_initial ... ok [INFO] [stdout] test setup_tui::tests::test_input_state_type_backspace_confirm ... ok [INFO] [stdout] test setup_tui::tests::test_input_state_typing ... ok [INFO] [stdout] test setup_tui::tests::test_input_state_unknown_key_ignored ... ok [INFO] [stdout] test setup_tui::tests::test_input_state_up_goes_back ... ok [INFO] [stdout] test setup_tui::tests::test_left_goes_back ... ok [INFO] [stdout] test setup_tui::tests::test_picker_starts_at_first_selected_item ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_reads_real_file ... FAILED [INFO] [stdout] test executor::test_post_with_body_does_not_add_content_length_zero ... ok [INFO] [stdout] test setup_tui::tests::test_picker_state_toggle ... ok [INFO] [stdout] test setup_tui::tests::test_picker_state_toggle_all ... ok [INFO] [stdout] test setup_tui::tests::test_picker_starts_at_zero_when_none_selected ... ok [INFO] [stdout] test setup_tui::tests::test_preselected_items_preserved ... ok [INFO] [stdout] test setup_tui::tests::test_q_cancels ... ok [INFO] [stdout] test setup_tui::tests::test_select_all_then_deselect_one ... ok [INFO] [stdout] test setup_tui::tests::test_selected_count_after_toggle ... ok [INFO] [stdout] test setup_tui::tests::test_selected_count_none ... ok [INFO] [stdout] test setup_tui::tests::test_selecting_readonly_deselects_write_counterpart ... ok [INFO] [stdout] test setup_tui::tests::test_selecting_scope_deselects_readonly_counterpart ... ok [INFO] [stdout] test setup_tui::tests::test_single_item_navigation_wraps ... ok [INFO] [stdout] test setup_tui::tests::test_single_item_toggle ... ok [INFO] [stdout] test setup_tui::tests::test_picker_state_navigation ... ok [INFO] [stdout] test setup_tui::tests::test_selected_count_some ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_rejects_empty_file ... FAILED [INFO] [stdout] test setup_tui::tests::test_input_state_new_empty ... ok [INFO] [stdout] test setup_tui::tests::test_single_select_enter_selects_highlighted ... ok [INFO] [stdout] test setup_tui::tests::test_single_select_a_does_not_toggle_all ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_missing_payload ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_missing_message_id ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_missing_from ... ok [INFO] [stdout] test setup_tui::tests::test_single_select_navigation_auto_selects ... ok [INFO] [stdout] test setup_tui::tests::test_single_select_space_selects_current ... ok [INFO] [stdout] test setup_tui::tests::test_space_toggle_then_enter ... ok [INFO] [stdout] test setup_tui::tests::test_toggling_individual_deselects_templates ... ok [INFO] [stdout] test setup_tui::tests::test_template_select_applies_scopes ... ok [INFO] [stdout] test setup_tui::tests::test_unknown_key_ignored ... ok [INFO] [stdout] test setup_tui::tests::test_toggle_all_twice_resets ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_size_limit_accumulates ... FAILED [INFO] [stdout] test setup_tui::tests::test_template_deselects_other_templates ... ok [INFO] [stdout] test setup_tui::tests::test_single_select_up_navigation_auto_selects ... ok [INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_unknown_extension_falls_back_to_octet_stream ... FAILED [INFO] [stdout] test helpers::modelarmor::tests::test_parse_sanitize_response_missing_field ... ok [INFO] [stdout] test executor::test_get_does_not_set_content_length_zero ... ok [INFO] [stdout] test setup_tui::tests::test_wrap_text_multiple_paragraphs_with_wrapping ... ok [INFO] [stdout] test setup_tui::tests::test_wrap_text_no_wrapping_needed ... ok [INFO] [stdout] test setup_tui::tests::test_vim_navigation_j_k ... ok [INFO] [stdout] test setup_tui::tests::test_wrap_text_zero_width ... ok [INFO] [stdout] test tests::test_filter_args_no_special_flags ... ok [INFO] [stdout] test tests::test_filter_args_strips_api_version ... ok [INFO] [stdout] test tests::test_is_version_flag ... ok [INFO] [stdout] test tests::test_is_help_flag ... ok [INFO] [stdout] test setup_tui::tests::test_wrap_text_preserves_newlines ... ok [INFO] [stdout] test tests::test_parse_pagination_config_defaults ... ok [INFO] [stdout] test tests::test_parse_sanitize_config_no_template ... ok [INFO] [stdout] test tests::test_parse_sanitize_config_valid ... ok [INFO] [stdout] test tests::test_resolve_method_from_matches_basic ... ok [INFO] [stdout] test tests::test_resolve_method_from_matches_nested ... ok [INFO] [stdout] test tests::test_select_scope_empty ... ok [INFO] [stdout] test tests::test_select_scope_single ... ok [INFO] [stdout] test setup_tui::tests::test_single_select_j_navigation_auto_selects ... ok [INFO] [stdout] test setup_tui::tests::test_single_select_k_navigation_auto_selects ... ok [INFO] [stdout] test setup_tui::tests::test_wrap_text_empty_lines ... ok [INFO] [stdout] test text::tests::does_not_cut_url_looking_periods ... ok [INFO] [stdout] test oauth_config::tests::test_load_client_config ... ok [INFO] [stdout] test tests::test_select_scope_picks_first ... ok [INFO] [stdout] test text::tests::preserves_sentence_ending_at_limit ... ok [INFO] [stdout] test tests::test_parse_pagination_config_custom ... ok [INFO] [stdout] test setup_tui::tests::test_wrap_around_navigation ... ok [INFO] [stdout] test text::tests::empty_and_whitespace ... ok [INFO] [stdout] test text::tests::hard_cut_no_spaces ... ok [INFO] [stdout] test text::tests::multibyte_safe ... ok [INFO] [stdout] test text::tests::preserves_links_when_strip_links_false ... ok [INFO] [stdout] test setup_tui::tests::test_wrap_text_single_long_word ... ok [INFO] [stdout] test setup_tui::tests::test_wrap_text_wraps_long_line ... ok [INFO] [stdout] test text::tests::short_desc_unchanged ... ok [INFO] [stdout] test text::tests::strips_markdown_links ... ok [INFO] [stdout] test text::tests::truncate_at_sentence_boundary ... ok [INFO] [stdout] test text::tests::zero_max_chars ... ok [INFO] [stdout] test text::tests::truncate_at_word_boundary ... ok [INFO] [stdout] test timezone::tests::iana_fallback_returns_valid_tz ... ok [INFO] [stdout] test timezone::tests::cache_roundtrip ... ok [INFO] [stdout] test timezone::tests::parse_invalid_timezone_fails ... ok [INFO] [stdout] test token_storage::tests::test_encrypted_token_storage_new ... ok [INFO] [stdout] test timezone::tests::parse_utc_timezone ... ok [INFO] [stdout] test timezone::tests::parse_empty_string_fails ... ok [INFO] [stdout] test text::tests::sentence_boundary_at_exact_limit ... ok [INFO] [stdout] test text::tests::test_strip_markdown_links ... ok [INFO] [stdout] test timezone::tests::parse_valid_iana_timezone ... ok [INFO] [stdout] test text::tests::strips_markdown_links_and_truncates ... ok [INFO] [stdout] test helpers::gmail::watch::tests::test_watch_pull_loop_refreshes_tokens_for_each_request ... ok [INFO] [stdout] test helpers::events::subscribe::tests::test_pull_loop_refreshes_pubsub_token_between_requests ... ok [INFO] [stdout] test executor::test_post_without_body_sets_content_length_zero ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- helpers::gmail::tests::test_parse_attachments_reads_real_file stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'helpers::gmail::tests::test_parse_attachments_reads_real_file' (708) panicked at crates/google-workspace-cli/src/helpers/gmail/mod.rs:3123:46: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: Custom { kind: ReadOnlyFilesystem, error: PathError { path: "/opt/rustwide/workdir/crates/google-workspace-cli/.tmpVqqF6S", err: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } } } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5ae03cd6fc08 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5ae03cd6fc08 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5ae03cd6fc08 - std[d054f6f42beb1baa]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5ae03cd6fc08 - <::print::DisplayBacktrace as core[5a1c3e9896636f3a]::fmt::Display>::fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5ae03cd8ae6a - ::fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5ae03cd8ae6a - core[5a1c3e9896636f3a]::fmt::write [INFO] [stdout] 6: 0x5ae03cd771f2 - std[d054f6f42beb1baa]::io::default_write_fmt::> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:622:11 [INFO] [stdout] 7: 0x5ae03cd771f2 - as std[d054f6f42beb1baa]::io::Write>::write_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:1977:13 [INFO] [stdout] 8: 0x5ae03cd49a66 - ::print [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5ae03cd49a66 - std[d054f6f42beb1baa]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5ae03cd66199 - std[d054f6f42beb1baa]::panicking::default_hook [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5ae03c0ed5ac - core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9 [INFO] [stdout] 12: 0x5ae03c0ed5ac - test[fad20673b750c10e]::test_main_inner::::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:155:21 [INFO] [stdout] 13: 0x5ae03cd66412 - core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9 [INFO] [stdout] 14: 0x5ae03cd66412 - std[d054f6f42beb1baa]::panicking::panic_with_hook [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5ae03cd49b22 - std[d054f6f42beb1baa]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5ae03cd40869 - std[d054f6f42beb1baa]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5ae03cd4af4d - __rustc[7ab284efd7f33ea8]::rust_begin_unwind [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5ae03cd8b6dc - core[5a1c3e9896636f3a]::panicking::panic_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5ae03cd8b422 - core[5a1c3e9896636f3a]::result::unwrap_failed [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/result.rs:1872:5 [INFO] [stdout] 20: 0x5ae03bd21d47 - >::unwrap [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x5ae03bd21d47 - gws[9bd10dc684b2cc68]::helpers::gmail::tests::test_parse_attachments_reads_real_file [INFO] [stdout] at /opt/rustwide/workdir/crates/google-workspace-cli/src/helpers/gmail/mod.rs:3123:46 [INFO] [stdout] 22: 0x5ae03bcffbf7 - gws[9bd10dc684b2cc68]::helpers::gmail::tests::test_parse_attachments_reads_real_file::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/crates/google-workspace-cli/src/helpers/gmail/mod.rs:3120:48 [INFO] [stdout] 23: 0x5ae03bbf5786 - >::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x5ae03c0e068b - core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x5ae03c0e068b - test[fad20673b750c10e]::__rust_begin_short_backtrace::, fn() -> core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:724:18 [INFO] [stdout] 26: 0x5ae03c0edf05 - test[fad20673b750c10e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:74 [INFO] [stdout] 27: 0x5ae03c0edf05 - as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x5ae03c0edf05 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x5ae03c0edf05 - std[d054f6f42beb1baa]::panicking::catch_unwind::, core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x5ae03c0edf05 - std[d054f6f42beb1baa]::panic::catch_unwind::, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x5ae03c0edf05 - test[fad20673b750c10e]::run_test_in_process [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:27 [INFO] [stdout] 32: 0x5ae03c0edf05 - test[fad20673b750c10e]::run_test::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:668:43 [INFO] [stdout] 33: 0x5ae03c0e8a64 - test[fad20673b750c10e]::run_test::{closure#1} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:698:41 [INFO] [stdout] 34: 0x5ae03c0e8a64 - std[d054f6f42beb1baa]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:70:13 [INFO] [stdout] 36: 0x5ae03c0f0f82 - ::{closure#1}::{closure#0}> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::panicking::catch_unwind::<(), core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:68:26 [INFO] [stdout] 41: 0x5ae03c0f0f82 - ::{closure#1} as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x5ae03cd6e9ff - + core[5a1c3e9896636f3a]::marker::Send> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2277:9 [INFO] [stdout] 43: 0x5ae03cd6e9ff - ::new::thread_start [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x7e810b2deaa4 - [INFO] [stdout] 45: 0x7e810b36ba64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- helpers::gmail::tests::test_parse_attachments_rejects_empty_file stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'helpers::gmail::tests::test_parse_attachments_rejects_empty_file' (711) panicked at crates/google-workspace-cli/src/helpers/gmail/mod.rs:3198:46: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: Custom { kind: ReadOnlyFilesystem, error: PathError { path: "/opt/rustwide/workdir/crates/google-workspace-cli/.tmpHYTAw1", err: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } } } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5ae03cd6fc08 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5ae03cd6fc08 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5ae03cd6fc08 - std[d054f6f42beb1baa]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5ae03cd6fc08 - <::print::DisplayBacktrace as core[5a1c3e9896636f3a]::fmt::Display>::fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5ae03cd8ae6a - ::fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5ae03cd8ae6a - core[5a1c3e9896636f3a]::fmt::write [INFO] [stdout] 6: 0x5ae03cd771f2 - std[d054f6f42beb1baa]::io::default_write_fmt::> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:622:11 [INFO] [stdout] 7: 0x5ae03cd771f2 - as std[d054f6f42beb1baa]::io::Write>::write_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:1977:13 [INFO] [stdout] 8: 0x5ae03cd49a66 - ::print [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5ae03cd49a66 - std[d054f6f42beb1baa]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5ae03cd66199 - std[d054f6f42beb1baa]::panicking::default_hook [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5ae03c0ed5ac - core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9 [INFO] [stdout] 12: 0x5ae03c0ed5ac - test[fad20673b750c10e]::test_main_inner::::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:155:21 [INFO] [stdout] 13: 0x5ae03cd66412 - core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9 [INFO] [stdout] 14: 0x5ae03cd66412 - std[d054f6f42beb1baa]::panicking::panic_with_hook [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5ae03cd49b22 - std[d054f6f42beb1baa]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5ae03cd40869 - std[d054f6f42beb1baa]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5ae03cd4af4d - __rustc[7ab284efd7f33ea8]::rust_begin_unwind [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5ae03cd8b6dc - core[5a1c3e9896636f3a]::panicking::panic_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5ae03cd8b422 - core[5a1c3e9896636f3a]::result::unwrap_failed [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/result.rs:1872:5 [INFO] [stdout] 20: 0x5ae03bd27a4f - >::unwrap [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x5ae03bd27a4f - gws[9bd10dc684b2cc68]::helpers::gmail::tests::test_parse_attachments_rejects_empty_file [INFO] [stdout] at /opt/rustwide/workdir/crates/google-workspace-cli/src/helpers/gmail/mod.rs:3198:46 [INFO] [stdout] 22: 0x5ae03bcffe97 - gws[9bd10dc684b2cc68]::helpers::gmail::tests::test_parse_attachments_rejects_empty_file::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/crates/google-workspace-cli/src/helpers/gmail/mod.rs:3196:51 [INFO] [stdout] 23: 0x5ae03bbf5b06 - >::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x5ae03c0e068b - core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x5ae03c0e068b - test[fad20673b750c10e]::__rust_begin_short_backtrace::, fn() -> core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:724:18 [INFO] [stdout] 26: 0x5ae03c0edf05 - test[fad20673b750c10e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:74 [INFO] [stdout] 27: 0x5ae03c0edf05 - as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x5ae03c0edf05 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x5ae03c0edf05 - std[d054f6f42beb1baa]::panicking::catch_unwind::, core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x5ae03c0edf05 - std[d054f6f42beb1baa]::panic::catch_unwind::, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x5ae03c0edf05 - test[fad20673b750c10e]::run_test_in_process [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:27 [INFO] [stdout] 32: 0x5ae03c0edf05 - test[fad20673b750c10e]::run_test::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:668:43 [INFO] [stdout] 33: 0x5ae03c0e8a64 - test[fad20673b750c10e]::run_test::{closure#1} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:698:41 [INFO] [stdout] 34: 0x5ae03c0e8a64 - std[d054f6f42beb1baa]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:70:13 [INFO] [stdout] 36: 0x5ae03c0f0f82 - ::{closure#1}::{closure#0}> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::panicking::catch_unwind::<(), core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:68:26 [INFO] [stdout] 41: 0x5ae03c0f0f82 - ::{closure#1} as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x5ae03cd6e9ff - + core[5a1c3e9896636f3a]::marker::Send> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2277:9 [INFO] [stdout] 43: 0x5ae03cd6e9ff - ::new::thread_start [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x7e810b2deaa4 - [INFO] [stdout] 45: 0x7e810b36ba64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- helpers::gmail::tests::test_parse_attachments_size_limit_accumulates stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'helpers::gmail::tests::test_parse_attachments_size_limit_accumulates' (712) panicked at crates/google-workspace-cli/src/helpers/gmail/mod.rs:3170:46: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: Custom { kind: ReadOnlyFilesystem, error: PathError { path: "/opt/rustwide/workdir/crates/google-workspace-cli/.tmp9MW9gB", err: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } } } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5ae03cd6fc08 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5ae03cd6fc08 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5ae03cd6fc08 - std[d054f6f42beb1baa]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5ae03cd6fc08 - <::print::DisplayBacktrace as core[5a1c3e9896636f3a]::fmt::Display>::fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5ae03cd8ae6a - ::fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5ae03cd8ae6a - core[5a1c3e9896636f3a]::fmt::write [INFO] [stdout] 6: 0x5ae03cd771f2 - std[d054f6f42beb1baa]::io::default_write_fmt::> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:622:11 [INFO] [stdout] 7: 0x5ae03cd771f2 - as std[d054f6f42beb1baa]::io::Write>::write_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:1977:13 [INFO] [stdout] 8: 0x5ae03cd49a66 - ::print [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5ae03cd49a66 - std[d054f6f42beb1baa]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5ae03cd66199 - std[d054f6f42beb1baa]::panicking::default_hook [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5ae03c0ed5ac - core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9 [INFO] [stdout] 12: 0x5ae03c0ed5ac - test[fad20673b750c10e]::test_main_inner::::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:155:21 [INFO] [stdout] 13: 0x5ae03cd66412 - core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9 [INFO] [stdout] 14: 0x5ae03cd66412 - std[d054f6f42beb1baa]::panicking::panic_with_hook [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5ae03cd49b22 - std[d054f6f42beb1baa]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5ae03cd40869 - std[d054f6f42beb1baa]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5ae03cd4af4d - __rustc[7ab284efd7f33ea8]::rust_begin_unwind [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5ae03cd8b6dc - core[5a1c3e9896636f3a]::panicking::panic_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5ae03cd8b422 - core[5a1c3e9896636f3a]::result::unwrap_failed [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/result.rs:1872:5 [INFO] [stdout] 20: 0x5ae03bd385ef - >::unwrap [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x5ae03bd385ef - gws[9bd10dc684b2cc68]::helpers::gmail::tests::test_parse_attachments_size_limit_accumulates [INFO] [stdout] at /opt/rustwide/workdir/crates/google-workspace-cli/src/helpers/gmail/mod.rs:3170:46 [INFO] [stdout] 22: 0x5ae03bd001c7 - gws[9bd10dc684b2cc68]::helpers::gmail::tests::test_parse_attachments_size_limit_accumulates::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/crates/google-workspace-cli/src/helpers/gmail/mod.rs:3168:55 [INFO] [stdout] 23: 0x5ae03bbf5f46 - >::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x5ae03c0e068b - core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x5ae03c0e068b - test[fad20673b750c10e]::__rust_begin_short_backtrace::, fn() -> core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:724:18 [INFO] [stdout] 26: 0x5ae03c0edf05 - test[fad20673b750c10e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:74 [INFO] [stdout] 27: 0x5ae03c0edf05 - as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x5ae03c0edf05 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x5ae03c0edf05 - std[d054f6f42beb1baa]::panicking::catch_unwind::, core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x5ae03c0edf05 - std[d054f6f42beb1baa]::panic::catch_unwind::, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x5ae03c0edf05 - test[fad20673b750c10e]::run_test_in_process [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:27 [INFO] [stdout] 32: 0x5ae03c0edf05 - test[fad20673b750c10e]::run_test::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:668:43 [INFO] [stdout] 33: 0x5ae03c0e8a64 - test[fad20673b750c10e]::run_test::{closure#1} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:698:41 [INFO] [stdout] 34: 0x5ae03c0e8a64 - std[d054f6f42beb1baa]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:70:13 [INFO] [stdout] 36: 0x5ae03c0f0f82 - ::{closure#1}::{closure#0}> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::panicking::catch_unwind::<(), core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:68:26 [INFO] [stdout] 41: 0x5ae03c0f0f82 - ::{closure#1} as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x5ae03cd6e9ff - + core[5a1c3e9896636f3a]::marker::Send> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2277:9 [INFO] [stdout] 43: 0x5ae03cd6e9ff - ::new::thread_start [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x7e810b2deaa4 - [INFO] [stdout] 45: 0x7e810b36ba64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- helpers::gmail::tests::test_parse_attachments_unknown_extension_falls_back_to_octet_stream stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'helpers::gmail::tests::test_parse_attachments_unknown_extension_falls_back_to_octet_stream' (713) panicked at crates/google-workspace-cli/src/helpers/gmail/mod.rs:3154:46: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: Custom { kind: ReadOnlyFilesystem, error: PathError { path: "/opt/rustwide/workdir/crates/google-workspace-cli/.tmpnWvEop", err: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } } } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5ae03cd6fc08 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5ae03cd6fc08 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5ae03cd6fc08 - std[d054f6f42beb1baa]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5ae03cd6fc08 - <::print::DisplayBacktrace as core[5a1c3e9896636f3a]::fmt::Display>::fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5ae03cd8ae6a - ::fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5ae03cd8ae6a - core[5a1c3e9896636f3a]::fmt::write [INFO] [stdout] 6: 0x5ae03cd771f2 - std[d054f6f42beb1baa]::io::default_write_fmt::> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:622:11 [INFO] [stdout] 7: 0x5ae03cd771f2 - as std[d054f6f42beb1baa]::io::Write>::write_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:1977:13 [INFO] [stdout] 8: 0x5ae03cd49a66 - ::print [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5ae03cd49a66 - std[d054f6f42beb1baa]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5ae03cd66199 - std[d054f6f42beb1baa]::panicking::default_hook [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5ae03c0ed5ac - core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9 [INFO] [stdout] 12: 0x5ae03c0ed5ac - test[fad20673b750c10e]::test_main_inner::::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:155:21 [INFO] [stdout] 13: 0x5ae03cd66412 - core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9 [INFO] [stdout] 14: 0x5ae03cd66412 - std[d054f6f42beb1baa]::panicking::panic_with_hook [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5ae03cd49b22 - std[d054f6f42beb1baa]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5ae03cd40869 - std[d054f6f42beb1baa]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5ae03cd4af4d - __rustc[7ab284efd7f33ea8]::rust_begin_unwind [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5ae03cd8b6dc - core[5a1c3e9896636f3a]::panicking::panic_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5ae03cd8b422 - core[5a1c3e9896636f3a]::result::unwrap_failed [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/result.rs:1872:5 [INFO] [stdout] 20: 0x5ae03bd50347 - >::unwrap [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x5ae03bd50347 - gws[9bd10dc684b2cc68]::helpers::gmail::tests::test_parse_attachments_unknown_extension_falls_back_to_octet_stream [INFO] [stdout] at /opt/rustwide/workdir/crates/google-workspace-cli/src/helpers/gmail/mod.rs:3154:46 [INFO] [stdout] 22: 0x5ae03bd00887 - gws[9bd10dc684b2cc68]::helpers::gmail::tests::test_parse_attachments_unknown_extension_falls_back_to_octet_stream::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/crates/google-workspace-cli/src/helpers/gmail/mod.rs:3151:77 [INFO] [stdout] 23: 0x5ae03bbf6846 - >::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x5ae03c0e068b - core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x5ae03c0e068b - test[fad20673b750c10e]::__rust_begin_short_backtrace::, fn() -> core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:724:18 [INFO] [stdout] 26: 0x5ae03c0edf05 - test[fad20673b750c10e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:74 [INFO] [stdout] 27: 0x5ae03c0edf05 - as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x5ae03c0edf05 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x5ae03c0edf05 - std[d054f6f42beb1baa]::panicking::catch_unwind::, core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x5ae03c0edf05 - std[d054f6f42beb1baa]::panic::catch_unwind::, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x5ae03c0edf05 - test[fad20673b750c10e]::run_test_in_process [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:27 [INFO] [stdout] 32: 0x5ae03c0edf05 - test[fad20673b750c10e]::run_test::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:668:43 [INFO] [stdout] 33: 0x5ae03c0e8a64 - test[fad20673b750c10e]::run_test::{closure#1} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:698:41 [INFO] [stdout] 34: 0x5ae03c0e8a64 - std[d054f6f42beb1baa]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:70:13 [INFO] [stdout] 36: 0x5ae03c0f0f82 - ::{closure#1}::{closure#0}> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::panicking::catch_unwind::<(), core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x5ae03c0f0f82 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:68:26 [INFO] [stdout] 41: 0x5ae03c0f0f82 - ::{closure#1} as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x5ae03cd6e9ff - + core[5a1c3e9896636f3a]::marker::Send> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2277:9 [INFO] [stdout] 43: 0x5ae03cd6e9ff - ::new::thread_start [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x7e810b2deaa4 - [INFO] [stdout] 45: 0x7e810b36ba64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] helpers::gmail::tests::test_parse_attachments_reads_real_file [INFO] [stdout] helpers::gmail::tests::test_parse_attachments_rejects_empty_file [INFO] [stdout] helpers::gmail::tests::test_parse_attachments_size_limit_accumulates [INFO] [stdout] helpers::gmail::tests::test_parse_attachments_unknown_extension_falls_back_to_octet_stream [INFO] [stdout] [INFO] [stdout] test result: FAILED. 705 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.03s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `-p google-workspace-cli --bin gws` [INFO] running `Command { std: "docker" "inspect" "3ba280b883366c2935478a49279d6840a23b7e4c8f7a0350978c42e1ae37f256", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3ba280b883366c2935478a49279d6840a23b7e4c8f7a0350978c42e1ae37f256", kill_on_drop: false }` [INFO] [stdout] 3ba280b883366c2935478a49279d6840a23b7e4c8f7a0350978c42e1ae37f256