[INFO] cloning repository https://github.com/pleme-io/kindling [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pleme-io/kindling" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpleme-io%2Fkindling", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpleme-io%2Fkindling'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ea2f017ec8d0dcdd041120af1e1368181526fc83 [INFO] testing pleme-io/kindling against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpleme-io%2Fkindling" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/pleme-io/kindling [INFO] finished tweaking git repo https://github.com/pleme-io/kindling [INFO] tweaked toml for git repo https://github.com/pleme-io/kindling written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/pleme-io/kindling on toolchain f9988fefd3add01f414f52b414308e7872622fee [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/pleme-io/kindling 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" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Updating git repository `https://github.com/pleme-io/shidou` [INFO] [stderr] Updating git repository `https://github.com/pleme-io/tsunagu` [INFO] [stderr] Updating git repository `https://github.com/pleme-io/shikumi` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded static_assertions_next v1.1.2 [INFO] [stderr] Downloaded hostname v0.4.2 [INFO] [stderr] Downloaded async-graphql-axum v7.2.1 [INFO] [stderr] Downloaded fast_chemail v0.9.6 [INFO] [stderr] Downloaded asynk-strim v0.1.5 [INFO] [stderr] Downloaded ascii_utils v0.9.3 [INFO] [stderr] Downloaded async-graphql-derive v7.2.1 [INFO] [stderr] Downloaded async-graphql-value v7.2.1 [INFO] [stderr] Downloaded async-graphql-parser v7.2.1 [INFO] [stderr] Downloaded handlebars v6.4.0 [INFO] [stderr] Downloaded async-graphql v7.2.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d0a8d4ae912c59f808cc28223bfd157fe87123762e64f3a698a72b6673766ff6 [INFO] running `Command { std: "docker" "start" "-a" "d0a8d4ae912c59f808cc28223bfd157fe87123762e64f3a698a72b6673766ff6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d0a8d4ae912c59f808cc28223bfd157fe87123762e64f3a698a72b6673766ff6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d0a8d4ae912c59f808cc28223bfd157fe87123762e64f3a698a72b6673766ff6", kill_on_drop: false }` [INFO] [stdout] d0a8d4ae912c59f808cc28223bfd157fe87123762e64f3a698a72b6673766ff6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8f796a3400b1a9ab287359484f9a3c0f66c1d169a8dbb99bde3d55ce0331c542 [INFO] running `Command { std: "docker" "start" "-a" "8f796a3400b1a9ab287359484f9a3c0f66c1d169a8dbb99bde3d55ce0331c542", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Compiling litemap v0.8.1 [INFO] [stderr] Compiling writeable v0.6.2 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling uncased v0.9.10 [INFO] [stderr] Compiling pest v2.8.6 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling multer v3.1.0 [INFO] [stderr] Compiling figment v0.10.19 [INFO] [stderr] Compiling data-encoding v2.10.0 [INFO] [stderr] Compiling inlinable_string v0.1.15 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling num-modular v0.6.1 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling pest_meta v2.8.6 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling num-order v1.2.0 [INFO] [stderr] Compiling inotify v0.11.1 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling curve25519-dalek v4.1.3 [INFO] [stderr] Compiling notify-types v2.1.0 [INFO] [stderr] Compiling futures-lite v2.6.1 [INFO] [stderr] Compiling toml_edit v0.23.10+spec-1.0.0 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling Inflector v0.11.4 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling ascii_utils v0.9.3 [INFO] [stderr] Compiling fast_chemail v0.9.6 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling notify v8.2.0 [INFO] [stderr] Compiling arc-swap v1.9.1 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling asynk-strim v0.1.5 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling static_assertions_next v1.1.2 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling iri-string v0.7.10 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling pleme-kindling v0.3.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling pest_generator v2.8.6 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling hostname v0.4.2 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling zeroize_derive v1.4.3 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling pin-project-internal v1.1.11 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling pear_codegen v0.2.9 [INFO] [stderr] Compiling polling v3.11.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling pest_derive v2.8.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Compiling async-io v2.6.0 [INFO] [stderr] Compiling pin-project v1.1.11 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling derive_builder v0.20.2 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.1 [INFO] [stderr] Compiling pear v0.2.9 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling handlebars v6.4.0 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling x25519-dalek v2.0.1 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling async-graphql-value v7.2.1 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling async-graphql-parser v7.2.1 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling tracing-futures v0.2.5 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling tungstenite v0.28.0 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling async-graphql-derive v7.2.1 [INFO] [stderr] Compiling shikumi v0.1.0 (https://github.com/pleme-io/shikumi#648d32a6) [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tokio-tungstenite v0.28.0 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tsunagu v0.1.0 (https://github.com/pleme-io/tsunagu#6986dcfb) [INFO] [stderr] Compiling shidou v0.1.0 (https://github.com/pleme-io/shidou#8be17b63) [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling async-graphql v7.2.1 [INFO] [stderr] Compiling async-graphql-axum v7.2.1 [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/domain/report_collector.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [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 imports: `HardeningPrimitive`, `HardeningReport`, `PrimitiveOutcome`, and `PrimitiveRecord` [INFO] [stdout] --> src/harden/mod.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | HardeningPrimitive, HardeningReport, PrimitiveCategory, PrimitiveCtx, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] 25 | PrimitiveOutcome, PrimitiveRecord, ReportStatus, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `all_names` and `registry` [INFO] [stdout] --> src/harden/mod.rs:27:22 [INFO] [stdout] | [INFO] [stdout] 27 | pub use primitives::{all_names, registry}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ComposedPlan`, `FailurePolicy`, and `HardeningParams` [INFO] [stdout] --> src/harden/mod.rs:29:14 [INFO] [stdout] | [INFO] [stdout] 29 | compose, ComposedPlan, FailurePolicy, HardeningParams, HardeningProfile, [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bail` [INFO] [stdout] --> src/vpn/validate.rs:25:14 [INFO] [stdout] | [INFO] [stdout] 25 | use anyhow::{bail, Result}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HardeningPrimitive` [INFO] [stdout] --> src/harden/runner.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | HardeningPrimitive, HardeningReport, PrimitiveCtx, PrimitiveOutcome, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_stale` is never used [INFO] [stdout] --> src/domain/node_report.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl StoredReport { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn is_stale(&self, max_age_secs: u64) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `identity_config` and `report_config` are never read [INFO] [stdout] --> src/domain/node_service.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct NodeService { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | identity_config: IdentityConfig, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 27 | report_config: ReportConfig, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_stale`, `redacted_identity`, `reload_identity`, and `report_config` are never used [INFO] [stdout] --> src/domain/node_service.rs:116:18 [INFO] [stdout] | [INFO] [stdout] 30 | impl NodeService { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 116 | pub async fn is_stale(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub async fn redacted_identity(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub async fn reload_identity(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn report_config(&self) -> &ReportConfig { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `name`, `category`, and `description` are never used [INFO] [stdout] --> src/harden/primitive.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub trait HardeningPrimitive: Send + Sync { [INFO] [stdout] | ------------------ methods in this trait [INFO] [stdout] ... [INFO] [stdout] 21 | fn name(&self) -> &'static str; [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | fn category(&self) -> PrimitiveCategory; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn description(&self) -> &'static str; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `dry` is never used [INFO] [stdout] --> src/harden/primitive.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl PrimitiveCtx { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 101 | pub fn dry() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `no_op` is never used [INFO] [stdout] --> src/harden/primitive.rs:158:12 [INFO] [stdout] | [INFO] [stdout] 155 | impl PrimitiveOutcome { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn no_op() -> Self { Self::default() } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `all_names` is never used [INFO] [stdout] --> src/harden/primitives/mod.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn all_names() -> &'static [&'static str] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `params` is never read [INFO] [stdout] --> src/harden/profile.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 218 | pub struct ComposedPlan { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 219 | pub primitives: Vec<(super::PrimitiveCategory, String)>, [INFO] [stdout] 220 | pub params: HardeningParams, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ComposedPlan` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_field_path` is never used [INFO] [stdout] --> src/node_identity/mod.rs:512:8 [INFO] [stdout] | [INFO] [stdout] 512 | pub fn remove_field_path(val: &mut serde_yaml::Value, path: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_field_recursive` is never used [INFO] [stdout] --> src/node_identity/mod.rs:520:4 [INFO] [stdout] | [INFO] [stdout] 520 | fn remove_field_recursive(val: &mut serde_yaml::Value, parts: &[&str]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `redact` is never used [INFO] [stdout] --> src/node_identity/mod.rs:635:12 [INFO] [stdout] | [INFO] [stdout] 534 | impl NodeIdentity { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 635 | pub fn redact(&self, private_fields: &[impl AsRef]) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_instance_id` is never used [INFO] [stdout] --> src/server/bootstrap.rs:1487:4 [INFO] [stdout] | [INFO] [stdout] 1487 | fn get_instance_id() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_instance_region` is never used [INFO] [stdout] --> src/server/bootstrap.rs:1492:4 [INFO] [stdout] | [INFO] [stdout] 1492 | fn get_instance_region() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_k3s` and `validate_vpn_security_full` are never used [INFO] [stdout] --> src/server/cluster_config.rs:379:12 [INFO] [stdout] | [INFO] [stdout] 349 | impl ClusterConfig { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 379 | pub fn is_k3s(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 403 | pub fn validate_vpn_security_full(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_for_k3s` is never used [INFO] [stdout] --> src/server/health.rs:144:8 [INFO] [stdout] | [INFO] [stdout] 144 | pub fn wait_for_k3s(timeout: Duration, poll_interval: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_for_fluxcd` is never used [INFO] [stdout] --> src/server/health.rs:166:8 [INFO] [stdout] | [INFO] [stdout] 166 | pub fn wait_for_fluxcd(timeout: Duration, poll_interval: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `len` and `is_empty` are never used [INFO] [stdout] --> src/vpn/validate.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 96 | impl VpnValidationError { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 31s [INFO] running `Command { std: "docker" "inspect" "8f796a3400b1a9ab287359484f9a3c0f66c1d169a8dbb99bde3d55ce0331c542", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8f796a3400b1a9ab287359484f9a3c0f66c1d169a8dbb99bde3d55ce0331c542", kill_on_drop: false }` [INFO] [stdout] 8f796a3400b1a9ab287359484f9a3c0f66c1d169a8dbb99bde3d55ce0331c542 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] df7a97fcc41baea8fcb7a9df74193781c5a3fda8eb52aa4ad8b34c35f598c35d [INFO] running `Command { std: "docker" "start" "-a" "df7a97fcc41baea8fcb7a9df74193781c5a3fda8eb52aa4ad8b34c35f598c35d", kill_on_drop: false }` [INFO] [stderr] Compiling pleme-kindling v0.3.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/domain/report_collector.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [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 imports: `HardeningPrimitive`, `HardeningReport`, `PrimitiveOutcome`, and `PrimitiveRecord` [INFO] [stdout] --> src/harden/mod.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | HardeningPrimitive, HardeningReport, PrimitiveCategory, PrimitiveCtx, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] 25 | PrimitiveOutcome, PrimitiveRecord, ReportStatus, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `all_names` and `registry` [INFO] [stdout] --> src/harden/mod.rs:27:22 [INFO] [stdout] | [INFO] [stdout] 27 | pub use primitives::{all_names, registry}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ComposedPlan`, `FailurePolicy`, and `HardeningParams` [INFO] [stdout] --> src/harden/mod.rs:29:14 [INFO] [stdout] | [INFO] [stdout] 29 | compose, ComposedPlan, FailurePolicy, HardeningParams, HardeningProfile, [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bail` [INFO] [stdout] --> src/vpn/validate.rs:25:14 [INFO] [stdout] | [INFO] [stdout] 25 | use anyhow::{bail, Result}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HardeningPrimitive` [INFO] [stdout] --> src/harden/runner.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | HardeningPrimitive, HardeningReport, PrimitiveCtx, PrimitiveOutcome, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `identity_config` and `report_config` are never read [INFO] [stdout] --> src/domain/node_service.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct NodeService { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | identity_config: IdentityConfig, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 27 | report_config: ReportConfig, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_stale`, `redacted_identity`, `reload_identity`, and `report_config` are never used [INFO] [stdout] --> src/domain/node_service.rs:116:18 [INFO] [stdout] | [INFO] [stdout] 30 | impl NodeService { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 116 | pub async fn is_stale(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub async fn redacted_identity(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub async fn reload_identity(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn report_config(&self) -> &ReportConfig { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `name` and `description` are never used [INFO] [stdout] --> src/harden/primitive.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub trait HardeningPrimitive: Send + Sync { [INFO] [stdout] | ------------------ methods in this trait [INFO] [stdout] ... [INFO] [stdout] 21 | fn name(&self) -> &'static str; [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn description(&self) -> &'static str; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `no_op` is never used [INFO] [stdout] --> src/harden/primitive.rs:158:12 [INFO] [stdout] | [INFO] [stdout] 155 | impl PrimitiveOutcome { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn no_op() -> Self { Self::default() } [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_for_k3s` is never used [INFO] [stdout] --> src/server/health.rs:144:8 [INFO] [stdout] | [INFO] [stdout] 144 | pub fn wait_for_k3s(timeout: Duration, poll_interval: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_for_fluxcd` is never used [INFO] [stdout] --> src/server/health.rs:166:8 [INFO] [stdout] | [INFO] [stdout] 166 | pub fn wait_for_fluxcd(timeout: Duration, poll_interval: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `len` is never used [INFO] [stdout] --> src/vpn/validate.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 96 | impl VpnValidationError { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 41.29s [INFO] running `Command { std: "docker" "inspect" "df7a97fcc41baea8fcb7a9df74193781c5a3fda8eb52aa4ad8b34c35f598c35d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "df7a97fcc41baea8fcb7a9df74193781c5a3fda8eb52aa4ad8b34c35f598c35d", kill_on_drop: false }` [INFO] [stdout] df7a97fcc41baea8fcb7a9df74193781c5a3fda8eb52aa4ad8b34c35f598c35d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 152619c867d23b5012440864f03c0a0ec4420f45d92ca48aea2da3343c43ea80 [INFO] running `Command { std: "docker" "start" "-a" "152619c867d23b5012440864f03c0a0ec4420f45d92ca48aea2da3343c43ea80", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/domain/report_collector.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HardeningPrimitive`, `HardeningReport`, `PrimitiveOutcome`, and `PrimitiveRecord` [INFO] [stderr] --> src/harden/mod.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | HardeningPrimitive, HardeningReport, PrimitiveCategory, PrimitiveCtx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] 25 | PrimitiveOutcome, PrimitiveRecord, ReportStatus, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `all_names` and `registry` [INFO] [stderr] --> src/harden/mod.rs:27:22 [INFO] [stderr] | [INFO] [stderr] 27 | pub use primitives::{all_names, registry}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ComposedPlan`, `FailurePolicy`, and `HardeningParams` [INFO] [stderr] --> src/harden/mod.rs:29:14 [INFO] [stderr] | [INFO] [stderr] 29 | compose, ComposedPlan, FailurePolicy, HardeningParams, HardeningProfile, [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `bail` [INFO] [stderr] --> src/vpn/validate.rs:25:14 [INFO] [stderr] | [INFO] [stderr] 25 | use anyhow::{bail, Result}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `HardeningPrimitive` [INFO] [stderr] --> src/harden/runner.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | HardeningPrimitive, HardeningReport, PrimitiveCtx, PrimitiveOutcome, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `identity_config` and `report_config` are never read [INFO] [stderr] --> src/domain/node_service.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 22 | pub struct NodeService { [INFO] [stderr] | ----------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 26 | identity_config: IdentityConfig, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 27 | report_config: ReportConfig, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: methods `is_stale`, `redacted_identity`, `reload_identity`, and `report_config` are never used [INFO] [stderr] --> src/domain/node_service.rs:116:18 [INFO] [stderr] | [INFO] [stderr] 30 | impl NodeService { [INFO] [stderr] | ---------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 116 | pub async fn is_stale(&self) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 129 | pub async fn redacted_identity(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 141 | pub async fn reload_identity(&self) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 151 | pub fn report_config(&self) -> &ReportConfig { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `name` and `description` are never used [INFO] [stderr] --> src/harden/primitive.rs:21:8 [INFO] [stderr] | [INFO] [stderr] 18 | pub trait HardeningPrimitive: Send + Sync { [INFO] [stderr] | ------------------ methods in this trait [INFO] [stderr] ... [INFO] [stderr] 21 | fn name(&self) -> &'static str; [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 29 | fn description(&self) -> &'static str; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `no_op` is never used [INFO] [stderr] --> src/harden/primitive.rs:158:12 [INFO] [stderr] | [INFO] [stderr] 155 | impl PrimitiveOutcome { [INFO] [stderr] | --------------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 158 | pub fn no_op() -> Self { Self::default() } [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `wait_for_k3s` is never used [INFO] [stderr] --> src/server/health.rs:144:8 [INFO] [stderr] | [INFO] [stderr] 144 | pub fn wait_for_k3s(timeout: Duration, poll_interval: Duration) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `wait_for_fluxcd` is never used [INFO] [stderr] --> src/server/health.rs:166:8 [INFO] [stderr] | [INFO] [stderr] 166 | pub fn wait_for_fluxcd(timeout: Duration, poll_interval: Duration) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `len` is never used [INFO] [stderr] --> src/vpn/validate.rs:99:12 [INFO] [stderr] | [INFO] [stderr] 96 | impl VpnValidationError { [INFO] [stderr] | ----------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 99 | pub fn len(&self) -> usize { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: `pleme-kindling` (bin "kindling" test) generated 13 warnings (run `cargo fix --bin "kindling" -p pleme-kindling --tests` to apply 5 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.57s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/kindling-9615a8bff37ff3d2) [INFO] [stdout] [INFO] [stdout] running 380 tests [INFO] [stdout] test client::tests::from_node_not_found_empty_map ... ok [INFO] [stdout] test client::tests::from_node_not_found_lists_available ... ok [INFO] [stdout] test commands::init::tests::detect_format_bash ... ok [INFO] [stdout] test client::tests::new_strips_trailing_slash ... ok [INFO] [stdout] test client::tests::from_node_found ... ok [INFO] [stdout] test commands::init::tests::detect_format_bash_env ... ok [INFO] [stdout] test commands::harden::tests::loads_json_profile ... ok [INFO] [stdout] test commands::init::tests::detect_format_empty ... ok [INFO] [stdout] test client::tests::new_preserves_url_without_trailing_slash ... ok [INFO] [stdout] test commands::init::tests::detect_format_json_with_whitespace ... ok [INFO] [stdout] test commands::init::tests::detect_format_json ... ok [INFO] [stdout] test commands::harden::tests::loads_yaml_profile ... ok [INFO] [stdout] test commands::init::tests::detect_format_unknown ... ok [INFO] [stdout] test commands::init::tests::extract_heredoc_invalid_json ... ok [INFO] [stdout] test commands::init::tests::extract_heredoc_complex_config ... ok [INFO] [stdout] test commands::profile::tests::all_profiles_have_components ... ok [INFO] [stdout] test commands::init::tests::extract_heredoc_unclosed ... ok [INFO] [stdout] test commands::profile::tests::profiles_list_is_not_empty ... ok [INFO] [stdout] test commands::init::tests::extract_heredoc_basic ... ok [INFO] [stdout] test commands::profile::tests::all_profiles_have_valid_platform ... ok [INFO] [stdout] test config::tests::config_default_has_no_auto_install ... ok [INFO] [stdout] test commands::init::tests::extract_heredoc_no_quotes_on_delimiter ... ok [INFO] [stdout] test commands::init::tests::extract_heredoc_missing_delimiter ... ok [INFO] [stdout] test commands::init::tests::write_config_creates_parent_dirs ... ok [INFO] [stdout] test commands::init::tests::write_config_sets_permissions ... ok [INFO] [stdout] test commands::profile::tests::find_profile_k3s_server ... ok [INFO] [stdout] test commands::profile::tests::find_profile_unknown ... ok [INFO] [stdout] test commands::profile::tests::profile_names_are_unique ... ok [INFO] [stdout] test commands::profile::tests::find_profile_known ... ok [INFO] [stdout] test config::tests::identity_config_default_empty ... ok [INFO] [stdout] test config::tests::config_deserializes_from_yaml ... ok [INFO] [stdout] test config::tests::fleet_controller_config_default_disabled ... ok [INFO] [stdout] test config::tests::telemetry_config_default_disabled ... ok [INFO] [stdout] test config::tests::config_default_has_empty_nodes ... ok [INFO] [stdout] test config::tests::config_serializes_and_deserializes ... ok [INFO] [stdout] test config::tests::daemon_config_with_nodes ... ok [INFO] [stdout] test config::tests::report_config_defaults ... ok [INFO] [stdout] test config::tests::config_default_has_no_backend ... ok [INFO] [stdout] test config::tests::gc_config_default_zero ... ok [INFO] [stdout] test direnv_setup::tests::use_kindling_sh_is_not_empty ... ok [INFO] [stdout] test direnv_setup::tests::shell_rc_returns_path_and_hook ... ok [INFO] [stdout] test domain::node_report::tests::stored_report_age_is_non_negative ... ok [INFO] [stdout] test domain::node_report::tests::stored_report_collector_version ... ok [INFO] [stdout] test config::tests::daemon_config_default_addresses ... ok [INFO] [stdout] test domain::report_collector::tests::default_os_is_unknown ... ok [INFO] [stdout] test domain::report_collector::tests::default_security_is_permissive ... ok [INFO] [stdout] test domain::node_report::tests::stored_report_verify_passes_on_fresh_report ... ok [INFO] [stdout] test domain::report_collector::tests::parse_k8s_cpu_invalid ... ok [INFO] [stdout] test domain::node_report::tests::stored_report_new_computes_checksum ... ok [INFO] [stdout] test domain::report_collector::tests::extract_proc_field_model_name ... ok [INFO] [stdout] test domain::report_collector::tests::parse_k8s_cpu_whole_cores ... ok [INFO] [stdout] test domain::report_collector::tests::default_health_is_zeroed ... ok [INFO] [stdout] test domain::report_collector::tests::extract_proc_field_missing ... ok [INFO] [stdout] test domain::node_report::tests::stored_report_verify_fails_on_tampered_report ... ok [INFO] [stdout] test domain::report_collector::tests::default_hardware_is_zeroed ... ok [INFO] [stdout] test domain::node_report::tests::stored_report_serialization_round_trip ... ok [INFO] [stdout] test domain::node_report::tests::two_different_reports_have_different_checksums ... ok [INFO] [stdout] test domain::node_report::tests::stored_report_is_stale_false_when_fresh ... ok [INFO] [stdout] test domain::node_report::tests::stored_report_is_stale_boundary ... ok [INFO] [stdout] test domain::node_report::tests::stored_report_verify_fails_on_wrong_checksum ... ok [INFO] [stdout] test domain::report_collector::tests::parse_k8s_memory_ki ... ok [INFO] [stdout] test domain::report_collector::tests::parse_k8s_memory_mi ... ok [INFO] [stdout] test domain::report_collector::tests::parse_meminfo_kb_missing_field ... ok [INFO] [stdout] test domain::report_collector::tests::parse_resolv_conf_empty ... ok [INFO] [stdout] test domain::report_collector::tests::parse_os_release_field_missing ... ok [INFO] [stdout] test domain::report_collector::tests::parse_resolv_conf_no_nameservers ... ok [INFO] [stdout] test domain::report_collector::tests::parse_os_release_field_quoted ... ok [INFO] [stdout] test domain::report_collector::tests::parse_resolv_conf_standard ... ok [INFO] [stdout] test domain::report_collector::tests::parse_resolv_conf_with_comments ... ok [INFO] [stdout] test domain::report_collector::tests::parse_k8s_memory_invalid ... ok [INFO] [stdout] test domain::report_collector::tests::parse_k8s_cpu_millis ... ok [INFO] [stdout] test domain::types::tests::gc_result_roundtrip ... ok [INFO] [stdout] test domain::types::tests::cache_info_roundtrip ... ok [INFO] [stdout] test domain::report_store::tests::read_corrupt_file_fails ... ok [INFO] [stdout] test domain::types::tests::daemon_health_roundtrip ... ok [INFO] [stdout] test domain::types::tests::gc_status_roundtrip ... ok [INFO] [stdout] test client::tests::from_node_none_uses_default ... ok [INFO] [stdout] test domain::report_collector::tests::parse_meminfo_kb_standard ... ok [INFO] [stdout] test domain::report_collector::tests::parse_k8s_memory_gi ... ok [INFO] [stdout] test domain::report_collector::tests::parse_k8s_memory_bytes ... ok [INFO] [stdout] test domain::types::tests::optimise_result_roundtrip ... ok [INFO] [stdout] test domain::types::tests::platform_info_roundtrip ... ok [INFO] [stdout] test domain::types::tests::store_info_roundtrip ... ok [INFO] [stdout] test domain::report_store::tests::read_tampered_checksum_fails ... ok [INFO] [stdout] test domain::report_store::tests::exists_false_for_missing_file ... ok [INFO] [stdout] test direnv_setup::tests::direnv_lib_dir_is_under_config ... ok [INFO] [stdout] test domain::report_collector::tests::default_network_is_empty ... ok [INFO] [stdout] test domain::types::tests::telemetry_payload_roundtrip ... ok [INFO] [stdout] test domain::report_store::tests::read_nonexistent_fails ... ok [INFO] [stdout] test harden::primitives::minimize::tests::category_is_minimize_for_all ... ok [INFO] [stdout] test harden::primitives::minimize::tests::minimize_closure_dry_run_does_not_spawn_nix ... ok [INFO] [stdout] test harden::primitives::fs::tests::tmpfs_dry_run_writes_nothing ... ok [INFO] [stdout] test harden::primitives::fs::tests::tmpfs_writes_unit_files ... ok [INFO] [stdout] test harden::primitives::minimize::tests::strip_docs_real_deletes ... ok [INFO] [stdout] test harden::primitives::fs::tests::remount_readonly_writes_service ... ok [INFO] [stdout] test harden::primitives::kernel::tests::lockdown_writes_cmdline_drop_in ... ok [INFO] [stdout] test harden::primitives::audit::tests::remove_default_users_drops_ec2_user ... ok [INFO] [stdout] test harden::primitives::minimize::tests::strip_locales_reports_candidates ... ok [INFO] [stdout] test harden::primitives::kernel::tests::blacklist_modules_writes_modprobe_entries ... ok [INFO] [stdout] test domain::report_store::tests::write_creates_parent_directories ... ok [INFO] [stdout] test domain::report_store::tests::write_and_read_roundtrip ... ok [INFO] [stdout] test harden::primitives::minimize::tests::strip_docs_dry_run_reports_candidates ... ok [INFO] [stdout] test harden::primitives::scrub::tests::zero_fill_dry_run_is_noop ... ok [INFO] [stdout] test harden::primitives::scrub::tests::scrub_cloud_init_removes_state ... ok [INFO] [stdout] test harden::primitives::tests::every_named_primitive_resolves ... ok [INFO] [stdout] test harden::primitives::tests::unknown_primitive_returns_none ... ok [INFO] [stdout] test harden::profile::tests::compose_dedupes_across_profiles ... ok [INFO] [stdout] test harden::profile::tests::category_ordering ... ok [INFO] [stdout] test harden::profile::tests::compose_merges_params_lists_unique ... ok [INFO] [stdout] test harden::profile::tests::compose_orders_minimize_before_scrub ... ok [INFO] [stdout] test harden::profile::tests::compose_strictest_policy_wins ... ok [INFO] [stdout] test harden::profile::tests::flatten_dedupes ... ok [INFO] [stdout] test harden::profile::tests::flatten_preserves_order_within_category ... ok [INFO] [stdout] test harden::runner::tests::unknown_primitive_abort_fails_fast ... ok [INFO] [stdout] test harden::primitives::network::tests::moduli_drops_weak_lines ... ok [INFO] [stdout] test nix::tests::nix_status_serializes ... ok [INFO] [stdout] test harden::primitives::scrub::tests::scrub_shell_history_removes_bash_history ... ok [INFO] [stdout] test nix::tests::nix_status_uninstalled_serializes ... ok [INFO] [stdout] test domain::types::tests::nix_config_roundtrip ... ok [INFO] [stdout] test nix::tests::parse_version_string_garbage ... ok [INFO] [stdout] test nix::tests::parse_version_string_standard ... ok [INFO] [stdout] test domain::types::tests::nix_status_roundtrip ... ok [INFO] [stdout] test nix::tests::parse_version_string_empty ... ok [INFO] [stdout] test nix::tests::parse_version_string_with_trailing_newline ... ok [INFO] [stdout] test harden::runner::tests::all_minimize_dry_run_passes ... ok [INFO] [stdout] test node_identity::nix_gen::tests::darwin_flake_references_sops_nix_absent ... ok [INFO] [stdout] test harden::runner::tests::unknown_primitive_warn_continues ... ok [INFO] [stdout] test harden::primitives::scrub::tests::scrub_temp_dirs_empties_tmp ... ok [INFO] [stdout] test harden::primitives::scrub::tests::scrub_ssh_keys_removes_host_keys_and_auth_dirs ... ok [INFO] [stdout] test node_identity::nix_gen::tests::darwin_flake_uses_darwin_system ... ok [INFO] [stdout] test node_identity::nix_gen::tests::is_darwin_profile_rejects_non_darwin ... ok [INFO] [stdout] test node_identity::nix_gen::tests::is_darwin_profile_matches_macos_developer ... ok [INFO] [stdout] test node_identity::nix_gen::tests::nixos_flake_contains_hostname ... ok [INFO] [stdout] test node_identity::nix_gen::tests::nixos_flake_contains_profile ... ok [INFO] [stdout] test node_identity::nix_gen::tests::nixos_flake_uses_nixos_system ... ok [INFO] [stdout] test node_identity::nix_gen::tests::write_flake_nix_creates_file ... ok [INFO] [stdout] test harden::primitives::network::tests::sshd_strict_writes_drop_in ... ok [INFO] [stdout] test node_identity::tests::deep_merge_adds_new_keys ... ok [INFO] [stdout] test node_identity::tests::deep_merge_nested_mappings ... ok [INFO] [stdout] test node_identity::nix_gen::tests::write_node_json_creates_parent_dirs ... ok [INFO] [stdout] test node_identity::nix_gen::tests::write_node_json_creates_valid_json ... ok [INFO] [stdout] test node_identity::tests::deep_merge_null_overlay_preserves_base ... ok [INFO] [stdout] test node_identity::tests::from_bootstrap_sets_fields ... ok [INFO] [stdout] test node_identity::tests::from_bootstrap_with_age_key ... ok [INFO] [stdout] test node_identity::tests::deep_merge_sequence_overlay_replaces ... ok [INFO] [stdout] test node_identity::tests::load_nonexistent_returns_error ... ok [INFO] [stdout] test node_identity::tests::deep_merge_scalar_overlay_wins ... ok [INFO] [stdout] test node_identity::tests::load_invalid_yaml_returns_error ... ok [INFO] [stdout] test node_identity::tests::remove_field_path_nested ... ok [INFO] [stdout] test node_identity::tests::redact_removes_specified_fields ... ok [INFO] [stdout] test node_identity::tests::load_with_overlays_ignores_non_yaml_files ... ok [INFO] [stdout] test node_identity::tests::remove_field_path_empty_path_is_noop ... ok [INFO] [stdout] test node_identity::tests::remove_field_path_nonexistent_is_noop ... ok [INFO] [stdout] test node_identity::tests::load_with_overlays_sorts_alphabetically ... ok [INFO] [stdout] test node_identity::tests::redact_empty_fields_is_identity ... ok [INFO] [stdout] test node_identity::tests::remove_field_path_single_level ... ok [INFO] [stdout] test platform::tests::backend_display_determinate ... ok [INFO] [stdout] test platform::tests::backend_display_upstream ... ok [INFO] [stdout] test platform::tests::backend_parse_determinate ... ok [INFO] [stdout] test platform::tests::backend_parse_case_sensitive ... ok [INFO] [stdout] test node_identity::tests::to_json_produces_valid_json ... ok [INFO] [stdout] test node_identity::tests::load_with_overlays_applies_overlay ... ok [INFO] [stdout] test platform::tests::backend_parse_empty_fails ... ok [INFO] [stdout] test platform::tests::backend_parse_upstream ... ok [INFO] [stdout] test platform::tests::backend_roundtrip_display_parse ... ok [INFO] [stdout] test platform::tests::detect_returns_current_platform ... ok [INFO] [stdout] test platform::tests::backend_parse_unknown_fails ... ok [INFO] [stdout] test node_identity::tests::save_creates_parent_dirs ... ok [INFO] [stdout] test platform::tests::installer_url_determinate_macos ... ok [INFO] [stdout] test node_identity::tests::load_with_overlays_skips_bad_files ... ok [INFO] [stdout] test platform::tests::installer_url_upstream_linux ... ok [INFO] [stdout] test platform::tests::target_triple_linux_x86_64 ... ok [INFO] [stdout] test platform::tests::target_triple_linux_aarch64 ... ok [INFO] [stdout] test platform::tests::installer_url_uses_correct_triple ... ok [INFO] [stdout] test node_identity::tests::save_and_load_round_trip ... ok [INFO] [stdout] test server::bootstrap::tests::bootstrap_phase_fromstr_unknown ... ok [INFO] [stdout] test platform::tests::target_triple_macos_x86_64 ... ok [INFO] [stdout] test server::bootstrap::tests::bootstrap_phase_backward_compat_aliases ... ok [INFO] [stdout] test server::bootstrap::tests::bootstrap_phase_fromstr_aliases ... ok [INFO] [stdout] test server::bootstrap::tests::default_distribution_is_k3s ... ok [INFO] [stdout] test platform::tests::target_triple_macos_aarch64 ... ok [INFO] [stdout] test server::bootstrap::tests::k3s_config_cluster_init ... ok [INFO] [stdout] test server::bootstrap::tests::k3s_config_agent_omits_server_only_keys ... ok [INFO] [stdout] test node_identity::tests::from_bootstrap_includes_user_in_trusted_users ... ok [INFO] [stdout] test server::bootstrap::tests::k3s_config_server_includes_server_only_keys ... ok [INFO] [stdout] test server::bootstrap::tests::k3s_config_vpn_tls_san ... ok [INFO] [stdout] test server::bootstrap::tests::bootstrap_phase_display ... ok [INFO] [stdout] test server::bootstrap::tests::kubernetes_distribution_generates_kubeadm_config ... ok [INFO] [stdout] test server::bootstrap::tests::k3s_config_no_token_when_empty ... ok [INFO] [stdout] test harden::primitives::audit::tests::auditd_baseline_writes_rules_file ... ok [INFO] [stdout] test config::tests::load_with_path_merges_yaml ... ok [INFO] [stdout] test server::bootstrap::tests::bootstrap_phase_fromstr_roundtrip ... ok [INFO] [stdout] test server::bootstrap::tests::bootstrap_state_serialization ... ok [INFO] [stdout] test server::bootstrap::tests::k3s_distribution_generates_k3s_config ... ok [INFO] [stdout] test server::bootstrap::tests::k3s_config_join_server ... ok [INFO] [stdout] test server::bootstrap::tests::get_instance_region_fails_gracefully_off_ec2 ... ok [INFO] [stdout] test server::bootstrap::tests::get_instance_id_fails_gracefully_off_ec2 ... ok [INFO] [stdout] test server::bootstrap::tests::provision_skips_when_no_secrets ... ok [INFO] [stdout] test nix::tests::detect_returns_status ... ok [INFO] [stdout] test server::bootstrap::tests::provision_writes_secrets_with_correct_permissions ... ok [INFO] [stdout] test server::cluster_config::tests::derive_hostname ... ok [INFO] [stdout] test server::cluster_config::tests::derive_hostname_defaults ... ok [INFO] [stdout] test server::bootstrap::tests::tag_instance_is_nonfatal_off_ec2 ... ok [INFO] [stdout] test server::cluster_config::tests::cluster_config_defaults_node_role_to_none_for_backwards_compat ... ok [INFO] [stdout] test server::cluster_config::tests::cluster_config_accepts_node_role_from_json ... ok [INFO] [stdout] test server::bootstrap::tests::provision_skips_empty_values ... ok [INFO] [stdout] test server::cluster_config::tests::derive_hostname_with_index ... ok [INFO] [stdout] test server::bootstrap::tests::tag_instance_phase_is_nonfatal_off_ec2 ... ok [INFO] [stdout] test server::cluster_config::tests::invalid_json_returns_error ... ok [INFO] [stdout] test server::cluster_config::tests::cluster_config_accepts_node_role_agent_gpu_with_driver ... ok [INFO] [stdout] test server::cluster_config::tests::is_k3s_with_explicit_k3s ... ok [INFO] [stdout] test server::cluster_config::tests::node_role_agent_gpu_routes_to_agent_service ... ok [INFO] [stdout] test server::cluster_config::tests::node_role_agent_ingress_carries_class ... ok [INFO] [stdout] test server::cluster_config::tests::node_role_agent_storage_carries_backend ... ok [INFO] [stdout] test server::cluster_config::tests::node_role_server_init_slug_and_sentinel ... ok [INFO] [stdout] test server::cluster_config::tests::node_role_serde_roundtrip_all_variants ... ok [INFO] [stdout] test server::cluster_config::tests::node_role_sentinel_paths_are_unique_across_all_variants ... ok [INFO] [stdout] test server::cluster_config::tests::parse_minimal_config ... ok [INFO] [stdout] test server::cluster_config::tests::load_from_file ... ok [INFO] [stdout] test server::cluster_config::tests::parse_full_config ... ok [INFO] [stdout] test server::cluster_config::tests::is_kubernetes_with_explicit_kubernetes ... ok [INFO] [stdout] test server::cluster_config::tests::parse_missing_cluster_name_fails ... ok [INFO] [stdout] test server::cluster_config::tests::parse_empty_bootstrap_secrets ... ok [INFO] [stdout] test server::cluster_config::tests::parse_bootstrap_secrets ... ok [INFO] [stdout] test server::cluster_config::tests::node_role_slugs_match_arch_synthesizer ... ok [INFO] [stdout] test server::cluster_config::tests::parse_empty_json_fails ... ok [INFO] [stdout] test server::cluster_config::tests::parse_empty_object_fails ... ok [INFO] [stdout] test server::cluster_config::tests::parse_vpn_config ... ok [INFO] [stdout] test server::cluster_config::tests::parse_with_unknown_fields_succeeds ... ok [INFO] [stdout] test server::cluster_config::tests::parse_without_bootstrap_secrets ... ok [INFO] [stdout] test server::cluster_config::tests::should_rebuild_default_is_false ... ok [INFO] [stdout] test server::cluster_config::tests::should_rebuild_force_overrides_skip ... ok [INFO] [stdout] test server::cluster_config::tests::should_rebuild_force_rebuild_true ... ok [INFO] [stdout] test server::cluster_config::tests::should_rebuild_skip_nix_rebuild_false ... ok [INFO] [stdout] test server::cluster_config::tests::to_node_identity_fluxcd_defaults ... ok [INFO] [stdout] test server::cluster_config::tests::to_node_identity_minimal ... ok [INFO] [stdout] test server::cluster_config::tests::to_node_identity_agent_server_addr ... ok [INFO] [stdout] test server::cluster_config::tests::to_node_identity_with_secrets ... ok [INFO] [stdout] test server::cluster_config::tests::to_node_identity_without_vpn ... ok [INFO] [stdout] test server::cluster_config::tests::to_node_identity_kubernetes_distribution ... ok [INFO] [stdout] test server::cluster_config::tests::to_node_identity_with_fluxcd ... ok [INFO] [stdout] test server::cluster_config::tests::validate_endpoint_rejects_invalid ... ok [INFO] [stdout] test server::cluster_config::tests::validate_endpoint_valid ... ok [INFO] [stdout] test server::cluster_config::tests::unknown_distribution_is_neither ... ok [INFO] [stdout] test server::cluster_config::tests::validate_cidr_valid_ipv4 ... ok [INFO] [stdout] test server::cluster_config::tests::validate_cidr_valid_ipv6 ... ok [INFO] [stdout] test server::cluster_config::tests::validate_cidr_rejects_invalid ... ok [INFO] [stdout] test server::cluster_config::tests::should_rebuild_skip_nix_rebuild_true ... ok [INFO] [stdout] test server::cluster_config::tests::to_node_identity_with_vpn ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_full_passes_with_secure_key_files ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_full_rejects_insecure_permissions ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_duplicate_addresses ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_full_rejects_missing_key_files ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_invalid_cidr_in_allowed_ips ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_full_tunnel ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_k8s_trust_interface ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_invalid_interface_name ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_listen_port_without_firewall_port ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_duplicate_listen_ports ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_privileged_listen_port ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_duplicate_peer_keys ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_invalid_address_cidr ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_missing_firewall ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_ipv6_full_tunnel ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_missing_preshared_key ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_invalid_endpoint ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_missing_address ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_missing_private_key ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_no_peers ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_security_passes_without_vpn ... ok [INFO] [stdout] test server::cluster_config::tests::vpn_require_liveness_defaults_false ... ok [INFO] [stdout] test server::cluster_config::tests::vpn_require_liveness_parsed_when_true ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_reports_all_violations ... ok [INFO] [stdout] test server::health::tests::k3s_health_status_roundtrip ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_unknown_profile ... ok [INFO] [stdout] test server::health::tests::parse_wg_handshakes_empty_output ... ok [INFO] [stdout] test server::health::tests::fluxcd_health_status_serializes ... ok [INFO] [stdout] test server::health::tests::parse_wg_handshakes_invalid_timestamp_ignored ... ok [INFO] [stdout] test server::health::tests::parse_wg_handshakes_multiple_interfaces ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_security_passes_for_valid_config ... ok [INFO] [stdout] test server::health::tests::parse_wg_handshakes_no_handshake ... ok [INFO] [stdout] test server::health::tests::parse_wg_handshakes_valid_output ... ok [INFO] [stdout] test server::health::tests::wireguard_health_status_roundtrip ... ok [INFO] [stdout] test server::health::tests::parse_wg_handshakes_malformed_lines_ignored ... ok [INFO] [stdout] test server::health::tests::parse_wg_handshakes_stale_handshake ... ok [INFO] [stdout] test server::kubeadm::tests::kubeadm_init_config_basic ... ok [INFO] [stdout] test server::kubeadm::tests::kubeadm_init_config_with_vpn_san ... ok [INFO] [stdout] test server::kubeadm::tests::kubeadm_join_config_secondary_cp ... ok [INFO] [stdout] test server::kubeadm::tests::distribution_helpers ... ok [INFO] [stdout] test server::kubeadm::tests::kubeadm_init_config_with_token ... ok [INFO] [stdout] test server::health::tests::k3s_health_status_serializes ... ok [INFO] [stdout] test server::kubeadm::tests::kubeadm_join_config_no_ca_hash_uses_unsafe_skip ... ok [INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_k8s_empty_ports ... ok [INFO] [stdout] test server::health::tests::wireguard_health_status_serializes ... ok [INFO] [stdout] test server::wireguard_fast::tests::generate_config_missing_private_key_file ... ok [INFO] [stdout] test server::wireguard_fast::tests::generate_config_minimal ... ok [INFO] [stdout] test server::wireguard_fast::tests::generate_config_full ... ok [INFO] [stdout] test server::wireguard_fast::tests::generate_config_no_address ... ok [INFO] [stdout] test telemetry::vector::tests::new_preserves_url_with_path ... ok [INFO] [stdout] test server::wireguard_fast::tests::read_key_file_clean_value ... ok [INFO] [stdout] test server::kubeadm::tests::kubeadm_custom_cidrs ... ok [INFO] [stdout] test tools::tests::find_known_tool ... ok [INFO] [stdout] test server::wireguard_fast::tests::generate_config_missing_peer_public_key ... ok [INFO] [stdout] test tools::tests::find_returns_valid_path ... ok [INFO] [stdout] test server::wireguard_fast::tests::read_key_file_missing ... ok [INFO] [stdout] test telemetry::vector::tests::new_stores_url ... ok [INFO] [stdout] test vpn::keygen::tests::generate_psk_is_32_bytes ... ok [INFO] [stdout] test vpn::keygen::tests::generate_keypair_produces_valid_base64 ... ok [INFO] [stdout] test tools::tests::find_nonexistent_tool ... ok [INFO] [stdout] test vpn::keygen::tests::run_rejects_invalid_profile ... ok [INFO] [stdout] test vpn::keygen::tests::generate_keypair_derives_correct_public_key ... ok [INFO] [stdout] test vpn::keygen::tests::keypairs_are_unique ... ok [INFO] [stdout] test vpn::keygen::tests::generate_returns_structured_output ... ok [INFO] [stdout] test vpn::portao_bootstrap::tests::assigns_distinct_addresses ... ok [INFO] [stdout] test vpn::portao_bootstrap::tests::each_spoke_has_unique_keypair ... ok [INFO] [stdout] test vpn::portao_bootstrap::tests::each_spoke_has_unique_psk ... ok [INFO] [stdout] test vpn::portao_bootstrap::tests::interface_naming_explicit_suffix_wins ... ok [INFO] [stdout] test vpn::portao_bootstrap::tests::json_output_is_round_trippable ... ok [INFO] [stdout] test vpn::portao_bootstrap::tests::peers_json_uses_hub_view_addresses ... ok [INFO] [stdout] test vpn::portao_bootstrap::tests::rejects_empty_spokes ... ok [INFO] [stdout] test vpn::portao_bootstrap::tests::rejects_too_many_spokes ... ok [INFO] [stdout] test vpn::portao_bootstrap::tests::sops_paths_match_vpn_links_convention ... ok [INFO] [stdout] test vpn::portao_bootstrap::tests::ssm_commands_inline_the_credentials ... ok [INFO] [stdout] test vpn::portao_bootstrap::tests::ssm_paths_match_pangea_architecture_convention ... ok [INFO] [stdout] test server::kubeadm::tests::kubeadm_join_config_worker ... ok [INFO] [stdout] test server::kubeadm::tests::kubeadm_node_name_uses_derive_hostname ... ok [INFO] [stdout] test server::kubeadm::tests::kubeadm_token_from_bootstrap_secrets ... ok [INFO] [stdout] test server::wireguard_fast::tests::generate_config_multiple_peers ... ok [INFO] [stdout] test server::wireguard_fast::tests::read_key_file_trims_whitespace ... ok [INFO] [stdout] test vpn::portao_fleet::tests::bootstrap_default_spokes_apply_when_per_entry_omitted ... ok [INFO] [stdout] test vpn::keygen::tests::json_output_is_valid ... ok [INFO] [stdout] test vpn::keygen::tests::sops_paths_follow_convention ... ok [INFO] [stdout] test server::wireguard_fast::tests::generate_config_link_level_keepalive_fallback ... ok [INFO] [stdout] test vpn::portao_fleet::tests::bootstrap_per_entry_spokes_override_defaults ... ok [INFO] [stdout] test vpn::portao_bootstrap::tests::interface_naming_default_truncates_env_to_3_chars ... ok [INFO] [stdout] test vpn::keygen::tests::run_succeeds_with_valid_profiles ... ok [INFO] [stdout] test vpn::portao_fleet::tests::parses_yaml_config ... ok [INFO] [stdout] test vpn::portao_fleet::tests::load_config_reads_yaml_from_disk ... ok [INFO] [stdout] test vpn::portao_fleet::tests::rejects_duplicate_env_name ... ok [INFO] [stdout] test vpn::portao_fleet::tests::rejects_empty_fleet ... ok [INFO] [stdout] test vpn::validate::tests::accepts_15_char_interface_name ... ok [INFO] [stdout] test vpn::validate::tests::empty_links_passes ... ok [INFO] [stdout] test vpn::portao_fleet::tests::rejects_zero_spokes_with_empty_default ... ok [INFO] [stdout] test vpn::validate::tests::collect_violations_returns_all_errors ... ok [INFO] [stdout] test vpn::validate::tests::check_files_reports_missing_private_key ... ok [INFO] [stdout] test vpn::validate::tests::error_can_be_downcast_to_vpn_validation_error ... ok [INFO] [stdout] test vpn::validate::tests::invalid_cidr ... ok [INFO] [stdout] test vpn::validate::tests::no_profile_allows_trust_interface ... ok [INFO] [stdout] test vpn::validate::tests::rejects_duplicate_link_names ... ok [INFO] [stdout] test vpn::validate::tests::invalid_endpoint ... ok [INFO] [stdout] test vpn::validate::tests::k8s_profile_rejects_trust_interface ... ok [INFO] [stdout] test vpn::validate::tests::rejects_empty_interface_name ... ok [INFO] [stdout] test vpn::validate::tests::rejects_interface_with_special_chars ... ok [INFO] [stdout] test vpn::validate::tests::rejects_long_interface_name ... ok [INFO] [stdout] test vpn::validate::tests::rejects_full_tunnel ... ok [INFO] [stdout] test vpn::validate::tests::rejects_missing_address ... ok [INFO] [stdout] test vpn::validate::tests::rejects_missing_private_key ... ok [INFO] [stdout] test vpn::validate::tests::rejects_missing_firewall ... ok [INFO] [stdout] test vpn::validate::tests::rejects_peer_missing_public_key ... ok [INFO] [stdout] test vpn::validate::tests::rejects_no_peers ... ok [INFO] [stdout] test vpn::validate::tests::rejects_ipv6_full_tunnel ... ok [INFO] [stdout] test vpn::portao_fleet::tests::bootstrap_keys_unique_across_portaos ... ok [INFO] [stdout] test vpn::validate::tests::rejects_privileged_listen_port ... ok [INFO] [stdout] test vpn::validate::tests::valid_cidr_ipv4 ... ok [INFO] [stdout] test vpn::validate::tests::valid_endpoint ... ok [INFO] [stdout] test vpn::validate::tests::validate_key_file_nonexistent ... ok [INFO] [stdout] test vpn::validate::tests::rejects_unknown_profile ... ok [INFO] [stdout] test vpn::validate::tests::valid_config_passes ... ok [INFO] [stdout] test vpn::validate::tests::valid_cidr_ipv6 ... ok [INFO] [stdout] test vpn::validate::tests::validate_key_file_insecure_permissions ... ok [INFO] [stdout] test vpn::validate::tests::validate_key_file_secure_permissions ... ok [INFO] [stdout] test vpn::portao_fleet::tests::ssm_param_paths_match_pangea_convention_per_env ... ok [INFO] [stderr] No journal files were found. [INFO] [stderr] Failed to connect to /run/systemd/journal/io.systemd.journal: No such file or directory [INFO] [stdout] test vpn::portao_fleet::tests::json_output_round_trips ... ok [INFO] [stdout] test vpn::portao_fleet::tests::rejects_duplicate_subnet_base ... ok [INFO] [stdout] test harden::primitives::network::tests::disable_ipv6_writes_sysctl_drop_in ... ok [INFO] [stdout] test harden::primitives::kernel::tests::sysctl_baseline_writes_expected_keys ... ok [INFO] [stdout] test vpn::portao_fleet::tests::bootstrap_yields_one_portao_per_entry ... ok [INFO] [stdout] test harden::primitives::scrub::tests::scrub_logs_truncates_btmp_removes_rest ... ok [INFO] [stdout] test harden::primitives::network::tests::firewall_writes_nft_with_ssh_default ... ok [INFO] [stdout] test server::bootstrap::tests::provision_is_idempotent ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 380 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "152619c867d23b5012440864f03c0a0ec4420f45d92ca48aea2da3343c43ea80", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "152619c867d23b5012440864f03c0a0ec4420f45d92ca48aea2da3343c43ea80", kill_on_drop: false }` [INFO] [stdout] 152619c867d23b5012440864f03c0a0ec4420f45d92ca48aea2da3343c43ea80