[INFO] cloning repository https://github.com/FactoryGameFan/factorio-oracle
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/FactoryGameFan/factorio-oracle" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFactoryGameFan%2Ffactorio-oracle", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFactoryGameFan%2Ffactorio-oracle'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e3d82b9029a1d9bb356a0ed98d13627d6031569c
[INFO] testing FactoryGameFan/factorio-oracle against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFactoryGameFan%2Ffactorio-oracle" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-4-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/FactoryGameFan/factorio-oracle
[INFO] finished tweaking git repo https://github.com/FactoryGameFan/factorio-oracle
[INFO] tweaked toml for git repo https://github.com/FactoryGameFan/factorio-oracle written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/FactoryGameFan/factorio-oracle on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/FactoryGameFan/factorio-oracle already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 57d43fb592f326c6adc553aa241e9564739d5bc6c609bdbb7acc2bb1b9e0d430
[INFO] running `Command { std: "docker" "start" "57d43fb592f326c6adc553aa241e9564739d5bc6c609bdbb7acc2bb1b9e0d430", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "57d43fb592f326c6adc553aa241e9564739d5bc6c609bdbb7acc2bb1b9e0d430", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "57d43fb592f326c6adc553aa241e9564739d5bc6c609bdbb7acc2bb1b9e0d430" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "57d43fb592f326c6adc553aa241e9564739d5bc6c609bdbb7acc2bb1b9e0d430", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "57d43fb592f326c6adc553aa241e9564739d5bc6c609bdbb7acc2bb1b9e0d430" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling fastrand v2.5.0
[INFO] [stderr]    Compiling clap_builder v4.6.7
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling clap_derive v4.6.7
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling clap v4.6.7
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling factorio-oracle v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 52.25s
[INFO] running `Command { std: "docker" "inspect" "57d43fb592f326c6adc553aa241e9564739d5bc6c609bdbb7acc2bb1b9e0d430", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "57d43fb592f326c6adc553aa241e9564739d5bc6c609bdbb7acc2bb1b9e0d430" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling factorio-oracle v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 25.47s
[INFO] running `Command { std: "docker" "inspect" "57d43fb592f326c6adc553aa241e9564739d5bc6c609bdbb7acc2bb1b9e0d430", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "57d43fb592f326c6adc553aa241e9564739d5bc6c609bdbb7acc2bb1b9e0d430" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/factorio-oracle/024df34c86b483c6/out/factorio_oracle-024df34c86b483c6)
[INFO] [stdout] 
[INFO] [stdout] running 255 tests
[INFO] [stdout] test args::tests::interactive_loads_a_scenario_and_never_creates ... ok
[INFO] [stdout] test args::tests::dump_data_passes_only_the_mod_directory_and_config ... ok
[INFO] [stdout] test args::tests::create_omits_map_gen_settings_when_there_are_none ... ok
[INFO] [stdout] test args::tests::preview_omits_optional_flags_that_were_not_set ... ok
[INFO] [stdout] test args::tests::preview_takes_an_output_path_and_no_mod_directory ... ok
[INFO] [stdout] test args::tests::create_passes_map_gen_settings_when_there_are_any ... ok
[INFO] [stdout] test install::tests::a_linux_install_still_wins_over_the_exe_candidate ... ok
[INFO] [stdout] test install::tests::an_install_whose_binary_will_not_run_is_never_picked ... ok
[INFO] [stdout] test install::tests::covers_every_candidate_the_four_repos_used ... ok
[INFO] [stdout] test install::tests::env_bin_is_first_when_set ... ok
[INFO] [stdout] test args::tests::create_also_passes_the_seed_on_the_command_line ... ok
[INFO] [stdout] test install::tests::an_exact_version_is_what_matches ... ok
[INFO] [stdout] test install::tests::candidates_are_unique ... ok
[INFO] [stdout] test install::tests::no_version_asked_for_takes_any_install_that_has_one ... ok
[INFO] [stdout] test install::tests::resolves_a_macos_bundles_binary_not_just_its_root ... ok
[INFO] [stdout] test install::tests::resolves_a_macos_app_bundle ... ok
[INFO] [stdout] test install::tests::resolves_a_path_pointing_straight_at_the_binary ... ok
[INFO] [stdout] test install::tests::resolves_a_linux_install_directory ... ok
[INFO] [stdout] test install::tests::returns_none_when_the_binary_is_missing ... ok
[INFO] [stdout] test install::tests::resolves_a_windows_install_directory ... ok
[INFO] [stdout] test install::tests::the_windows_steam_default_is_a_candidate ... ok
[INFO] [stdout] test lua::tests::escalates_again_when_the_next_level_also_collides ... ok
[INFO] [stdout] test lua::tests::escalates_the_level_when_the_value_would_close_the_bracket ... ok
[INFO] [stdout] test lua::tests::prelude_declares_one_local_per_entry ... ok
[INFO] [stdout] test lua::tests::prelude_is_empty_when_there_are_no_literals ... ok
[INFO] [stdout] test lua::tests::prelude_is_sorted_and_therefore_deterministic ... ok
[INFO] [stdout] test lua::tests::wraps_a_plain_value_at_level_zero ... ok
[INFO] [stdout] test numbers::tests::a_fixed_precision_formatter_would_fail_this ... ok
[INFO] [stdout] test numbers::tests::assert_round_trips_accepts_good_values ... ok
[INFO] [stdout] test numbers::tests::assert_round_trips_names_the_offender ... ok
[INFO] [stdout] test numbers::tests::every_bit_pattern_survives_a_round_trip ... ok
[INFO] [stdout] test outcome::tests::a_create_failure_after_the_sentinel_rules_the_version_mismatch_out ... ok
[INFO] [stdout] test outcome::tests::a_create_failure_with_no_sentinel_names_the_version_mismatch ... ok
[INFO] [stdout] test outcome::tests::a_missing_exit_code_fails_the_modes_that_need_one ... ok
[INFO] [stdout] test outcome::tests::create_fails_when_no_dump_was_written ... ok
[INFO] [stdout] test outcome::tests::create_succeeds_on_a_non_zero_exit_when_the_dump_exists ... ok
[INFO] [stdout] test outcome::tests::dump_data_fails_on_a_non_zero_exit_even_if_a_dump_is_present ... ok
[INFO] [stdout] test outcome::tests::dump_data_fails_on_exit_zero_with_no_dump ... ok
[INFO] [stdout] test outcome::tests::dump_data_succeeds_on_exit_zero_with_a_dump ... ok
[INFO] [stdout] test outcome::tests::interactive_always_succeeds_because_the_consumer_judges_it ... ok
[INFO] [stdout] test outcome::tests::preview_requires_exit_zero_and_the_file ... ok
[INFO] [stdout] test outcome::tests::read_only_never_runs_anything ... ok
[INFO] [stdout] test probe::tests::a_seed_alone_produces_settings_carrying_it ... ok
[INFO] [stdout] test probe::tests::contamination_reporting_can_be_turned_off ... ok
[INFO] [stdout] test probe::tests::deserialises_a_create_spec_with_a_mod ... ok
[INFO] [stdout] test probe::tests::deserialises_a_minimal_dump_data_spec ... ok
[INFO] [stdout] test install::tests::returns_none_for_a_path_that_does_not_exist ... ok
[INFO] [stdout] test probe::tests::mod_directory_name_carries_the_version_suffix ... ok
[INFO] [stdout] test probe::tests::no_settings_and_no_seed_means_no_settings_file ... ok
[INFO] [stdout] test probe::tests::rejects_an_unknown_mode ... ok
[INFO] [stdout] test probe::tests::settings_without_a_seed_are_passed_through_untouched ... ok
[INFO] [stdout] test probe::tests::every_mode_name_round_trips ... ok
[INFO] [stdout] test install::tests::reads_the_version_a_healthy_binary_prints ... ok
[INFO] [stdout] test probe::tests::the_seed_field_wins_over_a_seed_inside_the_settings ... ok
[INFO] [stdout] test provenance::check::tests::a_directory_that_matches_its_manifest_passes ... ok
[INFO] [stdout] test provenance::check::tests::a_file_cannot_be_a_fixture_and_a_not_fixture_at_once ... ok
[INFO] [stdout] test provenance::check::tests::a_file_named_by_neither_list_is_missing ... ok
[INFO] [stdout] test provenance::check::tests::a_manifest_with_no_ratchet_is_a_finding_of_its_own ... ok
[INFO] [stdout] test provenance::check::tests::a_not_fixture_must_say_why ... ok
[INFO] [stdout] test provenance::check::tests::a_not_fixture_with_no_file_is_dangling_too ... ok
[INFO] [stdout] test provenance::check::tests::an_entry_that_is_not_well_formed_is_reported_by_name ... ok
[INFO] [stdout] test provenance::check::tests::an_entry_with_no_file_is_dangling ... ok
[INFO] [stdout] test provenance::check::tests::every_list_comes_back_sorted ... ok
[INFO] [stdout] test provenance::check::tests::malformed_is_sorted_across_the_fixtures_and_not_fixtures_passes ... ok
[INFO] [stdout] test provenance::check::tests::summary_names_a_dangling_entry_when_called_directly ... ok
[INFO] [stdout] test provenance::check::tests::summary_states_the_exceeded_ratchet_with_both_numbers ... ok
[INFO] [stdout] test provenance::check::tests::the_ratchet_also_fails_when_a_gap_is_closed_and_the_number_is_not_lowered ... ok
[INFO] [stdout] test provenance::check::tests::the_ratchet_fails_when_another_unknown_arrives ... ok
[INFO] [stdout] test provenance::check::tests::the_ratchet_holds_when_the_count_is_exactly_the_declared_number ... ok
[INFO] [stdout] test provenance::check::tests::to_json_reports_the_exceeded_ratchet ... ok
[INFO] [stdout] test provenance::check::tests::to_json_reports_the_ok_ratchet ... ok
[INFO] [stdout] test provenance::check::tests::to_json_reports_the_slack_ratchet ... ok
[INFO] [stdout] test provenance::check::tests::to_json_reports_the_undeclared_ratchet_with_a_null_max_unknown ... ok
[INFO] [stdout] test provenance::manifest::tests::a_well_formed_entry_has_no_problem ... ok
[INFO] [stdout] test provenance::manifest::tests::an_absent_ratchet_is_not_the_same_as_zero ... ok
[INFO] [stdout] test provenance::manifest::tests::keeps_keys_it_does_not_know_about ... ok
[INFO] [stdout] test provenance::manifest::tests::parses_a_manifest_with_only_the_two_required_keys ... ok
[INFO] [stdout] test provenance::manifest::tests::parses_a_version_into_parts ... ok
[INFO] [stdout] test provenance::manifest::tests::rejects_a_missing_or_empty_evidence ... ok
[INFO] [stdout] test provenance::manifest::tests::rejects_a_version_that_is_not_three_numbers_or_unknown ... ok
[INFO] [stdout] test provenance::manifest::tests::rejects_an_entry_that_is_not_an_object ... ok
[INFO] [stdout] test provenance::manifest::tests::unknown_is_a_legal_version ... ok
[INFO] [stdout] test provenance::report::tests::a_clean_report_says_so_instead_of_printing_a_warning ... ok
[INFO] [stdout] test provenance::report::tests::a_fixture_newer_than_the_binary_is_neither_current_nor_stale ... ok
[INFO] [stdout] test provenance::report::tests::a_newer_fixture_says_newer_than_the_binary ... ok
[INFO] [stdout] test provenance::report::tests::a_version_that_will_not_parse_is_treated_as_unknown_rather_than_dropped ... ok
[INFO] [stdout] test provenance::report::tests::an_older_fixture_says_the_binary_is_newer_not_the_other_way_round ... ok
[INFO] [stdout] test provenance::report::tests::counts_only_the_fixtures_older_than_the_binary_as_stale ... ok
[INFO] [stdout] test provenance::report::tests::groups_by_recorded_version_oldest_first ... ok
[INFO] [stdout] test provenance::report::tests::sorts_by_number_and_not_by_string ... ok
[INFO] [stdout] test provenance::report::tests::the_rendered_report_names_the_binary_and_every_group ... ok
[INFO] [stdout] test provenance::report::tests::unknown_entries_are_listed_apart_from_the_versions ... ok
[INFO] [stdout] test provenance::tests::leaves_out_the_manifest_and_dotfiles ... ok
[INFO] [stdout] test provenance::tests::a_dot_directory_is_skipped_whole_not_just_the_dotfile ... ok
[INFO] [stdout] test provenance::tests::walks_a_tree_into_relative_forward_slash_paths ... ok
[INFO] [stdout] test provenance::tests::leaves_out_windows_os_detritus_case_insensitively ... ok
[INFO] [stdout] test refs::docs::tests::a_backslash_is_rejected_because_windows_treats_it_as_a_separator ... ok
[INFO] [stdout] test refs::docs::tests::a_drive_letter_is_rejected_because_it_replaces_a_path_rather_than_joining ... ok
[INFO] [stdout] test refs::docs::tests::a_fetch_writes_to_a_part_file_first ... ok
[INFO] [stdout] test refs::docs::tests::a_fetched_file_lands_at_its_cache_path ... ok
[INFO] [stdout] test refs::docs::tests::a_failed_fetch_leaves_nothing_behind_and_says_what_curl_said ... ok
[INFO] [stdout] test refs::docs::tests::a_path_that_could_escape_the_cache_is_rejected ... ok
[INFO] [stdout] test refs::docs::tests::a_path_that_curl_would_read_as_an_option_is_rejected ... ok
[INFO] [stdout] test refs::docs::tests::a_version_that_could_escape_the_cache_is_rejected ... ok
[INFO] [stdout] test refs::docs::tests::an_installed_version_answers_from_its_own_doc_dir ... ok
[INFO] [stdout] test refs::docs::tests::an_installed_version_missing_that_one_file_still_fetches_it ... ok
[INFO] [stdout] test refs::docs::tests::an_uncached_file_names_the_url_and_where_it_goes ... ok
[INFO] [stdout] test refs::docs::tests::curl_fails_on_an_error_status_and_writes_to_a_file ... ok
[INFO] [stdout] test refs::docs::tests::an_already_cached_file_is_used_before_the_network ... ok
[INFO] [stdout] test refs::docs::tests::the_url_is_the_version_then_the_path ... ok
[INFO] [stdout] test refs::git::tests::a_grep_line_parses_into_its_four_parts ... ok
[INFO] [stdout] test refs::git::tests::a_line_for_a_different_tag_is_not_parsed ... ok
[INFO] [stdout] test refs::git::tests::a_line_with_no_line_number_is_not_parsed ... ok
[INFO] [stdout] test refs::git::tests::adding_a_worktree_always_detaches ... ok
[INFO] [stdout] test refs::git::tests::an_empty_line_is_not_parsed ... ok
[INFO] [stdout] test refs::git::tests::checking_a_worktrees_head_reads_the_tree_not_the_shared_clone ... ok
[INFO] [stdout] test refs::git::tests::colons_inside_the_matched_text_are_kept ... ok
[INFO] [stdout] test refs::git::tests::fetching_tags_touches_no_working_tree ... ok
[INFO] [stdout] test refs::git::tests::grep_disables_colour_and_guards_the_pattern ... ok
[INFO] [stdout] test refs::git::tests::grep_puts_a_pathspec_after_a_double_dash ... ok
[INFO] [stdout] test refs::git::tests::removing_a_worktree_names_the_path_not_the_tag ... ok
[INFO] [stdout] test refs::git::tests::show_names_the_tag_and_the_path_together ... ok
[INFO] [stdout] test refs::git::tests::the_tag_check_asks_for_a_commit_and_stays_quiet ... ok
[INFO] [stdout] test refs::git::tests::the_timeouts_are_set_and_the_fetch_gets_the_longer_one ... ok
[INFO] [stdout] test refs::grep::tests::a_changed_value_reads_as_differs ... ok
[INFO] [stdout] test refs::grep::tests::a_differing_result_says_so_without_deciding_what_it_means ... ok
[INFO] [stdout] test refs::grep::tests::a_line_that_only_moved_is_still_identical ... ok
[INFO] [stdout] test refs::grep::tests::a_match_that_moved_to_another_file_is_a_difference ... ok
[INFO] [stdout] test refs::grep::tests::a_tag_matching_nothing_differs_from_one_that_matched ... ok
[INFO] [stdout] test refs::grep::tests::a_tag_that_git_would_read_as_an_option_never_reaches_git ... ok
[INFO] [stdout] test refs::grep::tests::a_tag_with_no_matches_is_reported_rather_than_dropped ... ok
[INFO] [stdout] test refs::grep::tests::a_trailing_newline_does_not_become_an_empty_hit ... ok
[INFO] [stdout] test refs::grep::tests::nothing_matched_renders_as_absence_rather_than_agreement ... ok
[INFO] [stdout] test refs::grep::tests::one_tag_is_never_a_comparison ... ok
[INFO] [stdout] test refs::grep::tests::one_tag_renders_without_a_tag_column ... ok
[INFO] [stdout] test refs::grep::tests::search_calls_git_once_per_tag_and_never_checks_anything_out ... ok
[INFO] [stdout] test refs::grep::tests::several_tags_render_with_a_tag_column_and_a_verdict ... ok
[INFO] [stdout] test refs::grep::tests::show_reports_a_missing_path_as_an_error ... ok
[INFO] [stdout] test refs::grep::tests::show_returns_the_file_at_that_tag ... ok
[INFO] [stdout] test refs::grep::tests::the_json_carries_every_field_the_text_does ... ok
[INFO] [stdout] test refs::docs::tests::real_doc_paths_are_accepted ... ok
[INFO] [stdout] test refs::grep::tests::the_same_answer_at_two_tags_reads_as_identical ... ok
[INFO] [stdout] test refs::docs::tests::the_cache_tree_mirrors_the_docs_tree ... ok
[INFO] [stdout] test refs::grep::tests::three_tags_all_agreeing_read_as_identical ... ok
[INFO] [stdout] test refs::grep::tests::three_tags_with_one_dissenter_read_as_differs ... ok
[INFO] [stdout] test refs::sync::tests::a_missing_clone_is_not_ok_even_with_a_tag_somehow_present ... ok
[INFO] [stdout] test refs::sync::tests::a_missing_tag_is_not_ok ... ok
[INFO] [stdout] test refs::sync::tests::a_readable_version_is_ok ... ok
[INFO] [stdout] test refs::grep::tests::two_tags_that_both_matched_nothing_are_not_identical ... ok
[INFO] [stdout] test refs::sync::tests::a_tag_that_does_not_resolve_is_absent_rather_than_an_error ... ok
[INFO] [stdout] test refs::sync::tests::a_tag_that_resolves_is_present ... ok
[INFO] [stdout] test refs::sync::tests::a_version_with_files_in_the_cache_reads_as_cached ... ok
[INFO] [stdout] test refs::sync::tests::a_nested_empty_directory_does_not_count_as_cached ... ok
[INFO] [stdout] test refs::sync::tests::absent_docs_do_not_make_it_not_ok ... ok
[INFO] [stdout] test refs::sync::tests::a_version_with_neither_reads_as_absent ... ok
[INFO] [stdout] test refs::sync::tests::an_empty_cache_directory_does_not_count_as_cached ... ok
[INFO] [stdout] test refs::sync::tests::the_json_carries_every_field_the_text_does ... ok
[INFO] [stdout] test refs::sync::tests::the_report_names_the_clone_and_says_head_was_not_moved ... ok
[INFO] [stdout] test refs::sync::tests::the_report_says_what_to_do_when_a_tag_is_missing ... ok
[INFO] [stdout] test refs::tests::a_directory_counts_as_a_clone_when_dot_git_is_a_directory ... ok
[INFO] [stdout] test refs::tests::a_directory_counts_as_a_clone_when_dot_git_is_a_file ... ok
[INFO] [stdout] test refs::tests::a_plain_directory_is_not_a_clone ... ok
[INFO] [stdout] test refs::tests::a_tag_that_could_escape_a_directory_is_rejected ... ok
[INFO] [stdout] test refs::tests::a_tag_that_git_would_read_as_an_option_is_rejected ... ok
[INFO] [stdout] test refs::tests::an_empty_tag_is_rejected ... ok
[INFO] [stdout] test refs::tests::an_explicit_cache_override_wins_over_everything ... ok
[INFO] [stdout] test refs::tests::an_explicit_clone_path_wins ... ok
[INFO] [stdout] test refs::tests::real_factorio_tags_are_valid ... ok
[INFO] [stdout] test refs::tests::the_clone_defaults_to_the_path_every_repo_already_uses ... ok
[INFO] [stdout] test refs::tests::the_last_resort_cache_is_under_the_home_directory ... ok
[INFO] [stdout] test refs::tests::the_two_dot_names_the_filesystem_treats_specially_are_rejected ... ok
[INFO] [stdout] test refs::tests::xdg_cache_home_is_used_when_there_is_no_override ... ok
[INFO] [stdout] test refs::worktree::tests::a_directory_that_exists_but_is_not_a_checkout_is_an_error ... ok
[INFO] [stdout] test refs::worktree::tests::a_failing_add_reports_what_git_said ... ok
[INFO] [stdout] test refs::worktree::tests::a_missing_tree_is_added_detached ... ok
[INFO] [stdout] test refs::worktree::tests::a_tag_that_could_escape_the_cache_is_rejected ... ok
[INFO] [stdout] test refs::worktree::tests::a_tag_that_git_would_read_as_an_option_never_reaches_git ... ok
[INFO] [stdout] test refs::worktree::tests::a_tree_whose_tag_has_moved_is_reported_rather_than_reused ... ok
[INFO] [stdout] test refs::worktree::tests::a_worktree_is_named_for_its_tag_under_the_cache ... ok
[INFO] [stdout] test refs::sync::tests::an_installed_version_reads_as_installed ... ok
[INFO] [stdout] test refs::sync::tests::checking_a_tag_never_fetches_and_never_checks_out ... ok
[INFO] [stdout] test refs::worktree::tests::an_existing_tree_is_reused_after_one_read_confirming_its_tag ... ok
[INFO] [stdout] test run::tests::a_create_run_scaffolds_the_mod_and_reports_success ... ok
[INFO] [stdout] test run::tests::a_dump_data_run_writes_no_mod ... ok
[INFO] [stdout] test refs::worktree::tests::removing_a_tree_that_is_not_there_is_not_an_error ... ok
[INFO] [stdout] test run::tests::a_failed_run_carries_the_output_tail ... ok
[INFO] [stdout] test refs::worktree::tests::removing_an_existing_tree_calls_git_so_the_clone_stays_tidy ... ok
[INFO] [stdout] test run::tests::a_mod_name_with_a_hyphen_or_underscore_survives ... ok
[INFO] [stdout] test run::tests::loaded_mods_are_read_off_the_games_own_output ... ok
[INFO] [stdout] test run::tests::literals_are_prepended_above_the_consumer_lua ... ok
[INFO] [stdout] test run::tests::loaded_mods_includes_core_which_active_mods_does_not ... ok
[INFO] [stdout] test scaffold::tests::a_mod_is_only_kept_out_by_naming_it_disabled ... ok
[INFO] [stdout] test scaffold::tests::base_is_never_written_as_disabled ... ok
[INFO] [stdout] test scaffold::tests::config_ini_isolates_writes_and_reads_the_bundled_data ... ok
[INFO] [stdout] test run::tests::output_with_no_such_lines_gives_an_empty_list ... ok
[INFO] [stdout] test scaffold::tests::config_ini_never_emits_the_portable_token ... ok
[INFO] [stdout] test scaffold::tests::info_json_version_is_never_hardcoded ... ok
[INFO] [stdout] test scaffold::tests::mod_list_with_a_probe_enables_both ... ok
[INFO] [stdout] test scaffold::tests::mod_list_with_no_probe_names_base_and_nothing_else ... ok
[INFO] [stdout] test scaffold::tests::the_active_mods_prelude_registers_no_event ... ok
[INFO] [stdout] test scaffold::tests::the_active_mods_prelude_writes_its_own_file ... ok
[INFO] [stdout] test run::tests::the_sentinel_is_found_on_stdout_which_is_where_the_game_puts_it ... ok
[INFO] [stdout] test spawn::tests::tail_does_not_split_a_multibyte_character ... ok
[INFO] [stdout] test spawn::tests::tail_returns_short_text_unchanged ... ok
[INFO] [stdout] test tests::version_is_not_empty ... ok
[INFO] [stdout] test trim::canonical::tests::a_long_literal_parses_the_way_python_does ... ok
[INFO] [stdout] test trim::canonical::tests::an_integer_stays_an_integer ... ok
[INFO] [stdout] test trim::canonical::tests::exponent_notation_becomes_a_float_as_python_reads_it ... ok
[INFO] [stdout] test scaffold::tests::info_json_takes_the_version_from_the_binary ... ok
[INFO] [stdout] test spawn::tests::tail_returns_the_last_bytes_not_the_first ... ok
[INFO] [stdout] test trim::canonical::tests::normalisation_reaches_all_the_way_down ... ok
[INFO] [stdout] test trim::canonical::tests::short_literals_are_untouched ... ok
[INFO] [stdout] test trim::defines::tests::a_missing_file_names_the_path_it_wanted ... ok
[INFO] [stdout] test trim::defines::tests::a_probe_dump_can_express_what_order_cannot ... ok
[INFO] [stdout] test trim::defines::tests::a_probe_dump_gives_the_value_the_game_actually_uses ... ok
[INFO] [stdout] test trim::defines::tests::a_probe_dump_missing_the_table_names_it ... ok
[INFO] [stdout] test trim::canonical::tests::keys_come_out_sorted_and_the_file_ends_with_one_newline ... ok
[INFO] [stdout] test trim::defines::tests::reads_the_named_table ... ok
[INFO] [stdout] test trim::prototypes::tests::a_field_the_prototype_does_not_have_is_skipped_not_nulled ... ok
[INFO] [stdout] test trim::prototypes::tests::a_fluid_box_with_no_connections_is_left_out_entirely ... ok
[INFO] [stdout] test trim::prototypes::tests::a_type_that_is_not_an_object_is_skipped_rather_than_panicking ... ok
[INFO] [stdout] test trim::prototypes::tests::keeps_only_the_asked_for_keys_inside_a_pipe_connection ... ok
[INFO] [stdout] test trim::prototypes::tests::keeps_the_asked_for_fields_and_records_the_type ... ok
[INFO] [stdout] test trim::prototypes::tests::picks_the_entity_even_when_four_types_share_the_name ... ok
[INFO] [stdout] test trim::defines::tests::uses_order_which_is_a_documentation_index_not_the_value ... ok
[INFO] [stdout] test trim::prototypes::tests::prefers_the_candidate_that_has_a_collision_box ... ok
[INFO] [stdout] test trim::defines::tests::a_missing_table_is_an_error_rather_than_an_empty_object ... ok
[INFO] [stdout] test trim::prototypes::tests::returns_none_for_a_name_no_type_has ... ok
[INFO] [stdout] test trim::prototypes::tests::the_fallback_is_alphabetical_so_it_is_deterministic ... ok
[INFO] [stdout] test trim::prototypes::tests::the_four_position_output_box_two_point_one_introduced_survives ... ok
[INFO] [stdout] test trim::renames::tests::a_missing_data_directory_gives_an_empty_table ... ok
[INFO] [stdout] test trim::renames::tests::lua_migrations_are_skipped_because_they_are_code ... ok
[INFO] [stdout] test trim::renames::tests::categories_and_names_come_out_sorted ... ok
[INFO] [stdout] test trim::renames::tests::reads_pairs_out_of_every_mods_migrations ... ok
[INFO] [stdout] test trim::spec::tests::an_unknown_key_is_rejected_rather_than_ignored ... ok
[INFO] [stdout] test trim::spec::tests::deserialises_the_factoriotools_shape ... ok
[INFO] [stdout] test trim::renames::tests::a_later_migration_wins ... ok
[INFO] [stdout] test trim::spec::tests::everything_except_entities_has_a_default ... ok
[INFO] [stdout] test trim::spec::tests::the_output_key_is_the_callers_choice_not_the_games ... ok
[INFO] [stdout] test trim::renames::tests::unreadable_and_odd_shaped_files_are_skipped_rather_than_fatal ... ok
[INFO] [stdout] test trim::tests::assembles_every_section_the_caller_asked_for ... ok
[INFO] [stdout] test trim::tests::a_named_entity_that_no_longer_exists_is_a_loud_failure ... ok
[INFO] [stdout] test version::tests::ignores_the_build_number_and_arch_digits ... ok
[INFO] [stdout] test version::tests::major_minor_is_what_a_mod_declares ... ok
[INFO] [stdout] test trim::tests::sections_the_caller_did_not_ask_for_are_absent ... ok
[INFO] [stdout] test trim::tests::numbers_are_normalised_on_the_way_out ... ok
[INFO] [stdout] test version::tests::parses_a_real_macos_steam_version_line ... ok
[INFO] [stdout] test version::tests::reads_only_the_first_line ... ok
[INFO] [stdout] test version::tests::returns_none_when_there_is_no_version ... ok
[INFO] [stdout] test version::tests::triple_is_what_a_provenance_entry_records ... ok
[INFO] [stdout] test install::tests::a_binary_that_never_answers_gives_up_instead_of_hanging ... ok
[INFO] [stdout] test install::tests::a_slow_binary_that_does_answer_is_still_read_in_full ... ok
[INFO] [stdout] test install::tests::a_grandchild_holding_the_pipe_does_not_lose_the_output ... ok
[INFO] [stdout] test install::tests::the_wait_for_a_held_pipe_is_bounded_by_the_deadline ... ok
[INFO] [stdout] test install::tests::the_binary_it_gave_up_on_is_killed_and_reaped ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 255 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.03s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/build/factorio-oracle/a0ac5f81f153b9f0/out/factorio_oracle-a0ac5f81f153b9f0)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/acceptance.rs (/opt/rustwide/target/release/build/factorio-oracle/57a6200667b5732d/out/acceptance-57a6200667b5732d)
[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] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test the_real_install_reproduces_it_too ... ok
[INFO] [stdout] test reading_defines_from_the_game_produces_the_same_bytes ... ok
[INFO] [stdout] test the_committed_fixture_is_reproduced_byte_for_byte ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/provenance.rs (/opt/rustwide/target/release/build/factorio-oracle/11f914e094a13cd0/out/provenance-11f914e094a13cd0)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test a_binary_older_than_the_fixtures_reports_them_as_newer ... ok
[INFO] [stdout] test a_manifest_written_by_another_repo_agrees_with_this_check ... ok
[INFO] [stdout] test every_fixture_records_where_it_came_from ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/real_game.rs (/opt/rustwide/target/release/build/factorio-oracle/e6ca5c3ac364d70a/out/real_game-e6ca5c3ac364d70a)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test a_real_create_run_answers_with_the_game ... ok
[INFO] [stderr]      Running tests/refs.rs (/opt/rustwide/target/release/build/factorio-oracle/2ea97060dbe0c965/out/refs-2ea97060dbe0c965)
[INFO] [stdout] test naming_a_mod_disabled_is_what_keeps_it_out ... ok
[INFO] [stdout] test a_real_dump_data_run_reports_the_bundled_mod_set ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test a_pattern_that_matches_nothing_is_an_answer_and_not_an_error ... ok
[INFO] [stdout] test the_cross_version_verdict_reproduces_a_claim_a_consumer_wrote_by_hand ... ok
[INFO] [stdout] test reading_at_a_tag_leaves_the_shared_clone_exactly_as_it_was ... ok
[INFO] [stdout] test a_worktree_is_a_real_tree_at_that_tag_and_removing_it_leaves_no_trace ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests factorio_oracle
[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] running `Command { std: "docker" "inspect" "57d43fb592f326c6adc553aa241e9564739d5bc6c609bdbb7acc2bb1b9e0d430", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "57d43fb592f326c6adc553aa241e9564739d5bc6c609bdbb7acc2bb1b9e0d430", kill_on_drop: false }`
[INFO] [stdout] 57d43fb592f326c6adc553aa241e9564739d5bc6c609bdbb7acc2bb1b9e0d430
