[INFO] cloning repository https://github.com/aalarchiv/ivacam
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/aalarchiv/ivacam" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faalarchiv%2Fivacam", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faalarchiv%2Fivacam'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 93dd48d480685183987c91d09f8b3841d350991a
[INFO] testing aalarchiv/ivacam against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faalarchiv%2Fivacam" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc1/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-1-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/aalarchiv/ivacam
[INFO] finished tweaking git repo https://github.com/aalarchiv/ivacam
[INFO] tweaked toml for git repo https://github.com/aalarchiv/ivacam written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/aalarchiv/ivacam on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/aalarchiv/ivacam 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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded maybe_parallel_iterator v0.12.0
[INFO] [stderr]   Downloaded hashbrown v0.17.0
[INFO] [stderr]   Downloaded xmlwriter v0.1.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.120
[INFO] [stderr]   Downloaded pico-args v0.5.0
[INFO] [stderr]   Downloaded javascriptcore-rs-sys v1.1.1
[INFO] [stderr]   Downloaded enum_primitive v0.1.1
[INFO] [stderr]   Downloaded version-compare v0.2.1
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.120
[INFO] [stderr]   Downloaded xmltree v0.9.0
[INFO] [stderr]   Downloaded string_cache_codegen v0.6.1
[INFO] [stderr]   Downloaded windows-numerics v0.2.0
[INFO] [stderr]   Downloaded siphasher v1.0.3
[INFO] [stderr]   Downloaded zerofrom v0.1.7
[INFO] [stderr]   Downloaded num-traits v0.1.43
[INFO] [stderr]   Downloaded dyn-clone v1.0.20
[INFO] [stderr]   Downloaded unic-ucd-version v0.9.0
[INFO] [stderr]   Downloaded unic-char-property v0.9.0
[INFO] [stderr]   Downloaded unic-char-range v0.9.0
[INFO] [stderr]   Downloaded serde_spanned v1.1.1
[INFO] [stderr]   Downloaded unic-common v0.9.0
[INFO] [stderr]   Downloaded unic-ucd-ident v0.9.0
[INFO] [stderr]   Downloaded markup5ever v0.38.0
[INFO] [stderr]   Downloaded num-conv v0.2.1
[INFO] [stderr]   Downloaded num_threads v0.1.7
[INFO] [stderr]   Downloaded ref-cast-impl v1.0.25
[INFO] [stderr]   Downloaded phf_shared v0.11.3
[INFO] [stderr]   Downloaded precomputed-hash v0.1.1
[INFO] [stderr]   Downloaded phf_codegen v0.13.1
[INFO] [stderr]   Downloaded phf_shared v0.13.1
[INFO] [stderr]   Downloaded phf_generator v0.13.1
[INFO] [stderr]   Downloaded dtoa-short v0.3.5
[INFO] [stderr]   Downloaded cssparser-macros v0.6.1
[INFO] [stderr]   Downloaded windows-collections v0.2.0
[INFO] [stderr]   Downloaded gdkx11-sys v0.18.2
[INFO] [stderr]   Downloaded gdkwayland-sys v0.18.2
[INFO] [stderr]   Downloaded simplecss v0.2.2
[INFO] [stderr]   Downloaded imagesize v0.13.0
[INFO] [stderr]   Downloaded data-url v0.3.2
[INFO] [stderr]   Downloaded schemars_derive v0.8.22
[INFO] [stderr]   Downloaded lru v0.16.4
[INFO] [stderr]   Downloaded static_aabb2d_index v2.0.0
[INFO] [stderr]   Downloaded serde-wasm-bindgen v0.6.5
[INFO] [stderr]   Downloaded webkit2gtk-sys v2.0.2
[INFO] [stderr]   Downloaded javascriptcore-rs v1.1.2
[INFO] [stderr]   Downloaded ctor v0.8.0
[INFO] [stderr]   Downloaded vswhom v0.1.0
[INFO] [stderr]   Downloaded serialize-to-javascript-impl v0.1.2
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.70
[INFO] [stderr]   Downloaded enumflags2_derive v0.7.12
[INFO] [stderr]   Downloaded pathdiff v0.2.3
[INFO] [stderr]   Downloaded is-docker v0.2.0
[INFO] [stderr]   Downloaded bytecheck_derive v0.6.12
[INFO] [stderr]   Downloaded libredox v0.1.16
[INFO] [stderr]   Downloaded core-graphics-types v0.2.0
[INFO] [stderr]   Downloaded embed_plist v1.2.2
[INFO] [stderr]   Downloaded tauri-plugin v2.6.0
[INFO] [stderr]   Downloaded urlpattern v0.3.0
[INFO] [stderr]   Downloaded toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]   Downloaded swift-rs v1.0.7
[INFO] [stderr]   Downloaded ref-cast v1.0.25
[INFO] [stderr]   Downloaded serde-untagged v0.1.9
[INFO] [stderr]   Downloaded erased-serde v0.4.10
[INFO] [stderr]   Downloaded phf v0.11.3
[INFO] [stderr]   Downloaded phf_generator v0.11.3
[INFO] [stderr]   Downloaded json-patch v3.0.1
[INFO] [stderr]   Downloaded infer v0.19.0
[INFO] [stderr]   Downloaded gdkx11 v0.18.2
[INFO] [stderr]   Downloaded dtoa v1.0.11
[INFO] [stderr]   Downloaded tao-macros v0.1.3
[INFO] [stderr]   Downloaded objc2-user-notifications v0.3.2
[INFO] [stderr]   Downloaded dlopen2_derive v0.4.3
[INFO] [stderr]   Downloaded serialize-to-javascript v0.1.2
[INFO] [stderr]   Downloaded phf v0.13.1
[INFO] [stderr]   Downloaded phf_macros v0.13.1
[INFO] [stderr]   Downloaded web_atoms v0.2.4
[INFO] [stderr]   Downloaded uuid v1.10.0
[INFO] [stderr]   Downloaded soup3-sys v0.5.0
[INFO] [stderr]   Downloaded servo_arc v0.4.3
[INFO] [stderr]   Downloaded windows-version v0.1.7
[INFO] [stderr]   Downloaded vswhom-sys v0.1.3
[INFO] [stderr]   Downloaded open v5.3.5
[INFO] [stderr]   Downloaded kqueue-sys v1.1.0
[INFO] [stderr]   Downloaded dtor-proc-macro v0.0.6
[INFO] [stderr]   Downloaded windows-threading v0.1.0
[INFO] [stderr]   Downloaded zvariant_utils v3.4.0
[INFO] [stderr]   Downloaded async-executor v1.14.0
[INFO] [stderr]   Downloaded is-wsl v0.4.0
[INFO] [stderr]   Downloaded value-bag v1.12.0
[INFO] [stderr]   Downloaded rend v0.4.2
[INFO] [stderr]   Downloaded svgtypes v0.15.3
[INFO] [stderr]   Downloaded toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]   Downloaded phf_macros v0.11.3
[INFO] [stderr]   Downloaded jsonptr v0.6.3
[INFO] [stderr]   Downloaded objc2-exception-helper v0.1.1
[INFO] [stderr]   Downloaded webview2-com-macros v0.8.1
[INFO] [stderr]   Downloaded objc2-io-surface v0.3.2
[INFO] [stderr]   Downloaded jni-sys v0.3.1
[INFO] [stderr]   Downloaded cookie v0.18.1
[INFO] [stderr]   Downloaded endi v1.1.1
[INFO] [stderr]   Downloaded xml-rs v0.8.28
[INFO] [stderr]   Downloaded dtor v0.3.0
[INFO] [stderr]   Downloaded ctor-proc-macro v0.0.7
[INFO] [stderr]   Downloaded cargo-platform v0.1.9
[INFO] [stderr]   Downloaded windows-future v0.2.1
[INFO] [stderr]   Downloaded zbus_names v4.3.2
[INFO] [stderr]   Downloaded soup3 v0.5.0
[INFO] [stderr]   Downloaded schemars v0.8.22
[INFO] [stderr]   Downloaded string_cache v0.9.0
[INFO] [stderr]   Downloaded redox_users v0.5.2
[INFO] [stderr]   Downloaded objc2-quartz-core v0.3.2
[INFO] [stderr]   Downloaded objc2-core-location v0.3.2
[INFO] [stderr]   Downloaded num_enum v0.7.6
[INFO] [stderr]   Downloaded num_enum_derive v0.7.6
[INFO] [stderr]   Downloaded dlopen2 v0.8.2
[INFO] [stderr]   Downloaded embed-resource v3.0.9
[INFO] [stderr]   Downloaded winreg v0.55.0
[INFO] [stderr]   Downloaded zvariant_derive v5.12.0
[INFO] [stderr]   Downloaded enumflags2 v0.7.12
[INFO] [stderr]   Downloaded uds_windows v1.2.1
[INFO] [stderr]   Downloaded piper v0.2.5
[INFO] [stderr]   Downloaded async-process v2.5.0
[INFO] [stderr]   Downloaded async-lock v3.4.2
[INFO] [stderr]   Downloaded rkyv_derive v0.7.46
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.120
[INFO] [stderr]   Downloaded toml v1.1.2+spec-1.1.0
[INFO] [stderr]   Downloaded toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]   Downloaded serde_with_macros v3.19.0
[INFO] [stderr]   Downloaded plist v1.9.0
[INFO] [stderr]   Downloaded cfb v0.7.3
[INFO] [stderr]   Downloaded tendril v0.5.0
[INFO] [stderr]   Downloaded cssparser v0.36.0
[INFO] [stderr]   Downloaded brotli-decompressor v5.0.0
[INFO] [stderr]   Downloaded bytecheck v0.6.12
[INFO] [stderr]   Downloaded roxmltree v0.20.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.120
[INFO] [stderr]   Downloaded webkit2gtk v2.0.2
[INFO] [stderr]   Downloaded objc2-core-data v0.3.2
[INFO] [stderr]   Downloaded tauri-runtime v2.11.0
[INFO] [stderr]   Downloaded tauri-macros v2.6.0
[INFO] [stderr]   Downloaded tauri-codegen v2.6.0
[INFO] [stderr]   Downloaded tauri-build v2.6.0
[INFO] [stderr]   Downloaded tauri-winres v0.3.6
[INFO] [stderr]   Downloaded wasm-streams v0.5.0
[INFO] [stderr]   Downloaded async-signal v0.2.14
[INFO] [stderr]   Downloaded async-io v2.6.0
[INFO] [stderr]   Downloaded android_logger v0.15.1
[INFO] [stderr]   Downloaded usvg v0.45.1
[INFO] [stderr]   Downloaded html5ever v0.38.0
[INFO] [stderr]   Downloaded cargo_metadata v0.19.2
[INFO] [stderr]   Downloaded windows-core v0.61.2
[INFO] [stderr]   Downloaded block2 v0.6.2
[INFO] [stderr]   Downloaded webview2-com v0.38.2
[INFO] [stderr]   Downloaded core-graphics v0.25.0
[INFO] [stderr]   Downloaded objc2-cloud-kit v0.3.2
[INFO] [stderr]   Downloaded zbus_macros v5.16.0
[INFO] [stderr]   Downloaded byte-unit v5.2.0
[INFO] [stderr]   Downloaded utf8-width v0.1.8
[INFO] [stderr]   Downloaded borsh-derive v1.6.1
[INFO] [stderr]   Downloaded env_filter v0.1.4
[INFO] [stderr]   Downloaded euclid v0.22.14
[INFO] [stderr]   Downloaded schemars v1.2.1
[INFO] [stderr]   Downloaded schemars v0.9.0
[INFO] [stderr]   Downloaded dom_query v0.27.0
[INFO] [stderr]   Downloaded selectors v0.36.1
[INFO] [stderr]   Downloaded tauri-plugin-log v2.8.0
[INFO] [stderr]   Downloaded inotify v0.11.1
[INFO] [stderr]   Downloaded voronator v0.2.1
[INFO] [stderr]   Downloaded cc v1.2.61
[INFO] [stderr]   Downloaded criterion v0.5.1
[INFO] [stderr]   Downloaded toml_edit v0.25.11+spec-1.1.0
[INFO] [stderr]   Downloaded softbuffer v0.4.8
[INFO] [stderr]   Downloaded cargo_toml v0.22.3
[INFO] [stderr]   Downloaded toml v0.9.12+spec-1.1.0
[INFO] [stderr]   Downloaded tauri-plugin-opener v2.5.4
[INFO] [stderr]   Downloaded borsh v1.6.1
[INFO] [stderr]   Downloaded tauri-plugin-window-state v2.4.1
[INFO] [stderr]   Downloaded camino v1.2.2
[INFO] [stderr]   Downloaded dispatch2 v0.3.1
[INFO] [stderr]   Downloaded tray-icon v0.23.1
[INFO] [stderr]   Downloaded objc2-core-image v0.3.2
[INFO] [stderr]   Downloaded tauri-runtime-wry v2.11.0
[INFO] [stderr]   Downloaded objc2-core-text v0.3.2
[INFO] [stderr]   Downloaded ndk v0.9.0
[INFO] [stderr]   Downloaded js-sys v0.3.97
[INFO] [stderr]   Downloaded cavalier_contours v0.7.0
[INFO] [stderr]   Downloaded muda v0.19.1
[INFO] [stderr]   Downloaded typenum v1.20.0
[INFO] [stderr]   Downloaded dbus v0.9.11
[INFO] [stderr]   Downloaded ico v0.5.0
[INFO] [stderr]   Downloaded tauri-plugin-store v2.4.3
[INFO] [stderr]   Downloaded tauri-plugin-process v2.3.1
[INFO] [stderr]   Downloaded zvariant v5.12.0
[INFO] [stderr]   Downloaded rfd v0.16.0
[INFO] [stderr]   Downloaded multer v3.1.0
[INFO] [stderr]   Downloaded clipper2-rust v1.0.3
[INFO] [stderr]   Downloaded objc2-core-graphics v0.3.2
[INFO] [stderr]   Downloaded kurbo v0.11.3
[INFO] [stderr]   Downloaded dxf v0.6.1
[INFO] [stderr]   Downloaded tauri-utils v2.9.0
[INFO] [stderr]   Downloaded itertools v0.14.0
[INFO] [stderr]   Downloaded rkyv v0.7.46
[INFO] [stderr]   Downloaded winnow v1.0.2
[INFO] [stderr]   Downloaded serde_with v3.19.0
[INFO] [stderr]   Downloaded objc2-web-kit v0.3.2
[INFO] [stderr]   Downloaded reqwest v0.13.3
[INFO] [stderr]   Downloaded iri-string v0.7.12
[INFO] [stderr]   Downloaded hyper v1.9.0
[INFO] [stderr]   Downloaded tauri-plugin-dialog v2.7.1
[INFO] [stderr]   Downloaded tauri-plugin-fs v2.5.1
[INFO] [stderr]   Downloaded objc2-core-foundation v0.3.2
[INFO] [stderr]   Downloaded zbus v5.16.0
[INFO] [stderr]   Downloaded rust_decimal v1.41.0
[INFO] [stderr]   Downloaded chrono v0.4.44
[INFO] [stderr]   Downloaded wry v0.55.1
[INFO] [stderr]   Downloaded quick-xml v0.39.3
[INFO] [stderr]   Downloaded tauri v2.11.0
[INFO] [stderr]   Downloaded tracing-subscriber v0.3.23
[INFO] [stderr]   Downloaded fern v0.7.1
[INFO] [stderr]   Downloaded objc2 v0.6.4
[INFO] [stderr]   Downloaded tao v0.35.2
[INFO] [stderr]   Downloaded ndk-sys v0.6.0+11769913
[INFO] [stderr]   Downloaded objc2-foundation v0.3.2
[INFO] [stderr]   Downloaded objc2-ui-kit v0.3.2
[INFO] [stderr]   Downloaded web-sys v0.3.97
[INFO] [stderr]   Downloaded objc2-app-kit v0.3.2
[INFO] [stderr]   Downloaded brotli v8.0.2
[INFO] [stderr]   Downloaded tokio v1.52.2
[INFO] [stderr]   Downloaded libdbus-sys v0.2.7
[INFO] [stderr]   Downloaded window-vibrancy v0.6.0
[INFO] [stderr]   Downloaded webview2-com-sys v0.38.2
[INFO] [stderr]   Downloaded windows v0.61.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 41da60e52b8420518464ad44e876e989f190c09e11c7399088894a366748cc3b
[INFO] running `Command { std: "docker" "start" "41da60e52b8420518464ad44e876e989f190c09e11c7399088894a366748cc3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "41da60e52b8420518464ad44e876e989f190c09e11c7399088894a366748cc3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "41da60e52b8420518464ad44e876e989f190c09e11c7399088894a366748cc3b" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "41da60e52b8420518464ad44e876e989f190c09e11c7399088894a366748cc3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "41da60e52b8420518464ad44e876e989f190c09e11c7399088894a366748cc3b" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.120
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling xml-rs v0.8.28
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling float-cmp v0.9.0
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling strict-num v0.1.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling kurbo v0.11.3
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling xmltree v0.9.0
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling arrayref v0.3.9
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling siphasher v1.0.3
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling wasm-bindgen v0.2.120
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling tiny-skia-path v0.11.4
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling simplecss v0.2.2
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling imagesize v0.13.0
[INFO] [stderr]    Compiling data-url v0.3.2
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling num-traits v0.1.43
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling dxf v0.6.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling enum_primitive v0.1.1
[INFO] [stderr]    Compiling svgtypes v0.15.3
[INFO] [stderr]    Compiling static_aabb2d_index v2.0.0
[INFO] [stderr]    Compiling image v0.25.5
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling pico-args v0.5.0
[INFO] [stderr]    Compiling maybe_parallel_iterator v0.12.0
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling xmlwriter v0.1.0
[INFO] [stderr]    Compiling roxmltree v0.20.0
[INFO] [stderr]    Compiling voronator v0.2.1
[INFO] [stderr]    Compiling cavalier_contours v0.7.0
[INFO] [stderr]    Compiling clipper2-rust v1.0.3
[INFO] [stderr]    Compiling ttf-parser v0.25.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling seahash v4.1.0
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling lru v0.16.4
[INFO] [stderr]    Compiling usvg v0.45.1
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.120
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling axum-macros v0.4.2
[INFO] [stderr]    Compiling schemars_derive v0.8.22
[INFO] [stderr]    Compiling tokio v1.52.2
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.120
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling uuid v1.10.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling js-sys v0.3.97
[INFO] [stderr]    Compiling console_error_panic_hook v0.1.7
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling ivac-core v0.3.0 (/opt/rustwide/workdir/crates/ivac-core)
[INFO] [stderr]    Compiling serde-wasm-bindgen v0.6.5
[INFO] [stdout] warning: value assigned to `emitted_objects` is never read
[INFO] [stdout]    --> crates/ivac-core/src/pipeline/offset_builder.rs:350:17
[INFO] [stdout]     |
[INFO] [stdout] 350 |                 emitted_objects += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ivac-wasm v0.3.0 (/opt/rustwide/workdir/crates/ivac-wasm)
[INFO] [stderr]    Compiling xtask v0.3.0 (/opt/rustwide/workdir/xtask)
[INFO] [stderr]    Compiling ivac-server v0.3.0 (/opt/rustwide/workdir/crates/ivac-server)
[INFO] [stderr]    Compiling ivac-cli v0.3.0 (/opt/rustwide/workdir/crates/ivac-cli)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 26s
[INFO] running `Command { std: "docker" "inspect" "41da60e52b8420518464ad44e876e989f190c09e11c7399088894a366748cc3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "41da60e52b8420518464ad44e876e989f190c09e11c7399088894a366748cc3b" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling uuid v1.10.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling serde-wasm-bindgen v0.6.5
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling dxf v0.6.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling ivac-core v0.3.0 (/opt/rustwide/workdir/crates/ivac-core)
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stdout] warning: value assigned to `emitted_objects` is never read
[INFO] [stdout]    --> crates/ivac-core/src/pipeline/offset_builder.rs:350:17
[INFO] [stdout]     |
[INFO] [stdout] 350 |                 emitted_objects += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]     --> crates/ivac-core/src/gcode.rs:2207:27
[INFO] [stdout]      |
[INFO] [stdout] 2207 |             .position(|l| (l.starts_with("G1 X") || l.starts_with("G1 Y")))
[INFO] [stdout]      |                           ^                                              ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2207 -             .position(|l| (l.starts_with("G1 X") || l.starts_with("G1 Y")))
[INFO] [stdout] 2207 +             .position(|l| l.starts_with("G1 X") || l.starts_with("G1 Y"))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ivac-wasm v0.3.0 (/opt/rustwide/workdir/crates/ivac-wasm)
[INFO] [stderr]    Compiling ivac-cli v0.3.0 (/opt/rustwide/workdir/crates/ivac-cli)
[INFO] [stderr]    Compiling xtask v0.3.0 (/opt/rustwide/workdir/xtask)
[INFO] [stderr]    Compiling ivac-server v0.3.0 (/opt/rustwide/workdir/crates/ivac-server)
[INFO] [stdout] warning: value assigned to `emitted_objects` is never read
[INFO] [stdout]    --> crates/ivac-core/src/pipeline/offset_builder.rs:350:17
[INFO] [stdout]     |
[INFO] [stdout] 350 |                 emitted_objects += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 22s
[INFO] running `Command { std: "docker" "inspect" "41da60e52b8420518464ad44e876e989f190c09e11c7399088894a366748cc3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "41da60e52b8420518464ad44e876e989f190c09e11c7399088894a366748cc3b" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: value assigned to `emitted_objects` is never read
[INFO] [stderr]    --> crates/ivac-core/src/pipeline/offset_builder.rs:350:17
[INFO] [stderr]     |
[INFO] [stderr] 350 |                 emitted_objects += 1;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `ivac-core` (lib) generated 1 warning
[INFO] [stderr] warning: unnecessary parentheses around closure body
[INFO] [stderr]     --> crates/ivac-core/src/gcode.rs:2207:27
[INFO] [stderr]      |
[INFO] [stderr] 2207 |             .position(|l| (l.starts_with("G1 X") || l.starts_with("G1 Y")))
[INFO] [stderr]      |                           ^                                              ^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 2207 -             .position(|l| (l.starts_with("G1 X") || l.starts_with("G1 Y")))
[INFO] [stderr] 2207 +             .position(|l| l.starts_with("G1 X") || l.starts_with("G1 Y"))
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: `ivac-core` (lib test) generated 2 warnings (1 duplicate) (run `cargo fix --lib -p ivac-core --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.63s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ivac-1614b456598e05dc)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ivac_core-212f6cd25c185328)
[INFO] [stdout] 
[INFO] [stdout] running 843 tests
[INFO] [stdout] test cam::chaining::tests::closed_square_chains_correctly ... ok
[INFO] [stdout] test cam::chaining::tests::sub_mm_contours_dont_falsely_chain ... ok
[INFO] [stdout] test cam::chaining::tests::arc_midpoint_sample_point_is_on_curve_not_at_centre ... ok
[INFO] [stdout] test cam::chamfer::tests::capped_depth_passes_in_range_widths_through ... ok
[INFO] [stdout] test cam::chaining::tests::nested_squares_classify ... ok
[INFO] [stdout] test cam::chamfer::tests::depth_90_degree_two_mm_width ... ok
[INFO] [stdout] test cam::chamfer::tests::depth_saturates_to_zero_when_width_under_tip ... ok
[INFO] [stdout] test cam::chamfer::tests::depth_compensates_for_tip_flat ... ok
[INFO] [stdout] test cam::chamfer::tests::extreme_tip_angles_dont_panic ... ok
[INFO] [stdout] test cam::chamfer::tests::width_cap_uses_cone_span ... ok
[INFO] [stdout] test cam::chamfer::tests::zero_width_is_zero_depth ... ok
[INFO] [stdout] test cam::halfpipe::tests::tool_reach_cap_does_not_fire_when_deeper_flute_available ... ok
[INFO] [stdout] test cam::halfpipe::tests::tool_reach_caps_circular_arc_depth ... ok
[INFO] [stdout] test cam::halfpipe::tests::v_bottom_profile_depth_curve ... ok
[INFO] [stdout] test cam::halfpipe::tests::z_cap_clips_both_profiles ... ok
[INFO] [stdout] test cam::halfpipe::tests::halfpipe_z_at_reentrant_corner_uses_corner_radius_not_incircle ... ok
[INFO] [stdout] test cam::halfpipe::tests::polyline_propagates_depth_limited_flag ... ok
[INFO] [stdout] test cam::halfpipe::tests::circular_arc_profile_depth_curve ... ok
[INFO] [stdout] test cam::halfpipe::tests::polyline_propagates_tool_reach_flag ... ok
[INFO] [stdout] test cam::halfpipe::tests::is_at_corner_detects_reentrant_geometry ... ok
[INFO] [stdout] test cam::chaining::tests::fuzzy_scales_with_bbox_diag ... ok
[INFO] [stdout] test cam::offsets::tests::enforce_winding_inner_climb_flips_to_cw ... ok
[INFO] [stdout] test cam::chamfer::tests::capped_depth_clamps_oversize_width_to_tool_reach ... ok
[INFO] [stdout] test cam::chaining::tests::open_chain_stays_open ... ok
[INFO] [stdout] test cam::offsets::tests::enforce_winding_inner_climb_lefthand_keeps_ccw ... ok
[INFO] [stdout] test cam::offsets::tests::enforce_winding_inner_conventional_keeps_ccw ... ok
[INFO] [stdout] test cam::offsets::tests::enforce_winding_outer_conventional_flips_to_cw ... ok
[INFO] [stdout] test cam::offsets::tests::enforce_winding_outer_conventional_lefthand_keeps_ccw ... ok
[INFO] [stdout] test cam::offsets::tests::apply_overcut_scales_perp_tol_with_bbox_at_sub_mm_scale ... ok
[INFO] [stdout] test cam::offsets::tests::bridge_crosses_any_island_detects_gouge ... ok
[INFO] [stdout] test cam::offsets::tests::enforce_winding_skip_leaves_offset_alone ... ok
[INFO] [stdout] test cam::offsets::tests::exact_fit_circle_drills_at_center ... ok
[INFO] [stdout] test cam::offsets::tests::horizontal_crossings_coalesces_vertex_tangent_duplicates ... ok
[INFO] [stdout] test cam::offsets::tests::near_tool_radius_circle_drills_at_center ... ok
[INFO] [stdout] test cam::offsets::tests::object_signed_area_includes_arc_bow ... ok
[INFO] [stdout] test cam::offsets::tests::inward_offset_shrinks_a_square ... ok
[INFO] [stdout] test cam::offsets::tests::enforce_winding_outer_climb_keeps_ccw ... ok
[INFO] [stdout] test cam::offsets::tests::parallel_offset_panic_sink_drains_and_clears ... ok
[INFO] [stdout] test cam::offsets::tests::overcut_dips_into_inner_corner ... ok
[INFO] [stdout] test cam::inscribed::tests::pocket_smaller_than_tool_returns_none ... ok
[INFO] [stdout] test cam::offsets::tests::overcut_long_wall_reflex_corner_dips ... ok
[INFO] [stdout] test cam::offsets::tests::pocket_cascade_produces_inward_rings ... ok
[INFO] [stdout] test cam::offsets::tests::pocket_cascade_with_island_skips_around_it ... ok
[INFO] [stdout] test cam::offsets::tests::pocket_zigzag_empty_row_preserves_flip_parity ... ok
[INFO] [stdout] test cam::offsets::tests::pocket_zigzag_angled_rotates_strokes ... ok
[INFO] [stdout] test cam::offsets::tests::pocket_zigzag_insets_both_ends_by_tool_radius ... ok
[INFO] [stdout] test cam::offsets::tests::pocket_zigzag_honors_sub_clamp_stride ... ok
[INFO] [stdout] test cam::offsets::tests::pocket_zigzag_respects_islands ... ok
[INFO] [stdout] test cam::offsets::tests::pocket_zigzag_nocontour_reaches_inset_edge ... ok
[INFO] [stdout] test cam::offsets::tests::reverse_offset_negates_bulges ... ok
[INFO] [stdout] test cam::offsets::tests::short_ring_mid_cascade_returns_none ... ok
[INFO] [stdout] test cam::offsets::tests::slightly_oversize_circle_drills_at_center_within_slop_band ... ok
[INFO] [stdout] test cam::offsets::tests::small_circle_becomes_a_drill_point ... ok
[INFO] [stdout] test cam::offsets::tests::pocket_zigzag_with_inflated_island_keeps_tool_radius_clearance ... ok
[INFO] [stdout] test cam::offsets::tests::pocket_zigzag_records_degenerate_stride ... ok
[INFO] [stdout] test cam::offsets::tests::spiral_bridge_rejected_when_crossing_island ... ok
[INFO] [stdout] test cam::offsets::tests::inflate_islands_by_tool_radius_expands_outward ... ok
[INFO] [stdout] test cam::chamfer::tests::depth_60_degree_one_mm_width ... ok
[INFO] [stdout] test cam::offsets::tests::zigzag_pocket_fills_a_square ... ok
[INFO] [stdout] test cam::raster::tests::bayer_dither_more_on_pixels_as_image_darkens ... ok
[INFO] [stdout] test cam::raster::tests::bayer_indices_match_classic_4x4 ... ok
[INFO] [stdout] test cam::offsets::tests::spiral_bridge_sweeps_alternative_start_vertices_around_island ... ok
[INFO] [stdout] test cam::raster::tests::floyd_steinberg_extremes_are_solid ... ok
[INFO] [stdout] test cam::raster::tests::length_mismatch_yields_empty ... ok
[INFO] [stdout] test cam::raster::tests::floyd_steinberg_on_uniform_mid_grey_is_about_half_on ... ok
[INFO] [stdout] test cam::raster::tests::linear_clamps_out_of_range_brightness ... ok
[INFO] [stdout] test cam::raster::tests::threshold_is_binary_on_dark ... ok
[INFO] [stdout] test cam::raster::tests::linear_dark_burns_hotter_white_is_min ... ok
[INFO] [stdout] test cam::source_combine::tests::build_frame_rounded_rectangle ... ok
[INFO] [stdout] test cam::source_combine::tests::boolean_inherits_layer_from_first_non_degenerate ... ok
[INFO] [stdout] test cam::source_combine::tests::build_frame_rectangle ... ok
[INFO] [stdout] test cam::source_combine::tests::intersection_of_overlapping_squares_yields_overlap_region ... ok
[INFO] [stdout] test cam::offsets::tests::zigzag_u_shape_splits_chain_at_cross_bar ... ok
[INFO] [stdout] test cam::raster::tests::bayer_bad_matrix_size_falls_back_to_4 ... ok
[INFO] [stdout] test cam::source_combine::tests::combine_auto_handles_depth_two_nested_polygons ... ok
[INFO] [stdout] test cam::source_combine::tests::auto_emits_outer_with_inner_as_hole ... ok
[INFO] [stdout] test cam::source_combine::tests::none_emits_one_region_per_selected_object ... ok
[INFO] [stdout] test cam::source_combine::tests::difference_carves_inner_out_of_outer ... ok
[INFO] [stdout] test cam::source_combine::tests::union_of_overlapping_squares_yields_one_region ... ok
[INFO] [stdout] test cam::spatial::tests::nearest_grid_empty_is_zero ... ok
[INFO] [stdout] test cam::spatial::tests::nearest_grid_handles_degenerate_zero_length_segment ... ok
[INFO] [stdout] test cam::spatial::tests::polygon_eps_index_degenerate_under_three_points ... ok
[INFO] [stdout] test cam::spatial::tests::polygon_index_degenerate_under_three_points ... ok
[INFO] [stdout] test cam::spatial::tests::ray_grid_candidates_are_a_superset_of_hit_segments ... ok
[INFO] [stdout] test cam::spatial::tests::ray_grid_empty_and_zero_dir_are_safe ... ok
[INFO] [stdout] test cam::surface::tests::at_reads_cells_row_major_and_clamps_out_of_bounds ... ok
[INFO] [stdout] test cam::surface::tests::from_grayscale_clamps_out_of_range_brightness ... ok
[INFO] [stdout] test cam::surface::tests::from_grayscale_invert_flips_and_span_order_is_tolerated ... ok
[INFO] [stdout] test cam::surface::tests::from_grayscale_maps_bright_high_dark_low_by_default ... ok
[INFO] [stdout] test cam::surface::tests::max_corner_helpers ... ok
[INFO] [stdout] test cam::spatial::tests::region_index_matches_outer_minus_holes ... ok
[INFO] [stdout] test cam::surface::tests::sample_hits_cell_centers_and_interpolates_midpoints ... ok
[INFO] [stdout] test cam::surface::tests::sample_outside_footprint_returns_stock_top ... ok
[INFO] [stdout] test cam::spatial::tests::polygon_index_matches_is_inside_polygon ... ok
[INFO] [stdout] test cam::surface::tests::z_range_reports_min_max ... ok
[INFO] [stdout] test cam::surface_mill::tests::ball_offset_is_zero_at_axis_and_radius_at_equator ... ok
[INFO] [stdout] test cam::surface_mill::tests::bull_nose_rides_higher_than_ball_in_a_concavity_and_is_gouge_free ... ok
[INFO] [stdout] test cam::surface_mill::tests::drop_cutter_is_gouge_free ... ok
[INFO] [stdout] test cam::surface_mill::tests::stepover_from_scallop_matches_formula_and_clamps ... ok
[INFO] [stdout] test cam::surface_mill::tests::narrow_pit_is_unreachable ... ok
[INFO] [stdout] test cam::surface_mill::tests::surface_mill_clamps_to_z_floor ... ok
[INFO] [stdout] test cam::surface_mill::tests::tip_drop_offset_bull_nose_flat_center_then_corner_arc ... ok
[INFO] [stdout] test cam::surface_mill::tests::surface_mill_flat_target_follows_floor_and_boustrophedons ... ok
[INFO] [stdout] test cam::tabs::tests::arc_lengths_accumulate ... ok
[INFO] [stdout] test cam::spatial::tests::polygon_eps_index_matches_point_in_polygon ... ok
[INFO] [stdout] test cam::tabs::tests::at_t_corners_match_vertices ... ok
[INFO] [stdout] test cam::tabs::tests::at_t_survives_geometry_rotation ... ok
[INFO] [stdout] test cam::tabs::tests::auto_tab_ts_closed_starts_at_zero ... ok
[INFO] [stdout] test cam::tabs::tests::auto_tab_ts_open_insets_endpoints ... ok
[INFO] [stdout] test cam::tabs::tests::auto_tab_ts_zero_count_empty ... ok
[INFO] [stdout] test cam::tabs::tests::project_corner_lands_on_vertex ... ok
[INFO] [stdout] test cam::tabs::tests::project_round_trips_through_at_t ... ok
[INFO] [stdout] test cam::tabs::tests::tangent_along_first_edge_points_right ... ok
[INFO] [stdout] test cam::tests::arc_segment_tessellation_is_smooth ... ok
[INFO] [stdout] test cam::tests::line_intersection_basic ... ok
[INFO] [stdout] test cam::tests::mirror_negates_bulge ... ok
[INFO] [stdout] test cam::tests::parallel_lines_no_intersection ... ok
[INFO] [stdout] test cam::tests::polygon_inside_outside ... ok
[INFO] [stdout] test cam::tests::translate_and_rotate_round_trip ... ok
[INFO] [stdout] test cam::thread::tests::degenerate_inputs_return_empty ... ok
[INFO] [stdout] test cam::thread::tests::every_waypoint_is_on_the_circle ... ok
[INFO] [stdout] test cam::thread::tests::external_climb_winds_cw ... ok
[INFO] [stdout] test cam::thread::tests::external_conventional_winds_ccw ... ok
[INFO] [stdout] test cam::thread::tests::external_retract_pushes_cutter_clear_of_thread ... ok
[INFO] [stdout] test cam::thread::tests::internal_climb_lefthand_spindle_winds_cw ... ok
[INFO] [stdout] test cam::thread::tests::internal_climb_winds_counterclockwise ... ok
[INFO] [stdout] test cam::thread::tests::internal_conventional_winds_clockwise ... ok
[INFO] [stdout] test cam::thread::tests::internal_retract_pulls_cutter_to_bore_center ... ok
[INFO] [stdout] test cam::thread::tests::multi_revolution_descent_reaches_bottom ... ok
[INFO] [stdout] test cam::thread::tests::single_revolution_at_pitch_descends_z_by_pitch ... ok
[INFO] [stdout] test cam::thread::tests::shallow_dz_emits_at_least_one_full_turn ... ok
[INFO] [stdout] test cam::trochoidal::tests::bail_terminates_without_full_slot_line_and_records_warning ... ok
[INFO] [stdout] test cam::trochoidal::tests::climb_emits_ccw_arcs ... ok
[INFO] [stdout] test cam::trochoidal::tests::conventional_emits_cw_arcs ... ok
[INFO] [stdout] test cam::inscribed::tests::inscribed_circle_rejects_when_island_wall_too_close ... ok
[INFO] [stdout] test cam::trochoidal::tests::l_shaped_pocket_stays_inside_walls ... ok
[INFO] [stdout] test cam::trochoidal::tests::climb_on_lefthand_spindle_emits_cw_arcs ... ok
[INFO] [stdout] test cam::trochoidal::tests::rectangular_pocket_emits_arcs_at_loop_radius ... ok
[INFO] [stdout] test cam::vcarve::tests::chord_stays_in_region_catches_narrow_hole_on_long_chord ... ok
[INFO] [stdout] test cam::inscribed::tests::l_shape_picks_wide_arm ... ok
[INFO] [stdout] test cam::vcarve::tests::nearest_boundary_distance_uses_perpendicular_foot ... ok
[INFO] [stdout] test cam::geometry_cache::tests::medial_axis_cached_holes_change_key ... ok
[INFO] [stdout] test cam::vcarve::tests::prune_drops_chain_below_tip_radius ... ok
[INFO] [stdout] test cam::vcarve::tests::prune_drops_short_chain ... ok
[INFO] [stdout] test cam::vcarve::tests::equilateral_triangle_centroid_inscribed_radius ... ok
[INFO] [stdout] test cam::vcarve::tests::plus_shape_radius_does_not_exceed_local_half_width ... ok
[INFO] [stdout] test cam::vcarve::tests::rectangle_axis_runs_along_long_centerline ... ok
[INFO] [stdout] test cam::vcarve_emit::tests::deep_polyline_progresses_in_levels ... ok
[INFO] [stdout] test cam::inscribed::tests::rect_50x30_with_6mm_endmill ... ok
[INFO] [stdout] test cam::vcarve_emit::tests::deep_polyline_terminates_under_iteration_cap ... ok
[INFO] [stdout] test cam::vcarve_emit::tests::first_plunge_uses_angled_lead_in ... ok
[INFO] [stdout] test cam::vcarve_emit::tests::empty_axis_returns_empty ... ok
[INFO] [stdout] test cam::vcarve_emit::tests::no_position_moves_above_surface ... ok
[INFO] [stdout] test cam::vcarve_emit::tests::ot80_invalid_lead_in_angle_falls_back_to_default ... ok
[INFO] [stdout] test cam::spatial::tests::nearest_grid_matches_brute_force_exactly ... ok
[INFO] [stdout] test cam::vcarve::tests::rounded_rect_medial_axis_prunes_corner_spurs ... ok
[INFO] [stdout] test cam::vcarve_emit::tests::ot80_lead_in_angle_overrides_default_slope ... ok
[INFO] [stdout] test cam::vcarve_emit::tests::single_pass_at_or_above_dpp ... ok
[INFO] [stdout] test cam::surface_mill::tests::wide_flat_floor_is_reachable ... ok
[INFO] [stdout] test errors::tests::display_includes_hint ... ok
[INFO] [stdout] test errors::tests::display_without_hint_is_just_message ... ok
[INFO] [stdout] test errors::tests::round_trip_each_auto_fix ... ok
[INFO] [stdout] test errors::tests::round_trip_each_kind ... ok
[INFO] [stdout] test gcode::arc_fit::tests::knm0_noisy_arc_direction_from_overall_area ... ok
[INFO] [stdout] test gcode::arc_fit::tests::mj85_exact_180_splits_into_two_arcs ... ok
[INFO] [stdout] test gcode::arc_fit::tests::random_polyline_no_spurious_arcs ... ok
[INFO] [stdout] test gcode::arc_fit::tests::nxmq_last_arc_end_snap_is_tighter_than_tol ... ok
[INFO] [stdout] test errors::tests::round_trip_with_span_and_hint ... ok
[INFO] [stdout] test gcode::arc_fit::tests::rounded_corners_preserved ... ok
[INFO] [stdout] test gcode::arc_fit::tests::single_quadrant_of_circle ... ok
[INFO] [stdout] test gcode::arc_fit::tests::tight_tolerance_more_segments ... ok
[INFO] [stdout] test gcode::face_mill_overlay::tests::closed_square_produces_continuous_rotation ... ok
[INFO] [stdout] test gcode::face_mill_overlay::tests::climb_vs_conventional_flip_sign_of_y ... ok
[INFO] [stdout] test gcode::arc_fit::tests::half_circle_splits_or_keeps ... ok
[INFO] [stdout] test gcode::arc_fit::tests::fewer_than_3_points_falls_through ... ok
[INFO] [stdout] test gcode::face_mill_overlay::tests::disabled_when_radius_or_stepover_is_zero ... ok
[INFO] [stdout] test gcode::face_mill_overlay::tests::steps_clamps_within_36_to_360 ... ok
[INFO] [stdout] test gcode::face_mill_overlay::tests::walk_chord_phase_is_continuous_across_boundaries ... ok
[INFO] [stdout] test gcode::face_mill_overlay::tests::z_wobble_dips_below_cut_z ... ok
[INFO] [stdout] test gcode::face_mill_overlay::tests::straight_line_produces_centerline_within_radius_band ... ok
[INFO] [stdout] test gcode::grbl::tests::gcxl_no_rewrite_on_paren_free_input ... ok
[INFO] [stdout] test gcode::grbl::tests::gcxl_raw_paren_comment_rewritten_to_semicolon ... ok
[INFO] [stdout] test gcode::grbl::tests::gcxl_template_program_start_paren_rewritten ... ok
[INFO] [stdout] test gcode::grbl::tests::gcxl_raw_inline_paren_split_into_two_lines ... ok
[INFO] [stdout] test gcode::grbl::tests::plau_z_shift_zero_is_noop ... ok
[INFO] [stdout] test gcode::grbl::tests::z9zh_default_laser_emits_m3 ... ok
[INFO] [stdout] test gcode::grbl::tests::z9zh_dynamic_laser_emits_m4 ... ok
[INFO] [stdout] test gcode::hpgl::tests::hpgl_quarter_arc_renders_as_curve ... ok
[INFO] [stdout] test gcode::hpgl::tests::hpgl_circle_renders_as_polygon ... ok
[INFO] [stdout] test gcode::hpgl::tests::p9ji_feedrate_change_emits_new_vs ... ok
[INFO] [stdout] test gcode::hpgl::tests::p9ji_feedrate_emits_vs ... ok
[INFO] [stdout] test gcode::hpgl::tests::p9ji_repeat_feedrate_deduped ... ok
[INFO] [stdout] test gcode::hpgl::tests::ywsj_move_to_single_axis_uses_last_position_fallback ... ok
[INFO] [stdout] test gcode::leads::tests::p62d_arc_lead_falls_back_to_straight_when_no_room ... ok
[INFO] [stdout] test gcode::leads::tests::p62d_arc_lead_fits_returns_false_on_collision ... ok
[INFO] [stdout] test gcode::leads::tests::p62d_arc_lead_fits_returns_true_with_room ... ok
[INFO] [stdout] test gcode::hpgl::tests::nll2_finish_inserts_newlines_after_semicolons ... ok
[INFO] [stdout] test gcode::leads::tests::p62d_arc_lead_fits_skips_adjacent_segment ... ok
[INFO] [stdout] test gcode::leads::tests::u2u1_arc_segment_distance_accounts_for_sagitta ... ok
[INFO] [stdout] test gcode::leads::tests::u2u1_arc_segment_distance_at_arc_center_returns_radius ... ok
[INFO] [stdout] test gcode::leads::tests::u2u1_arc_segment_distance_outside_sweep_uses_endpoint ... ok
[INFO] [stdout] test gcode::leads::tests::u2u1_arc_segment_distance_zero_on_arc ... ok
[INFO] [stdout] test gcode::leads::tests::xmwy_closed_contour_arc_lead_still_emits_arc ... ok
[INFO] [stdout] test gcode::leads::tests::xmwy_open_contour_arc_lead_demotes_to_straight ... ok
[INFO] [stdout] test gcode::linuxcnc::tests::r164_i_letter_auto_tracks_x_rename ... ok
[INFO] [stdout] test gcode::linuxcnc::tests::r164_i_letter_explicit_override_preserved ... ok
[INFO] [stdout] test gcode::grbl::tests::plau_z_shift_uses_g10_l20_with_g92_1_clear ... ok
[INFO] [stdout] test gcode::post_profile::tests::axes_config_default_matches_legacy ... ok
[INFO] [stdout] test gcode::hpgl::tests::p9ji_feedrate_zero_is_noop ... ok
[INFO] [stdout] test gcode::post_profile::tests::axis_format_enabled_default_true_when_field_missing ... ok
[INFO] [stdout] test gcode::order::tests::dispatch_threshold_round_trips_small_and_large ... ok
[INFO] [stdout] test gcode::post_profile::tests::axis_format_render_rename_axis ... ok
[INFO] [stdout] test gcode::post_profile::tests::axis_format_render_skipped_when_disabled ... ok
[INFO] [stdout] test gcode::post_profile::tests::bundled_mach3_profile_has_percent_brackets ... ok
[INFO] [stdout] test gcode::post_profile::tests::format_axis_value_clamps_pathological_width_and_precision ... ok
[INFO] [stdout] test gcode::post_profile::tests::format_axis_value_default_three_decimals ... ok
[INFO] [stdout] test gcode::post_profile::tests::format_axis_value_empty_falls_back_to_three_decimals ... ok
[INFO] [stdout] test gcode::post_profile::tests::format_axis_value_general_drops_trailing_zeros ... ok
[INFO] [stdout] test gcode::post_profile::tests::format_axis_value_integer_rounds ... ok
[INFO] [stdout] test gcode::post_profile::tests::axis_format_render_applies_scale ... ok
[INFO] [stdout] test gcode::post_profile::tests::format_axis_value_no_percent_passes_through ... ok
[INFO] [stdout] test gcode::post_profile::tests::format_axis_value_plus_sign ... ok
[INFO] [stdout] test gcode::post_profile::tests::format_axis_value_width_and_zero_pad ... ok
[INFO] [stdout] test gcode::face_mill_overlay::tests::cross_pass_state_continues_phase_across_apply_whirl_calls ... ok
[INFO] [stdout] test gcode::post_profile::tests::profile_serde_round_trip ... ok
[INFO] [stdout] test gcode::post_profile::tests::axes_config_serde_round_trip ... ok
[INFO] [stdout] test gcode::post_profile::tests::format_axis_value_prefix_and_suffix_preserved ... ok
[INFO] [stdout] test gcode::post_profile::tests::qwhz_template_lines_known_tokens_still_expand ... ok
[INFO] [stdout] test gcode::post_profile::tests::qwhz_template_lines_xml_with_whitespace_left_alone ... ok
[INFO] [stdout] test gcode::post_profile::tests::substitute_case_insensitive ... ok
[INFO] [stdout] test gcode::post_profile::tests::substitute_diameter_three_decimals ... ok
[INFO] [stdout] test gcode::post_profile::tests::qwhz_template_lines_skips_unknown_token_lines ... ok
[INFO] [stdout] test gcode::post_profile::tests::substitute_unknown_token_passes_through ... ok
[INFO] [stdout] test gcode::post_profile::tests::post_profile_with_axes_serde_round_trip ... ok
[INFO] [stdout] test gcode::post_profile::tests::substitute_replaces_basic_tokens ... ok
[INFO] [stdout] test cam::trochoidal::tests::disc_indexed_matches_raw ... ok
[INFO] [stdout] test gcode::post_profile::tests::template_lines_substitutes_nl_token_before_split ... ok
[INFO] [stdout] test gcode::post_profile::tests::template_lines_splits_on_explicit_newlines ... ok
[INFO] [stdout] test gcode::post_profile::tests::substitute_unit_token ... ok
[INFO] [stdout] test gcode::preview::tests::g38_probe_does_not_emit_phantom_plunge ... ok
[INFO] [stdout] test gcode::preview::tests::drill_canned_cycle_expands_into_rapid_plunge_retract ... ok
[INFO] [stdout] test gcode::preview::tests::ignores_comments ... ok
[INFO] [stdout] test gcode::preview::tests::gcode_index_round_trips ... ok
[INFO] [stdout] test gcode::preview::tests::op_markers_tolerate_parenthesized_label_suffix ... ok
[INFO] [stdout] test gcode::preview::tests::plunge_vs_retract ... ok
[INFO] [stdout] test gcode::preview::tests::rapid_then_cut ... ok
[INFO] [stdout] test gcode::preview::tests::g53_machine_move_does_not_emit_segment_or_corrupt_state ... ok
[INFO] [stdout] test gcode::preview::tests::segments_carry_their_source_gcode_line ... ok
[INFO] [stdout] test gcode::preview::tests::non_op_comments_do_not_change_active_op ... ok
[INFO] [stdout] test gcode::tests::arc_lead_laser_arms_then_pierces_at_hop_and_drops_beam_once ... ok
[INFO] [stdout] test gcode::tests::arc_lead_plasma_pierces_at_hop_then_rolls_on_at_cut_height ... ok
[INFO] [stdout] test gcode::tests::dragoff_force_legacy_behaviour_with_zero_threshold ... ok
[INFO] [stdout] test gcode::tests::drag_mode_collapses_multi_pass_to_one_z ... ok
[INFO] [stdout] test gcode::tests::drag_mode_emits_no_spindle_or_laser_commands ... ok
[INFO] [stdout] test gcode::tests::dragoff_inserts_swivel_arcs_at_corners ... ok
[INFO] [stdout] test gcode::tests::dragoff_skips_swivel_below_self_align_threshold ... ok
[INFO] [stdout] test gcode::post_profile::tests::unset_templates_omitted_from_json ... ok
[INFO] [stdout] test gcode::tests::e0hq_fmt_num_suppresses_negative_zero ... ok
[INFO] [stdout] test gcode::tests::drill_peck_r_word_above_stock_top_when_start_depth_negative ... ok
[INFO] [stdout] test gcode::tests::drill_peck_r_word_follows_start_depth_when_above_stock ... ok
[INFO] [stdout] test gcode::tests::e2mq_program_begin_emits_active_wcs_when_set ... ok
[INFO] [stdout] test gcode::tests::e2mq_grbl_tool_z_shift_targets_active_wcs_p_number ... ok
[INFO] [stdout] test gcode::tests::e2mq_program_begin_emits_explicit_g54_by_default ... ok
[INFO] [stdout] test gcode::tests::fmt_num_non_finite_never_emits_poison ... ok
[INFO] [stdout] test gcode::tests::full_circle_arc_splits_into_two_g2 ... ok
[INFO] [stdout] test gcode::preview::tests::op_markers_stamp_subsequent_segments ... ok
[INFO] [stdout] test gcode::tests::g30a_dragoff_emits_swivel_before_arc_on_line_to_arc_transition ... ok
[INFO] [stdout] test gcode::tests::helix_mode_emits_z_during_arc_or_line_moves ... ok
[INFO] [stdout] test gcode::tests::irg7_feedrate_restored_on_all_three_lead_arms ... ok
[INFO] [stdout] test gcode::tests::l3o6_first_f_emits_after_initial_g0 ... ok
[INFO] [stdout] test gcode::tests::gcode_helix_walk_to_start_uses_safe_feed ... ok
[INFO] [stdout] test gcode::tests::f78z_coolant_emits_once_across_multiple_offsets ... ok
[INFO] [stdout] test gcode::tests::laser_mode_drops_beam_between_offsets ... ok
[INFO] [stdout] test gcode::tests::laser_op_does_not_scorch_during_rapid ... ok
[INFO] [stdout] test gcode::tests::laser_mode_emits_m3_at_cut_entry_and_m5_before_retract ... ok
[INFO] [stdout] test gcode::tests::linuxcnc_emits_a_recognizable_program ... ok
[INFO] [stdout] test gcode::tests::lead_in_plunge_uses_mill_start_depth ... ok
[INFO] [stdout] test gcode::tests::i6c2_post_helix_entry_lift_uses_g0_rapid ... ok
[INFO] [stdout] test gcode::tests::md0m_vcarve_emit_dwells_pierce_sec_after_plunge ... ok
[INFO] [stdout] test gcode::tests::n3hn_negative_start_depth_no_vertical_plunge_into_stock ... ok
[INFO] [stdout] test gcode::tests::nearest_neighbor_picks_the_closer_offset_first ... ok
[INFO] [stdout] test gcode::tests::o01e_grbl_peck_anchors_plunge_feed_before_each_g1_plunge ... ok
[INFO] [stdout] test gcode::tests::laser_drill_fires_the_beam_and_skips_canned_cycle ... ok
[INFO] [stdout] test gcode::tests::o1g3_final_retract_after_leadout_is_g0_not_g1 ... ok
[INFO] [stdout] test gcode::tests::plasma_mode_emits_pierce_then_cut_height_sequence ... ok
[INFO] [stdout] test gcode::tests::profile_circle_gcode_smaller_with_arc_fitting ... ok
[INFO] [stdout] test gcode::tests::pxyt_trait_default_drill_seconds_unchanged_without_profile ... ok
[INFO] [stdout] test gcode::tests::ramped_tab_emits_trapezoid_z_profile ... ok
[INFO] [stdout] test gcode::tests::ramped_tab_with_too_narrow_width_uses_triangle ... ok
[INFO] [stdout] test gcode::tests::straight_lead_in_traces_contour_start_before_first_segment ... ok
[INFO] [stdout] test gcode::tests::syol_program_end_explicit_park_xy ... ok
[INFO] [stdout] test gcode::tests::syol_program_end_parks_at_work_zero_by_default ... ok
[INFO] [stdout] test gcode::tests::syol_program_end_uses_g53_when_park_at_home ... ok
[INFO] [stdout] test gcode::tests::tabs_split_a_long_cut_with_z_lifts ... ok
[INFO] [stdout] test gcode::tests::vfpa_lead_in_plunge_uses_plunge_feed_not_cut_feed ... ok
[INFO] [stdout] test gcode::tests::z1y0_default_spindle_direction_still_cw ... ok
[INFO] [stdout] test gcode::tests::z1y0_spindle_ccw_routes_through_post_spindle_ccw ... ok
[INFO] [stdout] test gcode::walk::tests::reverse_chain_empty_is_empty ... ok
[INFO] [stdout] test gcode::walk::tests::reverse_chain_flips_endpoints_and_order ... ok
[INFO] [stdout] test gcode::tests::program_begin_emits_g17_g40_g94 ... ok
[INFO] [stdout] test gcode::tests::pxyt_trait_default_drill_honors_ms_dwell_unit ... ok
[INFO] [stdout] test gcode::tests::nj6_feedrate_zero_skipped_in_post ... ok
[INFO] [stdout] test gcode::walk::tests::reverse_chain_negates_arc_bulge ... ok
[INFO] [stdout] test gcode::z_schedule::tests::build_z_schedule_negative_finish_step_normalized ... ok
[INFO] [stdout] test gcode::z_schedule::tests::build_z_schedule_inserts_pre_finish_on_multi_pass ... ok
[INFO] [stdout] test geometry::tests::arc_serializes_center ... ok
[INFO] [stdout] test geometry::tests::bbox_extends ... ok
[INFO] [stdout] test gcode::z_schedule::tests::build_z_schedule_finish_step_zero_is_noop ... ok
[INFO] [stdout] test gcode::z_schedule::tests::build_z_schedule_inserts_pre_finish_on_single_pass ... ok
[INFO] [stdout] test geometry::tests::segment_serialize_matches_json_contract ... ok
[INFO] [stdout] test input::hatch::tests::line_edge_hatch_emits_segments ... ok
[INFO] [stdout] test input::hatch::tests::polyline_hatch_round_trips ... ok
[INFO] [stdout] test input::dxf_in::tests::imports_simple_dxf ... ok
[INFO] [stdout] test input::hatch::tests::unit_scale_applies_to_vertex_data ... ok
[INFO] [stdout] test input::dxf_in::tests::bad_dxf_returns_structured_io_error ... ok
[INFO] [stdout] test input::intern::tests::intern_different_names_distinct ... ok
[INFO] [stdout] test input::intern::tests::intern_str_provenance_independent ... ok
[INFO] [stdout] test input::nurbs::tests::short_weights_slice_does_not_panic ... ok
[INFO] [stdout] test input::nurbs::tests::straight_line_via_degree_one ... ok
[INFO] [stdout] test input::nurbs::tests::quadratic_bezier_passes_through_endpoints ... ok
[INFO] [stdout] test input::intern::tests::intern_same_name_returns_same_arc ... ok
[INFO] [stdout] test input::dxf_in::tests::imports_all_dxf_emits_text_entities ... ok
[INFO] [stdout] test input::svg_font::tests::iso3098_regular_loads ... ok
[INFO] [stdout] test input::svg_font::tests::looks_like_svg_sniff ... ok
[INFO] [stdout] test input::svg_font::tests::parser_rejects_non_svg_bytes ... ok
[INFO] [stdout] test input::svg_font::tests::iso3098_italic_loads ... ok
[INFO] [stdout] test input::svg_font::tests::exclamation_renders_as_two_strokes ... ok
[INFO] [stdout] test input::svg_in::tests::nested_group_transform_is_applied ... ok
[INFO] [stdout] test input::svg_font::tests::width_scale_stretches_advance ... ok
[INFO] [stdout] test input::svg_in::tests::physical_mm_units_import_at_true_size ... ok
[INFO] [stdout] test input::svg_in::tests::physical_mm_units_with_px_viewbox_import_at_true_size ... ok
[INFO] [stdout] test input::svg_in::tests::rect_imports_into_four_segments ... ok
[INFO] [stdout] test input::svg_font::tests::unknown_glyph_advances_silently ... ok
[INFO] [stdout] test input::svg_in::tests::unitless_viewbox_still_maps_user_units_to_mm_one_to_one ... ok
[INFO] [stdout] test input::text::font_bytes_b64_tests::legacy_integer_array_still_deserializes ... ok
[INFO] [stdout] test input::text::font_bytes_b64_tests::serializes_as_base64_string_and_round_trips ... ok
[INFO] [stdout] test input::text::tests::dejavu_sans_is_not_single_line ... ok
[INFO] [stdout] test input::svg_font::tests::bundled_registry_lists_both_fonts ... ok
[INFO] [stdout] test input::text::tests::render_text_layer_alignment_shifts_origin ... ok
[INFO] [stdout] test input::svg_in::tests::path_with_curves_flattens_within_tolerance ... ok
[INFO] [stdout] test input::svg_font::tests::capital_o_tessellates_arcs ... ok
[INFO] [stdout] test input::text::tests::render_text_api_returns_classification ... ok
[INFO] [stdout] test input::text::tests::render_text_layer_rotation_is_applied_around_origin ... ok
[INFO] [stdout] test input::text::tests::render_text_layer_tags_synthetic_layer_name ... ok
[INFO] [stdout] test input::text::tests::render_text_layer_mtext_stacks_lines ... ok
[INFO] [stdout] test cam::surface::tests::new_rejects_mismatched_z_length - should panic ... ok
[INFO] [stdout] test input::text::tests::render_text_layer_width_scale_clamps_extreme_values ... ok
[INFO] [stdout] test input::text::tests::render_text_layer_width_scale_stretches_x_only ... ok
[INFO] [stdout] test math::tests::arc_contains_angle_ccw_and_cw ... ok
[INFO] [stdout] test input::text::tests::rhss_renders_engraving_strokes ... ok
[INFO] [stdout] test math::tests::arc_sweep_normalizes_both_directions ... ok
[INFO] [stdout] test math::tests::arc_to_bulge_inverse ... ok
[INFO] [stdout] test math::tests::semicircle_bulge_round_trip ... ok
[INFO] [stdout] test math::tests::tessellate_full_circle_bulge_is_degenerate_two_points ... ok
[INFO] [stdout] test input::text::tests::rhss_is_detected_as_single_line ... ok
[INFO] [stdout] test pipeline::count_tool_changes_tests::pause_op_does_not_break_same_tool_run ... ok
[INFO] [stdout] test pipeline::count_tool_changes_tests::back_to_back_same_tool_counts_one ... ok
[INFO] [stdout] test pipeline::count_tool_changes_tests::pocket_op_with_distinct_finish_tool_still_counts_internal_swap ... ok
[INFO] [stdout] test pipeline::count_tool_changes_tests::disabled_ops_are_skipped ... ok
[INFO] [stdout] test pipeline::count_tool_changes_tests::profile_op_with_distinct_finish_tool_counts_one_change ... ok
[INFO] [stdout] test pipeline::frame::tests::frame_envelope_includes_finish_xy_allowance ... ok
[INFO] [stdout] test pipeline::count_tool_changes_tests::two_distinct_tools_count_two ... ok
[INFO] [stdout] test pipeline::count_tool_changes_tests::single_op_counts_one_change ... ok
[INFO] [stdout] test pipeline::frame::tests::frame_envelope_includes_tab_width ... ok
[INFO] [stdout] test pipeline::frame::tests::frame_envelope_includes_lead_in_arc ... ok
[INFO] [stdout] test input::text::tests::render_text_layer_with_iso3098_dispatches_to_svg_path ... ok
[INFO] [stdout] test input::text::tests::render_text_layer_svg_mtext_stacks_lines ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::cascade_with_tool_too_wide_emits_only_boundary_no_zigzag_substitute ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::depth_list_overrides_step_schedule ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::corner_feed_reduction_emits_slower_f_at_sharp_turns ... ok
[INFO] [stdout] test cam::vcarve::tests::spatial_indexes_match_brute_force_on_real_region ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::approach_point_rotates_closed_offsets_to_nearest_vertex ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::auto_helix_falls_back_when_pocket_too_small ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::helix_falls_back_to_ramp_when_radius_smaller_than_tool ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::helix_radius_null_round_trip_and_legacy_compat ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::helix_with_tabs_active_falls_back ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::direct_plunge_keeps_default_behavior ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::lead_in_arc_emits_g2_or_g3_before_first_cut ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::lead_in_off_emits_no_lead ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::lead_in_straight_emits_a_straight_segment ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::op_step_and_tool_default_step_emit_identical_gcode ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::higher_xy_overlap_emits_a_longer_cut_path ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::finish_step_emits_extra_thin_final_pass ... ok
[INFO] [stdout] test cam::geometry_cache::tests::medial_axis_cached_different_region_misses ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_finish_ring_emits_finish_feedrate ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_finish_xy_allowance_emits_extra_boundary_pass ... ok
[INFO] [stdout] test cam::spatial::tests::ray_grid_matches_full_scan_exactly ... ok
[INFO] [stdout] test math::tests::tessellate_step_count ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_nocontour_with_allowance_folds_to_zero_and_warns ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::feed_rate_override_appears_in_gcode ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_outside_clamps_padding_below_tool_radius ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_on_cw_polygon_cuts_inside_not_outside ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_outside_carves_between_frame_and_selection ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_with_just_fitting_tool_warns_about_incomplete_fill ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::helix_plunge_emits_arc_arcs_descending_z ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_with_climb_main_and_conventional_finish_winds_correctly ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_with_oversized_tool_emits_tool_too_large_warning ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_with_drill_bit_warns_about_tool_kind ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_then_pocket_outside_produces_disjoint_cuts ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_with_xy_allowance_finish_ring_uses_finish_feed ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_without_finish_override_uses_rough_throughout ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_with_difference_combine_emits_an_annulus ... ok
[INFO] [stdout] test cam::geometry_cache::tests::medial_axis_cached_same_region_hits_cache ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::profile_offset_open_polyline_either_offsets_or_emits_nothing_never_on_line ... ok
[INFO] [stdout] test cam::geometry_cache::tests::pocket_cascade_cached_different_delta_misses ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::profile_offset_via_wire_json_outside_actually_offsets ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::profile_offset_actually_offsets_outside_inside_on ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::profile_op_uses_finish_feed_and_speed ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::profile_outside_selecting_inner_circle_offsets_outward ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::ramp_plunge_descends_z_during_first_cuts ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::profile_outside_with_source_objects_actually_offsets ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::stock_to_leave_increases_effective_offset_radius ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::ramp_plunge_cleans_up_with_a_final_constant_depth_pass ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::spiral_in_non_convex_pocket_falls_back_to_cascade ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::through_depth_extends_final_z ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_zigzag_with_island_keeps_centerline_outside_raw_island ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::profile_offset_works_for_cw_and_ccw_input ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::thin_annulus_pocket_cuts_inner_wall ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_chamfer_after_clamps_oversize_width_to_reach ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_chamfer_after_with_tool_override_emits_m6 ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_chip_break_emits_g73 ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_grbl_falls_back_to_g0g1_sequence ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_op_emits_g80_before_next_op ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::spiral_emits_one_continuous_polyline_not_concentric_rings ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::zigzag_pocket_emits_interior_strokes ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_op_targets_bbox_center_of_closed_rectangle ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_op_emits_gcode_for_circle_smaller_than_tool ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_op_uses_drill_set ... ok
[INFO] [stdout] test cam::geometry_cache::tests::pocket_cascade_cached_same_inputs_hits_cache ... ok
[INFO] [stdout] test cam::geometry_cache::tests::pocket_cascade_cached_islands_change_key ... FAILED
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_peck_uses_tool_default_when_op_step_zero ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_with_chamfer_after_emits_constant_z_revolution ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_without_chamfer_after_emits_no_revolution ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_without_spot_first_emits_no_spot_block ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::stufenfase_rim_emits_g2_full_circle_not_64_g1 ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::stufenfase_first_g1_is_not_vertical_plunge_at_rim ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_with_spot_first_emits_spot_pre_pass_block ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_with_outer_plus_inner_selection_emits_a_single_annulus ... ok
[INFO] [stdout] test pipeline::op_drivers::dual_tool::tests::dual_tool_finish_tool_z_shift_emits_g92_after_m6 ... ok
[INFO] [stdout] test pipeline::op_drivers::halfpipe::tests::halfpipe_serde_round_trip ... ok
[INFO] [stdout] test pipeline::op_drivers::dual_tool::tests::dual_tool_pocket_emits_toolchange_and_uses_finish_tool_feed ... ok
[INFO] [stdout] test pipeline::op_drivers::dual_tool::tests::dual_tool_none_uses_single_tool ... ok
[INFO] [stdout] test pipeline::op_drivers::dual_tool::tests::dual_tool_same_id_skips_toolchange ... ok
[INFO] [stdout] test pipeline::op_drivers::halfpipe::tests::whirl_serde_round_trip ... ok
[INFO] [stdout] test pipeline::op_drivers::raster::tests::resample_halves_resolution ... ok
[INFO] [stdout] test pipeline::op_drivers::raster::tests::resample_identity_when_pitch_matches_cell ... ok
[INFO] [stdout] test pipeline::op_drivers::raster::tests::resampled_dims_explodes_for_tiny_pitch ... ok
[INFO] [stdout] test pipeline::op_drivers::raster::tests::resampled_dims_matches_resample_output ... ok
[INFO] [stdout] test pipeline::op_drivers::thread::tests::thread_op_compensates_feed_for_outer_edge_speed ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_peck_emits_g83 ... ok
[INFO] [stdout] test pipeline::op_drivers::halfpipe::tests::halfpipe_warns_when_tool_radius_mismatch_exceeds_10pct ... ok
[INFO] [stdout] test pipeline::op_drivers::drill::tests::drill_op_respects_object_selection ... ok
[INFO] [stdout] test pipeline::op_drivers::thread::tests::thread_op_internal_with_oversized_tool_warns ... ok
[INFO] [stdout] test pipeline::op_drivers::thread::tests::thread_op_emits_helical_descent_on_a_closed_circle ... ok
[INFO] [stdout] test pipeline::op_drivers::thread::tests::thread_op_skips_toolchange_envelope_when_no_circles ... ok
[INFO] [stdout] test pipeline::op_drivers::thread::tests::thread_op_emits_one_helix_per_radial_pass ... ok
[INFO] [stdout] test pipeline::op_drivers::thread::tests::thread_op_external_helix_engages_stud_by_thread_depth ... ok
[INFO] [stdout] test pipeline::op_drivers::thread::tests::thread_op_uses_iso_default_when_depth_unset ... ok
[INFO] [stdout] test pipeline::op_drivers::thread::tests::thread_op_without_circle_warns ... ok
[INFO] [stdout] test pipeline::op_drivers::vcarve::tests::vcarve_inlay_plug_offsets_by_source_inset ... ok
[INFO] [stdout] test pipeline::op_drivers::vcarve::tests::vcarve_op_default_is_perimeter_only ... ok
[INFO] [stdout] test pipeline::op_drivers::vcarve::tests::vcarve_op_emits_cutting_moves_below_start_depth ... ok
[INFO] [stdout] test pipeline::op_drivers::thread::tests::thread_op_with_drill_tool_emits_kind_mismatch_warning ... ok
[INFO] [stdout] test pipeline::op_drivers::vcarve::tests::vcarve_op_round_trips_through_serde_json ... ok
[INFO] [stdout] test pipeline::op_drivers::vcarve::tests::vcarve_op_warns_when_no_closed_region ... ok
[INFO] [stdout] test pipeline::patterns::tests::grid_pattern_emits_count_xcount_y_instances ... ok
[INFO] [stdout] test pipeline::patterns::tests::linear_pattern_emits_translated_copies ... ok
[INFO] [stdout] test pipeline::op_drivers::vcarve::tests::vcarve_full_medial_axis_warns_when_below_tip_radius ... ok
[INFO] [stdout] test pipeline::patterns::tests::polar_180deg_reflects_tab_anchor_through_center ... ok
[INFO] [stdout] test pipeline::patterns::tests::pattern_none_keeps_existing_behavior ... ok
[INFO] [stdout] test pipeline::regions::tests::rectangle_frame_preview_carries_selection_as_hole ... ok
[INFO] [stdout] test pipeline::regions::tests::rounded_rectangle_frame_preview_carries_selection_as_hole ... ok
[INFO] [stdout] test pipeline::op_drivers::halfpipe::tests::halfpipe_circular_arc_emits_curved_floor ... ok
[INFO] [stdout] test pipeline::selection::tests::validate_op_source_all_emits_no_warning ... ok
[INFO] [stdout] test pipeline::patterns::tests::polar_pattern_rotates_around_center ... ok
[INFO] [stdout] test pipeline::selection::tests::resolve_op_segments_id_zero_drops_object_zero ... ok
[INFO] [stdout] test pipeline::selection::tests::validate_op_source_id_zero_flags_as_missing ... ok
[INFO] [stdout] test pipeline::selection::tests::validate_op_source_layers_all_missing_emits_empty ... ok
[INFO] [stdout] test pipeline::selection::tests::validate_op_source_layers_missing_warns ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::selected_objects_pocket_ignores_unselected_inner_circles_across_strategies ... ok
[INFO] [stdout] test pipeline::selection::tests::validate_op_source_layers_run_pipeline_smoke ... ok
[INFO] [stdout] test pipeline::selection::tests::validate_op_source_missing_id_warns ... ok
[INFO] [stdout] test pipeline::selection::tests::validate_op_source_run_pipeline_smoke ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::effective_step_falls_back_to_tool_default ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::effective_step_op_override_wins ... ok
[INFO] [stdout] test pipeline::selection::tests::validate_op_source_layers_skips_non_layers_sources ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::effective_step_warns_when_both_unset ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::effective_step_rejects_non_negative ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::header_setup_reads_tool_pause ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::header_setup_fallback_branch_reads_tool_pause ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::header_setup_skips_leading_pause_op ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::feed_override_above_machine_max_clamps ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::pierce_params_resolve_only_for_plasma_torch_kind ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::resolve_tool_rates_honors_per_pass_overrides ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::feed_above_machine_max_clamps_and_warns ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::plasma_and_laser_kerf_override_effective_cut_diameter ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::resolve_tool_rates_falls_back_when_unset ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::resolve_vcarve_lead_in_angle_handles_edge_cases ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::wear_offset_shrinks_effective_cut_diameter ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::zero_feed_rate_emits_warning ... ok
[INFO] [stdout] test pipeline::tabs::tests::auto_count_clamped_on_short_contour ... ok
[INFO] [stdout] test pipeline::tabs::tests::auto_count_passes_through_when_perimeter_fits ... ok
[INFO] [stdout] test pipeline::tabs::tests::auto_tabs_on_closed_contour_skip_start_vertex ... ok
[INFO] [stdout] test pipeline::tabs::tests::mixed_mode_dedupes_nearby_manual_placement ... ok
[INFO] [stdout] test pipeline::tabs::tests::mixed_mode_keeps_separate_manual_placement ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::zero_spindle_speed_emits_warning ... ok
[INFO] [stdout] test pipeline::tests::approach_point_serde_round_trip ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::rpm_above_machine_max_clamps_and_warns ... ok
[INFO] [stdout] test pipeline::setup_resolver::tests::run_pipeline_emits_step_unspecified_warning ... ok
[INFO] [stdout] test pipeline::tests::building_block_ops_round_trip_through_serde ... ok
[INFO] [stdout] test pipeline::tests::cancelled_lifts_to_none ... ok
[INFO] [stdout] test pipeline::tests::atc_multitool_emits_g53_move_before_m6 ... ok
[INFO] [stdout] test pipeline::tests::chamfer_deep_chamfer_uses_multi_pass_stepdown ... ok
[INFO] [stdout] test pipeline::tests::cache_hit_produces_identical_response ... ok
[INFO] [stdout] test pipeline::tests::chamfer_op_emits_constant_z_pass_at_computed_depth ... ok
[INFO] [stdout] test pipeline::tests::chamfer_after_deep_profile_keeps_own_depth ... ok
[INFO] [stdout] test pipeline::tests::chamfer_finish_pass_emits_second_pass_at_finish_feed ... ok
[INFO] [stdout] test pipeline::tests::chamfer_oversize_width_clamped_to_tool_reach ... ok
[INFO] [stdout] test pipeline::tests::chamfer_step_larger_than_depth_clamps_to_chamfer_z ... ok
[INFO] [stdout] test pipeline::tests::chamfer_with_non_vbit_warns ... ok
[INFO] [stdout] test pipeline::tests::dovetail_op_emits_rough_channel_prerequisite_warning ... ok
[INFO] [stdout] test pipeline::tests::dovetail_op_with_plain_endmill_warns_kind_mismatch ... ok
[INFO] [stdout] test pipeline::tests::drill_stufenfase_change_uses_full_envelope ... ok
[INFO] [stdout] test pipeline::tests::dovetail_op_emits_single_floor_z_pass_not_a_depth_cascade ... ok
[INFO] [stdout] test pipeline::tests::coolant_off_before_spindle_off_in_inter_op_toolchange ... ok
[INFO] [stdout] test pipeline::tests::extended_tool_kinds_serde_round_trip ... ok
[INFO] [stdout] test pipeline::tests::finish_xy_allowance_serde_round_trip ... ok
[INFO] [stdout] test pipeline::tests::comma_decimal_separator_emits_commas_in_numbers ... ok
[INFO] [stdout] test pipeline::tests::first_tool_z_shift_emits_g92_after_program_begin ... ok
[INFO] [stdout] test pipeline::tests::dual_tool_internal_change_uses_full_envelope ... ok
[INFO] [stdout] test pipeline::tests::first_tool_envelope_omits_leading_coolant_off ... ok
[INFO] [stdout] test pipeline::tests::gcode_include_empty_content_warns ... ok
[INFO] [stdout] test pipeline::tests::gcode_include_comment_only_body_emits_no_classification_warning ... ok
[INFO] [stdout] test pipeline::tests::gcode_include_multi_axis_line_classified_unsimulated ... ok
[INFO] [stdout] test pipeline::tests::gcode_include_round_trips_through_serde ... ok
[INFO] [stdout] test pipeline::tests::gcode_include_mixed_body_emits_counted_skipped_summary ... ok
[INFO] [stdout] test pipeline::tests::gcode_include_verbose_mode_fans_out_per_line_warnings ... ok
[INFO] [stdout] test pipeline::tests::gcode_include_unknown_variable_warns_and_passes_through ... ok
[INFO] [stdout] test pipeline::tests::generate_streaming_cancellation ... ok
[INFO] [stdout] test pipeline::tests::generate_streaming_done_event_carries_aggregated_stats ... ok
[INFO] [stdout] test pipeline::tests::generate_streaming_emits_op_events_in_order ... ok
[INFO] [stdout] test pipeline::tests::group_ops_by_tool_collapses_redundant_toolchange ... ok
[INFO] [stdout] test pipeline::tests::edit_one_op_misses_only_that ... ok
[INFO] [stdout] test pipeline::tests::grbl_atc_without_template_warns ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::auto_helix_emits_arcs_when_pocket_fits ... ok
[INFO] [stdout] test pipeline::tests::laser_op_emits_pierce_dwell_before_cut ... ok
[INFO] [stdout] test pipeline::tests::grbl_fixed_sensor_without_template_warns ... ok
[INFO] [stdout] test pipeline::tests::laser_pierce_dwells_at_cut_z ... ok
[INFO] [stdout] test pipeline::tests::ldu2_tessellated_circle_profile_collapses_to_arcs ... ok
[INFO] [stdout] test pipeline::tests::laser_mode_toolchange_envelope_emits_no_spindle_commands ... ok
[INFO] [stdout] test pipeline::tests::missing_tool_returns_structured_error ... ok
[INFO] [stdout] test pipeline::tests::line_numbering_prefixes_every_line ... ok
[INFO] [stdout] test pipeline::tests::manual_multitool_emits_g53_move_to_toolchange_position ... ok
[INFO] [stdout] test pipeline::tests::inch_units_emit_scaled_numbers ... ok
[INFO] [stdout] test pipeline::tests::multi_op_toolchange_envelope_has_m5_before_m6_and_m3_after ... ok
[INFO] [stdout] test pipeline::tests::multi_op_different_tools_emit_m6_at_each_boundary ... ok
[INFO] [stdout] test pipeline::tests::no_line_numbering_by_default ... ok
[INFO] [stdout] test pipeline::tests::no_z_shift_emits_no_g92 ... ok
[INFO] [stdout] test pipeline::tests::multi_op_same_tool_emits_at_most_one_m6 ... ok
[INFO] [stdout] test pipeline::tests::no_toolchange_machine_omits_m6 ... ok
[INFO] [stdout] test pipeline::tests::op_group_round_trips_through_serde ... ok
[INFO] [stdout] test pipeline::tests::non_laser_tool_ignores_pierce_field ... ok
[INFO] [stdout] test pipeline::tests::non_toolchange_machine_pauses_for_manual_swap ... ok
[INFO] [stdout] test pipeline::tests::operation_finish_tool_id_serde_round_trip ... ok
[INFO] [stdout] test pipeline::tests::optional_stop_swaps_pause_m0_for_m1 ... ok
[INFO] [stdout] test pipeline::tests::order_ops_by_tool_groups_same_tool_work ... ok
[INFO] [stdout] test pipeline::tests::multi_tool_manual_machine_warns_with_change_count ... ok
[INFO] [stdout] test pipeline::tests::pause_op_round_trips_through_serde ... ok
[INFO] [stdout] test pipeline::tests::optional_stop_swaps_manual_toolchange_m0_for_m1 ... ok
[INFO] [stdout] test pipeline::tests::pause_op_skips_tool_validation ... ok
[INFO] [stdout] test pipeline::tests::pipeline_emits_comment_only_for_cycle_marker_op ... ok
[INFO] [stdout] test pipeline::tests::pipeline_emits_g28_for_homing_op ... ok
[INFO] [stdout] test pipeline::tests::pause_op_does_not_lock_spindle_direction ... ok
[INFO] [stdout] test pipeline::tests::pipeline_emits_g38_2_for_probe_op ... ok
[INFO] [stdout] test pipeline::tests::per_op_warnings_resurface_on_cache_hit ... ok
[INFO] [stdout] test pipeline::tests::pipeline_emits_m0_for_pause_op ... ok
[INFO] [stdout] test pipeline::tests::pipeline_emits_gcode_include_with_variable_expansion ... ok
[INFO] [stdout] test pipeline::tests::pipeline_emits_group_boundary_markers ... ok
[INFO] [stdout] test pipeline::tests::pipeline_relief_mill_emits_varying_z_ballnose_surface ... ok
[INFO] [stdout] test pipeline::tests::order_ops_by_tool_respects_barriers ... ok
[INFO] [stdout] test pipeline::tests::pipeline_emits_no_group_markers_when_field_unset ... ok
[INFO] [stdout] test pipeline::tests::plot_mode_emits_only_two_z_values ... ok
[INFO] [stdout] test pipeline::tests::pipeline_treats_empty_group_string_as_no_group ... ok
[INFO] [stdout] test pipeline::tests::pipeline_homing_without_retract_skips_safe_z_move ... ok
[INFO] [stdout] test pipeline::tests::post_change_z_fixed_sensor_first_tool_records_baseline_by_default ... ok
[INFO] [stdout] test pipeline::tests::ldu2_source_fit_is_gated_on_arcs_flag ... ok
[INFO] [stdout] test pipeline::op_drivers::vcarve::tests::vcarve_op_respects_tool_reach ... ok
[INFO] [stdout] test pipeline::tests::post_change_z_fixed_sensor_probes_at_machine_position ... ok
[INFO] [stdout] test pipeline::tests::post_change_z_fixed_sensor_reference_tool_gets_touchoff_prompt ... ok
[INFO] [stdout] test pipeline::tests::post_profile_axes_config_drives_axis_emission ... ok
[INFO] [stdout] test pipeline::tests::post_profile_overrides_program_start_and_end ... ok
[INFO] [stdout] test pipeline::tests::post_change_z_none_preserves_static_zshift ... ok
[INFO] [stdout] test pipeline::tests::post_change_z_probe_chains_g38_after_manual_change ... ok
[INFO] [stdout] test pipeline::tests::prev_tool_id_stays_unchanged_when_dual_tool_skips_finish ... ok
[INFO] [stdout] test pipeline::tests::post_profile_without_axes_keeps_legacy_output ... ok
[INFO] [stdout] test pipeline::tests::post_profile_disabled_axis_drops_the_word ... ok
[INFO] [stdout] test pipeline::tests::prev_tool_id_unchanged_after_drill_skips_chamfer_swap ... ok
[INFO] [stdout] test pipeline::tests::post_change_z_manual_touchoff_prompts_before_pause ... ok
[INFO] [stdout] test pipeline::tests::progress_callback_fires_each_phase ... ok
[INFO] [stdout] test pipeline::tests::project_with_pause_between_cuts_decodes_and_runs ... ok
[INFO] [stdout] test pipeline::tests::raster_scan_direction_sets_scanline_count ... ok
[INFO] [stdout] test pipeline::tests::run_pipeline_emits_a_recognizable_program ... ok
[INFO] [stdout] test pipeline::tests::regenerate_with_no_edits_hits_cache ... ok
[INFO] [stdout] test pipeline::tests::rectangle_tab_drop_uses_plunge_feedrate ... ok
[INFO] [stdout] test pipeline::tests::run_pipeline_flags_cuts_outside_work_area ... ok
[INFO] [stdout] test pipeline::tests::run_pipeline_no_work_area_warning_when_in_bounds ... ok
[INFO] [stdout] test pipeline::tests::run_pipeline_picks_grbl_when_requested ... ok
[INFO] [stdout] test pipeline::tests::single_tool_and_atc_machines_omit_manual_toolchange_warning ... ok
[INFO] [stdout] test pipeline::tests::tool_entry_serde_round_trip_with_finish_and_drill_overrides ... ok
[INFO] [stdout] test pipeline::tests::tool_length_offsets_off_emits_no_g43 ... ok
[INFO] [stdout] test pipeline::tests::same_tool_consecutive_ops_skip_envelope_entirely ... ok
[INFO] [stdout] test pipeline::tests::toolchange_envelope_routes_ccw_tool_through_m4 ... ok
[INFO] [stdout] test pipeline::tests::toolchange_envelope_keeps_m3_for_default_cw_tool ... ok
[INFO] [stdout] test pipeline::tests::tslot_op_emits_stem_slot_prerequisite_warning ... ok
[INFO] [stdout] test pipeline::tests::tslot_op_emits_single_floor_z_pass_not_a_depth_cascade ... ok
[INFO] [stdout] test pipeline::tests::tslot_op_with_plain_endmill_warns_kind_mismatch ... ok
[INFO] [stdout] test pipeline::tests::unknown_post_processor_is_a_deserialization_failure ... ok
[INFO] [stdout] test pipeline::tests::raster_engrave_emits_power_modulated_scanlines ... ok
[INFO] [stdout] test pipeline::tests::unset_toolchange_position_emits_no_mid_program_g53 ... ok
[INFO] [stdout] test pipeline::tests::unsupported_op_kind_returns_structured_error ... ok
[INFO] [stdout] test pipeline::tests::zigzag_strategy_legacy_string_round_trip ... ok
[INFO] [stdout] test pipeline::warnings::tests::compression_transition_above_cut_warns_only_when_shallower_than_transition ... ok
[INFO] [stdout] test pipeline::warnings::tests::op_machine_mode_mismatch_warns_for_incompatible_kind ... ok
[INFO] [stdout] test pipeline::warnings::tests::op_order_drill_after_profile_emits_warning ... ok
[INFO] [stdout] test pipeline::warnings::tests::op_order_drill_before_profile_no_warning ... ok
[INFO] [stdout] test pipeline::warnings::tests::op_order_finish_before_rough_emits_warning ... ok
[INFO] [stdout] test pipeline::warnings::tests::pierce_on_contour_warns_without_lead_in ... ok
[INFO] [stdout] test pipeline::warnings::tests::relief_roughing_warns_without_a_prior_pocket ... ok
[INFO] [stdout] test pipeline::warnings::tests::stock_bbox_containing_origin_no_warning ... ok
[INFO] [stdout] test pipeline::warnings::tests::stock_bbox_not_containing_origin_emits_warning ... ok
[INFO] [stdout] test pipeline::warnings::tests::stock_scan_flags_out_of_stock_cut ... ok
[INFO] [stdout] test pipeline::tests::zigzag_strategy_angled_round_trip ... ok
[INFO] [stdout] test pipeline::tests::tool_length_offsets_emit_g43_and_skip_zshift ... ok
[INFO] [stdout] test pipeline::warnings::tests::stock_scan_silent_when_in_bounds_or_unset ... ok
[INFO] [stdout] test pipeline::warnings::tests::stock_top_z_offset_shifts_the_z_band ... ok
[INFO] [stdout] test pipeline::warnings::tests::work_area_scan_silent_when_in_bounds_or_unset ... ok
[INFO] [stdout] test pipeline::warnings::tests::work_area_scan_flags_out_of_envelope_cut ... ok
[INFO] [stdout] test pipeline_cache::tests::captured_post_state_round_trips_coolant_and_spindle_dir ... ok
[INFO] [stdout] test pipeline_cache::tests::depth_change_changes_key ... ok
[INFO] [stdout] test pipeline_cache::tests::estimator_only_machine_fields_do_not_change_key ... ok
[INFO] [stdout] test pipeline_cache::tests::fixtures_change_changes_key ... ok
[INFO] [stdout] test pipeline::tests::two_op_project_emits_two_distinct_op_blocks ... ok
[INFO] [stdout] test pipeline_cache::tests::hash_machine_changes_when_park_at_home_toggles ... ok
[INFO] [stdout] test pipeline_cache::tests::hash_machine_changes_when_spindle_rpm_max_changes ... ok
[INFO] [stdout] test pipeline_cache::tests::hash_machine_changes_when_spindle_rpm_min_changes ... ok
[INFO] [stdout] test pipeline_cache::tests::hash_machine_changes_when_spindle_start_dwell_changes ... ok
[INFO] [stdout] test pipeline_cache::tests::hash_op_changes_when_stock_to_leave_mm_changes ... ok
[INFO] [stdout] test pipeline_cache::tests::hash_thread_changes_when_radial_passes_changes ... ok
[INFO] [stdout] test pipeline_cache::tests::hash_machine_changes_when_park_xy_changes ... ok
[INFO] [stdout] test pipeline_cache::tests::hash_machine_changes_when_spindle_stop_dwell_changes ... ok
[INFO] [stdout] test pipeline_cache::tests::hash_tool_changes_when_kerf_mm_changes ... ok
[INFO] [stdout] test pipeline_cache::tests::hash_thread_changes_when_start_angle_rad_changes ... ok
[INFO] [stdout] test pipeline_cache::tests::hash_tool_changes_when_stickout_length_changes ... ok
[INFO] [stdout] test pipeline_cache::tests::machine_capabilities_changes_key ... ok
[INFO] [stdout] test pipeline_cache::tests::machine_name_changes_key ... ok
[INFO] [stdout] test pipeline_cache::tests::machine_work_area_changes_key ... ok
[INFO] [stdout] test pipeline_cache::tests::pipeline_version_bumps_invalidate ... ok
[INFO] [stdout] test pipeline_cache::tests::post_processor_tag_changes_key ... ok
[INFO] [stdout] test pipeline_cache::tests::lru_capacity_eviction ... ok
[INFO] [stdout] test pipeline_cache::tests::put_then_get_round_trips ... ok
[INFO] [stdout] test pipeline_cache::tests::relief_source_change_changes_key ... ok
[INFO] [stdout] test pipeline_cache::tests::same_op_same_key ... ok
[INFO] [stdout] test pipeline_cache::tests::segments_change_changes_key ... ok
[INFO] [stdout] test pipeline_cache::tests::tab_mode_change_changes_key ... ok
[INFO] [stdout] test pipeline_cache::tests::text_layer_change_changes_key ... ok
[INFO] [stdout] test pipeline_cache::tests::stable_hash_regression ... ok
[INFO] [stdout] test pipeline_cache::tests::tool_diameter_changes_key ... ok
[INFO] [stdout] test pipeline_cache::tests::work_offset_wcs_changes_key ... ok
[INFO] [stdout] test pipeline_cache::tests::work_offset_x_changes_key ... ok
[INFO] [stdout] test pipeline_cache::tests::work_offset_y_changes_key ... ok
[INFO] [stdout] test pipeline_cache::tests::work_offset_z_changes_key ... ok
[INFO] [stdout] test project::fixture::tests::fixture_default_color_when_absent ... ok
[INFO] [stdout] test project::machine::toolchange_strategy_tests::cache_discriminant_pins_original_variants ... ok
[INFO] [stdout] test project::machine::toolchange_strategy_tests::legacy_bool_deserializes ... ok
[INFO] [stdout] test project::machine::toolchange_strategy_tests::missing_field_defaults_to_m0_pause ... ok
[INFO] [stdout] test project::machine::toolchange_strategy_tests::new_enum_string_round_trips ... ok
[INFO] [stdout] test pipeline_cache::tests::hash_tool_changes_when_spindle_direction_changes ... ok
[INFO] [stdout] test project::op::tests::drill_kind_pattern_round_trips ... ok
[INFO] [stdout] test pipeline::tests::run_pipeline_hpgl_emits_pen_up_down_program ... ok
[INFO] [stdout] test pipeline::warnings::tests::tool_incompatible_with_machine_mode_warns ... ok
[INFO] [stdout] test project::op::tests::operation_default_is_an_outside_profile_on_all_geometry ... ok
[INFO] [stdout] test project::op::tests::raster_engrave_defaults_fill_in ... ok
[INFO] [stdout] test project::params::tests::legacy_step_negative_deserializes_to_some ... ok
[INFO] [stdout] test project::op::tests::raster_engrave_kind_round_trips ... ok
[INFO] [stdout] test project::params::tests::null_step_deserializes_to_none ... ok
[INFO] [stdout] test project::op::tests::structured_pocket_op_round_trips_through_serde_json ... ok
[INFO] [stdout] test project::params::tests::missing_step_deserializes_to_none ... ok
[INFO] [stdout] test project::params::tests::op_params_decodes_from_empty_object ... ok
[INFO] [stdout] test project::params::tests::legacy_step_zero_deserializes_to_none ... ok
[INFO] [stdout] test project::params::tests::op_params_decodes_with_all_universal_scalars_missing ... ok
[INFO] [stdout] test project::params::tests::step_none_skips_field_on_serialize ... ok
[INFO] [stdout] test project::params::tests::step_some_writes_bare_number_on_serialize ... ok
[INFO] [stdout] test project::tests::project_default_is_empty_but_well_typed ... ok
[INFO] [stdout] test project::tests::fixtures_round_trip ... ok
[INFO] [stdout] test project::tool::tests::holder_round_trip ... ok
[INFO] [stdout] test project::tool::tests::tool_holder_fields_skip_when_none ... ok
[INFO] [stdout] test project::tool::tests::tool_kind_compatible_modes_matches_ts_table ... ok
[INFO] [stdout] test project::tool::tests::tool_kind_family_matches_ts_table ... ok
[INFO] [stdout] test project::tool::tests::wear_fields_round_trip_and_skip_when_default ... ok
[INFO] [stdout] test project::params::tests::fixture_step_values_round_trip_through_shim ... ok
[INFO] [stdout] test project::tests::project_with_no_fixtures_skips_field_on_serialize ... ok
[INFO] [stdout] test project::tool::tests::effective_diameter_subtracts_wear_and_clamps ... ok
[INFO] [stdout] test pipeline::tests::pipeline_renders_text_layers_and_routes_via_synthetic_layer ... ok
[INFO] [stdout] test project::tests::project_file_is_locale_invariant ... ok
[INFO] [stdout] test sim::diagnostics::tests::push_and_count ... ok
[INFO] [stdout] test sim::diagnostics::tests::is_clean_empty_and_after_push ... ok
[INFO] [stdout] test sim::diagnostics::tests::severity_mapping ... ok
[INFO] [stdout] test sim::diagnostics::tests::round_trip ... ok
[INFO] [stdout] test sim::fixture_check::tests::box_clear_far_in_xy ... ok
[INFO] [stdout] test sim::diagnostics::tests::sim_run_summary_aggregates_diagnostics ... ok
[INFO] [stdout] test sim::fixture_check::tests::box_inside_path ... ok
[INFO] [stdout] test sim::fixture_check::tests::box_z_band_above_segment ... ok
[INFO] [stdout] test sim::fixture_check::tests::cylinder_far_enough ... ok
[INFO] [stdout] test sim::fixture_check::tests::cylinder_within_radius ... ok
[INFO] [stdout] test sim::fixture_check::tests::cylinder_z_below_segment ... ok
[INFO] [stdout] test sim::fixture_check::tests::empty_fixtures_returns_empty ... ok
[INFO] [stdout] test sim::fixture_check::tests::multi_fixture_one_collision_per ... ok
[INFO] [stdout] test sim::fixture_check::tests::no_holder_keeps_tip_only_z_gate ... ok
[INFO] [stdout] test sim::fixture_check::tests::pure_plunge_into_box ... ok
[INFO] [stdout] test sim::fixture_check::tests::shank_strikes_fixture_above_tip ... ok
[INFO] [stdout] test sim::fixture_check::tests::triangle_clear ... ok
[INFO] [stdout] test sim::fixture_check::tests::triangle_edge_skirt ... ok
[INFO] [stdout] test sim::heightmap::tests::ball_nose_profile_matches_analytic ... ok
[INFO] [stdout] test sim::diagnostics::tests::sim_run_summary_clean_run_is_empty ... ok
[INFO] [stdout] test sim::heightmap::tests::bullnose_rim_lip_consistent_across_neighboring_cells ... ok
[INFO] [stdout] test sim::heightmap::tests::dirty_aabb_tracks_min_max_indices ... ok
[INFO] [stdout] test sim::heightmap::tests::engraver_advertises_max_engagement_depth ... ok
[INFO] [stdout] test sim::heightmap::tests::from_bbox_rounds_up_to_cover ... ok
[INFO] [stdout] test sim::heightmap::tests::from_tool_ballnose_and_drill ... ok
[INFO] [stdout] test sim::heightmap::tests::from_tool_bullnose_corner_eq_r_collapses_to_ballnose ... ok
[INFO] [stdout] test sim::heightmap::tests::from_tool_bullnose_no_corner_radius_collapses_to_endmill ... ok
[INFO] [stdout] test sim::heightmap::tests::from_tool_bullnose_uses_corner_radius ... ok
[INFO] [stdout] test sim::heightmap::tests::endmill_profile_zero_inside_r_none_outside ... ok
[INFO] [stdout] test sim::heightmap::tests::from_tool_form_profile_uses_user_samples ... ok
[INFO] [stdout] test sim::heightmap::tests::from_tool_kegel_builds_truncated_cone_vbit ... ok
[INFO] [stdout] test sim::heightmap::tests::from_tool_thread_mill_is_cylinder_envelope ... ok
[INFO] [stdout] test sim::heightmap::tests::from_tool_form_profile_one_sample_falls_back_to_taper ... ok
[INFO] [stdout] test sim::heightmap::tests::from_tool_tslot_as_form_profile_carves_head_radius ... ok
[INFO] [stdout] test sim::heightmap::tests::from_tool_vbit_uses_tip_angle_deg ... ok
[INFO] [stdout] test sim::heightmap::tests::laser_kerf_uses_configured_diameter ... ok
[INFO] [stdout] test sim::heightmap::tests::lower_at_only_writes_when_strictly_lower ... ok
[INFO] [stdout] test sim::heightmap::tests::lower_at_or_record_marks_dirty_even_without_value_change ... ok
[INFO] [stdout] test sim::heightmap::tests::from_tool_vbit_falls_back_to_60_on_invalid_angle ... ok
[INFO] [stdout] test sim::heightmap::tests::lower_at_out_of_bounds_is_noop ... ok
[INFO] [stdout] test sim::heightmap::tests::new_initializes_to_top_z ... ok
[INFO] [stdout] test sim::heightmap::tests::reset_returns_top_z_and_clears_dirty ... ok
[INFO] [stdout] test sim::heightmap::tests::sample_at_max_corner_returns_cell_value_not_top_z ... ok
[INFO] [stdout] test sim::heightmap::tests::from_tool_endmill_uses_diameter ... ok
[INFO] [stdout] test sim::heightmap::tests::sample_bilinear_at_cell_center_returns_cell_value ... ok
[INFO] [stdout] test sim::heightmap::tests::sample_out_of_bounds_returns_top_z ... ok
[INFO] [stdout] test sim::holder::tests::form_profile_cutting_radius_matches_max_segment_radius ... ok
[INFO] [stdout] test sim::holder::tests::from_tool_none_when_no_holder_or_shank ... ok
[INFO] [stdout] test sim::holder::tests::from_tool_some_when_only_shank_set ... ok
[INFO] [stdout] test sim::heightmap::tests::vbit_profile_with_tip_flat ... ok
[INFO] [stdout] test sim::holder::tests::no_stickout_field_is_legacy_zero ... ok
[INFO] [stdout] test sim::heightmap::tests::lower_at_or_record_out_of_bounds_is_noop ... ok
[INFO] [stdout] test sim::holder::tests::profile_from_tool_cylinder ... ok
[INFO] [stdout] test sim::holder::tests::profile_radius_at_interpolates ... ok
[INFO] [stdout] test sim::holder::tests::stickout_pushes_holder_up_above_flutes ... ok
[INFO] [stdout] test sim::holder_check::tests::clear_when_no_holder ... ok
[INFO] [stdout] test sim::holder_check::tests::deep_narrow_slot_holder_collides ... ok
[INFO] [stdout] test sim::holder_check::tests::fresh_plunge_does_not_emit_holder_collision ... ok
[INFO] [stdout] test sim::holder_check::tests::deep_slot_emits_full_cell_list_not_just_worst ... ok
[INFO] [stdout] test sim::holder_check::tests::clear_when_walls_far_enough ... ok
[INFO] [stdout] test sim::rapid_check::tests::clear_outside_heightmap_footprint ... ok
[INFO] [stdout] test sim::holder_check::tests::fresh_plunge_pipeline_zero_holder_warnings ... ok
[INFO] [stdout] test sim::rapid_check::tests::collision_through_uncut_stock ... ok
[INFO] [stdout] test sim::rapid_check::tests::clear_when_descending_late ... ok
[INFO] [stdout] test sim::rapid_check::tests::drill_no_flute_length_uses_diameter_times_six_body ... ok
[INFO] [stdout] test sim::rapid_check::tests::clear_above_stock ... ok
[INFO] [stdout] test sim::rapid_check::tests::laser_rapid_over_walls_does_not_alarm ... ok
[INFO] [stdout] test sim::rapid_check::tests::laser_tool_skips_shank_pass_entirely ... ok
[INFO] [stdout] test sim::rapid_check::tests::pure_plunge_zero_xy ... ok
[INFO] [stdout] test sim::rapid_check::tests::rapid_shank_through_stock_emits_warning ... ok
[INFO] [stdout] test sim::rapid_check::tests::shank_clear_when_walls_far_enough ... ok
[INFO] [stdout] test sim::rapid_check::tests::pipeline_integration_emits_warning ... ok
[INFO] [stdout] test sim::rapid_check::tests::strict_inequality_at_surface ... ok
[INFO] [stdout] test sim::stl::tests::flat_heightmap_has_axis_aligned_normals ... ok
[INFO] [stdout] test sim::stl::tests::carved_cells_show_up_in_vertex_data ... ok
[INFO] [stdout] test sim::stl::tests::header_banner_and_byte_stability ... ok
[INFO] [stdout] test sim::sweep::tests::ball_nose_arc_heightmap_within_chord_error ... ok
[INFO] [stdout] test sim::stl::tests::triangle_count_matches_formula ... ok
[INFO] [stdout] test sim::sweep::tests::cutter_above_stock_does_not_carve ... ok
[INFO] [stdout] test sim::sweep::tests::dragknife_dragoff_shifts_carved_chord_behind_spindle ... ok
[INFO] [stdout] test sim::sweep::tests::dragknife_dragoff_zero_matches_endmill_carve ... ok
[INFO] [stdout] test sim::sweep::tests::dragknife_fixture_collision_uses_shifted_chord ... ok
[INFO] [stdout] test sim::sweep::tests::dragknife_pure_plunge_unaffected_by_dragoff ... ok
[INFO] [stdout] test sim::sweep::tests::endmill_plunge_lowers_circular_patch ... ok
[INFO] [stdout] test sim::sweep::tests::dragknife_zero_dragoff_diagnostics_match_unshifted_segment ... ok
[INFO] [stdout] test sim::sweep::tests::engraver_clamps_carve_to_max_engagement_depth ... ok
[INFO] [stdout] test sim::sweep::tests::engraver_max_engagement_depth_partial_advance_matches_full ... ok
[INFO] [stdout] test sim::sweep::tests::fixture_clear_no_warning ... ok
[INFO] [stdout] test sim::sweep::tests::horizontal_cut_carves_4mm_stripe ... ok
[INFO] [stdout] test sim::sweep::tests::partial_advance_non_flat_no_drift ... ok
[INFO] [stdout] test sim::sweep::tests::rapid_move_does_not_carve ... ok
[INFO] [stdout] test sim::sweep::tests::fixture_collision_pipeline_emits_warning ... ok
[INFO] [stdout] test sim::sweep::tests::lower_at_only_writes_on_descent_not_re_pass ... ok
[INFO] [stdout] test sim::sweep::tests::sweep_outside_heightmap_is_silently_skipped ... ok
[INFO] [stdout] test sim::sweep::tests::sweep_partial_overlap_clamps_to_grid ... ok
[INFO] [stdout] test sim::sweep::tests::sweep_range_walks_each_segment ... ok
[INFO] [stdout] test sim::sweep::tests::vbit_plunge_lowers_in_conical_pattern ... ok
[INFO] [stdout] test sim::timing::tests::diagonal_z_dominated_move_uses_smallest_axis_bound ... ok
[INFO] [stdout] test sim::timing::tests::empty_op_rates_preserves_modal_feeds ... ok
[INFO] [stdout] test sim::timing::tests::estimate_with_rates_honors_dwell_unit ... ok
[INFO] [stdout] test sim::timing::tests::feeds_modal_f_persists_across_subsequent_lines ... ok
[INFO] [stdout] test sim::timing::tests::feeds_recovered_from_gcode_track_modal_f ... ok
[INFO] [stdout] test sim::timing::tests::g4_dwell_ignores_negative_and_non_dwell_p ... ok
[INFO] [stdout] test sim::timing::tests::g4_dwell_milliseconds_converts_to_seconds ... ok
[INFO] [stdout] test sim::timing::tests::g4_dwell_sums_into_total ... ok
[INFO] [stdout] test sim::timing::tests::junction_blends_only_within_cutting ... ok
[INFO] [stdout] test sim::timing::tests::machine_config_round_trips_kinematic_fields ... ok
[INFO] [stdout] test sim::timing::tests::naive_fallback_when_kinematic_disabled ... ok
[INFO] [stdout] test sim::sweep::tests::vbit_carves_v_cross_section_not_cylinder ... ok
[INFO] [stdout] test sim::timing::tests::ninety_degree_corner_no_slowdown_when_feed_below_clamp ... ok
[INFO] [stdout] test sim::timing::tests::ninety_degree_corner_slows_vs_collinear_at_high_feed ... ok
[INFO] [stdout] test sim::timing::tests::plunge_segment_uses_plunge_rate_when_modal_f_is_cutting_feed ... ok
[INFO] [stdout] test sim::timing::tests::scan_modal_f_handles_glued_and_whitespace_tokens ... ok
[INFO] [stdout] test sim::timing::tests::scan_modal_f_ignores_invalid_values ... ok
[INFO] [stdout] test sim::timing::tests::single_segment_trapezoid ... ok
[INFO] [stdout] test sim::timing::tests::toolchange_and_warmup_added ... ok
[INFO] [stdout] test sim::timing::tests::spindle_warmup_total_scales_with_toolchanges_and_per_tool ... ok
[INFO] [stdout] test sim::timing::tests::two_collinear_segments_match_single ... ok
[INFO] [stdout] test testing::tests::beyond_epsilon_diffs ... ok
[INFO] [stdout] test sim::timing::tests::triangular_profile_short_segment ... ok
[INFO] [stdout] test testing::tests::comments_are_ignored ... ok
[INFO] [stdout] test testing::tests::epsilon_tolerance_matches ... ok
[INFO] [stdout] test tests::compute_helix_radius_for_tiny_pocket ... ok
[INFO] [stdout] test tests::compute_helix_radius_open_polyline_returns_none ... ok
[INFO] [stdout] test sim::sweep::tests::swept_cell_clip_matches_brute_force_full_aabb ... ok
[INFO] [stdout] test pipeline::op_drivers::thread::tests::thread_whirl_overlay_inflates_helix_and_guards_flank ... ok
[INFO] [stdout] test schema::tests::frontend_types_are_all_present ... ok
[INFO] [stdout] test schema::tests::every_ref_resolves_to_a_registered_type ... ok
[INFO] [stdout] test schema::tests::schemas_round_trip_to_json ... ok
[INFO] [stdout] test tests::compute_helix_radius_for_50x30_rect ... ok
[INFO] [stdout] test pipeline::op_drivers::halfpipe::tests::halfpipe_tool_reach_clamps_deep_profile ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::trochoidal_pocket_path_length_within_envelope_of_spiral ... ok
[INFO] [stdout] test pipeline::op_drivers::halfpipe::tests::whirl_tool_inflates_gcode_g1_count ... ok
[INFO] [stdout] test gcode::order::tests::gridded_order_matches_linear_exactly ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::trochoidal_with_direct_plunge_emits_plunge_overridden_warning ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::trochoidal_with_tabs_emits_unsupported_warning ... ok
[INFO] [stdout] test pipeline::offset_builder::tests::pocket_all_with_nested_closed_contours_builds_donut_by_default ... ok
[INFO] [stdout] test cam::trochoidal::tests::rectangular_pocket_covers_safe_interior ... ok
[INFO] [stdout] test cam::offsets::tests::pocket_cascade_high_overlap_keeps_island_clearance ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- cam::geometry_cache::tests::pocket_cascade_cached_islands_change_key stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'cam::geometry_cache::tests::pocket_cascade_cached_islands_change_key' (3573) panicked at crates/ivac-core/src/cam/geometry_cache.rs:309:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: 3
[INFO] [stdout]  right: 2
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5d67b1b1ba98 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5d67b1b1ba98 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5d67b1b1ba98 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5d67b1b1ba98 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5d67b1b3415a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5d67b1b3415a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5d67b1b20382 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5d67b1b20382 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5d67b1af9f36 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5d67b1af9f36 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5d67b1b13659 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5d67b17227ac - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5d67b17227ac - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5d67b1b13812 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5d67b1b13812 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5d67b1af9ff2 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5d67b1aef079 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5d67b1afad0d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5d67b1b3494c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5d67b1b347d3 - core[8fb95b77d25ab6c8]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x5d67b1b2e6bd - core[8fb95b77d25ab6c8]::panicking::assert_failed::<usize, usize>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5d67b1419f5f - pocket_cascade_cached_islands_change_key
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/ivac-core/src/cam/geometry_cache.rs:309:9
[INFO] [stdout]   22:     0x5d67b1400503 - ivac_core[e58336ddf7f02e4f]::cam::geometry_cache::tests::pocket_cascade_cached_islands_change_key::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/ivac-core/src/cam/geometry_cache.rs:297:50
[INFO] [stdout]   23:     0x5d67b12d1906 - <ivac_core[e58336ddf7f02e4f]::cam::geometry_cache::tests::pocket_cascade_cached_islands_change_key::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5d67b171588b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5d67b171588b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5d67b1723105 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5d67b1723105 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5d67b1723105 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5d67b1723105 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5d67b1723105 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5d67b1723105 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5d67b1723105 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5d67b171ca14 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5d67b171ca14 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5d67b1726182 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5d67b1726182 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5d67b1726182 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5d67b1726182 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5d67b1726182 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5d67b1726182 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5d67b1726182 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5d67b1b1adaf - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x5d67b1b1adaf - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x798c57790aa4 - <unknown>
[INFO] [stdout]   45:     0x798c5781da64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     cam::geometry_cache::tests::pocket_cascade_cached_islands_change_key
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 842 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 11.84s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p ivac-core --lib`
[INFO] running `Command { std: "docker" "inspect" "41da60e52b8420518464ad44e876e989f190c09e11c7399088894a366748cc3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "41da60e52b8420518464ad44e876e989f190c09e11c7399088894a366748cc3b", kill_on_drop: false }`
[INFO] [stdout] 41da60e52b8420518464ad44e876e989f190c09e11c7399088894a366748cc3b
