[INFO] fetching crate open_ttt_lib 0.2.1... [INFO] testing open_ttt_lib-0.2.1 against try#ce59db7a1b1b012fb2793c4641c1bdecad7a128b for pr-85530 [INFO] extracting crate open_ttt_lib 0.2.1 into /workspace/builds/worker-11/source [INFO] validating manifest of crates.io crate open_ttt_lib 0.2.1 on toolchain ce59db7a1b1b012fb2793c4641c1bdecad7a128b [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate open_ttt_lib 0.2.1 [INFO] finished tweaking crates.io crate open_ttt_lib 0.2.1 [INFO] tweaked toml for crates.io crate open_ttt_lib 0.2.1 written to /workspace/builds/worker-11/source/Cargo.toml [INFO] crate crates.io crate open_ttt_lib 0.2.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tinytemplate v1.0.3 [INFO] [stderr] Downloaded js-sys v0.3.37 [INFO] [stderr] Downloaded web-sys v0.3.37 [INFO] [stderr] Downloaded criterion-plot v0.4.1 [INFO] [stderr] Downloaded oorandom v11.1.0 [INFO] [stderr] Downloaded criterion v0.3.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 17afacd079dea8823f08d8689d3d450045312097f374b885a4a52da888a33106 [INFO] running `Command { std: "docker" "start" "-a" "17afacd079dea8823f08d8689d3d450045312097f374b885a4a52da888a33106", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "17afacd079dea8823f08d8689d3d450045312097f374b885a4a52da888a33106", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "17afacd079dea8823f08d8689d3d450045312097f374b885a4a52da888a33106", kill_on_drop: false }` [INFO] [stdout] 17afacd079dea8823f08d8689d3d450045312097f374b885a4a52da888a33106 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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" "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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] dc0c1a8034535da40c730294e3bf1ae664b55029d77cb4c80b93d8a7a3fed3b8 [INFO] running `Command { std: "docker" "start" "-a" "dc0c1a8034535da40c730294e3bf1ae664b55029d77cb4c80b93d8a7a3fed3b8", kill_on_drop: false }` [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling doc-comment v0.3.3 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling open_ttt_lib v0.2.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 4.18s [INFO] running `Command { std: "docker" "inspect" "dc0c1a8034535da40c730294e3bf1ae664b55029d77cb4c80b93d8a7a3fed3b8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dc0c1a8034535da40c730294e3bf1ae664b55029d77cb4c80b93d8a7a3fed3b8", kill_on_drop: false }` [INFO] [stdout] dc0c1a8034535da40c730294e3bf1ae664b55029d77cb4c80b93d8a7a3fed3b8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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" "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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9f1d8e97fb8ff9c8affb6e7f93274b5225e34787ffec603a686ff3d2e57178cc [INFO] running `Command { std: "docker" "start" "-a" "9f1d8e97fb8ff9c8affb6e7f93274b5225e34787ffec603a686ff3d2e57178cc", kill_on_drop: false }` [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling proc-macro2 v1.0.10 [INFO] [stderr] Compiling ryu v1.0.3 [INFO] [stderr] Compiling unicode-xid v0.2.0 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling syn v1.0.17 [INFO] [stderr] Compiling smallvec v1.3.0 [INFO] [stderr] Compiling either v1.5.3 [INFO] [stderr] Compiling rayon-core v1.7.0 [INFO] [stderr] Compiling regex-syntax v0.6.17 [INFO] [stderr] Compiling pulldown-cmark v0.7.2 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling oorandom v11.1.0 [INFO] [stderr] Compiling semver-parser v0.9.0 [INFO] [stderr] Compiling memoffset v0.5.4 [INFO] [stderr] Compiling num-traits v0.2.11 [INFO] [stderr] Compiling unicode-bidi v0.3.4 [INFO] [stderr] Compiling cast v0.2.3 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling regex-automata v0.1.9 [INFO] [stderr] Compiling toml v0.5.6 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling itertools v0.8.2 [INFO] [stderr] Compiling unicode-normalization v0.1.12 [INFO] [stderr] Compiling walkdir v2.3.1 [INFO] [stderr] Compiling bstr v0.2.12 [INFO] [stderr] Compiling crossbeam-queue v0.2.1 [INFO] [stderr] Compiling clap v2.33.0 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling serde_json v1.0.51 [INFO] [stderr] Compiling crossbeam-deque v0.7.3 [INFO] [stderr] Compiling quote v1.0.3 [INFO] [stderr] Compiling criterion-plot v0.4.1 [INFO] [stderr] Compiling csv v1.1.3 [INFO] [stderr] Compiling idna v0.2.0 [INFO] [stderr] Compiling plotters v0.2.12 [INFO] [stderr] Compiling rayon v1.3.0 [INFO] [stderr] Compiling tinytemplate v1.0.3 [INFO] [stderr] Compiling url v2.1.1 [INFO] [stderr] Compiling regex v1.3.7 [INFO] [stderr] Compiling version-sync v0.9.1 [INFO] [stderr] Compiling serde_derive v1.0.106 [INFO] [stderr] Compiling criterion v0.3.1 [INFO] [stderr] Compiling open_ttt_lib v0.2.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> tests/version-numbers.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | version_sync::assert_markdown_deps_updated!("README.md"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panic)]` on by default [INFO] [stdout] = note: this is no longer accepted in Rust 2021 [INFO] [stdout] = note: this warning originates in the macro `version_sync::assert_markdown_deps_updated` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> tests/version-numbers.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | version_sync::assert_html_root_url_updated!("src/lib.rs"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this is no longer accepted in Rust 2021 [INFO] [stdout] = note: this warning originates in the macro `version_sync::assert_html_root_url_updated` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 56.43s [INFO] running `Command { std: "docker" "inspect" "9f1d8e97fb8ff9c8affb6e7f93274b5225e34787ffec603a686ff3d2e57178cc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9f1d8e97fb8ff9c8affb6e7f93274b5225e34787ffec603a686ff3d2e57178cc", kill_on_drop: false }` [INFO] [stdout] 9f1d8e97fb8ff9c8affb6e7f93274b5225e34787ffec603a686ff3d2e57178cc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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" "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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 2ac5d988164c87e1e1d79d43e6fa9438a85a2eb561814af7d8d58e91a04d3e00 [INFO] running `Command { std: "docker" "start" "-a" "2ac5d988164c87e1e1d79d43e6fa9438a85a2eb561814af7d8d58e91a04d3e00", kill_on_drop: false }` [INFO] [stdout] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stdout] running 98 tests [INFO] [stderr] --> tests/version-numbers.rs:3:5 [INFO] [stdout] test ai::tests::ai_player_from_game_state_when_player_O_move_should_be_player_O ... ok [INFO] [stderr] | [INFO] [stdout] test ai::tests::difficulty_when_custom_should_call_provided_function ... ok [INFO] [stderr] 3 | version_sync::assert_markdown_deps_updated!("README.md"); [INFO] [stdout] test ai::tests::opponent_best_position_when_win_and_cats_game_should_be_win ... ok [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] test ai::tests::opponent_best_position_when_win_and_loss_should_be_win ... ok [INFO] [stderr] | [INFO] [stdout] test ai::tests::opponent_best_position_when_win_and_unknown_should_be_win ... ok [INFO] [stderr] = note: `#[warn(non_fmt_panic)]` on by default [INFO] [stdout] test ai::tests::opponent_evaluate_game_depth_should_start_at_zero ... ok [INFO] [stderr] = note: this is no longer accepted in Rust 2021 [INFO] [stdout] test ai::tests::opponent_evaluate_game_when_game_over_should_be_empty_map ... ok [INFO] [stderr] = note: this warning originates in the macro `version_sync::assert_markdown_deps_updated` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] test ai::tests::opponent_evaluate_game_when_new_game_and_unbeatable_difficulty_should_be_cats_game_for_all_positions ... ok [INFO] [stderr] [INFO] [stdout] test ai::tests::opponent_evaluate_game_when_none_difficulty_should_see_unknown_outcome_for_all_positions ... ok [INFO] [stderr] warning: panic message is not a string literal [INFO] [stdout] test ai::tests::opponent_evaluate_game_when_unbeatable_difficulty_should_evaluate_all_positions ... ok [INFO] [stderr] --> tests/version-numbers.rs:8:5 [INFO] [stdout] test ai::tests::opponent_get_move_when_game_is_over_should_be_none ... ok [INFO] [stderr] | [INFO] [stderr] 8 | version_sync::assert_html_root_url_updated!("src/lib.rs"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this is no longer accepted in Rust 2021 [INFO] [stderr] = note: this warning originates in the macro `version_sync::assert_html_root_url_updated` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/open_ttt_lib-a024a2814588679f) [INFO] [stdout] test ai::tests::ai_player_from_game_state_when_player_X_move_should_be_player_X ... ok [INFO] [stdout] test ai::tests::opponent_get_move_when_unbeatable_difficulty_should_pick_wining_position ... ok [INFO] [stdout] test ai::tests::opponent_best_position_when_unknown_and_loss_should_be_unknown ... ok [INFO] [stdout] test ai::tests::opponent_new_should_set_difficulty ... ok [INFO] [stdout] test ai::tests::outcome_from_game_state_when_cats_game_should_be_cats_game ... ok [INFO] [stdout] test ai::tests::outcome_from_game_state_when_player_O_win_and_player_O_should_be_win ... ok [INFO] [stdout] test ai::tests::outcome_from_game_state_when_player_O_win_and_player_X_should_be_loss ... ok [INFO] [stdout] test ai::tests::outcome_from_game_state_when_player_X_win_and_player_O_should_be_loss ... ok [INFO] [stdout] test ai::tests::outcome_from_game_state_when_player_X_win_and_player_X_should_be_win ... ok [INFO] [stdout] test ai::tests::worst_outcome_when_empty_should_be_unknown ... ok [INFO] [stdout] test ai::tests::worst_outcome_when_my_turn_with_cats_game_and_cats_game_should_be_cats_game ... ok [INFO] [stdout] test ai::tests::worst_outcome_when_my_turn_with_cats_game_and_loss_should_be_loss ... ok [INFO] [stdout] test ai::tests::worst_outcome_when_my_turn_with_win_and_loss_should_be_loss ... ok [INFO] [stdout] test ai::tests::worst_outcome_when_not_my_turn_with_cats_game_and_cats_game_should_be_win ... ok [INFO] [stdout] test ai::tests::worst_outcome_when_not_my_turn_with_cats_game_and_loss_should_be_cats_game ... ok [INFO] [stdout] test ai::tests::worst_outcome_when_not_my_turn_with_win_and_loss_should_be_win ... ok [INFO] [stdout] test board::tests::board_contains_when_includes_position_should_be_true ... ok [INFO] [stdout] test board::tests::board_contains_when_column_outside_board_should_be_false ... ok [INFO] [stdout] test ai::tests::opponent_best_position_when_same_outcome_should_pick_random_position ... ok [INFO] [stdout] test ai::tests::opponent_best_position_when_outcomes_empty_should_none ... ok [INFO] [stdout] test ai::tests::opponent_best_position_when_cats_game_and_unknown_should_be_cats_game ... ok [INFO] [stdout] test board::tests::board_contains_when_negative_column_should_be_false ... ok [INFO] [stdout] test board::tests::board_contains_when_negative_row_should_be_false ... ok [INFO] [stdout] test board::tests::board_contains_when_row_outside_board_should_be_false ... ok [INFO] [stdout] test board::tests::board_display_when_O_own_squares_should_contain_O_characters ... ok [INFO] [stdout] test board::tests::board_display_when_X_own_squares_should_contain_X_characters ... ok [INFO] [stdout] test board::tests::board_get_mut_when_given_new_owner_should_change_owner ... ok [INFO] [stdout] test board::tests::board_get_mut_when_given_position_outside_board_should_return_none ... ok [INFO] [stdout] test ai::tests::opponent_best_position_when_cats_game_and_loss_should_be_cats_game ... ok [INFO] [stdout] test ai::tests::initialize_free_position_outcomes_should_set_indicated_outcome ... ok [INFO] [stdout] test board::tests::board_get_when_contains_position_should_be_some_owner ... ok [INFO] [stdout] test board::tests::board_iter_should_provide_position_and_owner ... ok [INFO] [stdout] test board::tests::board_iter_should_include_all_positions ... ok [INFO] [stdout] test board::tests::board_new_should_contain_squares_with_no_owner ... ok [INFO] [stdout] test board::tests::position_from_tuple_first_item_should_be_row ... ok [INFO] [stdout] test board::tests::position_when_cloned_should_compare_equal ... ok [INFO] [stdout] test board::tests::size_from_tuple_first_item_should_be_rows ... ok [INFO] [stdout] test board::tests::size_when_cloned_should_compare_equal ... ok [INFO] [stdout] test board::tests::size_when_copied_should_compare_equal ... ok [INFO] [stdout] test board::tests::size_when_same_should_compare_equal ... ok [INFO] [stdout] test game::tests::error_display_when_invalid_position_should_contain_position_text ... ok [INFO] [stdout] test game::tests::error_display_when_position_already_owned_should_contain_owner_text ... ok [INFO] [stdout] test game::tests::error_display_when_position_already_owned_should_contain_position_text ... ok [INFO] [stdout] test game::tests::game_can_move_when_game_over_should_be_false ... ok [INFO] [stdout] test game::tests::game_can_move_when_owned_positions_should_be_false ... ok [INFO] [stdout] test game::tests::game_can_move_when_outside_game_board_should_be_false ... ok [INFO] [stdout] test game::tests::game_default_should_create_3x3_board ... ok [INFO] [stdout] test game::tests::game_do_move_returned_state_should_match_game_state ... ok [INFO] [stdout] test game::tests::game_can_move_when_unowned_positions_should_be_true ... ok [INFO] [stdout] test game::tests::game_do_move_when_both_winning_row_and_diagonal_should_contain_all_winning_positions ... ok [INFO] [stdout] test board::tests::position_when_copied_should_compare_equal ... ok [INFO] [stdout] test board::tests::position_when_same_should_compare_equal ... ok [INFO] [stdout] test board::tests::size_from_tuple_second_item_should_be_columns ... ok [INFO] [stdout] test game::tests::game_do_move_when_game_over_should_return_error ... ok [INFO] [stdout] test game::tests::game_do_move_when_last_position_filled_should_return_cats_game ... ok [INFO] [stdout] test game::tests::game_do_move_when_owned_position_should_return_error ... ok [INFO] [stdout] test game::tests::game_free_positions_should_not_contain_any_owned_positions ... ok [INFO] [stdout] test game::tests::game_do_move_when_player_X_move_should_return_player_O_move_state ... ok [INFO] [stdout] test game::tests::game_do_move_when_position_outside_board_should_return_error ... ok [INFO] [stdout] test game::tests::game_do_move_when_three_O_in_row_should_return_player_O_win ... ok [INFO] [stdout] test game::tests::game_free_positions_when_game_over_should_be_none ... ok [INFO] [stdout] test game::tests::game_new_should_all_positions_should_be_free ... ok [INFO] [stdout] test game::tests::game_new_should_create_3x3_board ... ok [INFO] [stdout] test game::tests::game_new_should_not_be_game_over_state ... ok [INFO] [stdout] test game::tests::game_start_next_game_should_alternate_between_players_who_go_first ... ok [INFO] [stdout] test game::tests::game_start_next_game_should_ensure_player_who_went_went_second_goes_first_next_game ... ok [INFO] [stdout] test game::tests::game_start_next_game_when_game_not_over_should_start_next_game ... ok [INFO] [stdout] test game::tests::state_is_game_over_when_cats_game_should_be_true ... ok [INFO] [stdout] test game::tests::state_is_game_over_when_player_O_move_should_be_false ... ok [INFO] [stdout] test game::tests::state_is_game_over_when_player_O_win_should_be_true ... ok [INFO] [stdout] test game::tests::state_is_game_over_when_player_X_move_should_be_false ... ok [INFO] [stdout] test game::tests::state_is_game_over_when_player_X_win_should_be_true ... ok [INFO] [stdout] test game::tests::game_do_move_when_three_X_in_column_should_return_player_X_win ... ok [INFO] [stdout] test game::tests::error_display_when_game_over_should_be_non_empty ... ok [INFO] [stdout] test game::tests::game_do_move_when_three_X_in_row_should_return_player_X_win ... ok [INFO] [stdout] test game::tests::game_do_move_when_three_X_in_top_left_to_bottom_right_diagonal_should_return_player_X_win ... ok [INFO] [stdout] test game::tests::game_do_move_when_three_X_in_top_right_to_bottom_left_diagonal_should_return_player_X_win ... ok [INFO] [stdout] test game::tests::game_do_move_when_player_O_move_should_return_player_X_move_state ... ok [INFO] [stdout] test board::tests::board_get_when_not_contains_position_should_be_none ... ok [INFO] [stdout] test board::tests::board_new_when_given_1x1_size_should_create_1x1_board ... ok [INFO] [stdout] test board::tests::position_from_tuple_second_item_should_be_column ... ok [INFO] [stdout] test board::tests::board_new_when_given_3x3_size_should_create_3x3_board ... ok [INFO] [stdout] test board::tests::board_new_when_given_1x3_size_should_create_1x3_board ... ok [INFO] [stdout] test ai::tests::ai_player_from_game_state_when_game_over_should_panic ... ok [INFO] [stdout] test ai::tests::opponent_evaluate_game_should_increment_depth ... ok [INFO] [stdout] test board::tests::board_new_when_given_0x1_size_should_panic ... ok [INFO] [stderr] Running tests/ai_tests.rs (/opt/rustwide/target/debug/deps/ai_tests-6ee7f49cdacc12a4) [INFO] [stdout] test board::tests::board_new_when_given_1x0_size_should_panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 98 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stderr] Running tests/version-numbers.rs (/opt/rustwide/target/debug/deps/version_numbers-49a686e7294f8cc0) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test easy_medium_hard_difficulties_should_increasingly_tie_vs_unbeatable_difficulty ... ignored [INFO] [stdout] test easy_medium_hard_difficulties_should_increasingly_win_vs_none_difficulty ... ignored [INFO] [stdout] test unbeatable_opponent_should_never_lose ... ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test readme_deps_version_number_should_match_cargo_toml ... ok [INFO] [stdout] test html_root_url_version_number_should_match_cargo_toml ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Doc-tests open_ttt_lib [INFO] [stdout] [INFO] [stdout] running 29 tests [INFO] [stdout] test src/ai.rs - ai::Opponent::new (line 40) ... ok [INFO] [stderr] error: test failed, to rerun pass '--doc' [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `rustdoc --edition=2018 --crate-type lib --crate-name open_ttt_lib --test /opt/rustwide/workdir/src/lib.rs -L dependency=/opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --extern criterion=/opt/rustwide/target/debug/deps/libcriterion-52691b1808a9cfb5.rlib --extern doc_comment=/opt/rustwide/target/debug/deps/libdoc_comment-f013510e859fa717.rlib --extern open_ttt_lib=/opt/rustwide/target/debug/deps/libopen_ttt_lib-2290057a64492073.rlib --extern rand=/opt/rustwide/target/debug/deps/librand-0e6ddb59ff367969.rlib --extern version_sync=/opt/rustwide/target/debug/deps/libversion_sync-be21d461b3db5cea.rlib -C embed-bitcode=no --error-format human` (signal: 9, SIGKILL: kill) [INFO] running `Command { std: "docker" "inspect" "2ac5d988164c87e1e1d79d43e6fa9438a85a2eb561814af7d8d58e91a04d3e00", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2ac5d988164c87e1e1d79d43e6fa9438a85a2eb561814af7d8d58e91a04d3e00", kill_on_drop: false }` [INFO] [stdout] 2ac5d988164c87e1e1d79d43e6fa9438a85a2eb561814af7d8d58e91a04d3e00