[INFO] crate open_ttt_lib 0.1.2 is already in cache [INFO] testing open_ttt_lib-0.1.2 against 1.44.0 for beta-1.45-1 [INFO] extracting crate open_ttt_lib 0.1.2 into /workspace/builds/worker-10/source [INFO] validating manifest of crates.io crate open_ttt_lib 0.1.2 on toolchain 1.44.0 [INFO] running `"/workspace/cargo-home/bin/cargo" "+1.44.0" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking crates.io crate open_ttt_lib 0.1.2 [INFO] finished tweaking crates.io crate open_ttt_lib 0.1.2 [INFO] tweaked toml for crates.io crate open_ttt_lib 0.1.2 written to /workspace/builds/worker-10/source/Cargo.toml [INFO] crate crates.io crate open_ttt_lib 0.1.2 already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+1.44.0" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+1.44.0" "build" "--frozen"` [INFO] [stdout] 674ad7d2306736f8889990c911eac3958fe8f818fc88e08d610a20b6faa4aae6 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `"docker" "start" "-a" "674ad7d2306736f8889990c911eac3958fe8f818fc88e08d610a20b6faa4aae6"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling open_ttt_lib v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.94s [INFO] running `"docker" "inspect" "674ad7d2306736f8889990c911eac3958fe8f818fc88e08d610a20b6faa4aae6"` [INFO] running `"docker" "rm" "-f" "674ad7d2306736f8889990c911eac3958fe8f818fc88e08d610a20b6faa4aae6"` [INFO] [stdout] 674ad7d2306736f8889990c911eac3958fe8f818fc88e08d610a20b6faa4aae6 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+1.44.0" "test" "--frozen" "--no-run"` [INFO] [stdout] 5d5fb052e9e89d95d25b6f2ca429de5b4fe2ea59b03bdc698abf417702b3c5c9 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `"docker" "start" "-a" "5d5fb052e9e89d95d25b6f2ca429de5b4fe2ea59b03bdc698abf417702b3c5c9"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling syn v1.0.17 [INFO] [stderr] Compiling serde_json v1.0.51 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling bstr v0.2.12 [INFO] [stderr] Compiling version-sync v0.8.1 [INFO] [stderr] Compiling criterion-plot v0.4.1 [INFO] [stderr] Compiling rayon-core v1.7.0 [INFO] [stderr] Compiling rayon v1.3.0 [INFO] [stderr] Compiling csv v1.1.3 [INFO] [stderr] Compiling tinytemplate v1.0.3 [INFO] [stderr] Compiling serde_derive v1.0.106 [INFO] [stderr] Compiling criterion v0.3.1 [INFO] [stderr] Compiling open_ttt_lib v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 48.77s [INFO] running `"docker" "inspect" "5d5fb052e9e89d95d25b6f2ca429de5b4fe2ea59b03bdc698abf417702b3c5c9"` [INFO] running `"docker" "rm" "-f" "5d5fb052e9e89d95d25b6f2ca429de5b4fe2ea59b03bdc698abf417702b3c5c9"` [INFO] [stdout] 5d5fb052e9e89d95d25b6f2ca429de5b4fe2ea59b03bdc698abf417702b3c5c9 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+1.44.0" "test" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] d95564ca436df0ed83b220673436d0d545be499c7898fd28d555054fc63f4120 [INFO] running `"docker" "start" "-a" "d95564ca436df0ed83b220673436d0d545be499c7898fd28d555054fc63f4120"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.35s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/open_ttt_lib-f53e3143daefe466 [INFO] [stdout] [INFO] [stdout] running 94 tests [INFO] [stdout] test ai::tests::ai_player_from_game_state_when_player_O_move_should_be_player_O ... ok [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_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 ai::tests::opponent_evaluate_game_when_one_mistake_probability_should_see_unknown_outcome_for_all_positions ... ok [INFO] [stdout] test ai::tests::opponent_evaluate_game_when_game_over_should_be_empty_map ... ok [INFO] [stdout] test ai::tests::opponent_new_mistake_probability_greater_than_one_should_be_set_to_one ... ok [INFO] [stdout] test ai::tests::opponent_best_position_when_cats_game_and_loss_should_be_cats_game ... ok [INFO] [stdout] test ai::tests::opponent_get_move_when_game_is_over_should_be_none ... ok [INFO] [stdout] test ai::tests::outcome_from_game_state_when_cats_game_should_be_cats_game ... ok [INFO] [stdout] test ai::tests::opponent_best_position_when_win_and_cats_game_should_be_win ... ok [INFO] [stdout] test ai::tests::opponent_best_position_when_win_and_loss_should_be_win ... 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::opponent_best_position_when_unknown_and_loss_should_be_unknown ... ok [INFO] [stdout] test ai::tests::opponent_new_mistake_probability_less_than_zero_should_be_set_to_zero ... ok [INFO] [stdout] test ai::tests::opponent_best_position_when_win_and_unknown_should_be_win ... 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_empty_should_be_unknown ... 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_O_win_and_player_X_should_be_loss ... 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::outcome_from_game_state_when_player_X_win_and_player_X_should_be_win ... ok [INFO] [stdout] test ai::tests::opponent_evaluate_game_when_zero_mistake_probability_should_evaluate_all_positions ... ok [INFO] [stdout] test board::tests::board_contains_when_negative_column_should_be_false ... 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_column_outside_board_should_be_false ... ok [INFO] [stdout] test board::tests::board_contains_when_includes_position_should_be_true ... ok [INFO] [stdout] test ai::tests::opponent_best_position_when_same_outcome_should_pick_random_position ... 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 board::tests::board_contains_when_row_outside_board_should_be_false ... ok [INFO] [stdout] test board::tests::board_contains_when_negative_row_should_be_false ... ok [INFO] [stdout] test board::tests::board_get_mut_when_given_position_outside_board_should_return_none ... 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_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::board_get_when_not_contains_position_should_be_none ... 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_new_when_given_1x1_size_should_create_1x1_board ... ok [INFO] [stdout] test board::tests::board_display_when_O_own_squares_should_contain_O_characters ... ok [INFO] [stdout] test ai::tests::opponent_get_move_when_zero_mistake_probability_should_pick_wining_position ... ok [INFO] [stdout] test board::tests::board_new_when_given_3x3_size_should_create_3x3_board ... ok [INFO] [stdout] test board::tests::position_from_tuple_first_item_should_be_row ... ok [INFO] [stdout] test board::tests::position_from_tuple_second_item_should_be_column ... ok [INFO] [stdout] test board::tests::size_from_tuple_first_item_should_be_rows ... ok [INFO] [stdout] test board::tests::size_from_tuple_second_item_should_be_columns ... 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 board::tests::position_when_same_should_compare_equal ... ok [INFO] [stdout] test board::tests::position_when_cloned_should_compare_equal ... ok [INFO] [stdout] test game::tests::error_display_when_game_over_should_be_non_empty ... ok [INFO] [stdout] test board::tests::position_when_copied_should_compare_equal ... ok [INFO] [stdout] test board::tests::board_new_when_given_1x3_size_should_create_1x3_board ... ok [INFO] [stdout] test game::tests::game_do_move_when_both_winning_row_and_diagonal_should_contain_all_winning_positions ... 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_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::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_unowned_positions_should_be_true ... ok [INFO] [stdout] test game::tests::game_can_move_when_game_over_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_do_move_when_player_O_move_should_return_player_X_move_state ... 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_three_O_in_row_should_return_player_O_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_position_outside_board_should_return_error ... ok [INFO] [stdout] test game::tests::game_free_positions_when_game_over_should_be_none ... 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_three_X_in_row_should_return_player_X_win ... 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_when_game_not_over_should_start_next_game ... 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::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::game_do_move_when_three_X_in_column_should_return_player_X_win ... ok [INFO] [stdout] test game::tests::game_do_move_when_owned_position_should_return_error ... 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_new_should_all_positions_should_be_free ... 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::state_is_game_over_when_player_O_win_should_be_true ... ok [INFO] [stdout] test ai::tests::ai_player_from_game_state_when_game_over_should_panic ... ok [INFO] [stdout] test board::tests::board_new_when_given_1x0_size_should_panic ... ok [INFO] [stderr] Running /opt/rustwide/target/debug/deps/version_numbers-530d209d8ebde34a [INFO] [stdout] test board::tests::board_new_when_given_0x1_size_should_panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 94 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [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] [stderr] Doc-tests open_ttt_lib [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 27 tests [INFO] [stdout] test src/board.rs - board::Position::from (line 315) ... ok [INFO] [stdout] test src/board.rs - board::Size::from (line 270) ... ok [INFO] [stdout] test src/ai.rs - ai::Opponent::new (line 52) ... ok [INFO] [stdout] test src/board.rs - board::Board::get (line 102) ... ok [INFO] [stdout] test src/ai.rs - ai::Opponent::new (line 44) ... ok [INFO] [stdout] test src/board.rs - board::Board::iter (line 152) ... ok [INFO] [stdout] test src/board.rs - board::Board::get_mut (line 125) ... ok [INFO] [stdout] test src/board.rs - board::Size (line 247) ... ok [INFO] [stdout] test src/board.rs - board::Position (line 293) ... ok [INFO] [stdout] test src/board.rs - board::Board::new (line 23) ... ok [INFO] [stdout] test src/board.rs - board::Board::contains (line 77) ... ok [INFO] [stdout] test src/game.rs - game::Game (line 64) ... ok [INFO] [stdout] test src/game.rs - game (line 4) ... ok [INFO] [stdout] test src/game.rs - game::Game::start_next_game (line 274) ... ok [INFO] [stdout] test src/game.rs - game::Game::board (line 128) ... ok [INFO] [stdout] test src/game.rs - game::Game::free_positions (line 170) ... ok [INFO] [stdout] test src/game.rs - game::State::is_game_over (line 586) ... ok [INFO] [stdout] test src/game.rs - game::Game::can_move (line 192) ... ok [INFO] [stdout] test src/game.rs - game::Game::new (line 105) ... ok [INFO] [stdout] test src/game.rs - game::Game::do_move (line 231) ... ok [INFO] [stdout] test src/game.rs - game::Game::state (line 147) ... ok [INFO] [stdout] test /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/doc-comment-0.3.3/src/lib.rs - examples_in_readme (line 198) ... ok [INFO] [stdout] test src/lib.rs - (line 19) ... ok [INFO] [stdout] test src/ai.rs - ai (line 4) ... ok [INFO] [stdout] test src/ai.rs - ai::best_position (line 293) ... ok [INFO] [stdout] test src/ai.rs - ai::Opponent::get_move (line 79) ... ok [INFO] [stdout] test src/ai.rs - ai::Opponent::evaluate_game (line 108) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `"docker" "inspect" "d95564ca436df0ed83b220673436d0d545be499c7898fd28d555054fc63f4120"` [INFO] running `"docker" "rm" "-f" "d95564ca436df0ed83b220673436d0d545be499c7898fd28d555054fc63f4120"` [INFO] [stdout] d95564ca436df0ed83b220673436d0d545be499c7898fd28d555054fc63f4120