[INFO] cloning repository https://github.com/dprgarner/advent-of-code-2022 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dprgarner/advent-of-code-2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdprgarner%2Fadvent-of-code-2022", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdprgarner%2Fadvent-of-code-2022'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 132702e1c6eeb8c1205b9851a689c67b6398c855 [INFO] testing dprgarner/advent-of-code-2022 against master#552a959051cebf8f88a8f558399baf733bec9ce0 for pr-136932 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdprgarner%2Fadvent-of-code-2022" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/dprgarner/advent-of-code-2022 on toolchain 552a959051cebf8f88a8f558399baf733bec9ce0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+552a959051cebf8f88a8f558399baf733bec9ce0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/dprgarner/advent-of-code-2022 [INFO] finished tweaking git repo https://github.com/dprgarner/advent-of-code-2022 [INFO] tweaked toml for git repo https://github.com/dprgarner/advent-of-code-2022 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/dprgarner/advent-of-code-2022 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" "+552a959051cebf8f88a8f558399baf733bec9ce0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+552a959051cebf8f88a8f558399baf733bec9ce0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 224cd46499ea8162d902c486311937752c3424e2cf47102175c4f04b54db63dd [INFO] running `Command { std: "docker" "start" "-a" "224cd46499ea8162d902c486311937752c3424e2cf47102175c4f04b54db63dd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "224cd46499ea8162d902c486311937752c3424e2cf47102175c4f04b54db63dd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "224cd46499ea8162d902c486311937752c3424e2cf47102175c4f04b54db63dd", kill_on_drop: false }` [INFO] [stdout] 224cd46499ea8162d902c486311937752c3424e2cf47102175c4f04b54db63dd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+552a959051cebf8f88a8f558399baf733bec9ce0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a73c8e524aefac70c499931034a7089c242aeefecd8afc46b3bb2e91c1386681 [INFO] running `Command { std: "docker" "start" "-a" "a73c8e524aefac70c499931034a7089c242aeefecd8afc46b3bb2e91c1386681", kill_on_drop: false }` [INFO] [stderr] Compiling memchr v2.5.0 [INFO] [stderr] Compiling regex-syntax v0.6.28 [INFO] [stderr] Compiling either v1.8.0 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling aho-corasick v0.7.20 [INFO] [stderr] Compiling regex v1.7.0 [INFO] [stderr] Compiling advent-of-code-2022 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `1` is never read [INFO] [stdout] --> src/aoc_07/commands.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | File(u32, String), [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ListDirectoryOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 4 - File(u32, String), [INFO] [stdout] 4 + File(u32, ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print` is never used [INFO] [stdout] --> src/aoc_22/map.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub trait MonkeyMap { [INFO] [stdout] | --------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 10 | fn print(&self, position: &Position); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/aoc_02.rs:6:29 [INFO] [stdout] | [INFO] [stdout] 6 | for (str1, str2) in line.split_once(" ") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 6 - for (str1, str2) in line.split_once(" ") { [INFO] [stdout] 6 + while let Some((str1, str2)) = line.split_once(" ") { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 6 - for (str1, str2) in line.split_once(" ") { [INFO] [stdout] 6 + if let Some((str1, str2)) = line.split_once(" ") { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/aoc_02.rs:32:29 [INFO] [stdout] | [INFO] [stdout] 32 | for (str1, str2) in line.split_once(" ") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 32 - for (str1, str2) in line.split_once(" ") { [INFO] [stdout] 32 + while let Some((str1, str2)) = line.split_once(" ") { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 32 - for (str1, str2) in line.split_once(" ") { [INFO] [stdout] 32 + if let Some((str1, str2)) = line.split_once(" ") { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.84s [INFO] running `Command { std: "docker" "inspect" "a73c8e524aefac70c499931034a7089c242aeefecd8afc46b3bb2e91c1386681", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a73c8e524aefac70c499931034a7089c242aeefecd8afc46b3bb2e91c1386681", kill_on_drop: false }` [INFO] [stdout] a73c8e524aefac70c499931034a7089c242aeefecd8afc46b3bb2e91c1386681 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+552a959051cebf8f88a8f558399baf733bec9ce0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 46c02fde476d02d7fc48d232e819bcb9d87196e25d316e680a8a7e1b5750124d [INFO] running `Command { std: "docker" "start" "-a" "46c02fde476d02d7fc48d232e819bcb9d87196e25d316e680a8a7e1b5750124d", kill_on_drop: false }` [INFO] [stderr] Compiling advent-of-code-2022 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `1` is never read [INFO] [stdout] --> src/aoc_07/commands.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | File(u32, String), [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ListDirectoryOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 4 - File(u32, String), [INFO] [stdout] 4 + File(u32, ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print` is never used [INFO] [stdout] --> src/aoc_22/map.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub trait MonkeyMap { [INFO] [stdout] | --------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 10 | fn print(&self, position: &Position); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/aoc_02.rs:6:29 [INFO] [stdout] | [INFO] [stdout] 6 | for (str1, str2) in line.split_once(" ") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 6 - for (str1, str2) in line.split_once(" ") { [INFO] [stdout] 6 + while let Some((str1, str2)) = line.split_once(" ") { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 6 - for (str1, str2) in line.split_once(" ") { [INFO] [stdout] 6 + if let Some((str1, str2)) = line.split_once(" ") { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/aoc_02.rs:32:29 [INFO] [stdout] | [INFO] [stdout] 32 | for (str1, str2) in line.split_once(" ") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 32 - for (str1, str2) in line.split_once(" ") { [INFO] [stdout] 32 + while let Some((str1, str2)) = line.split_once(" ") { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 32 - for (str1, str2) in line.split_once(" ") { [INFO] [stdout] 32 + if let Some((str1, str2)) = line.split_once(" ") { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.81s [INFO] running `Command { std: "docker" "inspect" "46c02fde476d02d7fc48d232e819bcb9d87196e25d316e680a8a7e1b5750124d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "46c02fde476d02d7fc48d232e819bcb9d87196e25d316e680a8a7e1b5750124d", kill_on_drop: false }` [INFO] [stdout] 46c02fde476d02d7fc48d232e819bcb9d87196e25d316e680a8a7e1b5750124d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+552a959051cebf8f88a8f558399baf733bec9ce0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 242935450da9d1a012ed63940caf7ea48472510dfb53ab027dfcb2ec8c45409b [INFO] running `Command { std: "docker" "start" "-a" "242935450da9d1a012ed63940caf7ea48472510dfb53ab027dfcb2ec8c45409b", kill_on_drop: false }` [INFO] [stderr] warning: field `1` is never read [INFO] [stderr] --> src/aoc_07/commands.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | File(u32, String), [INFO] [stderr] | ---- ^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `ListDirectoryOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 4 - File(u32, String), [INFO] [stderr] 4 + File(u32, ()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method `print` is never used [INFO] [stderr] --> src/aoc_22/map.rs:10:8 [INFO] [stderr] | [INFO] [stderr] 6 | pub trait MonkeyMap { [INFO] [stderr] | --------- method in this trait [INFO] [stderr] ... [INFO] [stderr] 10 | fn print(&self, position: &Position); [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stderr] --> src/aoc_02.rs:6:29 [INFO] [stderr] | [INFO] [stderr] 6 | for (str1, str2) in line.split_once(" ") { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stderr] help: to check pattern in a loop use `while let` [INFO] [stderr] | [INFO] [stderr] 6 - for (str1, str2) in line.split_once(" ") { [INFO] [stderr] 6 + while let Some((str1, str2)) = line.split_once(" ") { [INFO] [stderr] | [INFO] [stderr] help: consider using `if let` to clear intent [INFO] [stderr] | [INFO] [stderr] 6 - for (str1, str2) in line.split_once(" ") { [INFO] [stderr] 6 + if let Some((str1, str2)) = line.split_once(" ") { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stderr] --> src/aoc_02.rs:32:29 [INFO] [stderr] | [INFO] [stderr] 32 | for (str1, str2) in line.split_once(" ") { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: to check pattern in a loop use `while let` [INFO] [stderr] | [INFO] [stderr] 32 - for (str1, str2) in line.split_once(" ") { [INFO] [stderr] 32 + while let Some((str1, str2)) = line.split_once(" ") { [INFO] [stderr] | [INFO] [stderr] help: consider using `if let` to clear intent [INFO] [stderr] | [INFO] [stderr] 32 - for (str1, str2) in line.split_once(" ") { [INFO] [stderr] 32 + if let Some((str1, str2)) = line.split_once(" ") { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `advent-of-code-2022` (bin "advent-of-code-2022" test) generated 4 warnings [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.02s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/advent_of_code_2022-c3511decd4fb70f9) [INFO] [stdout] [INFO] [stdout] running 89 tests [INFO] [stdout] test aoc_12::tests::it_parses_heights ... ok [INFO] [stdout] test aoc_12::tests::solves_a ... ok [INFO] [stdout] test aoc_12::tests::solves_b ... ok [INFO] [stdout] test aoc_13::signal::tests::it_orders_lists_against_lists ... ok [INFO] [stdout] test aoc_12::tests::it_calculates_neighbours ... ok [INFO] [stdout] test aoc_13::signal::tests::it_orders_lists_against_ints ... ok [INFO] [stdout] test aoc_12::tests::returns_no_soln_for_a ... ok [INFO] [stdout] test aoc_13::signal::tests::it_finds_closing_brackets ... ok [INFO] [stdout] test aoc_13::signal::tests::it_orders_same_list_size ... ok [INFO] [stdout] test aoc_13::signal::tests::it_parses_a_string_to_tokens ... ok [INFO] [stdout] test aoc_13::signal::tests::it_parses_multiple_nested_lists ... ok [INFO] [stdout] test aoc_13::signal::tests::it_parses_the_next_token ... ok [INFO] [stdout] test aoc_13::tests::it_parses_signal_pairs ... ok [INFO] [stdout] test aoc_13::signal::tests::it_parses_a_flat_list ... ok [INFO] [stdout] test aoc_13::tests::it_runs_b ... ok [INFO] [stdout] test aoc_13::signal::tests::it_rejects_unmatched_closing_brackets ... ok [INFO] [stdout] test aoc_13::tests::it_runs_a ... ok [INFO] [stdout] test aoc_13::signal::tests::it_parses_an_empty_list ... ok [INFO] [stdout] test aoc_13::signal::tests::it_orders_different_list_sizes ... ok [INFO] [stdout] test aoc_13::signal::tests::it_rejects_malformed_strings ... ok [INFO] [stdout] test aoc_15::tests::it_parses_a_line ... ok [INFO] [stdout] test aoc_13::signal::tests::it_parses_a_nested_list ... ok [INFO] [stdout] test aoc_19::tests::it_iterates_to_long_soln_2 ... ok [INFO] [stdout] test aoc_15::tests::it_counts_beaconless_squares_in_row_10 ... ok [INFO] [stdout] test aoc_16::volcano::tests::it_parses_volcano_line ... ok [INFO] [stdout] test aoc_16::volcano::tests::it_parses_volcano_line_with_one_valve ... ok [INFO] [stdout] test aoc_19::tests::it_iterates_to_short_soln_1 ... ok [INFO] [stdout] test aoc_20::tests::it_runs_a ... ok [INFO] [stdout] test aoc_20::tests::it_runs_b ... ok [INFO] [stdout] test aoc_20::tests::it_shifts_around_end_more ... ok [INFO] [stdout] test aoc_19::tests::it_iterates_to_short_soln_2 ... ok [INFO] [stdout] test aoc_20::tests::it_shifts_backwards_back_to_start ... ok [INFO] [stdout] test aoc_20::tests::it_shifts_forward ... ok [INFO] [stdout] test aoc_20::tests::it_shifts_forward_back_to_start ... ok [INFO] [stdout] test aoc_20::tests::it_shifts_around_end ... ok [INFO] [stdout] test aoc_20::tests::it_shifts_backward ... ok [INFO] [stdout] test aoc_18::tests::it_parses_cubes ... ok [INFO] [stdout] test aoc_19::tests::it_parses_a_blueprint ... ok [INFO] [stdout] test aoc_18::tests::it_runs_a ... ok [INFO] [stdout] test aoc_16::volcano::tests::it_parses_a_volcano ... ok [INFO] [stdout] test aoc_18::tests::it_runs_a_tiny ... ok [INFO] [stdout] test aoc_18::tests::it_runs_b ... ok [INFO] [stdout] test aoc_16::volcano::tests::it_builds_non_trivial_volcano_flows ... ok [INFO] [stdout] test aoc_18::tests::it_runs_b_small ... ok [INFO] [stdout] test aoc_16::tests::it_runs_a ... ok [INFO] [stdout] test aoc_20::tests::it_shifts_to_back_to_start ... ok [INFO] [stdout] test aoc_21::tests::it_parses_a_monkey_name ... ok [INFO] [stdout] test aoc_22::cubic_map::tests::it_parses_a_small_cube ... ok [INFO] [stdout] test aoc_22::cubic_map::tests::it_consistently_implements_tiny_net ... ok [INFO] [stdout] test aoc_22::cubic_map::tests::it_steps_north_to_east ... ok [INFO] [stdout] test aoc_22::cubic_map::tests::it_steps_north_to_west ... ok [INFO] [stdout] test aoc_22::instruction::tests::it_parses_instructions ... ok [INFO] [stdout] test aoc_22::tests::it_does_not_wrap_around_into_wall ... ok [INFO] [stdout] test aoc_22::tests::it_runs_b ... ignored [INFO] [stdout] test aoc_22::cubic_map::tests::it_consistently_implements_small_net ... ok [INFO] [stdout] test aoc_22::tests::it_navigates_to_a_wall ... ok [INFO] [stdout] test aoc_22::tests::it_runs_a ... ok [INFO] [stdout] test aoc_20::tests::it_shifts_to_end ... ok [INFO] [stdout] test aoc_21::tests::it_parses_monkeys ... ok [INFO] [stdout] test aoc_22::cubic_map::tests::it_steps_south_to_east ... ok [INFO] [stdout] test aoc_22::cubic_map::tests::it_steps_west_to_north ... ok [INFO] [stdout] test aoc_22::grid::tests::it_parses_a_grid ... ok [INFO] [stdout] test aoc_22::cubic_map::tests::it_steps_north_to_south ... ok [INFO] [stdout] test aoc_22::cubic_map::tests::it_parses_a_tiny_cube ... ok [INFO] [stdout] test aoc_23::tests::it_iterates_elves_twice ... ok [INFO] [stdout] test aoc_23::tests::it_parses_elves ... ok [INFO] [stdout] test aoc_23::tests::it_iterates_elves_thrice ... ok [INFO] [stdout] test aoc_22::tests::it_wraps_around_north ... ok [INFO] [stdout] test aoc_24::blizzard::tests::it_iterates_and_returns ... ok [INFO] [stdout] test aoc_23::tests::it_iterates_until_stable ... ok [INFO] [stdout] test aoc_22::tests::it_wraps_around_south ... ok [INFO] [stdout] test aoc_22::tests::it_wraps_around_west ... ok [INFO] [stdout] test aoc_16::volcano::tests::it_builds_distances ... ok [INFO] [stdout] test aoc_24::blizzard::tests::it_moves_blizzards ... ok [INFO] [stdout] test aoc_24::blizzard::tests::it_parses_the_blizzard_text ... ok [INFO] [stdout] test aoc_24::tests::it_creates_a_map ... ok [INFO] [stdout] test aoc_23::tests::it_runs_a ... ok [INFO] [stdout] test aoc_24::tests::it_runs_a ... ok [INFO] [stdout] test aoc_25::tests::it_coverts_decimal_numbers_to_snafu ... ok [INFO] [stdout] test aoc_24::blizzard::tests::it_wraps_blizzards_around ... ok [INFO] [stdout] test aoc_19::tests::it_iterates_to_long_soln_1 ... ok [INFO] [stdout] test aoc_25::tests::it_coverts_snafu_numbers_to_decimal ... ok [INFO] [stdout] test aoc_22::cubic_map::tests::it_steps_east_to_south ... ok [INFO] [stdout] test aoc_24::tests::it_runs_b ... ok [INFO] [stdout] test aoc_23::tests::it_iterates_elves ... ok [INFO] [stdout] test aoc_25::tests::it_runs_a ... ok [INFO] [stdout] test aoc_23::tests::it_runs_b ... ok [INFO] [stdout] test aoc_17::tests::it_runs_b ... ok [INFO] [stdout] test aoc_17::tests::it_runs_a ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 88 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.97s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "242935450da9d1a012ed63940caf7ea48472510dfb53ab027dfcb2ec8c45409b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "242935450da9d1a012ed63940caf7ea48472510dfb53ab027dfcb2ec8c45409b", kill_on_drop: false }` [INFO] [stdout] 242935450da9d1a012ed63940caf7ea48472510dfb53ab027dfcb2ec8c45409b