[INFO] cloning repository https://github.com/dxter327/google-workspace-tool
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dxter327/google-workspace-tool" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdxter327%2Fgoogle-workspace-tool", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdxter327%2Fgoogle-workspace-tool'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a3768d0e82ad83cca2da97724e46bea4ff0e6dbd
[INFO] testing dxter327/google-workspace-tool against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdxter327%2Fgoogle-workspace-tool" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dxter327/google-workspace-tool
[INFO] finished tweaking git repo https://github.com/dxter327/google-workspace-tool
[INFO] tweaked toml for git repo https://github.com/dxter327/google-workspace-tool written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dxter327/google-workspace-tool on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dxter327/google-workspace-tool 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sdd v3.0.10
[INFO] [stderr]   Downloaded serial_test_derive v3.4.0
[INFO] [stderr]   Downloaded serial_test v3.4.0
[INFO] [stderr]   Downloaded instability v0.3.12
[INFO] [stderr]   Downloaded line-clipping v0.3.7
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.116
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.66
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.116
[INFO] [stderr]   Downloaded kasuari v0.4.12
[INFO] [stderr]   Downloaded tracing-appender v0.2.4
[INFO] [stderr]   Downloaded mail-builder v0.4.4
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.116
[INFO] [stderr]   Downloaded keyring v3.6.3
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.116
[INFO] [stderr]   Downloaded yup-oauth2 v12.1.2
[INFO] [stderr]   Downloaded uuid v1.23.0
[INFO] [stderr]   Downloaded euclid v0.22.14
[INFO] [stderr]   Downloaded js-sys v0.3.93
[INFO] [stderr]   Downloaded scc v2.4.0
[INFO] [stderr]   Downloaded web-sys v0.3.93
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cd2dab6ef09b32846785207f52dc9accb9b963eb4896b4fc5df05687d48d129e
[INFO] running `Command { std: "docker" "start" "-a" "cd2dab6ef09b32846785207f52dc9accb9b963eb4896b4fc5df05687d48d129e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cd2dab6ef09b32846785207f52dc9accb9b963eb4896b4fc5df05687d48d129e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cd2dab6ef09b32846785207f52dc9accb9b963eb4896b4fc5df05687d48d129e", kill_on_drop: false }`
[INFO] [stdout] cd2dab6ef09b32846785207f52dc9accb9b963eb4896b4fc5df05687d48d129e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 372a8db5a7d9949a5f23923e1c1b2855c889b40814b0415ecb4eba797b6292e8
[INFO] running `Command { std: "docker" "start" "-a" "372a8db5a7d9949a5f23923e1c1b2855c889b40814b0415ecb4eba797b6292e8", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling mime_guess2 v2.3.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[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 phf_shared v0.12.1
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling chrono-tz v0.10.4
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling phf v0.12.1
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling sha1_smol v1.0.1
[INFO] [stderr]    Compiling seahash v4.1.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling google-workspace v0.22.5 (/opt/rustwide/workdir/crates/google-workspace)
[INFO] [stderr]    Compiling yup-oauth2 v12.1.2
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling uuid v1.23.0
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling mail-builder v0.4.4
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling tracing-appender v0.2.4
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling derive_builder v0.20.2
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling keyring v3.6.3
[INFO] [stderr]    Compiling hostname v0.4.2
[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 47s
[INFO] running `Command { std: "docker" "inspect" "372a8db5a7d9949a5f23923e1c1b2855c889b40814b0415ecb4eba797b6292e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "372a8db5a7d9949a5f23923e1c1b2855c889b40814b0415ecb4eba797b6292e8", kill_on_drop: false }`
[INFO] [stdout] 372a8db5a7d9949a5f23923e1c1b2855c889b40814b0415ecb4eba797b6292e8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] de9ed7a24af749b44810f6c39540df8b12fe79777dbcc5521567098841654f26
[INFO] running `Command { std: "docker" "start" "-a" "de9ed7a24af749b44810f6c39540df8b12fe79777dbcc5521567098841654f26", 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 35.64s
[INFO] running `Command { std: "docker" "inspect" "de9ed7a24af749b44810f6c39540df8b12fe79777dbcc5521567098841654f26", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de9ed7a24af749b44810f6c39540df8b12fe79777dbcc5521567098841654f26", kill_on_drop: false }`
[INFO] [stdout] de9ed7a24af749b44810f6c39540df8b12fe79777dbcc5521567098841654f26
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3ffa33fbe4c0e4e3ce650c3b380e327f48333872b23b10a00a9c5ede8a511cd4
[INFO] running `Command { std: "docker" "start" "-a" "3ffa33fbe4c0e4e3ce650c3b380e327f48333872b23b10a00a9c5ede8a511cd4", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.40s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/google_workspace-341307febef712ab)
[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_falls_back_on_unparseable_header ... ok
[INFO] [stdout] test client::tests::retry_delay_caps_large_header_value ... ok
[INFO] [stdout] test client::tests::retry_delay_passes_through_small_header_value ... ok
[INFO] [stdout] test discovery::tests::test_deserialize_defaults ... ok
[INFO] [stdout] test discovery::tests::test_deserialize_rest_description ... ok
[INFO] [stdout] test error::tests::test_error_to_json_access_not_configured_without_url ... 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_api ... ok
[INFO] [stdout] test error::tests::test_error_to_json_validation ... ok
[INFO] [stdout] test error::tests::test_exit_code_api ... ok
[INFO] [stdout] test error::tests::test_exit_code_auth ... ok
[INFO] [stdout] test error::tests::test_exit_code_discovery ... ok
[INFO] [stdout] test error::tests::test_exit_code_other ... ok
[INFO] [stdout] test error::tests::test_exit_code_validation ... ok
[INFO] [stdout] test error::tests::test_exit_codes_are_distinct ... ok
[INFO] [stdout] test services::tests::test_resolve_service_known ... ok
[INFO] [stdout] test services::tests::test_resolve_service_unknown ... ok
[INFO] [stdout] test validate::tests::test_dir_path_cwd ... ok
[INFO] [stdout] test validate::tests::test_dir_path_rejects_absolute ... ok
[INFO] [stdout] test error::tests::test_error_to_json_auth ... ok
[INFO] [stdout] test error::tests::test_error_to_json_discovery ... ok
[INFO] [stdout] test validate::tests::test_encode_path_preserving_slashes_hierarchical_name ... ok
[INFO] [stdout] test validate::tests::test_encode_path_preserving_slashes_spaces_and_unicode ... ok
[INFO] [stdout] test validate::tests::test_encode_path_segment_already_encoded ... ok
[INFO] [stdout] test validate::tests::test_encode_path_segment_email ... ok
[INFO] [stdout] test validate::tests::test_encode_path_segment_fragment_injection ... 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_query_injection ... ok
[INFO] [stdout] test error::tests::test_error_to_json_other ... ok
[INFO] [stdout] test validate::tests::test_dir_path_rejects_traversal ... ok
[INFO] [stdout] test validate::tests::test_encode_path_preserving_slashes_escapes_reserved_chars ... ok
[INFO] [stdout] test validate::tests::test_file_path_rejects_control_chars ... ok
[INFO] [stdout] test validate::tests::test_encode_path_segment_unicode ... ok
[INFO] [stdout] test validate::tests::test_file_path_rejects_symlink_escape ... ok
[INFO] [stdout] test validate::tests::test_encode_path_segment_spaces ... ok
[INFO] [stdout] test validate::tests::test_file_path_rejects_traversal_via_nonexistent_prefix ... ok
[INFO] [stdout] test validate::tests::test_file_path_rejects_traversal ... ok
[INFO] [stdout] test validate::tests::test_output_dir_rejects_absolute ... ok
[INFO] [stdout] test validate::tests::test_file_path_relative_is_ok ... ok
[INFO] [stdout] test validate::tests::test_output_dir_rejects_rtl_override ... ok
[INFO] [stdout] test validate::tests::test_output_dir_rejects_control_chars ... ok
[INFO] [stdout] test validate::tests::test_output_dir_rejects_null_bytes ... ok
[INFO] [stdout] test validate::tests::test_output_dir_rejects_symlink_traversal ... ok
[INFO] [stdout] test validate::tests::test_output_dir_rejects_unicode_line_separator ... 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_output_dir_rejects_traversal ... ok
[INFO] [stdout] test validate::tests::test_reject_dangerous_chars_del ... ok
[INFO] [stdout] test validate::tests::test_reject_dangerous_chars_newline ... ok
[INFO] [stdout] test validate::tests::test_reject_dangerous_chars_normal_unicode_ok ... ok
[INFO] [stdout] test validate::tests::test_reject_dangerous_chars_paragraph_separator ... ok
[INFO] [stdout] test validate::tests::test_output_dir_relative_subdir ... ok
[INFO] [stdout] test validate::tests::test_reject_dangerous_chars_tab ... ok
[INFO] [stdout] test validate::tests::test_reject_dangerous_chars_zero_width_joiner ... ok
[INFO] [stdout] test validate::tests::test_reject_dangerous_chars_rtl_override ... ok
[INFO] [stdout] test client::tests::retry_delay_falls_back_to_exponential_on_missing_header ... ok
[INFO] [stdout] test validate::tests::test_reject_dangerous_chars_unicode_line_separator ... ok
[INFO] [stdout] test validate::tests::test_reject_dangerous_chars_zero_width_space ... 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_validate_api_identifier_rejects_special_chars ... ok
[INFO] [stdout] test validate::tests::test_validate_resource_name_bidi_embedding ... ok
[INFO] [stdout] test validate::tests::test_validate_api_identifier_valid ... ok
[INFO] [stdout] test validate::tests::test_validate_resource_name_control_chars ... ok
[INFO] [stdout] test validate::tests::test_validate_resource_name_empty ... ok
[INFO] [stdout] test validate::tests::test_validate_resource_name_error_messages_are_clear ... ok
[INFO] [stdout] test validate::tests::test_validate_resource_name_homoglyphs_pass_through ... ok
[INFO] [stdout] test validate::tests::test_validate_resource_name_overlong_accepted ... ok
[INFO] [stdout] test validate::tests::test_validate_resource_name_percent_bypass ... ok
[INFO] [stdout] test validate::tests::test_validate_resource_name_traversal ... 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_unicode_line_seps ... ok
[INFO] [stdout] test validate::tests::test_validate_resource_name_valid ... ok
[INFO] [stdout] test validate::tests::test_validate_resource_name_zero_width_chars ... ok
[INFO] [stdout] test validate::tests::test_output_dir_non_existing_subdir ... ok
[INFO] [stdout] test client::tests::build_client_succeeds ... ok
[INFO] [stdout] test client::tests::shared_client_succeeds ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/gws-9d6dfc9059832cd6)
[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.23s
[INFO] [stdout] 
[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::test_get_quota_project_priority_adc_fallback ... ok
[INFO] [stdout] test auth::tests::has_proxy_env_returns_true_when_set ... ok
[INFO] [stdout] test auth::tests::test_get_quota_project_priority_env_var ... ok
[INFO] [stdout] test auth::tests::test_get_quota_project_priority_config ... ok
[INFO] [stdout] test auth::tests::response_text_or_placeholder_returns_body ... ok
[INFO] [stdout] test auth::tests::test_get_token_env_var_empty_falls_through ... ok
[INFO] [stdout] test auth::tests::test_get_token_from_env_var ... ok
[INFO] [stdout] test auth::tests::test_load_credentials_default_path_authorized_user ... ok
[INFO] [stdout] test auth::tests::test_load_credentials_encrypted_file ... ok
[INFO] [stdout] test auth::tests::test_load_credentials_adc_env_var_missing_file ... ok
[INFO] [stdout] test auth::tests::test_load_credentials_adc_env_var_service_account ... ok
[INFO] [stdout] test auth::tests::test_load_credentials_env_file_missing ... ok
[INFO] [stdout] test auth::tests::test_load_credentials_no_options ... ok
[INFO] [stdout] test auth::tests::test_load_credentials_env_file_service_account ... ok
[INFO] [stdout] test auth_commands::tests::build_proxy_auth_url_encodes_scope_and_redirect_uri ... ok
[INFO] [stdout] test auth::tests::test_load_credentials_corrupt_encrypted_file_is_removed ... ok
[INFO] [stdout] test auth::tests::test_load_credentials_encrypted_takes_priority_over_default ... ok
[INFO] [stdout] test auth::tests::test_load_credentials_env_file_authorized_user ... ok
[INFO] [stdout] test auth_commands::tests::credential_store_save_load_round_trip ... 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_corrupt_encrypted_falls_through_to_plaintext ... 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_empty_auth ... ok
[INFO] [stdout] test auth_commands::tests::extract_scopes_from_doc_readonly_filter ... ok
[INFO] [stdout] test auth_commands::tests::extract_scopes_from_doc_filters_app_only ... ok
[INFO] [stdout] test auth_commands::tests::filter_restrictive_keeps_metadata_when_only_scope ... 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_scopes_by_services_none_returns_all ... ok
[INFO] [stdout] test auth_commands::tests::find_unmatched_services_all_matched ... 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::find_unmatched_services_identifies_missing ... ok
[INFO] [stdout] test auth_commands::tests::handle_auth_command_empty_args_prints_usage ... 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] 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_invalid_subcommand ... ok
[INFO] [stdout] test auth_commands::tests::handle_auth_command_help_short_flag_returns_ok ... ok
[INFO] [stdout] test auth_commands::tests::handle_status_succeeds_without_credentials ... ok
[INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_apps_alerts ... 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] test auth_commands::tests::is_workspace_admin_scope_chat_admin ... ok
[INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_classroom ... ok
[INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_cloud_identity ... 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_groups ... ok
[INFO] [stdout] test auth_commands::tests::mask_secret_boundary ... ok
[INFO] [stdout] test auth_commands::tests::mask_secret_long_string ... ok
[INFO] [stdout] test auth_commands::tests::mask_secret_multibyte_utf8 ... ok
[INFO] [stdout] test auth_commands::tests::mask_secret_short_string ... ok
[INFO] [stdout] test auth_commands::tests::plain_credentials_path_defaults_to_config_dir ... ok
[INFO] [stdout] test auth::tests::test_scoped_token_provider_uses_get_token ... ok
[INFO] [stdout] test auth_commands::tests::config_dir_fallback_to_legacy ... ok
[INFO] [stdout] test auth_commands::tests::read_refresh_token_from_cache_requires_refresh_token ... ok
[INFO] [stdout] test auth_commands::tests::read_refresh_token_from_cache_reads_encrypted_storage ... ok
[INFO] [stdout] test auth::tests::test_load_credentials_adc_env_var_authorized_user ... ok
[INFO] [stdout] test auth_commands::tests::config_dir_returns_gws_subdir ... ok
[INFO] [stdout] test auth_commands::tests::resolve_credentials_fails_without_env_vars_or_config ... ok
[INFO] [stdout] test auth_commands::tests::plain_credentials_path_respects_env_var ... ok
[INFO] [stdout] test auth_commands::tests::resolve_credentials_uses_env_vars_when_present ... ok
[INFO] [stdout] test auth_commands::tests::config_dir_primary_uses_dot_config ... ok
[INFO] [stdout] test auth_commands::tests::is_workspace_admin_scope_normal_scopes_not_admin ... ok
[INFO] [stdout] test auth_commands::tests::resolve_client_credentials_missing_env_vars_uses_config ... ok
[INFO] [stdout] test auth::tests::test_get_quota_project_reads_adc ... ok
[INFO] [stdout] test auth_commands::tests::resolve_client_credentials_from_env_vars ... ok
[INFO] [stdout] test auth_commands::tests::resolve_scopes_returns_defaults_when_no_flag ... ok
[INFO] [stdout] test auth_commands::tests::resolve_scopes_returns_custom_scopes ... ok
[INFO] [stdout] test auth_commands::tests::resolve_scopes_services_filter_unknown_service_ignored ... ok
[INFO] [stdout] test auth_commands::tests::resolve_scopes_explicit_scopes_bypass_services_filter ... ok
[INFO] [stdout] test auth_commands::tests::resolve_scopes_readonly_returns_readonly_scopes ... ok
[INFO] [stdout] test auth_commands::tests::scope_matches_service_chat ... ok
[INFO] [stdout] test auth_commands::tests::scope_matches_service_cloud_platform_always_matches ... ok
[INFO] [stdout] test auth_commands::tests::scope_matches_service_aliases ... ok
[INFO] [stdout] test auth_commands::tests::resolve_scopes_full_returns_full_scopes ... ok
[INFO] [stdout] test auth_commands::tests::resolve_scopes_services_takes_priority_with_full ... ok
[INFO] [stdout] test auth_commands::tests::scope_matches_service_exact_match ... 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_people_contacts ... ok
[INFO] [stdout] test auth_commands::tests::token_cache_path_is_in_config_dir ... ok
[INFO] [stdout] test auth_commands::tests::resolve_scopes_with_services_filter ... ok
[INFO] [stdout] test commands::tests::test_all_commands_always_shown ... 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::backend_from_env_invalid_defaults_to_keyring ... ok
[INFO] [stdout] test credential_store::tests::decrypt_rejects_tampered_ciphertext ... ok
[INFO] [stdout] test credential_store::tests::decrypt_rejects_short_data ... 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 credential_store::tests::ensure_key_dir_creates_nested_dirs ... ok
[INFO] [stdout] test credential_store::tests::file_backend_reads_existing_key ... ok
[INFO] [stdout] test credential_store::tests::file_backend_skips_keyring_entirely ... ok
[INFO] [stdout] test credential_store::tests::get_or_create_key_is_deterministic ... ok
[INFO] [stdout] test credential_store::tests::encrypt_decrypt_round_trip ... ok
[INFO] [stdout] test credential_store::tests::get_or_create_key_produces_256_bits ... ok
[INFO] [stdout] test auth_commands::tests::resolve_scopes_handles_multiple_custom ... 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 auth_commands::tests::resolve_scopes_services_takes_priority_with_readonly ... ok
[INFO] [stdout] test credential_store::tests::keyring_backend_invalid_keyring_data_uses_file ... ok
[INFO] [stdout] test credential_store::tests::file_backend_generates_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::keyring_backend_creates_file_backup_when_missing ... ok
[INFO] [stdout] test credential_store::tests::key_is_stable_across_calls ... 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_returns_keyring_key ... ok
[INFO] [stdout] test credential_store::tests::keyring_backend_platform_error_no_file_generates ... ok
[INFO] [stdout] test credential_store::tests::race_loser_syncs_winner_key_to_keyring ... ok
[INFO] [stdout] test credential_store::tests::read_key_file_invalid_base64 ... 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 credential_store::tests::read_key_file_missing ... ok
[INFO] [stdout] test credential_store::tests::save_key_file_exclusive_creates_new_file ... ok
[INFO] [stdout] test credential_store::tests::keyring_backend_platform_error_falls_back_to_file ... ok
[INFO] [stdout] test credential_store::tests::keyring_backend_no_entry_reads_file ... ok
[INFO] [stdout] test error::tests::test_colorize_respects_no_color_env ... ok
[INFO] [stdout] test error::tests::test_error_label_contains_variant_name ... ok
[INFO] [stdout] test error::tests::test_sanitize_for_terminal_strips_control_chars ... ok
[INFO] [stdout] test executor::test_execute_method_missing_path_param ... ok
[INFO] [stdout] test executor::test_execute_method_dry_run ... 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 executor::test_extract_enable_url_trims_trailing_punctuation ... ok
[INFO] [stdout] test executor::test_extract_enable_url_typical_message ... ok
[INFO] [stdout] test credential_store::tests::save_key_file_overwrites_existing ... ok
[INFO] [stdout] test executor::test_get_value_type_helper ... ok
[INFO] [stdout] test executor::test_handle_error_response_access_not_configured_errors_array ... ok
[INFO] [stdout] test executor::test_handle_error_response_access_not_configured_with_url ... 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::tests::test_build_multipart_body ... 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 executor::tests::test_build_multipart_stream_content_length ... ok
[INFO] [stdout] test executor::tests::test_build_multipart_stream_large_file ... ok
[INFO] [stdout] test executor::tests::test_build_url_basic ... ok
[INFO] [stdout] test executor::tests::test_build_url_does_not_replace_placeholder_like_values ... 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_flatpath_fallback_on_mismatch ... ok
[INFO] [stdout] test executor::tests::test_build_url_plus_expansion_preserves_slashes ... ok
[INFO] [stdout] test executor::tests::test_build_url_plus_expansion_rejects_path_traversal ... ok
[INFO] [stdout] test executor::tests::test_build_url_plus_expansion_rejects_reserved_chars ... ok
[INFO] [stdout] test executor::tests::test_build_url_query_params ... ok
[INFO] [stdout] test executor::tests::test_build_url_repeated_query_param_expands_array ... ok
[INFO] [stdout] test executor::tests::test_build_url_substitution ... ok
[INFO] [stdout] test executor::tests::test_build_url_upload_endpoint_substitutes_path_params ... 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_handle_error_response_api_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_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_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_exact_boundary ... 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_value_paginated_csv_continuation_no_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_table_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_yaml_has_document_separator ... ok
[INFO] [stdout] test formatter::tests::test_format_yaml ... 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_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 credential_store::tests::read_key_file_valid ... ok
[INFO] [stdout] test executor::tests::test_build_multipart_body_no_metadata ... ok
[INFO] [stdout] test credential_store::tests::race_loser_corrupt_file_overwrites ... ok
[INFO] [stdout] test credential_store::tests::keyring_backend_syncs_file_when_keyring_differs ... ok
[INFO] [stdout] test fs_util::tests::test_atomic_write_creates_file ... 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_helper_skill_frontmatter_uses_block_sequences ... ok
[INFO] [stdout] test generate_skills::tests::test_lookup_method_description_found ... 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_lookup_method_description_no_description ... ok
[INFO] [stdout] test fs_util::tests::test_atomic_write_async_creates_file ... 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_recipe_skill_frontmatter_uses_block_sequences ... ok
[INFO] [stdout] test generate_skills::tests::test_service_skill_frontmatter_uses_block_sequences ... ok
[INFO] [stdout] test fs_util::tests::test_atomic_write_overwrites_existing ... ok
[INFO] [stdout] test generate_skills::tests::test_shared_skill_frontmatter_uses_block_sequences ... ok
[INFO] [stdout] test generate_skills::tests::test_truncate_desc_adds_period ... ok
[INFO] [stdout] test generate_skills::tests::test_truncate_desc_ellipsis_no_period ... ok
[INFO] [stdout] test generate_skills::tests::test_truncate_desc_replaces_quotes ... ok
[INFO] [stdout] test generate_skills::tests::test_truncate_desc_short ... ok
[INFO] [stdout] test generate_skills::tests::test_truncate_desc_truncates_long ... ok
[INFO] [stdout] test helpers::calendar::tests::agenda_day_boundaries_use_account_timezone ... ok
[INFO] [stdout] test generate_skills::tests::test_capitalize_first_empty ... ok
[INFO] [stdout] test helpers::calendar::tests::test_build_insert_request_with_meet ... ok
[INFO] [stdout] test helpers::calendar::tests::test_build_insert_request ... ok
[INFO] [stdout] test helpers::calendar::tests::test_build_insert_request_with_meet_is_idempotent ... ok
[INFO] [stdout] test helpers::calendar::tests::test_build_insert_request_with_meet_idempotency_robust ... ok
[INFO] [stdout] test generate_skills::tests::test_truncate_desc_capitalizes ... ok
[INFO] [stdout] test generate_skills::tests::test_truncate_desc_preserves_existing_period ... ok
[INFO] [stdout] test helpers::chat::tests::test_inject_commands ... 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::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::docs::tests::test_build_write_request ... ok
[INFO] [stdout] test helpers::drive::tests::test_determine_filename_explicit ... ok
[INFO] [stdout] test helpers::chat::tests::test_parse_send_args_rejects_traversal_in_space ... ok
[INFO] [stdout] test helpers::drive::tests::test_build_metadata_no_parent ... ok
[INFO] [stdout] test helpers::drive::tests::test_determine_filename_from_path ... ok
[INFO] [stdout] test helpers::events::renew::tests::test_filter_subscriptions_to_renew ... ok
[INFO] [stdout] test helpers::events::renew::tests::test_parse_duration_days ... ok
[INFO] [stdout] test helpers::events::renew::tests::test_parse_duration_hours ... ok
[INFO] [stdout] test helpers::events::renew::tests::test_parse_duration_minutes ... ok
[INFO] [stdout] test helpers::events::renew::tests::test_parse_duration_invalid ... 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::drive::tests::test_determine_filename_invalid_path ... 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_decode_cloud_event ... 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_process_events_pull_response_empty ... ok
[INFO] [stdout] test helpers::events::subscribe::tests::test_process_events_pull_response ... 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::subscribe::tests::test_slug_non_workspace_prefix ... 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_single_event_type ... ok
[INFO] [stdout] test helpers::events::subscribe::tests::test_slug_single_event_type_chat ... ok
[INFO] [stdout] test helpers::events::subscribe::tests::test_slug_truncation ... ok
[INFO] [stdout] test helpers::events::tests::test_inject_commands ... ok
[INFO] [stdout] test helpers::gmail::forward::tests::test_build_forward_subject_case_insensitive ... 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 generate_skills::tests::test_registry_references ... ok
[INFO] [stdout] test helpers::gmail::forward::tests::test_create_forward_raw_message_html_with_inline_image ... 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_references_chain ... 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_plain_text_no_inline_images ... 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_html_plain_text_fallback ... 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_attachment ... 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_with_html_body ... ok
[INFO] [stdout] test helpers::gmail::forward::tests::test_format_forwarded_message_missing_date ... ok
[INFO] [stdout] test helpers::gmail::forward::tests::test_format_forwarded_message_with_cc ... 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_format_forwarded_message ... 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_format_forwarded_message_html_fallback_plain_text ... 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_parse_forward_args ... ok
[INFO] [stdout] test helpers::gmail::forward::tests::test_parse_forward_args_empty_to_returns_error ... ok
[INFO] [stdout] test helpers::gmail::forward::tests::test_format_forwarded_message_html_escapes_metadata ... 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_parse_forward_args_html_flag ... ok
[INFO] [stdout] test helpers::gmail::read::tests::test_format_mailbox_list_multiple ... ok
[INFO] [stdout] test helpers::gmail::forward::tests::test_parse_forward_args_no_original_attachments ... ok
[INFO] [stdout] test helpers::gmail::forward::tests::test_parse_forward_args_with_all_options ... ok
[INFO] [stdout] test helpers::gmail::read::tests::test_format_mailbox_list_empty ... ok
[INFO] [stdout] test helpers::gmail::read::tests::test_sanitize_for_terminal ... ok
[INFO] [stdout] test helpers::gmail::read::tests::test_format_mailbox_list_single ... 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_build_reply_all_with_remove ... 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_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_case_insensitive_sender_exclusion ... 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_basic ... 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_html_with_inline_image ... ok
[INFO] [stdout] test helpers::gmail::reply::tests::test_create_reply_raw_message_html ... 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_bcc_fully_overlaps_returns_empty ... ok
[INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_all_three_overlap ... ok
[INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_case_insensitive ... ok
[INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_intro_pattern ... ok
[INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_no_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_with_display_names ... ok
[INFO] [stdout] test helpers::gmail::reply::tests::test_dedup_to_wins_over_cc ... ok
[INFO] [stdout] test helpers::gmail::reply::tests::test_extra_to_appears_in_raw_message ... 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_dedup_cc_wins_over_bcc ... ok
[INFO] [stdout] test helpers::gmail::reply::tests::test_extract_reply_to_address_prefers_reply_to ... 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 ... 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_empty_body ... 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_without_remove_defined ... 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_html_flag ... ok
[INFO] [stdout] test helpers::gmail::reply::tests::test_remove_with_display_name_format ... ok
[INFO] [stdout] test helpers::gmail::reply::tests::test_remove_with_quoted_comma_display_name ... 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_reply_all_deduplicates_cc ... ok
[INFO] [stdout] test helpers::gmail::reply::tests::test_parse_reply_args_with_all_options ... 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_to_own_message_detected_via_alias ... 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_ignores_reply_to ... 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::reply::tests::test_reply_all_with_extra_cc ... 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::send::tests::test_parse_send_args ... ok
[INFO] [stdout] test helpers::gmail::send::tests::test_parse_send_args_html_flag ... ok
[INFO] [stdout] test helpers::gmail::reply::tests::test_reply_all_with_quoted_comma_display_name ... 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_parse_send_args_with_cc_and_bcc ... ok
[INFO] [stdout] test helpers::gmail::send::tests::test_send_html_raw_message ... 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_multiple_to_recipients ... ok
[INFO] [stdout] test helpers::gmail::send::tests::test_parse_send_args_with_from ... 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_attachment_produces_multipart ... ok
[INFO] [stdout] test helpers::gmail::send::tests::test_send_with_cc_and_bcc ... ok
[INFO] [stdout] test helpers::gmail::send::tests::test_send_with_from ... ok
[INFO] [stdout] test helpers::gmail::send::tests::test_send_without_from_has_no_from_header ... ok
[INFO] [stdout] test helpers::gmail::tests::test_attachment_multiple_files ... ok
[INFO] [stdout] test helpers::gmail::tests::test_attachment_single_file ... 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_append_address_list_header_value ... ok
[INFO] [stdout] test helpers::gmail::send::tests::test_send_crlf_injection_in_from_does_not_create_header ... ok
[INFO] [stdout] test helpers::gmail::tests::test_attachment_with_html_body ... ok
[INFO] [stdout] test helpers::gmail::tests::test_attachment_empty_produces_no_multipart ... ok
[INFO] [stdout] test helpers::gmail::tests::test_build_api_error_falls_back_to_raw_body ... ok
[INFO] [stdout] test helpers::gmail::tests::test_build_api_error_parses_google_json_format ... 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_api_error_extracts_top_level_reason ... ok
[INFO] [stdout] test helpers::gmail::tests::test_build_references_chain ... ok
[INFO] [stdout] test helpers::gmail::tests::test_build_send_metadata_draft_with_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_send_metadata_draft_without_thread_id ... 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_content_id_crlf_injection_sanitized ... ok
[INFO] [stdout] test helpers::gmail::tests::test_content_id_normalization ... ok
[INFO] [stdout] test helpers::gmail::tests::test_extract_html_body_direct ... ok
[INFO] [stdout] test helpers::gmail::tests::test_extract_html_body_from_nested_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_payload_contents_with_attachment ... ok
[INFO] [stdout] test helpers::gmail::tests::test_extract_html_body_from_multipart ... 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_inline_image ... ok
[INFO] [stdout] test helpers::gmail::tests::test_extract_plain_text_body_nested_multipart ... 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_simple ... ok
[INFO] [stdout] test helpers::gmail::tests::test_filename_control_char_sanitization ... ok
[INFO] [stdout] test helpers::gmail::tests::test_finalize_message_html_inline_and_attachment ... ok
[INFO] [stdout] test helpers::gmail::tests::test_finalize_message_html_inline_creates_multipart_related ... 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_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_email_link_prevents_mailto_injection ... ok
[INFO] [stdout] test helpers::gmail::tests::test_format_forward_from ... ok
[INFO] [stdout] test helpers::gmail::tests::test_format_sender_for_attribution ... ok
[INFO] [stdout] test helpers::gmail::tests::test_header_case_insensitive ... ok
[INFO] [stdout] test helpers::gmail::tests::test_html_escape ... ok
[INFO] [stdout] test helpers::gmail::tests::test_mailbox_display ... ok
[INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_empty ... ok
[INFO] [stdout] test helpers::gmail::tests::test_inject_commands ... ok
[INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_bare_email ... ok
[INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_empty_angle_brackets ... 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_list_filters_empty_emails ... ok
[INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_non_ascii_display_name ... ok
[INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_list ... ok
[INFO] [stdout] test helpers::gmail::tests::test_mailbox_parse_quoted_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::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_empty_returns_empty_vec ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_nonexistent_file ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_rejects_directory ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_rejects_control_chars ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_reads_real_file ... FAILED
[INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_rejects_empty_file ... FAILED
[INFO] [stdout] test helpers::gmail::tests::test_parse_optional_trimmed ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_bare_message_id ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_minimal ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_unknown_extension_falls_back_to_octet_stream ... FAILED
[INFO] [stdout] test helpers::gmail::tests::test_parse_attachments_size_limit_accumulates ... FAILED
[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 helpers::gmail::tests::test_parse_original_message_missing_payload ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_missing_thread_id ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_multipart_alternative ... ok
[INFO] [stdout] test executor::test_get_does_not_set_content_length_zero ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_populates_parts ... ok
[INFO] [stdout] test executor::test_post_without_body_sets_content_length_zero ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_profile_display_name ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_original_message_snippet_fallback ... 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_empty ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_profile_display_name_empty ... ok
[INFO] [stdout] test helpers::gmail::tests::test_resolve_draft_method_finds_gmail_drafts_create_method ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_send_as_response ... ok
[INFO] [stdout] test helpers::gmail::tests::test_resolve_html_body_uses_html_when_present ... ok
[INFO] [stdout] test helpers::gmail::tests::test_resolve_html_body_escapes_plain_text_fallback ... ok
[INFO] [stdout] test helpers::gmail::tests::test_parse_send_as_response_skips_missing_email ... 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_enriched ... 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_bare_email_case_insensitive ... ok
[INFO] [stdout] test helpers::gmail::tests::test_resolve_sender_no_default_in_list ... 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_resolve_sender_no_from_returns_default ... 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_with_display_name_returns_as_is ... ok
[INFO] [stdout] test helpers::gmail::tests::test_resolve_sender_mixed_enriches_only_bare ... ok
[INFO] [stdout] test helpers::gmail::tests::test_sanitize_remote_filename_whitespace_only ... ok
[INFO] [stdout] test helpers::gmail::tests::test_sanitize_remote_filename_all_control_chars ... ok
[INFO] [stdout] test helpers::gmail::tests::test_set_threading_headers_output ... ok
[INFO] [stdout] test helpers::gmail::tests::test_rfc2822_display_name_quoting_via_mail_builder ... ok
[INFO] [stdout] test helpers::gmail::tests::test_split_raw_mailbox_list ... ok
[INFO] [stdout] test helpers::gmail::tests::test_synthesize_filename_octet_stream ... ok
[INFO] [stdout] test helpers::gmail::tests::test_synthesize_filename_jpeg ... ok
[INFO] [stdout] test helpers::gmail::tests::test_synthesize_filename_svg ... ok
[INFO] [stdout] test helpers::gmail::tests::test_synthesize_filename_no_slash ... ok
[INFO] [stdout] test helpers::gmail::tests::test_to_mb_address_bare_email ... ok
[INFO] [stdout] test helpers::gmail::tests::test_to_mb_address_list_multiple ... ok
[INFO] [stdout] test helpers::gmail::triage::tests::empty_result_message_is_not_json ... ok
[INFO] [stdout] test helpers::gmail::tests::test_to_mb_address_with_display_name ... ok
[INFO] [stdout] test helpers::gmail::triage::tests::defaults_max_to_20_and_query_to_unread ... ok
[INFO] [stdout] test helpers::gmail::triage::tests::custom_query_overrides_default ... 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::labels_flag_defaults_to_false ... ok
[INFO] [stdout] test helpers::gmail::triage::tests::format_json_when_specified ... ok
[INFO] [stdout] test helpers::gmail::triage::tests::labels_flag_set_when_passed ... ok
[INFO] [stdout] test helpers::gmail::watch::tests::test_extract_message_ids_empty ... ok
[INFO] [stdout] test helpers::gmail::triage::tests::non_numeric_max_falls_back_to_20 ... ok
[INFO] [stdout] test helpers::gmail::watch::tests::test_extract_message_ids_from_history ... 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_parse_watch_args_invalid_numbers ... 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_invalid_format_rejected_by_clap ... ok
[INFO] [stdout] test helpers::gmail::watch::tests::test_process_pull_response ... ok
[INFO] [stdout] test helpers::gmail::watch::tests::test_parse_watch_args_invalid_output_dir ... 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::modelarmor::parsing_tests::test_inject_commands ... ok
[INFO] [stdout] test helpers::gmail::watch::tests::test_apply_sanitization_result_warn_mode ... 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_preset ... 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_load_preset_template_fallback ... ok
[INFO] [stdout] test helpers::gmail::watch::tests::test_parse_watch_args_defaults ... 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_empty ... ok
[INFO] [stdout] test helpers::modelarmor::tests::test_extract_location_no_locations ... ok
[INFO] [stdout] test helpers::modelarmor::tests::test_extract_location_different_region ... 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::gmail::tests::test_strip_angle_brackets ... ok
[INFO] [stdout] test helpers::gmail::watch::tests::test_parse_watch_args_rejects_traversal_subscription ... 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_sanitize_config_with_template ... ok
[INFO] [stdout] test helpers::modelarmor::tests::test_parse_sanitize_response_missing_field ... 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_mode_from_str_block ... ok
[INFO] [stdout] test helpers::modelarmor::tests::test_sanitize_mode_from_str_warn ... ok
[INFO] [stdout] test helpers::modelarmor::tests::test_sanitize_mode_from_str_unknown_defaults_to_warn ... ok
[INFO] [stdout] test helpers::script::tests::test_process_file_appsscript_json ... ok
[INFO] [stdout] test helpers::script::tests::test_process_file_ignored ... ok
[INFO] [stdout] test helpers::sheets::tests::test_build_append_request ... ok
[INFO] [stdout] test helpers::script::tests::test_visit_dirs ... ok
[INFO] [stdout] test helpers::sheets::tests::test_build_append_request_multi_row ... 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_inject_commands ... ok
[INFO] [stdout] test helpers::sheets::tests::test_parse_append_args_default_range ... 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_append_args_json_multi_row ... ok
[INFO] [stdout] test helpers::sheets::tests::test_parse_append_args_with_range ... 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::workflows::tests::test_build_meeting_prep_cmd ... ok
[INFO] [stdout] test helpers::workflows::tests::test_build_standup_report_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_file_announce_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 helpers::events::subscribe::tests::test_pull_loop_refreshes_pubsub_token_between_requests ... 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 oauth_config::tests::test_save_load_round_trip ... ok
[INFO] [stdout] test oauth_config::tests::test_load_client_config ... ok
[INFO] [stdout] test helpers::script::tests::test_process_file_html ... ok
[INFO] [stdout] test helpers::script::tests::test_process_file_server_js ... ok
[INFO] [stdout] test output::tests::sanitize_preserves_normal_unicode ... ok
[INFO] [stdout] test output::tests::sanitize_strips_bell_and_backspace ... ok
[INFO] [stdout] test output::tests::sanitize_strips_ansi_escape_sequences ... ok
[INFO] [stdout] test output::tests::sanitize_strips_bidi_overrides ... ok
[INFO] [stdout] test output::tests::sanitize_strips_carriage_return ... 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_repeated ... ok
[INFO] [stdout] test schema::tests::test_param_to_json ... ok
[INFO] [stdout] test schema::tests::test_resolve_schema_refs_basic ... ok
[INFO] [stdout] test schema::tests::test_resolve_schema_refs_nested ... ok
[INFO] [stdout] test schema::tests::test_schema_to_json_basic ... 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_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_failed_apis_json_structure ... ok
[INFO] [stdout] test setup::tests::test_format_project_create_failure_tos_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] test setup::tests::test_format_project_create_failure_immutable_guidance ... 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 <id>  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_login_flag ... ok
[INFO] [stdout] test setup::tests::test_parse_setup_args_rejects_unknown ... ok
[INFO] [stdout] test setup::tests::test_parse_setup_args_help_returns_none ... 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_format_project_create_failure_invalid_id_guidance ... 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_deselect_template_does_not_change_individual_items ... ok
[INFO] [stdout] test setup_tui::tests::test_deselecting_scope_does_not_affect_counterpart ... ok
[INFO] [stdout] test setup_tui::tests::test_enter_confirms_with_current_state ... ok
[INFO] [stdout] test setup_tui::tests::test_double_toggle_returns_to_original ... 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_backtab_goes_back ... ok
[INFO] [stdout] test setup_tui::tests::test_input_state_enter_confirms ... ok
[INFO] [stdout] test setup_tui::tests::test_input_state_esc_cancels ... ok
[INFO] [stdout] test setup_tui::tests::test_input_state_new_empty ... ok
[INFO] [stdout] test setup::tests::test_enable_apis_with_no_apis_to_enable ... ok
[INFO] [stdout] test setup_tui::tests::test_input_state_unknown_key_ignored ... 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_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 setup::tests::test_enable_apis_with_invalid_project ... ok
[INFO] [stdout] test setup_tui::tests::test_picker_starts_at_zero_when_none_selected ... ok
[INFO] [stdout] test setup_tui::tests::test_picker_state_navigation ... 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_preselected_items_preserved ... ok
[INFO] [stdout] test setup_tui::tests::test_q_cancels ... ok
[INFO] [stdout] test setup_tui::tests::test_selected_count_after_toggle ... ok
[INFO] [stdout] test setup_tui::tests::test_select_all_then_deselect_one ... ok
[INFO] [stdout] test setup_tui::tests::test_selected_count_none ... ok
[INFO] [stdout] test setup_tui::tests::test_selected_count_some ... 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_single_select_a_does_not_toggle_all ... ok
[INFO] [stdout] test setup_tui::tests::test_single_select_enter_selects_highlighted ... ok
[INFO] [stdout] test setup_tui::tests::test_single_select_k_navigation_auto_selects ... ok
[INFO] [stdout] test setup_tui::tests::test_single_select_j_navigation_auto_selects ... 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_single_select_up_navigation_auto_selects ... ok
[INFO] [stdout] test setup_tui::tests::test_template_select_applies_scopes ... ok
[INFO] [stdout] test setup_tui::tests::test_space_toggle_then_enter ... ok
[INFO] [stdout] test setup_tui::tests::test_toggle_all_twice_resets ... ok
[INFO] [stdout] test setup_tui::tests::test_template_deselects_other_templates ... ok
[INFO] [stdout] test setup_tui::tests::test_toggling_individual_deselects_templates ... ok
[INFO] [stdout] test setup_tui::tests::test_vim_navigation_j_k ... ok
[INFO] [stdout] test setup_tui::tests::test_unknown_key_ignored ... ok
[INFO] [stdout] test setup_tui::tests::test_wrap_around_navigation ... ok
[INFO] [stdout] test setup_tui::tests::test_wrap_text_multiple_paragraphs_with_wrapping ... ok
[INFO] [stdout] test setup_tui::tests::test_wrap_text_empty_lines ... ok
[INFO] [stdout] test setup_tui::tests::test_wrap_text_no_wrapping_needed ... ok
[INFO] [stdout] test setup_tui::tests::test_wrap_text_preserves_newlines ... 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 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_help_flag ... ok
[INFO] [stdout] test tests::test_is_version_flag ... ok
[INFO] [stdout] test tests::test_parse_pagination_config_custom ... 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_select_scope_empty ... ok
[INFO] [stdout] test tests::test_resolve_method_from_matches_basic ... ok
[INFO] [stdout] test tests::test_select_scope_picks_first ... ok
[INFO] [stdout] test tests::test_select_scope_single ... ok
[INFO] [stdout] test text::tests::does_not_cut_url_looking_periods ... ok
[INFO] [stdout] test tests::test_resolve_method_from_matches_nested ... 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 text::tests::preserves_sentence_ending_at_limit ... ok
[INFO] [stdout] test text::tests::sentence_boundary_at_exact_limit ... ok
[INFO] [stdout] test text::tests::short_desc_unchanged ... ok
[INFO] [stdout] test text::tests::strips_markdown_links ... ok
[INFO] [stdout] test text::tests::strips_markdown_links_and_truncates ... ok
[INFO] [stdout] test text::tests::test_strip_markdown_links ... ok
[INFO] [stdout] test text::tests::truncate_at_sentence_boundary ... ok
[INFO] [stdout] test text::tests::truncate_at_word_boundary ... ok
[INFO] [stdout] test text::tests::zero_max_chars ... ok
[INFO] [stdout] test timezone::tests::iana_fallback_returns_valid_tz ... ok
[INFO] [stdout] test timezone::tests::parse_empty_string_fails ... ok
[INFO] [stdout] test timezone::tests::parse_invalid_timezone_fails ... ok
[INFO] [stdout] test timezone::tests::parse_utc_timezone ... ok
[INFO] [stdout] test token_storage::tests::test_encrypted_token_storage_new ... ok
[INFO] [stdout] test timezone::tests::cache_roundtrip ... ok
[INFO] [stdout] test setup::tests::test_project_select_none ... ok
[INFO] [stdout] test timezone::tests::parse_valid_iana_timezone ... ok
[INFO] [stdout] test setup_tui::tests::test_selecting_readonly_deselects_write_counterpart ... ok
[INFO] [stdout] test executor::test_post_with_body_does_not_add_content_length_zero ... ok
[INFO] [stdout] test helpers::gmail::watch::tests::test_watch_pull_loop_refreshes_tokens_for_each_request ... 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' (627) 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/.tmpG4fwBx", err: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } } }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5fb936745a6a - std[29689e6404d28ef9]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5fb936745a6a - std[29689e6404d28ef9]::backtrace_rs::backtrace::trace_unsynchronized::<std[29689e6404d28ef9]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5fb936745a6a - std[29689e6404d28ef9]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5fb936745a6a - <<std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[e929cb53b82a81ca]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5fb936760e8a - <core[e929cb53b82a81ca]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5fb936760e8a - core[e929cb53b82a81ca]::fmt::write
[INFO] [stdout]    6:     0x5fb93674d0b2 - std[29689e6404d28ef9]::io::default_write_fmt::<alloc[9d7caffeb3b5d2c6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x5fb93674d0b2 - <alloc[9d7caffeb3b5d2c6]::vec::Vec<u8> as std[29689e6404d28ef9]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x5fb93671f74f - <std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5fb93671f74f - std[29689e6404d28ef9]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5fb93673be89 - std[29689e6404d28ef9]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5fb935ab393c - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x5fb935ab393c - test[a24b3028667022f7]::test_main_inner::<test[a24b3028667022f7]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5fb93673c102 - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x5fb93673c102 - std[29689e6404d28ef9]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5fb93671f808 - std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5fb936713dd9 - std[29689e6404d28ef9]::sys::backtrace::__rust_end_short_backtrace::<std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5fb936720c2d - __rustc[3aed6af316653e63]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5fb9367616fc - core[e929cb53b82a81ca]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5fb936761442 - core[e929cb53b82a81ca]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5fb935521409 - <core[e929cb53b82a81ca]::result::Result<tempfile[4a718860f35d2edb]::dir::TempDir, std[29689e6404d28ef9]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5fb935521409 - gws[60ea90f3515c89b1]::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:     0x5fb9354fef97 - gws[60ea90f3515c89b1]::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:     0x5fb9356262c6 - <gws[60ea90f3515c89b1]::helpers::gmail::tests::test_parse_attachments_reads_real_file::{closure#0} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5fb935aa6c1b - <fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5fb935aa6c1b - test[a24b3028667022f7]::__rust_begin_short_backtrace::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5fb935ab440b - test[a24b3028667022f7]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5fb935ab440b - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5fb935ab440b - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5fb935ab440b - std[29689e6404d28ef9]::panicking::catch_unwind::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5fb935ab440b - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5fb935ab440b - test[a24b3028667022f7]::run_test_in_process
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5fb935ab440b - test[a24b3028667022f7]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5fb935aadb24 - test[a24b3028667022f7]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5fb935aadb24 - std[29689e6404d28ef9]::sys::backtrace::__rust_begin_short_backtrace::<test[a24b3028667022f7]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5fb935ab7012 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5fb935ab7012 - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5fb935ab7012 - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5fb935ab7012 - std[29689e6404d28ef9]::panicking::catch_unwind::<(), core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5fb935ab7012 - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5fb935ab7012 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5fb935ab7012 - <std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5fb9367447df - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn core[e929cb53b82a81ca]::ops::function::FnOnce<(), Output = ()> + core[e929cb53b82a81ca]::marker::Send> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   43:     0x5fb9367447df - <std[29689e6404d28ef9]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x751d87e5baa4 - <unknown>
[INFO] [stdout]   45:     0x751d87ee8a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[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' (630) 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/.tmpwTdSfn", err: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } } }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5fb936745a6a - std[29689e6404d28ef9]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5fb936745a6a - std[29689e6404d28ef9]::backtrace_rs::backtrace::trace_unsynchronized::<std[29689e6404d28ef9]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5fb936745a6a - std[29689e6404d28ef9]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5fb936745a6a - <<std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[e929cb53b82a81ca]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5fb936760e8a - <core[e929cb53b82a81ca]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5fb936760e8a - core[e929cb53b82a81ca]::fmt::write
[INFO] [stdout]    6:     0x5fb93674d0b2 - std[29689e6404d28ef9]::io::default_write_fmt::<alloc[9d7caffeb3b5d2c6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x5fb93674d0b2 - <alloc[9d7caffeb3b5d2c6]::vec::Vec<u8> as std[29689e6404d28ef9]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x5fb93671f74f - <std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5fb93671f74f - std[29689e6404d28ef9]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5fb93673be89 - std[29689e6404d28ef9]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5fb935ab393c - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x5fb935ab393c - test[a24b3028667022f7]::test_main_inner::<test[a24b3028667022f7]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5fb93673c102 - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x5fb93673c102 - std[29689e6404d28ef9]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5fb93671f808 - std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5fb936713dd9 - std[29689e6404d28ef9]::sys::backtrace::__rust_end_short_backtrace::<std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5fb936720c2d - __rustc[3aed6af316653e63]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5fb9367616fc - core[e929cb53b82a81ca]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5fb936761442 - core[e929cb53b82a81ca]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5fb935527151 - <core[e929cb53b82a81ca]::result::Result<tempfile[4a718860f35d2edb]::dir::TempDir, std[29689e6404d28ef9]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5fb935527151 - gws[60ea90f3515c89b1]::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:     0x5fb9354ff237 - gws[60ea90f3515c89b1]::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:     0x5fb935626646 - <gws[60ea90f3515c89b1]::helpers::gmail::tests::test_parse_attachments_rejects_empty_file::{closure#0} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5fb935aa6c1b - <fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5fb935aa6c1b - test[a24b3028667022f7]::__rust_begin_short_backtrace::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5fb935ab440b - test[a24b3028667022f7]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5fb935ab440b - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5fb935ab440b - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5fb935ab440b - std[29689e6404d28ef9]::panicking::catch_unwind::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5fb935ab440b - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5fb935ab440b - test[a24b3028667022f7]::run_test_in_process
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5fb935ab440b - test[a24b3028667022f7]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5fb935aadb24 - test[a24b3028667022f7]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5fb935aadb24 - std[29689e6404d28ef9]::sys::backtrace::__rust_begin_short_backtrace::<test[a24b3028667022f7]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5fb935ab7012 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5fb935ab7012 - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5fb935ab7012 - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5fb935ab7012 - std[29689e6404d28ef9]::panicking::catch_unwind::<(), core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5fb935ab7012 - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5fb935ab7012 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5fb935ab7012 - <std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5fb9367447df - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn core[e929cb53b82a81ca]::ops::function::FnOnce<(), Output = ()> + core[e929cb53b82a81ca]::marker::Send> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   43:     0x5fb9367447df - <std[29689e6404d28ef9]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x751d87e5baa4 - <unknown>
[INFO] [stdout]   45:     0x751d87ee8a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[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' (632) 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/.tmphT80Ok", err: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } } }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5fb936745a6a - std[29689e6404d28ef9]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5fb936745a6a - std[29689e6404d28ef9]::backtrace_rs::backtrace::trace_unsynchronized::<std[29689e6404d28ef9]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5fb936745a6a - std[29689e6404d28ef9]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5fb936745a6a - <<std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[e929cb53b82a81ca]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5fb936760e8a - <core[e929cb53b82a81ca]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5fb936760e8a - core[e929cb53b82a81ca]::fmt::write
[INFO] [stdout]    6:     0x5fb93674d0b2 - std[29689e6404d28ef9]::io::default_write_fmt::<alloc[9d7caffeb3b5d2c6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x5fb93674d0b2 - <alloc[9d7caffeb3b5d2c6]::vec::Vec<u8> as std[29689e6404d28ef9]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x5fb93671f74f - <std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5fb93671f74f - std[29689e6404d28ef9]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5fb93673be89 - std[29689e6404d28ef9]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5fb935ab393c - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x5fb935ab393c - test[a24b3028667022f7]::test_main_inner::<test[a24b3028667022f7]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5fb93673c102 - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x5fb93673c102 - std[29689e6404d28ef9]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5fb93671f808 - std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5fb936713dd9 - std[29689e6404d28ef9]::sys::backtrace::__rust_end_short_backtrace::<std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5fb936720c2d - __rustc[3aed6af316653e63]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5fb9367616fc - core[e929cb53b82a81ca]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5fb936761442 - core[e929cb53b82a81ca]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5fb93554fb69 - <core[e929cb53b82a81ca]::result::Result<tempfile[4a718860f35d2edb]::dir::TempDir, std[29689e6404d28ef9]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5fb93554fb69 - gws[60ea90f3515c89b1]::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:     0x5fb9354ffc27 - gws[60ea90f3515c89b1]::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:     0x5fb935627386 - <gws[60ea90f3515c89b1]::helpers::gmail::tests::test_parse_attachments_unknown_extension_falls_back_to_octet_stream::{closure#0} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5fb935aa6c1b - <fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5fb935aa6c1b - test[a24b3028667022f7]::__rust_begin_short_backtrace::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5fb935ab440b - test[a24b3028667022f7]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5fb935ab440b - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5fb935ab440b - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5fb935ab440b - std[29689e6404d28ef9]::panicking::catch_unwind::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5fb935ab440b - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5fb935ab440b - test[a24b3028667022f7]::run_test_in_process
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5fb935ab440b - test[a24b3028667022f7]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5fb935aadb24 - test[a24b3028667022f7]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5fb935aadb24 - std[29689e6404d28ef9]::sys::backtrace::__rust_begin_short_backtrace::<test[a24b3028667022f7]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5fb935ab7012 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5fb935ab7012 - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5fb935ab7012 - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5fb935ab7012 - std[29689e6404d28ef9]::panicking::catch_unwind::<(), core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5fb935ab7012 - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5fb935ab7012 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5fb935ab7012 - <std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5fb9367447df - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn core[e929cb53b82a81ca]::ops::function::FnOnce<(), Output = ()> + core[e929cb53b82a81ca]::marker::Send> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   43:     0x5fb9367447df - <std[29689e6404d28ef9]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x751d87e5baa4 - <unknown>
[INFO] [stdout]   45:     0x751d87ee8a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[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' (631) 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/.tmpcstnWt", err: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } } }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5fb936745a6a - std[29689e6404d28ef9]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5fb936745a6a - std[29689e6404d28ef9]::backtrace_rs::backtrace::trace_unsynchronized::<std[29689e6404d28ef9]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5fb936745a6a - std[29689e6404d28ef9]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5fb936745a6a - <<std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[e929cb53b82a81ca]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5fb936760e8a - <core[e929cb53b82a81ca]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5fb936760e8a - core[e929cb53b82a81ca]::fmt::write
[INFO] [stdout]    6:     0x5fb93674d0b2 - std[29689e6404d28ef9]::io::default_write_fmt::<alloc[9d7caffeb3b5d2c6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x5fb93674d0b2 - <alloc[9d7caffeb3b5d2c6]::vec::Vec<u8> as std[29689e6404d28ef9]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x5fb93671f74f - <std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5fb93671f74f - std[29689e6404d28ef9]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5fb93673be89 - std[29689e6404d28ef9]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5fb935ab393c - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x5fb935ab393c - test[a24b3028667022f7]::test_main_inner::<test[a24b3028667022f7]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5fb93673c102 - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x5fb93673c102 - std[29689e6404d28ef9]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5fb93671f808 - std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5fb936713dd9 - std[29689e6404d28ef9]::sys::backtrace::__rust_end_short_backtrace::<std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5fb936720c2d - __rustc[3aed6af316653e63]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5fb9367616fc - core[e929cb53b82a81ca]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5fb936761442 - core[e929cb53b82a81ca]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5fb935537d61 - <core[e929cb53b82a81ca]::result::Result<tempfile[4a718860f35d2edb]::dir::TempDir, std[29689e6404d28ef9]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5fb935537d61 - gws[60ea90f3515c89b1]::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:     0x5fb9354ff567 - gws[60ea90f3515c89b1]::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:     0x5fb935626a86 - <gws[60ea90f3515c89b1]::helpers::gmail::tests::test_parse_attachments_size_limit_accumulates::{closure#0} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5fb935aa6c1b - <fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5fb935aa6c1b - test[a24b3028667022f7]::__rust_begin_short_backtrace::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5fb935ab440b - test[a24b3028667022f7]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5fb935ab440b - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5fb935ab440b - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5fb935ab440b - std[29689e6404d28ef9]::panicking::catch_unwind::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5fb935ab440b - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5fb935ab440b - test[a24b3028667022f7]::run_test_in_process
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5fb935ab440b - test[a24b3028667022f7]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5fb935aadb24 - test[a24b3028667022f7]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5fb935aadb24 - std[29689e6404d28ef9]::sys::backtrace::__rust_begin_short_backtrace::<test[a24b3028667022f7]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5fb935ab7012 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5fb935ab7012 - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5fb935ab7012 - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5fb935ab7012 - std[29689e6404d28ef9]::panicking::catch_unwind::<(), core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5fb935ab7012 - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5fb935ab7012 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5fb935ab7012 - <std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5fb9367447df - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn core[e929cb53b82a81ca]::ops::function::FnOnce<(), Output = ()> + core[e929cb53b82a81ca]::marker::Send> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   43:     0x5fb9367447df - <std[29689e6404d28ef9]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x751d87e5baa4 - <unknown>
[INFO] [stdout]   45:     0x751d87ee8a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[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 0.52s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p google-workspace-cli --bin gws`
[INFO] running `Command { std: "docker" "inspect" "3ffa33fbe4c0e4e3ce650c3b380e327f48333872b23b10a00a9c5ede8a511cd4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3ffa33fbe4c0e4e3ce650c3b380e327f48333872b23b10a00a9c5ede8a511cd4", kill_on_drop: false }`
[INFO] [stdout] 3ffa33fbe4c0e4e3ce650c3b380e327f48333872b23b10a00a9c5ede8a511cd4
