[INFO] fetching crate tailscale-client 0.1.5...
[INFO] building tailscale-client-0.1.5 against master#c7f6aa2869acdbf014d094c6e427e554e160b6db for pr-146237-2
[INFO] extracting crate tailscale-client 0.1.5 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate tailscale-client 0.1.5
[INFO] finished tweaking crates.io crate tailscale-client 0.1.5
[INFO] tweaked toml for crates.io crate tailscale-client 0.1.5 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate tailscale-client 0.1.5 on toolchain c7f6aa2869acdbf014d094c6e427e554e160b6db
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 263 packages to latest compatible versions
[INFO] [stderr]       Adding testcontainers v0.23.3 (available: v0.25.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde_repr v0.1.20
[INFO] [stderr]   Downloaded parse-display v0.9.1
[INFO] [stderr]   Downloaded structmeta v0.3.0
[INFO] [stderr]   Downloaded bollard-stubs v1.47.1-rc.27.3.1
[INFO] [stderr]   Downloaded docker_credential v1.3.2
[INFO] [stderr]   Downloaded structmeta-derive v0.3.0
[INFO] [stderr]   Downloaded tokio-tar v0.3.1
[INFO] [stderr]   Downloaded parse-display-derive v0.9.1
[INFO] [stderr]   Downloaded hyper-named-pipe v0.1.0
[INFO] [stderr]   Downloaded testcontainers v0.23.3
[INFO] [stderr]   Downloaded hyperlocal v0.9.1
[INFO] [stderr]   Downloaded bollard v0.18.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4616b5779a86c70d6ba4832069cdba8d88161add08299de83887f16324849731
[INFO] running `Command { std: "docker" "start" "-a" "4616b5779a86c70d6ba4832069cdba8d88161add08299de83887f16324849731", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4616b5779a86c70d6ba4832069cdba8d88161add08299de83887f16324849731", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4616b5779a86c70d6ba4832069cdba8d88161add08299de83887f16324849731", kill_on_drop: false }`
[INFO] [stdout] 4616b5779a86c70d6ba4832069cdba8d88161add08299de83887f16324849731
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e5aaebbc3ac1110e5f4fc8fa3dd003e48827164a440e238e7066c9ced14e0782
[INFO] running `Command { std: "docker" "start" "-a" "e5aaebbc3ac1110e5f4fc8fa3dd003e48827164a440e238e7066c9ced14e0782", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling rustls-pki-types v1.12.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.3
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling rustls v0.23.32
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling regex-automata v0.4.11
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling structmeta-derive v0.3.0
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling rustls-native-certs v0.8.1
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling filetime v0.2.26
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling etcetera v0.8.0
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling docker_credential v1.3.2
[INFO] [stderr]    Compiling structmeta v0.3.0
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling serde_with_macros v3.14.1
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling serde_with v3.14.1
[INFO] [stderr]    Compiling regex v1.11.3
[INFO] [stderr]    Compiling parse-display-derive v0.9.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.6
[INFO] [stderr]    Compiling bollard-stubs v1.47.1-rc.27.3.1
[INFO] [stderr]    Compiling parse-display v0.9.1
[INFO] [stderr]    Compiling tokio-util v0.7.16
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling tower-http v0.6.6
[INFO] [stderr]    Compiling tokio-tar v0.3.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper v1.7.0
[INFO] [stderr]    Compiling hyper-util v0.1.17
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling hyperlocal v0.9.1
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.23
[INFO] [stderr]    Compiling bollard v0.18.1
[INFO] [stderr]    Compiling testcontainers v0.23.3
[INFO] [stderr]    Compiling tailscale-client v0.1.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/lib.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{anyhow, Error, Result};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `testcontainers::core::ExecCommand`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use testcontainers::core::ExecCommand;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GenericImage`, `ImageExt`, `core::WaitFor`, and `runners::AsyncRunner`
[INFO] [stdout]  --> src/lib.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | use testcontainers::{core::WaitFor, runners::AsyncRunner, GenericImage, ImageExt};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `expirySeconds` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:325:9
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub expirySeconds: Option<u64>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `expiry_seconds`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `userId` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:373:9
[INFO] [stdout]     |
[INFO] [stdout] 373 |     pub userId: Option<String>,
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `nodeId` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:406:9
[INFO] [stdout]     |
[INFO] [stdout] 406 |     pub nodeId: Option<String>,
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `clientVersion` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:410:9
[INFO] [stdout]     |
[INFO] [stdout] 410 |     pub clientVersion: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `client_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `updateAvailable` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |     pub updateAvailable: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_available`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `lastSeen` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:414:9
[INFO] [stdout]     |
[INFO] [stdout] 414 |     pub lastSeen: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `last_seen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `keyExpiryDisabled` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:415:9
[INFO] [stdout]     |
[INFO] [stdout] 415 |     pub keyExpiryDisabled: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `key_expiry_disabled`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `isExternal` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |     pub isExternal: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `is_external`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `machineKey` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:419:9
[INFO] [stdout]     |
[INFO] [stdout] 419 |     pub machineKey: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `machine_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `nodeKey` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:420:9
[INFO] [stdout]     |
[INFO] [stdout] 420 |     pub nodeKey: Option<String>,
[INFO] [stdout]     |         ^^^^^^^ help: convert the identifier to snake case: `node_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `blocksIncomingConnections` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:421:9
[INFO] [stdout]     |
[INFO] [stdout] 421 |     pub blocksIncomingConnections: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `blocks_incoming_connections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `enabledRoutes` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |     pub enabledRoutes: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `enabled_routes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `advertisedRoutes` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 423 |     pub advertisedRoutes: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `advertised_routes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `clientConnectivity` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:424:9
[INFO] [stdout]     |
[INFO] [stdout] 424 |     pub clientConnectivity: Option<ClientConnectivity>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `client_connectivity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `tailnetLockError` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:426:9
[INFO] [stdout]     |
[INFO] [stdout] 426 |     pub tailnetLockError: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tailnet_lock_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `tailnetLockKey` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 427 |     pub tailnetLockKey: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tailnet_lock_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `postureIdentity` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:428:9
[INFO] [stdout]     |
[INFO] [stdout] 428 |     pub postureIdentity: Option<PostureIdentity>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `posture_identity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `mappingVariesByDestIP` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:436:9
[INFO] [stdout]     |
[INFO] [stdout] 436 |     pub mappingVariesByDestIP: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `mapping_varies_by_dest_ip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `clientSupports` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:437:9
[INFO] [stdout]     |
[INFO] [stdout] 437 |     pub clientSupports: Option<ClientSupports>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `client_supports`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `latencyMs` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:444:9
[INFO] [stdout]     |
[INFO] [stdout] 444 |     pub latencyMs: Option<f64>,
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `latency_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `hairPinning` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:450:9
[INFO] [stdout]     |
[INFO] [stdout] 450 |     pub hairPinning: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `hair_pinning`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `serialNumbers` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:461:9
[INFO] [stdout]     |
[INFO] [stdout] 461 |     pub serialNumbers: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `serial_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 56.73s
[INFO] running `Command { std: "docker" "inspect" "e5aaebbc3ac1110e5f4fc8fa3dd003e48827164a440e238e7066c9ced14e0782", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e5aaebbc3ac1110e5f4fc8fa3dd003e48827164a440e238e7066c9ced14e0782", kill_on_drop: false }`
[INFO] [stdout] e5aaebbc3ac1110e5f4fc8fa3dd003e48827164a440e238e7066c9ced14e0782
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 61a95e16945ddce2d5bcbf4040c6e37215557bf981ec29f5492074b6cd32478a
[INFO] running `Command { std: "docker" "start" "-a" "61a95e16945ddce2d5bcbf4040c6e37215557bf981ec29f5492074b6cd32478a", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/lib.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{anyhow, Error, Result};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `testcontainers::core::ExecCommand`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use testcontainers::core::ExecCommand;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GenericImage`, `ImageExt`, `core::WaitFor`, and `runners::AsyncRunner`
[INFO] [stdout]  --> src/lib.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | use testcontainers::{core::WaitFor, runners::AsyncRunner, GenericImage, ImageExt};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `expirySeconds` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:325:9
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub expirySeconds: Option<u64>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `expiry_seconds`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `userId` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:373:9
[INFO] [stdout]     |
[INFO] [stdout] 373 |     pub userId: Option<String>,
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `nodeId` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:406:9
[INFO] [stdout]     |
[INFO] [stdout] 406 |     pub nodeId: Option<String>,
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `clientVersion` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:410:9
[INFO] [stdout]     |
[INFO] [stdout] 410 |     pub clientVersion: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `client_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `updateAvailable` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |     pub updateAvailable: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_available`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `lastSeen` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:414:9
[INFO] [stdout]     |
[INFO] [stdout] 414 |     pub lastSeen: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `last_seen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `keyExpiryDisabled` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:415:9
[INFO] [stdout]     |
[INFO] [stdout] 415 |     pub keyExpiryDisabled: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `key_expiry_disabled`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `isExternal` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |     pub isExternal: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `is_external`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `machineKey` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:419:9
[INFO] [stdout]     |
[INFO] [stdout] 419 |     pub machineKey: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `machine_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `nodeKey` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:420:9
[INFO] [stdout]     |
[INFO] [stdout] 420 |     pub nodeKey: Option<String>,
[INFO] [stdout]     |         ^^^^^^^ help: convert the identifier to snake case: `node_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `blocksIncomingConnections` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:421:9
[INFO] [stdout]     |
[INFO] [stdout] 421 |     pub blocksIncomingConnections: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `blocks_incoming_connections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `enabledRoutes` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |     pub enabledRoutes: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `enabled_routes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling tailscale-client v0.1.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: structure field `advertisedRoutes` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 423 |     pub advertisedRoutes: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `advertised_routes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `clientConnectivity` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:424:9
[INFO] [stdout]     |
[INFO] [stdout] 424 |     pub clientConnectivity: Option<ClientConnectivity>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `client_connectivity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `tailnetLockError` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:426:9
[INFO] [stdout]     |
[INFO] [stdout] 426 |     pub tailnetLockError: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tailnet_lock_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `tailnetLockKey` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 427 |     pub tailnetLockKey: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tailnet_lock_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `postureIdentity` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:428:9
[INFO] [stdout]     |
[INFO] [stdout] 428 |     pub postureIdentity: Option<PostureIdentity>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `posture_identity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `mappingVariesByDestIP` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:436:9
[INFO] [stdout]     |
[INFO] [stdout] 436 |     pub mappingVariesByDestIP: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `mapping_varies_by_dest_ip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `clientSupports` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:437:9
[INFO] [stdout]     |
[INFO] [stdout] 437 |     pub clientSupports: Option<ClientSupports>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `client_supports`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `latencyMs` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:444:9
[INFO] [stdout]     |
[INFO] [stdout] 444 |     pub latencyMs: Option<f64>,
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `latency_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `hairPinning` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:450:9
[INFO] [stdout]     |
[INFO] [stdout] 450 |     pub hairPinning: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `hair_pinning`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `serialNumbers` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:461:9
[INFO] [stdout]     |
[INFO] [stdout] 461 |     pub serialNumbers: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `serial_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/lib.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{anyhow, Error, Result};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::WaitFor`
[INFO] [stdout]  --> src/lib.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | use testcontainers::{core::WaitFor, runners::AsyncRunner, GenericImage, ImageExt};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `expirySeconds` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:325:9
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub expirySeconds: Option<u64>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `expiry_seconds`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `userId` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:373:9
[INFO] [stdout]     |
[INFO] [stdout] 373 |     pub userId: Option<String>,
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `nodeId` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:406:9
[INFO] [stdout]     |
[INFO] [stdout] 406 |     pub nodeId: Option<String>,
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `clientVersion` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:410:9
[INFO] [stdout]     |
[INFO] [stdout] 410 |     pub clientVersion: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `client_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `updateAvailable` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |     pub updateAvailable: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_available`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `lastSeen` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:414:9
[INFO] [stdout]     |
[INFO] [stdout] 414 |     pub lastSeen: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `last_seen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `keyExpiryDisabled` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:415:9
[INFO] [stdout]     |
[INFO] [stdout] 415 |     pub keyExpiryDisabled: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `key_expiry_disabled`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `isExternal` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |     pub isExternal: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `is_external`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `machineKey` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:419:9
[INFO] [stdout]     |
[INFO] [stdout] 419 |     pub machineKey: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `machine_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `nodeKey` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:420:9
[INFO] [stdout]     |
[INFO] [stdout] 420 |     pub nodeKey: Option<String>,
[INFO] [stdout]     |         ^^^^^^^ help: convert the identifier to snake case: `node_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `blocksIncomingConnections` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:421:9
[INFO] [stdout]     |
[INFO] [stdout] 421 |     pub blocksIncomingConnections: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `blocks_incoming_connections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `enabledRoutes` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |     pub enabledRoutes: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `enabled_routes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `advertisedRoutes` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 423 |     pub advertisedRoutes: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `advertised_routes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `clientConnectivity` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:424:9
[INFO] [stdout]     |
[INFO] [stdout] 424 |     pub clientConnectivity: Option<ClientConnectivity>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `client_connectivity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `tailnetLockError` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:426:9
[INFO] [stdout]     |
[INFO] [stdout] 426 |     pub tailnetLockError: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tailnet_lock_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `tailnetLockKey` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 427 |     pub tailnetLockKey: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tailnet_lock_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `postureIdentity` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:428:9
[INFO] [stdout]     |
[INFO] [stdout] 428 |     pub postureIdentity: Option<PostureIdentity>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `posture_identity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `mappingVariesByDestIP` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:436:9
[INFO] [stdout]     |
[INFO] [stdout] 436 |     pub mappingVariesByDestIP: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `mapping_varies_by_dest_ip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `clientSupports` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:437:9
[INFO] [stdout]     |
[INFO] [stdout] 437 |     pub clientSupports: Option<ClientSupports>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `client_supports`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `latencyMs` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:444:9
[INFO] [stdout]     |
[INFO] [stdout] 444 |     pub latencyMs: Option<f64>,
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `latency_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `hairPinning` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:450:9
[INFO] [stdout]     |
[INFO] [stdout] 450 |     pub hairPinning: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `hair_pinning`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `serialNumbers` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:461:9
[INFO] [stdout]     |
[INFO] [stdout] 461 |     pub serialNumbers: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `serial_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 6.64s
[INFO] running `Command { std: "docker" "inspect" "61a95e16945ddce2d5bcbf4040c6e37215557bf981ec29f5492074b6cd32478a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "61a95e16945ddce2d5bcbf4040c6e37215557bf981ec29f5492074b6cd32478a", kill_on_drop: false }`
[INFO] [stdout] 61a95e16945ddce2d5bcbf4040c6e37215557bf981ec29f5492074b6cd32478a
