[INFO] cloning repository https://github.com/detrin/eclipse [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/detrin/eclipse" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdetrin%2Feclipse", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdetrin%2Feclipse'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 23759c1c172a42ab53e471a608652aeae164c85b [INFO] testing detrin/eclipse against beta-2026-03-05 for beta-1.95-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdetrin%2Feclipse" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/detrin/eclipse [INFO] finished tweaking git repo https://github.com/detrin/eclipse [INFO] tweaked toml for git repo https://github.com/detrin/eclipse written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/detrin/eclipse on toolchain beta-2026-03-05 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/detrin/eclipse 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" "+beta-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded actix-service v2.0.3 [INFO] [stderr] Downloaded bytestring v1.5.0 [INFO] [stderr] Downloaded actix-server v2.6.0 [INFO] [stderr] Downloaded actix-rt v2.11.0 [INFO] [stderr] Downloaded actix-cors v0.6.5 [INFO] [stderr] Downloaded clap v4.5.56 [INFO] [stderr] Downloaded zerocopy-derive v0.8.37 [INFO] [stderr] Downloaded time v0.3.35 [INFO] [stderr] Downloaded actix-http v3.11.2 [INFO] [stderr] Downloaded clap_builder v4.5.56 [INFO] [stderr] Downloaded actix-web v4.12.1 [INFO] [stderr] Downloaded zerocopy v0.8.37 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1499d58f0f60a73a36dc4f0a129dfbe09856302ca2307703017ad950dad3021b [INFO] running `Command { std: "docker" "start" "-a" "1499d58f0f60a73a36dc4f0a129dfbe09856302ca2307703017ad950dad3021b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1499d58f0f60a73a36dc4f0a129dfbe09856302ca2307703017ad950dad3021b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1499d58f0f60a73a36dc4f0a129dfbe09856302ca2307703017ad950dad3021b", kill_on_drop: false }` [INFO] [stdout] 1499d58f0f60a73a36dc4f0a129dfbe09856302ca2307703017ad950dad3021b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 67ad6eff57c28a7606f78fbe8961c4bf09fb230570c464d7caa23e0dbf07b7e5 [INFO] running `Command { std: "docker" "start" "-a" "67ad6eff57c28a7606f78fbe8961c4bf09fb230570c464d7caa23e0dbf07b7e5", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling zerocopy v0.8.37 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling local-waker v0.1.4 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling zmij v1.0.19 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling regex-lite v0.1.8 [INFO] [stderr] Compiling bytes v1.11.0 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling deranged v0.3.11 [INFO] [stderr] Compiling actix-utils v3.0.1 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling actix-service v2.0.3 [INFO] [stderr] Compiling bytestring v1.5.0 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling cookie v0.16.2 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling brotli v8.0.2 [INFO] [stderr] Compiling flate2 v1.1.8 [INFO] [stderr] Compiling local-channel v0.1.5 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling ryu v1.0.22 [INFO] [stderr] Compiling language-tags v0.3.2 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling clap_lex v0.7.7 [INFO] [stderr] Compiling actix-router v0.5.3 [INFO] [stderr] Compiling impl-more v0.1.9 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling clap_builder v4.5.56 [INFO] [stderr] Compiling time v0.3.35 [INFO] [stderr] Compiling colored v2.2.0 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling cc v1.2.55 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling actix-web-codegen v4.3.0 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling derive_more v0.99.20 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling clap v4.5.56 [INFO] [stderr] Compiling zstd v0.13.3 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling actix-rt v2.11.0 [INFO] [stderr] Compiling actix-server v2.6.0 [INFO] [stderr] Compiling h2 v0.3.27 [INFO] [stderr] Compiling actix-codec v0.5.2 [INFO] [stderr] Compiling actix-http v3.11.2 [INFO] [stderr] Compiling actix-web v4.12.1 [INFO] [stderr] Compiling actix-cors v0.6.5 [INFO] [stderr] Compiling eclipse v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: method `get_hex_symbol` is never used [INFO] [stdout] --> src/display.rs:167:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl<'a> BoardDisplay<'a> { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 167 | fn get_hex_symbol(&self, hex: &Hex) -> char { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bot` [INFO] [stdout] --> benchmark_minimax.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | let bot = MinimaxBot::new(Player::Dark, Difficulty::Medium); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bot` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_within_radius` is never used [INFO] [stdout] --> src/board.rs:230:12 [INFO] [stdout] | [INFO] [stdout] 112 | impl Hex { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 230 | pub fn is_within_radius(&self, radius: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `describe`, `is_comet_move`, and `is_satellite_move` are never used [INFO] [stdout] --> src/moves.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl Move { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 40 | /// Returns a human-readable description of the move [INFO] [stdout] 41 | pub fn describe(&self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn is_comet_move(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn is_satellite_move(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `reset` and `get_chain_last_moved` are never used [INFO] [stdout] --> src/states.rs:459:12 [INFO] [stdout] | [INFO] [stdout] 258 | impl GameState { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 459 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 561 | pub fn get_chain_last_moved(&self, chain_id: ChainId) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_hex_symbol` is never used [INFO] [stdout] --> src/display.rs:167:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl<'a> BoardDisplay<'a> { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 167 | fn get_hex_symbol(&self, hex: &Hex) -> char { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `player` is never read [INFO] [stdout] --> src/randombot.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct RandomBot { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 18 | player: Player, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RandomBot` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `player` is never used [INFO] [stdout] --> src/randombot.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl RandomBot { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn player(&self) -> Player { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `player` is never used [INFO] [stdout] --> src/simplebot.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl SimpleBot { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn player(&self) -> Player { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `VeryHard`, `Expert`, and `Master` are never constructed [INFO] [stdout] --> src/minimaxbot.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub enum Difficulty { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 59 | VeryHard, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 60 | Expert, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 61 | Master, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Difficulty` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `player` and `difficulty` are never used [INFO] [stdout] --> src/minimaxbot.rs:148:12 [INFO] [stdout] | [INFO] [stdout] 122 | impl MinimaxBot { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn player(&self) -> Player { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn difficulty(&self) -> Difficulty { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 30.11s [INFO] running `Command { std: "docker" "inspect" "67ad6eff57c28a7606f78fbe8961c4bf09fb230570c464d7caa23e0dbf07b7e5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "67ad6eff57c28a7606f78fbe8961c4bf09fb230570c464d7caa23e0dbf07b7e5", kill_on_drop: false }` [INFO] [stdout] 67ad6eff57c28a7606f78fbe8961c4bf09fb230570c464d7caa23e0dbf07b7e5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5bf296df9746a8fa2636e6a9f8d8f414380d2de7b89aacbf21ddc79e1df932a4 [INFO] running `Command { std: "docker" "start" "-a" "5bf296df9746a8fa2636e6a9f8d8f414380d2de7b89aacbf21ddc79e1df932a4", kill_on_drop: false }` [INFO] [stderr] Compiling eclipse v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: method `get_hex_symbol` is never used [INFO] [stdout] --> src/display.rs:167:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl<'a> BoardDisplay<'a> { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 167 | fn get_hex_symbol(&self, hex: &Hex) -> char { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bot` [INFO] [stdout] --> benchmark_minimax.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | let bot = MinimaxBot::new(Player::Dark, Difficulty::Medium); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bot` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `first_msg_count` [INFO] [stdout] --> src/display.rs:700:17 [INFO] [stdout] | [INFO] [stdout] 700 | let first_msg_count = game.status_messages.len(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_msg_count` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_chain_last_moved` is never used [INFO] [stdout] --> src/states.rs:561:12 [INFO] [stdout] | [INFO] [stdout] 258 | impl GameState { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 561 | pub fn get_chain_last_moved(&self, chain_id: ChainId) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `VeryHard`, `Expert`, and `Master` are never constructed [INFO] [stdout] --> src/minimaxbot.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub enum Difficulty { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 59 | VeryHard, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 60 | Expert, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 61 | Master, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Difficulty` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `first_msg_count` [INFO] [stdout] --> src/display.rs:700:17 [INFO] [stdout] | [INFO] [stdout] 700 | let first_msg_count = game.status_messages.len(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_msg_count` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.35s [INFO] running `Command { std: "docker" "inspect" "5bf296df9746a8fa2636e6a9f8d8f414380d2de7b89aacbf21ddc79e1df932a4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5bf296df9746a8fa2636e6a9f8d8f414380d2de7b89aacbf21ddc79e1df932a4", kill_on_drop: false }` [INFO] [stdout] 5bf296df9746a8fa2636e6a9f8d8f414380d2de7b89aacbf21ddc79e1df932a4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] c732b99fc5af45f20350da7b31edf4077adea370810ef4f9c2185fb173206c12 [INFO] running `Command { std: "docker" "start" "-a" "c732b99fc5af45f20350da7b31edf4077adea370810ef4f9c2185fb173206c12", kill_on_drop: false }` [INFO] [stderr] warning: method `get_hex_symbol` is never used [INFO] [stderr] --> src/display.rs:167:8 [INFO] [stderr] | [INFO] [stderr] 22 | impl<'a> BoardDisplay<'a> { [INFO] [stderr] | ------------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 167 | fn get_hex_symbol(&self, hex: &Hex) -> char { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `first_msg_count` [INFO] [stderr] --> src/display.rs:700:17 [INFO] [stderr] | [INFO] [stderr] 700 | let first_msg_count = game.status_messages.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_msg_count` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `eclipse` (lib) generated 1 warning [INFO] [stderr] warning: `eclipse` (lib test) generated 1 warning (run `cargo fix --lib -p eclipse --tests` to apply 1 suggestion) [INFO] [stderr] warning: unused variable: `bot` [INFO] [stderr] --> benchmark_minimax.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | let bot = MinimaxBot::new(Player::Dark, Difficulty::Medium); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_bot` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: method `get_chain_last_moved` is never used [INFO] [stderr] --> src/states.rs:561:12 [INFO] [stderr] | [INFO] [stderr] 258 | impl GameState { [INFO] [stderr] | -------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 561 | pub fn get_chain_last_moved(&self, chain_id: ChainId) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variants `VeryHard`, `Expert`, and `Master` are never constructed [INFO] [stderr] --> src/minimaxbot.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 55 | pub enum Difficulty { [INFO] [stderr] | ---------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 59 | VeryHard, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 60 | Expert, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 61 | Master, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Difficulty` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: `eclipse` (bin "benchmark_minimax" test) generated 1 warning (run `cargo fix --bin "benchmark_minimax" -p eclipse --tests` to apply 1 suggestion) [INFO] [stderr] warning: `eclipse` (bin "eclipse" test) generated 3 warnings (1 duplicate) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/eclipse-d0f91c2380f2667f) [INFO] [stdout] [INFO] [stdout] running 114 tests [INFO] [stdout] test api::tests::test_api_response_error ... ok [INFO] [stdout] test api::tests::test_handle_api_request_with_invalid_json ... ok [INFO] [stdout] test api::tests::test_api_response_success ... ok [INFO] [stdout] test api::tests::test_handle_verify_request_with_invalid_state_json ... ok [INFO] [stdout] test api::tests::test_handle_api_request_with_invalid_depth ... ok [INFO] [stdout] test api::tests::test_verify_response_illegal ... ok [INFO] [stdout] test board::tests::test_hex_distance ... ok [INFO] [stdout] test api::tests::test_handle_is_winning_request_initial_state ... ok [INFO] [stdout] test api::tests::test_handle_verify_request_with_invalid_move_json ... ok [INFO] [stdout] test board::tests::test_hex_neighbors ... ok [INFO] [stdout] test api::tests::test_verify_response_legal ... ok [INFO] [stdout] test board::tests::test_is_on_board ... ok [INFO] [stdout] test api::tests::test_handle_verify_request_with_illegal_move ... ok [INFO] [stdout] test board::tests::test_is_within_radius ... ok [INFO] [stdout] test board::tests::test_segments_intersect ... ok [INFO] [stdout] test board::tests::test_starting_positions ... ok [INFO] [stdout] test cli::tests::test_parse_player ... ok [INFO] [stdout] test board::tests::test_shares_axis ... ok [INFO] [stdout] test display::tests::test_chain_crossed_detection ... ok [INFO] [stdout] test api::tests::test_handle_verify_request_with_legal_move ... ok [INFO] [stdout] test display::tests::test_hex_symbol_for_comet ... ok [INFO] [stdout] test display::tests::test_display_chains_shows_all_chains ... ok [INFO] [stdout] test display::tests::test_hex_symbol_for_satellite ... ok [INFO] [stdout] test display::tests::test_game_info_display ... ok [INFO] [stdout] test display::tests::test_display_board_shows_satellites ... ok [INFO] [stdout] test display::tests::test_move_history_reset ... ok [INFO] [stdout] test display::tests::test_hex_symbol_for_empty ... ok [INFO] [stdout] test display::tests::test_move_history_display ... ok [INFO] [stdout] test display::tests::test_status_messages_after_move ... ok [INFO] [stdout] test display::tests::test_display_board_shows_comets ... ok [INFO] [stdout] test display::tests::test_render_row_format ... ok [INFO] [stdout] test display::tests::test_display_board_renders ... ok [INFO] [stdout] test input::tests::test_parse_help_commands ... ok [INFO] [stdout] test display::tests::test_move_history_tracking ... ok [INFO] [stdout] test input::tests::test_parse_empty_input ... ok [INFO] [stdout] test input::tests::test_parse_case_insensitive ... ok [INFO] [stdout] test display::tests::test_status_messages_cleared_on_next_move ... ok [INFO] [stdout] test input::tests::test_parse_invalid_coordinates ... ok [INFO] [stdout] test input::tests::test_parse_quit_commands ... ok [INFO] [stdout] test input::tests::test_parse_comet_move ... ok [INFO] [stdout] test input::tests::test_parse_satellite_move_with_chain ... ok [INFO] [stdout] test input::tests::test_parse_invalid_format ... ok [INFO] [stdout] test input::tests::test_parse_satellite_move_with_type ... ok [INFO] [stdout] test input::tests::test_parse_show_moves ... ok [INFO] [stdout] test input::tests::test_parse_unknown_command ... ok [INFO] [stdout] test input::tests::test_parse_whitespace_handling ... ok [INFO] [stdout] test minimaxbot::tests::test_different_difficulties_have_different_depths ... ok [INFO] [stdout] test input::tests::test_parse_satellite_move_with_type_and_chain ... ok [INFO] [stdout] test input::tests::test_parse_satellite_move ... ok [INFO] [stdout] test minimaxbot::tests::test_difficulty_levels ... ok [INFO] [stdout] test minimaxbot::tests::test_evaluate_chain_control ... ok [INFO] [stdout] test minimaxbot::tests::test_evaluate_losing_position ... ok [INFO] [stdout] test minimaxbot::tests::test_evaluate_mobility ... ok [INFO] [stdout] test minimaxbot::tests::test_evaluate_winning_position ... ok [INFO] [stdout] test minimaxbot::tests::test_evaluate_comet_safety ... ok [INFO] [stdout] test minimaxbot::tests::test_minimax_bot_creation ... ok [INFO] [stdout] test minimaxbot::tests::test_evaluate_position ... ok [INFO] [stdout] test moves::tests::test_is_comet_move ... ok [INFO] [stdout] test moves::tests::test_is_satellite_move ... ok [INFO] [stdout] test moves::tests::test_move_describe_satellite ... ok [INFO] [stdout] test moves::tests::test_move_describe_comet ... ok [INFO] [stdout] test randombot::tests::test_bot_trait_object ... ok [INFO] [stdout] test randombot::tests::test_random_bot_chooses_legal_move ... ok [INFO] [stdout] test randombot::tests::test_random_bot_returns_none_when_no_moves ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_comet_advancement_evaluation ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_creation ... ok [INFO] [stdout] test randombot::tests::test_bot_can_play_complete_game ... ok [INFO] [stdout] test randombot::tests::test_random_bot_creation ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_chain_crossing_evaluation ... ok [INFO] [stdout] test randombot::tests::test_random_bot_multiple_choices ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_comet_protection_evaluation ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_evaluates_moves ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_chooses_legal_move ... ok [INFO] [stdout] test states::tests::test_apply_comet_move ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_unblocking_evaluation ... ok [INFO] [stdout] test states::tests::test_apply_move_checks_winner ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_trait_object ... ok [INFO] [stdout] test states::tests::test_chain_crossing_diagonal ... ok [INFO] [stdout] test states::tests::test_apply_satellite_move ... ok [INFO] [stdout] test states::tests::test_chain_crossing_perpendicular ... ok [INFO] [stdout] test states::tests::test_chain_length_at_boundary ... ok [INFO] [stdout] test states::tests::test_chain_not_crossing_parallel ... ok [INFO] [stdout] test states::tests::test_chain_length_validation ... ok [INFO] [stdout] test states::tests::test_chain_length_constraint_long_chain ... ok [INFO] [stdout] test states::tests::test_chain_length_constraint_short_chain ... ok [INFO] [stdout] test states::tests::test_check_winner_no_winner_at_start ... ok [INFO] [stdout] test states::tests::test_chain_not_crossing_adjacent ... ok [INFO] [stdout] test states::tests::test_game_status_persists_after_win ... ok [INFO] [stdout] test states::tests::test_get_legal_moves_generates_moves ... ok [INFO] [stdout] test states::tests::test_immobilized_chain_generates_no_moves ... ok [INFO] [stdout] test states::tests::test_initial_game_status ... ok [INFO] [stdout] test states::tests::test_invalid_move_to_occupied_position ... ok [INFO] [stdout] test states::tests::test_long_chain_can_be_diagonal ... ok [INFO] [stdout] test states::tests::test_invalid_move_wrong_player_chain ... ok [INFO] [stdout] test states::tests::test_long_chain_moves_allow_diagonal ... ok [INFO] [stdout] test states::tests::test_reset_clears_win_status ... ok [INFO] [stdout] test states::tests::test_reset ... ok [INFO] [stdout] test states::tests::test_short_chain_must_be_adjacent ... ok [INFO] [stdout] test states::tests::test_occupied_map_consistency ... ok [INFO] [stdout] test states::tests::test_non_immobilized_chains_still_movable ... ok [INFO] [stdout] test states::tests::test_validate_all_legal_moves_respect_max_len ... ok [INFO] [stdout] test states::tests::test_turn_switching ... ok [INFO] [stdout] test states::tests::test_validate_setup ... ok [INFO] [stdout] test states::tests::test_win_condition_immobilized_comet ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_vs_random_bot ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_prefers_different_moves_than_random ... ok [INFO] [stdout] test minimaxbot::tests::test_minimax_bot_chooses_legal_move ... ok [INFO] [stdout] test api::tests::test_handle_api_request_with_valid_state ... ok [INFO] [stdout] test minimaxbot::tests::test_minimax_returns_consistent_moves ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_can_play_complete_game ... ok [INFO] [stdout] test minimaxbot::tests::test_alpha_beta_pruning_efficiency ... ok [INFO] [stdout] test minimaxbot::tests::test_minimax_bot_trait_object ... ok [INFO] [stdout] test minimaxbot::tests::test_minimax_bot_vs_simple_bot ... ok [INFO] [stdout] test minimaxbot::tests::test_minimax_bot_can_play_complete_game has been running for over 60 seconds [INFO] [stdout] test minimaxbot::tests::test_minimax_bot_can_play_complete_game ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 114 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 70.06s [INFO] [stdout] [INFO] [stderr] Running unittests benchmark_minimax.rs (/opt/rustwide/target/debug/deps/benchmark_minimax-8e45389203829b21) [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/main.rs (/opt/rustwide/target/debug/deps/eclipse-8be704f95a5264c3) [INFO] [stdout] [INFO] [stdout] running 101 tests [INFO] [stdout] test board::tests::test_hex_distance ... ok [INFO] [stdout] test board::tests::test_hex_neighbors ... ok [INFO] [stdout] test board::tests::test_is_within_radius ... ok [INFO] [stdout] test board::tests::test_is_on_board ... ok [INFO] [stdout] test board::tests::test_segments_intersect ... ok [INFO] [stdout] test board::tests::test_shares_axis ... ok [INFO] [stdout] test board::tests::test_starting_positions ... ok [INFO] [stdout] test display::tests::test_chain_crossed_detection ... ok [INFO] [stdout] test display::tests::test_display_chains_shows_all_chains ... ok [INFO] [stdout] test display::tests::test_display_board_renders ... ok [INFO] [stdout] test display::tests::test_display_board_shows_comets ... ok [INFO] [stdout] test display::tests::test_hex_symbol_for_comet ... ok [INFO] [stdout] test display::tests::test_display_board_shows_satellites ... ok [INFO] [stdout] test display::tests::test_game_info_display ... ok [INFO] [stdout] test display::tests::test_hex_symbol_for_satellite ... ok [INFO] [stdout] test display::tests::test_move_history_reset ... ok [INFO] [stdout] test display::tests::test_move_history_tracking ... ok [INFO] [stdout] test display::tests::test_move_history_display ... ok [INFO] [stdout] test display::tests::test_render_row_format ... ok [INFO] [stdout] test input::tests::test_parse_empty_input ... ok [INFO] [stdout] test input::tests::test_parse_comet_move ... ok [INFO] [stdout] test input::tests::test_parse_invalid_coordinates ... ok [INFO] [stdout] test input::tests::test_parse_quit_commands ... ok [INFO] [stdout] test input::tests::test_parse_invalid_format ... ok [INFO] [stdout] test display::tests::test_status_messages_cleared_on_next_move ... ok [INFO] [stdout] test input::tests::test_parse_help_commands ... ok [INFO] [stdout] test input::tests::test_parse_satellite_move ... ok [INFO] [stdout] test display::tests::test_hex_symbol_for_empty ... ok [INFO] [stdout] test input::tests::test_parse_case_insensitive ... ok [INFO] [stdout] test input::tests::test_parse_satellite_move_with_type ... ok [INFO] [stdout] test input::tests::test_parse_satellite_move_with_chain ... ok [INFO] [stdout] test input::tests::test_parse_satellite_move_with_type_and_chain ... ok [INFO] [stdout] test input::tests::test_parse_unknown_command ... ok [INFO] [stdout] test input::tests::test_parse_show_moves ... ok [INFO] [stdout] test input::tests::test_parse_whitespace_handling ... ok [INFO] [stdout] test display::tests::test_status_messages_after_move ... ok [INFO] [stdout] test minimaxbot::tests::test_different_difficulties_have_different_depths ... ok [INFO] [stdout] test minimaxbot::tests::test_difficulty_levels ... ok [INFO] [stdout] test minimaxbot::tests::test_evaluate_chain_control ... ok [INFO] [stdout] test minimaxbot::tests::test_evaluate_comet_safety ... ok [INFO] [stdout] test minimaxbot::tests::test_evaluate_winning_position ... ok [INFO] [stdout] test minimaxbot::tests::test_evaluate_losing_position ... ok [INFO] [stdout] test minimaxbot::tests::test_minimax_bot_creation ... ok [INFO] [stdout] test minimaxbot::tests::test_evaluate_mobility ... ok [INFO] [stdout] test moves::tests::test_move_describe_comet ... ok [INFO] [stdout] test moves::tests::test_move_describe_satellite ... ok [INFO] [stdout] test moves::tests::test_is_satellite_move ... ok [INFO] [stdout] test randombot::tests::test_random_bot_creation ... ok [INFO] [stdout] test minimaxbot::tests::test_evaluate_position ... ok [INFO] [stdout] test randombot::tests::test_bot_trait_object ... ok [INFO] [stdout] test moves::tests::test_is_comet_move ... ok [INFO] [stdout] test randombot::tests::test_random_bot_chooses_legal_move ... ok [INFO] [stdout] test randombot::tests::test_random_bot_multiple_choices ... ok [INFO] [stdout] test randombot::tests::test_random_bot_returns_none_when_no_moves ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_comet_advancement_evaluation ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_comet_protection_evaluation ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_chain_crossing_evaluation ... ok [INFO] [stdout] test states::tests::test_apply_comet_move ... ok [INFO] [stdout] test states::tests::test_apply_move_checks_winner ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_chooses_legal_move ... ok [INFO] [stdout] test states::tests::test_apply_satellite_move ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_creation ... ok [INFO] [stdout] test states::tests::test_chain_crossing_diagonal ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_unblocking_evaluation ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_trait_object ... ok [INFO] [stdout] test states::tests::test_chain_crossing_perpendicular ... ok [INFO] [stdout] test states::tests::test_chain_length_at_boundary ... ok [INFO] [stdout] test states::tests::test_chain_not_crossing_adjacent ... ok [INFO] [stdout] test states::tests::test_chain_not_crossing_parallel ... ok [INFO] [stdout] test states::tests::test_chain_length_constraint_long_chain ... ok [INFO] [stdout] test states::tests::test_chain_length_constraint_short_chain ... ok [INFO] [stdout] test states::tests::test_game_status_persists_after_win ... ok [INFO] [stdout] test states::tests::test_check_winner_no_winner_at_start ... ok [INFO] [stdout] test states::tests::test_chain_length_validation ... ok [INFO] [stdout] test states::tests::test_get_legal_moves_generates_moves ... ok [INFO] [stdout] test states::tests::test_initial_game_status ... ok [INFO] [stdout] test states::tests::test_invalid_move_to_occupied_position ... ok [INFO] [stdout] test states::tests::test_long_chain_can_be_diagonal ... ok [INFO] [stdout] test states::tests::test_immobilized_chain_generates_no_moves ... ok [INFO] [stdout] test states::tests::test_invalid_move_wrong_player_chain ... ok [INFO] [stdout] test states::tests::test_long_chain_moves_allow_diagonal ... ok [INFO] [stdout] test states::tests::test_short_chain_must_be_adjacent ... ok [INFO] [stdout] test states::tests::test_reset_clears_win_status ... ok [INFO] [stdout] test states::tests::test_reset ... ok [INFO] [stdout] test states::tests::test_non_immobilized_chains_still_movable ... ok [INFO] [stdout] test states::tests::test_validate_setup ... ok [INFO] [stdout] test states::tests::test_win_condition_immobilized_comet ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_evaluates_moves ... ok [INFO] [stdout] test states::tests::test_occupied_map_consistency ... ok [INFO] [stdout] test states::tests::test_validate_all_legal_moves_respect_max_len ... ok [INFO] [stdout] test states::tests::test_turn_switching ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_prefers_different_moves_than_random ... ok [INFO] [stdout] test randombot::tests::test_bot_can_play_complete_game ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_vs_random_bot ... ok [INFO] [stdout] test minimaxbot::tests::test_minimax_bot_chooses_legal_move ... ok [INFO] [stdout] test minimaxbot::tests::test_minimax_returns_consistent_moves ... ok [INFO] [stdout] test simplebot::tests::test_simple_bot_can_play_complete_game ... ok [INFO] [stdout] test minimaxbot::tests::test_alpha_beta_pruning_efficiency ... ok [INFO] [stdout] test minimaxbot::tests::test_minimax_bot_trait_object ... ok [INFO] [stdout] test minimaxbot::tests::test_minimax_bot_vs_simple_bot ... ok [INFO] [stdout] test minimaxbot::tests::test_minimax_bot_can_play_complete_game ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 101 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 22.81s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/eclipse-api.rs (/opt/rustwide/target/debug/deps/eclipse_api-cad30e67c7092635) [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] Doc-tests eclipse [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test src/minimaxbot.rs - minimaxbot::MinimaxBot::new (line 130) ... ok [INFO] [stdout] test src/randombot.rs - randombot::RandomBot::new (line 28) ... ok [INFO] [stdout] test src/display.rs - display::display_board (line 465) ... ok [INFO] [stdout] test src/input.rs - input::parse_input (line 65) ... ok [INFO] [stdout] test src/simplebot.rs - simplebot::SimpleBot::new (line 32) ... ok [INFO] [stdout] test src/states.rs - states::GameState::apply_move (line 1003) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "c732b99fc5af45f20350da7b31edf4077adea370810ef4f9c2185fb173206c12", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c732b99fc5af45f20350da7b31edf4077adea370810ef4f9c2185fb173206c12", kill_on_drop: false }` [INFO] [stdout] c732b99fc5af45f20350da7b31edf4077adea370810ef4f9c2185fb173206c12