[INFO] cloning repository https://github.com/axonibyte/reaper
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/axonibyte/reaper" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faxonibyte%2Freaper", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faxonibyte%2Freaper'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9c3ee79777cb0ac2327f474f33f100d7567c8af6
[INFO] testing axonibyte/reaper against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faxonibyte%2Freaper" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/axonibyte/reaper
[INFO] finished tweaking git repo https://github.com/axonibyte/reaper
[INFO] tweaked toml for git repo https://github.com/axonibyte/reaper written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/axonibyte/reaper on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/axonibyte/reaper 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ureq v3.4.0
[INFO] [stderr]   Downloaded ureq-proto v0.6.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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] b5b17bd9d2493c245b8367c99270eff81e83828ad870b501d886cc6a2cb8d791
[INFO] running `Command { std: "docker" "start" "b5b17bd9d2493c245b8367c99270eff81e83828ad870b501d886cc6a2cb8d791", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b5b17bd9d2493c245b8367c99270eff81e83828ad870b501d886cc6a2cb8d791", 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" "b5b17bd9d2493c245b8367c99270eff81e83828ad870b501d886cc6a2cb8d791" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b5b17bd9d2493c245b8367c99270eff81e83828ad870b501d886cc6a2cb8d791", 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" "b5b17bd9d2493c245b8367c99270eff81e83828ad870b501d886cc6a2cb8d791" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling find-msvc-tools v0.1.10
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling num-integer v0.1.47
[INFO] [stderr]    Compiling ref-cast v1.0.26
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling borrow-or-share v0.2.4
[INFO] [stderr]    Compiling cc v1.4.2
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling unicode-general-category v1.1.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling winnow v1.0.4
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling http v1.5.0
[INFO] [stderr]    Compiling num-bigint v0.4.8
[INFO] [stderr]    Compiling num-iter v0.1.46
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling outref v0.5.2
[INFO] [stderr]    Compiling toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling micromap v0.3.0
[INFO] [stderr]    Compiling base64 v0.23.1
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling toml_parser v1.1.3+spec-1.1.0
[INFO] [stderr]    Compiling num-cmp v0.1.0
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling vsimd v0.8.0
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling utf8-zero v0.8.1
[INFO] [stderr]    Compiling data-encoding v2.11.1
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling ureq-proto v0.6.1
[INFO] [stderr]    Compiling uuid-simd v0.8.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling jsonschema-regex v0.49.9
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling fraction v0.15.4
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling toml v0.9.12+spec-1.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling ref-cast-impl v1.0.26
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling fancy-regex v0.19.0
[INFO] [stderr]    Compiling fluent-uri v0.4.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling email_address v0.2.9
[INFO] [stderr]    Compiling reaper-core v0.1.1 (/opt/rustwide/workdir/core)
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling jsonschema-value v0.49.9
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling referencing v0.49.9
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling jsonschema v0.49.9
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling rustls-webpki v0.103.14
[INFO] [stderr]    Compiling reaper-manifest v0.1.1 (/opt/rustwide/workdir/manifest)
[INFO] [stderr]    Compiling ureq v3.4.0
[INFO] [stderr]    Compiling reaper-provider-proxmox v0.1.1 (/opt/rustwide/workdir/providers/proxmox)
[INFO] [stderr]    Compiling reaper-providers v0.1.1 (/opt/rustwide/workdir/providers/registry)
[INFO] [stderr]    Compiling reaper v0.1.1 (/opt/rustwide/workdir/cli)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2m 34s
[INFO] running `Command { std: "docker" "inspect" "b5b17bd9d2493c245b8367c99270eff81e83828ad870b501d886cc6a2cb8d791", 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" "b5b17bd9d2493c245b8367c99270eff81e83828ad870b501d886cc6a2cb8d791" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling reaper-provider-proxmox v0.1.1 (/opt/rustwide/workdir/providers/proxmox)
[INFO] [stderr]    Compiling reaper-core v0.1.1 (/opt/rustwide/workdir/core)
[INFO] [stderr]    Compiling reaper-manifest v0.1.1 (/opt/rustwide/workdir/manifest)
[INFO] [stderr]    Compiling reaper-providers v0.1.1 (/opt/rustwide/workdir/providers/registry)
[INFO] [stderr]    Compiling reaper v0.1.1 (/opt/rustwide/workdir/cli)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 32.57s
[INFO] running `Command { std: "docker" "inspect" "b5b17bd9d2493c245b8367c99270eff81e83828ad870b501d886cc6a2cb8d791", 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" "b5b17bd9d2493c245b8367c99270eff81e83828ad870b501d886cc6a2cb8d791" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.25s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/reaper-dbce3dcb7a06d6f1)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test proc::tests::a_dead_pid_is_gone_not_foreign ... ok
[INFO] [stdout] test proc::tests::a_reused_pid_is_recognized_as_not_ours ... ok
[INFO] [stdout] test proc::tests::a_zombie_is_not_alive ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/end_to_end.rs (/opt/rustwide/target/release/deps/end_to_end-57ed3577e788be12)
[INFO] [stdout] 
[INFO] [stdout] running 90 tests
[INFO] [stdout] test a_corrupt_store_is_a_sentence_not_a_panic ... ok
[INFO] [stdout] test a_heartbeat_for_a_forgotten_session_exits_quietly ... ok
[INFO] [stdout] test a_listing_whose_reader_goes_away_ends_quietly ... ok
[INFO] [stdout] test a_destroy_the_hypervisor_refuses_keeps_the_session_visible ... ok
[INFO] [stdout] test a_live_heartbeat_whose_expiry_decays_is_reported_stalled ... ok
[INFO] [stdout] test a_loop_that_cannot_start_does_not_cost_the_last_one_its_results ... ok
[INFO] [stdout] test a_heartbeat_whose_machine_is_gone_ends_itself ... ok
[INFO] [stdout] test a_missing_manifest_says_what_to_do_about_it ... ok
[INFO] [stdout] test a_heartbeat_is_started_and_stopped_with_the_session ... ok
[INFO] [stdout] test a_healthy_heartbeat_with_a_silent_log_is_not_stalled ... ok
[INFO] [stdout] test a_forward_sync_says_what_it_removed_there ... ok
[INFO] [stdout] test a_profile_ttl_reaches_the_machine ... ok
[INFO] [stdout] test a_project_with_no_session_is_told_which_verb_makes_one ... ok
[INFO] [stdout] test a_failed_down_keeps_the_sessions_workstation_files ... ok
[INFO] [stdout] test a_project_with_no_build_is_told_so_rather_than_failing_in_the_guest ... ok
[INFO] [stdout] test a_loop_that_fails_early_does_not_leave_the_last_green_run_in_place ... ok
[INFO] [stdout] test a_build_runs_in_the_declared_image_with_its_caches ... ok
[INFO] [stdout] test a_failed_command_still_gets_its_results_out ... ok
[INFO] [stdout] test a_project_with_no_reset_datasets_is_told_so ... ok
[INFO] [stdout] test a_cold_profile_mounts_no_cache_and_wins_on_environment ... ok
[INFO] [stdout] test a_run_before_any_sync_is_refused_not_run_against_nothing ... ok
[INFO] [stdout] test a_failing_step_stops_the_ones_after_it ... ok
[INFO] [stdout] test a_failed_run_takes_no_snapshot ... ok
[INFO] [stdout] test a_session_gets_a_blank_disk_sized_by_the_site_default ... ok
[INFO] [stdout] test a_named_point_that_does_not_exist_is_an_error_not_a_skip ... ok
[INFO] [stdout] test a_second_up_reuses_the_live_session_rather_than_making_another ... ok
[INFO] [stdout] test a_session_that_cannot_roll_anything_back_starts_no_trigger ... ok
[INFO] [stdout] test a_session_that_cannot_pre_fetch_is_still_a_usable_session ... ok
[INFO] [stdout] test a_manifest_elsewhere_decides_the_project_too ... ok
[INFO] [stdout] test a_session_that_was_never_synced_is_not_asked_for_results ... ok
[INFO] [stdout] test a_session_whose_storage_cannot_be_built_is_not_reported_as_ready ... ok
[INFO] [stdout] test a_run_may_execute_on_the_host_of_a_container_guest ... ok
[INFO] [stdout] test an_explicit_session_of_another_project_is_refused ... ok
[INFO] [stdout] test a_tenant_can_ask_for_a_bigger_pool_than_the_site_default ... ok
[INFO] [stdout] test an_unregistered_guest_is_refused_before_anything_is_created ... ok
[INFO] [stdout] test a_guest_without_a_build_is_skipped_not_fatal ... ok
[INFO] [stdout] test a_session_name_collision_across_projects_is_refused ... ok
[INFO] [stdout] test doctor_exits_two_when_it_cannot_run_at_all ... ok
[INFO] [stdout] test doctor_fails_a_missing_transport_binary ... ok
[INFO] [stdout] test an_expired_record_with_a_live_machine_is_still_reusable ... ok
[INFO] [stdout] test doctor_counts_a_refused_credential_as_one_failure ... ok
[INFO] [stdout] test a_snapshot_name_reaches_the_guest_as_data_not_shell ... ok
[INFO] [stdout] test doctor_judges_a_healthy_site_clean ... ok
[INFO] [stdout] test an_unknown_profile_is_refused_by_name ... ok
[INFO] [stdout] test a_run_takes_the_pristine_snapshot_and_says_what_it_captured ... ok
[INFO] [stdout] test a_session_goes_up_gets_listed_renewed_and_comes_back_down ... ok
[INFO] [stdout] test down_refuses_a_session_and_all_together ... ok
[INFO] [stdout] test a_sync_pushes_the_tree_and_brings_results_back ... ok
[INFO] [stdout] test down_forgets_a_session_whose_machine_something_else_already_collected ... ok
[INFO] [stdout] test down_with_nothing_says_so_gently ... ok
[INFO] [stdout] test an_up_stopped_by_the_cap_keeps_what_it_made ... ok
[INFO] [stdout] test list_is_honest_about_expiry_and_dead_heartbeats ... ok
[INFO] [stdout] test doctor_flags_a_record_whose_machine_is_gone ... ok
[INFO] [stdout] test a_verb_against_an_expired_session_says_so_rather_than_timing_out ... ok
[INFO] [stdout] test a_second_run_does_not_move_the_pristine_point ... ok
[INFO] [stdout] test doctor_warns_about_a_dead_heartbeat_without_failing ... ok
[INFO] [stdout] test reusing_a_session_that_never_became_ready_is_refused ... ok
[INFO] [stdout] test list_does_not_vouch_for_a_recycled_pid ... ok
[INFO] [stdout] test renew_with_an_explicit_ttl_uses_it ... ok
[INFO] [stdout] test every_declared_image_is_fetched_when_a_session_first_comes_up ... ok
[INFO] [stdout] test down_leaves_no_per_session_droppings_on_the_workstation ... ok
[INFO] [stdout] test down_with_a_manifest_collects_results_from_anywhere ... ok
[INFO] [stdout] test renew_survives_a_machine_the_sweeper_took ... ok
[INFO] [stdout] test every_forward_sync_excludes_what_the_manifest_says ... ok
[INFO] [stdout] test the_cap_counts_the_cluster_and_not_just_this_workstation ... ok
[INFO] [stdout] test a_canary_collected_is_the_sweeper_proven ... ok
[INFO] [stdout] test a_canary_nobody_collects_is_the_sweeper_absent ... ok
[INFO] [stdout] test the_cap_message_counts_strangers ... ok
[INFO] [stdout] test reset_rolls_back_every_declared_dataset ... ok
[INFO] [stdout] test results_are_collected_before_a_machine_is_destroyed ... ok
[INFO] [stdout] test selecting_one_guest_of_two_names_the_session_the_same_way ... ok
[INFO] [stdout] test snapshot_names_a_point ... ok
[INFO] [stdout] test up_does_not_reuse_a_session_whose_machine_is_gone ... ok
[INFO] [stdout] test up_refuses_a_missing_ssh_key_before_spending_a_machine ... ok
[INFO] [stdout] test up_delivers_the_runner_and_builds_the_storage_before_declaring_ready ... ok
[INFO] [stdout] test the_reset_trigger_is_started_with_a_session_that_wants_one ... ok
[INFO] [stdout] test up_names_the_process_it_leaves_running ... ok
[INFO] [stdout] test up_refuses_an_unwritable_store_before_spending_a_machine ... ok
[INFO] [stdout] test the_concurrency_cap_is_enforced ... ok
[INFO] [stdout] test test_skips_the_steps_a_project_does_not_have ... ok
[INFO] [stdout] test a_session_without_the_point_skips_only_itself ... ok
[INFO] [stdout] test sync_survives_a_session_that_cannot_be_reached ... ok
[INFO] [stdout] test an_up_nobody_answers_leaves_an_inspectable_tagged_session ... ok
[INFO] [stdout] test run_survives_a_session_that_cannot_be_reached ... ok
[INFO] [stdout] test test_runs_the_four_steps_in_order ... ok
[INFO] [stdout] test test_can_reset_to_a_named_point ... ok
[INFO] [stdout] test the_first_test_on_a_session_does_not_reset ... ok
[INFO] [stdout] test a_machine_that_never_answers_is_left_tagged_rather_than_torn_down ... ok
[INFO] [stdout] test down_keeps_a_session_it_could_not_destroy ... ok
[INFO] [stdout] test up_waits_for_a_machine_that_answers_not_merely_one_with_an_address ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 90 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 15.31s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/reaper_core-5fbbd8590390c777)
[INFO] [stdout] 
[INFO] [stdout] running 67 tests
[INFO] [stdout] test tests::a_configured_key_is_offered_and_it_is_the_only_one ... ok
[INFO] [stdout] test duration::tests::rough_formatting_is_for_reading_only ... ok
[INFO] [stdout] test duration::tests::rejects_what_it_should ... ok
[INFO] [stdout] test tests::a_corrupt_store_is_reported_not_silently_emptied ... ok
[INFO] [stdout] test tests::a_heartbeat_that_does_not_fit_inside_the_ttl_is_refused ... ok
[INFO] [stdout] test tests::a_job_knows_nothing_about_where_anything_lives ... ok
[INFO] [stdout] test tests::a_lock_whose_holder_died_does_not_wedge_the_next_run ... ok
[INFO] [stdout] test tests::a_multibyte_unit_is_a_parse_error_not_a_panic ... ok
[INFO] [stdout] test tests::a_blank_provider_name_is_refused ... ok
[INFO] [stdout] test tests::a_pre_epoch_time_is_clamped_to_zero_not_a_panic ... ok
[INFO] [stdout] test tests::a_heartbeat_with_comfortable_margin_is_accepted ... ok
[INFO] [stdout] test tests::a_guest_with_an_empty_template_is_refused ... ok
[INFO] [stdout] test duration::tests::exact_durations_round_trip ... ok
[INFO] [stdout] test tests::a_profile_overlays_the_verbs_environment ... ok
[INFO] [stdout] test tests::a_provider_without_diagnostics_says_so_rather_than_answering_ok ... ok
[INFO] [stdout] test tests::a_registry_with_no_guests_is_refused ... ok
[INFO] [stdout] test tests::a_command_is_not_quoted_because_it_is_a_shell_command ... ok
[INFO] [stdout] test tests::a_missing_configuration_names_where_it_looked ... ok
[INFO] [stdout] test tests::a_leftover_lock_file_of_any_age_is_not_a_lock ... ok
[INFO] [stdout] test tests::a_provider_with_no_section_is_refused ... ok
[INFO] [stdout] test duration::tests::rejects_overflow_rather_than_wrapping ... ok
[INFO] [stdout] test tests::a_session_round_trips_through_the_store ... ok
[INFO] [stdout] test tests::an_astronomical_duration_is_refused_not_a_panic ... ok
[INFO] [stdout] test duration::tests::parses_every_unit ... ok
[INFO] [stdout] test tests::a_store_that_has_never_been_written_is_empty_rather_than_broken ... ok
[INFO] [stdout] test tests::an_unknown_key_in_a_guest_entry_is_refused ... ok
[INFO] [stdout] test tests::a_good_configuration_parses ... ok
[INFO] [stdout] test tests::a_typoed_session_key_is_refused_not_silently_defaulted ... ok
[INFO] [stdout] test tests::format_rough_reads_right_at_the_unit_boundaries ... ok
[INFO] [stdout] test tests::a_wrapper_path_with_whitespace_is_refused_rather_than_mangled ... ok
[INFO] [stdout] test tests::both_directions_bound_a_transfer_that_stops_moving ... ok
[INFO] [stdout] test tests::a_store_from_another_version_is_refused_rather_than_misread ... ok
[INFO] [stdout] test tests::an_epoch_that_overflows_systemtime_is_corrupt_not_a_panic ... ok
[INFO] [stdout] test tests::a_failed_sync_surfaces_the_tools_own_stderr ... ok
[INFO] [stdout] test tests::session_defaults_apply_when_the_section_is_absent ... ok
[INFO] [stdout] test tests::an_ipv6_session_is_written_the_way_rsync_reads_it ... ok
[INFO] [stdout] test tests::remaining_time_runs_out_rather_than_going_negative ... ok
[INFO] [stdout] test tests::an_explicit_config_path_wins_outright ... ok
[INFO] [stdout] test tests::putting_the_same_name_twice_replaces_rather_than_duplicates ... ok
[INFO] [stdout] test tests::state_file_precedence_is_explicit_then_xdg_then_home ... ok
[INFO] [stdout] test tests::ssh_never_prompts_and_never_shares_a_known_hosts_file ... ok
[INFO] [stdout] test tests::the_default_pool_size_defaults ... ok
[INFO] [stdout] test tests::ssh_defaults_are_sane_and_overridable ... ok
[INFO] [stdout] test tests::the_forward_sync_reports_what_it_removed ... ok
[INFO] [stdout] test tests::an_unregistered_guest_has_no_template ... ok
[INFO] [stdout] test tests::the_default_pool_size_has_bounds_at_both_ends ... ok
[INFO] [stdout] test tests::the_transport_wrapper_carries_the_same_options_ssh_uses ... ok
[INFO] [stdout] test tests::the_forward_sync_mirrors_deletions_and_protects_the_results_directory ... ok
[INFO] [stdout] test tests::sessions_accumulate_and_can_be_removed ... ok
[INFO] [stdout] test tests::the_provider_table_is_carried_through_uninterpreted ... ok
[INFO] [stdout] test tests::with_no_key_configured_nothing_is_forced ... ok
[INFO] [stdout] test tests::zero_concurrency_is_refused_rather_than_silently_forbidding_everything ... ok
[INFO] [stdout] test tests::the_results_channel_never_deletes ... ok
[INFO] [stderr] + V=plain
[INFO] [stdout] test tests::updating_a_session_that_is_not_there_says_so ... ok
[INFO] [stderr] + export V
[INFO] [stderr] + printf %s plain
[INFO] [stdout] test tests::clearing_the_results_directory_empties_it_and_keeps_it ... ok
[INFO] [stdout] test tests::times_are_kept_to_whole_seconds_on_purpose ... ok
[INFO] [stdout] test tests::writes_replace_the_file_rather_than_editing_it_in_place ... ok
[INFO] [stdout] test tests::updating_a_session_moves_only_that_session ... ok
[INFO] [stderr] + V=
[INFO] [stdout] test tests::tilde_expands_only_where_it_means_a_home_directory ... ok
[INFO] [stderr] + export V
[INFO] [stderr] + printf %s 
[INFO] [stdout] test tests::the_ssh_key_expands_its_tilde ... ok
[INFO] [stderr] + V=it's a quote
[INFO] [stderr] + export V
[INFO] [stderr] + printf %s it's a quote
[INFO] [stderr] + V="double" and 'single'
[INFO] [stderr] + export V
[INFO] [stderr] + printf %s "double" and 'single'
[INFO] [stderr] + V=$HOME and ${NOPE} and $(echo pwned)
[INFO] [stderr] + export V
[INFO] [stderr] + printf %s $HOME and ${NOPE} and $(echo pwned)
[INFO] [stderr] + V=back`tick`s
[INFO] [stderr] + export V
[INFO] [stderr] + printf %s back`tick`s
[INFO] [stderr] + V=back\slash\
[INFO] [stderr] + export V
[INFO] [stderr] + printf %s back\slash\
[INFO] [stderr] + V=semi; colon && ampersand | pipe
[INFO] [stderr] + export V
[INFO] [stdout] test tests::a_failed_remote_command_reports_what_it_was_doing ... ok
[INFO] [stderr] + printf %s semi; colon && ampersand | pipe
[INFO] [stderr] + V=new
[INFO] [stderr] line
[INFO] [stderr] + export V
[INFO] [stderr] + printf %s new
[INFO] [stderr] line
[INFO] [stderr] + V=trailing space 
[INFO] [stderr] + export V
[INFO] [stderr] + printf %s trailing space 
[INFO] [stdout] test tests::put_executable_quotes_the_destination ... ok
[INFO] [stderr] + V=*
[INFO] [stderr] + export V
[INFO] [stderr] + printf %s *
[INFO] [stdout] test tests::hostile_environment_values_survive_a_real_shell ... ok
[INFO] [stdout] test tests::a_lock_a_live_process_holds_ends_in_locked_not_a_spin ... ok
[INFO] [stdout] test tests::a_real_round_trip_keeps_results_and_mirrors_deletions ... ok
[INFO] [stdout] test tests::put_executable_survives_a_chatty_child ... ok
[INFO] [stdout] test tests::a_control_command_that_never_answers_is_given_up_on_and_killed ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/reaper_manifest-dfb713a582af126e)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 67 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.65s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test tests::a_missing_file_is_a_read_error ... ok
[INFO] [stdout] test tests::a_container_verb_with_no_image_anywhere_is_refused ... ok
[INFO] [stdout] test tests::cache_names_that_mangle_to_one_variable_are_refused ... ok
[INFO] [stdout] test tests::a_verb_may_override_the_guests_execution_mode ... ok
[INFO] [stdout] test tests::a_container_run_inherits_the_build_image ... ok
[INFO] [stdout] test tests::a_run_that_names_an_image_keeps_it ... ok
[INFO] [stdout] test tests::every_problem_is_reported_not_just_the_first ... ok
[INFO] [stdout] test tests::resolution_fallout_stays_quiet_when_the_structure_is_already_wrong ... ok
[INFO] [stdout] test tests::every_example_verb_agrees_with_its_execution_mode ... ok
[INFO] [stdout] test tests::the_exec_conditional_is_checked_after_merging ... ok
[INFO] [stdout] test tests::a_manifest_that_states_exec_only_per_verb_is_complete ... ok
[INFO] [stdout] test tests::the_embedded_schema_compiles ... ok
[INFO] [stdout] test tests::resource_bounds_hold_for_every_resource ... ok
[INFO] [stdout] test tests::unparseable_toml_is_a_parse_error_not_an_invalid_manifest ... ok
[INFO] [stdout] test tests::profiles_are_read_but_not_interpreted ... ok
[INFO] [stdout] test tests::the_same_guest_in_two_spellings_is_refused ... ok
[INFO] [stdout] test tests::sync_exclusions_are_read_verbatim ... ok
[INFO] [stdout] test tests::a_container_guest_carries_its_toolchain_and_pre_pulled_images ... ok
[INFO] [stdout] test tests::a_project_that_runs_no_containers_declares_no_images ... ok
[INFO] [stdout] test tests::defaults_and_overrides_merge_across_scopes ... ok
[INFO] [stdout] test tests::every_shipped_example_loads ... ok
[INFO] [stdout] test tests::the_smallest_legal_manifest_needs_no_build_and_no_reset ... ok
[INFO] [stdout] test tests::an_image_without_a_real_registry_host_is_refused ... ok
[INFO] [stdout] test tests::profile_names_and_env_keys_are_held_to_their_patterns ... ok
[INFO] [stdout] test tests::invalid_fixtures_are_reported_as_invalid ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/reaper-manifest-validate.rs (/opt/rustwide/target/release/deps/reaper_manifest_validate-d35666906fc72767)
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/reaper_provider_proxmox-b0c77cad9633ce11)
[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 97 tests
[INFO] [stdout] test tags::tests::a_machine_with_no_expiry_reports_none ... ok
[INFO] [stdout] test tags::tests::both_separators_are_understood ... ok
[INFO] [stdout] test ids::tests::a_reference_that_is_not_an_identifier_is_refused ... ok
[INFO] [stdout] test tests::a_ca_file_nothing_reads_is_refused ... ok
[INFO] [stdout] test ids::tests::identifiers_inside_the_range_are_allowed ... ok
[INFO] [stdout] test tags::tests::setting_an_expiry_preserves_every_other_tag ... ok
[INFO] [stdout] test ids::tests::the_refusal_says_what_was_wrong ... ok
[INFO] [stdout] test tags::tests::an_expiry_round_trips ... ok
[INFO] [stdout] test tags::tests::setting_an_expiry_replaces_any_previous_one ... ok
[INFO] [stdout] test tags::tests::the_written_form_uses_semicolons ... ok
[INFO] [stdout] test tests::a_disk_key_is_a_disk_key_and_not_merely_a_prefix ... ok
[INFO] [stdout] test ids::tests::identifiers_outside_the_range_are_refused ... ok
[INFO] [stdout] test tags::tests::a_time_before_the_epoch_does_not_wrap_into_the_far_future ... ok
[INFO] [stdout] test tags::tests::setting_an_expiry_on_an_untagged_machine_works ... ok
[INFO] [stdout] test ids::tests::nonsense_ranges_are_refused_at_construction ... ok
[INFO] [stdout] test tests::a_listing_that_cannot_be_read_is_not_an_empty_cluster ... ok
[INFO] [stdout] test tests::a_machine_with_no_expiry_is_listed_with_none_rather_than_skipped ... ok
[INFO] [stdout] test tests::a_missing_or_unknown_scheme_is_refused ... ok
[INFO] [stdout] test tests::a_machine_that_is_not_a_template_is_refused_as_one ... ok
[INFO] [stdout] test tests::a_diskless_template_cannot_boot_a_clone_and_says_so ... ok
[INFO] [stdout] test tests::a_refused_credential_is_one_fail_not_a_pile ... ok
[INFO] [stdout] test tests::a_healthy_site_diagnoses_clean_with_honest_warns ... ok
[INFO] [stdout] test tests::a_rejected_credential_says_so_rather_than_looking_like_a_bug ... ok
[INFO] [stdout] test tests::a_session_that_would_fill_the_storage_is_refused_before_anything_is_made ... ok
[INFO] [stdout] test tests::a_missing_template_is_named_with_its_guests ... ok
[INFO] [stdout] test tests::a_leftover_is_never_destroyed_on_the_strength_of_our_own_failed_clone ... ok
[INFO] [stdout] test tests::a_genuine_credential_failure_is_not_mistaken_for_a_missing_machine ... ok
[INFO] [stdout] test tests::a_blank_disk_is_attached_at_the_requested_size ... ok
[INFO] [stdout] test tests::a_template_outside_the_permitted_range_is_refused_before_any_request ... ok
[INFO] [stdout] test tests::a_failed_task_is_reported_with_the_reason_the_api_gave ... ok
[INFO] [stdout] test tests::a_third_partys_expires_tag_is_not_ours_to_delete ... ok
[INFO] [stdout] test tests::a_token_only_its_owner_can_read_is_accepted ... ok
[INFO] [stdout] test tests::a_failed_clone_leaves_nothing_behind ... ok
[INFO] [stdout] test tests::a_machine_destroyed_mid_wait_is_gone_not_pending ... ok
[INFO] [stdout] test tests::a_token_others_can_read_is_refused ... ok
[INFO] [stdout] test tests::a_token_that_is_not_shaped_like_a_credential_is_refused ... ok
[INFO] [stdout] test tests::an_address_is_none_until_the_guest_agent_answers ... ok
[INFO] [stdout] test tests::an_agent_reply_shaped_as_a_bare_array_still_parses ... ok
[INFO] [stdout] test tests::a_session_that_fits_is_created ... ok
[INFO] [stdout] test tests::a_template_that_carries_its_own_disk_gets_no_second_one ... ok
[INFO] [stdout] test tests::a_blinking_api_does_not_fail_a_running_task ... ok
[INFO] [stdout] test tests::an_empty_pool_is_refused_with_a_reason ... ok
[INFO] [stdout] test tests::a_storage_under_the_floor_fails_the_diagnosis ... ok
[INFO] [stdout] test tests::an_unknown_key_in_the_provider_table_is_refused ... ok
[INFO] [stdout] test tests::an_unknown_tls_mode_is_refused_rather_than_defaulted ... ok
[INFO] [stdout] test tests::a_wrong_token_is_refused_by_the_stand_in ... ok
[INFO] [stdout] test tests::a_machine_that_cannot_be_given_an_expiry_is_destroyed_rather_than_leaked ... ok
[INFO] [stdout] test tests::a_storage_that_will_not_say_how_full_it_is_does_not_stop_a_session ... ok
[INFO] [stdout] test tests::an_ipv4_address_is_preferred_over_ipv6 ... ok
[INFO] [stdout] test tests::a_double_failure_names_the_machine_to_destroy_by_hand ... ok
[INFO] [stdout] test tests::asking_for_a_disk_with_nowhere_to_put_it_is_refused_clearly ... ok
[INFO] [stdout] test tests::ca_file_verification_needs_a_ca_file ... ok
[INFO] [stdout] test tests::an_unreachable_api_is_one_fail_not_a_pile ... ok
[INFO] [stdout] test tests::a_machine_that_exists_still_renews_and_starts ... ok
[INFO] [stdout] test tests::an_expired_machine_inside_the_window_is_the_sweepers_to_take ... ok
[INFO] [stdout] test tests::an_identifier_the_listing_cannot_see_is_stepped_over_rather_than_fatal ... ok
[INFO] [stdout] test tests::a_session_is_destroyable_even_though_its_template_is_protected ... ok
[INFO] [stdout] test tests::an_unreadable_listing_is_never_proof_that_a_machine_is_gone ... ok
[INFO] [stdout] test tests::a_stopped_machine_has_no_address_yet_rather_than_an_error ... ok
[INFO] [stdout] test tests::every_kind_of_disk_a_clone_copies_is_priced ... ok
[INFO] [stdout] test tests::destroying_a_stopped_machine_does_not_bother_stopping_it ... ok
[INFO] [stdout] test tests::every_address_the_guest_offers_is_kept_with_ipv4_first ... ok
[INFO] [stdout] test tests::from_table_refuses_what_its_pieces_refuse ... ok
[INFO] [stdout] test tests::every_operation_refuses_an_out_of_range_machine_before_the_network ... ok
[INFO] [stdout] test tests::every_certificate_in_a_ca_bundle_is_loaded ... ok
[INFO] [stdout] test tests::fractional_sizes_count_instead_of_costing_zero ... ok
[INFO] [stdout] test tests::https_endpoints_are_accepted ... ok
[INFO] [stdout] test tests::creating_when_every_identifier_is_taken_is_refused_clearly ... ok
[INFO] [stdout] test tests::plain_http_to_another_machine_is_refused ... ok
[INFO] [stdout] test tests::plain_http_to_loopback_is_allowed ... ok
[INFO] [stdout] test tests::disk_specs_are_read_the_way_proxmox_writes_them ... ok
[INFO] [stdout] test tests::refusing_a_disk_with_nowhere_to_put_it_creates_nothing ... ok
[INFO] [stdout] test tests::loopback_and_link_local_addresses_are_skipped ... ok
[INFO] [stdout] test tests::destroying_a_machine_the_sweeper_already_took_reports_it_gone ... ok
[INFO] [stdout] test tests::listing_reports_only_this_providers_machines ... ok
[INFO] [stdout] test tests::a_range_full_of_leftovers_is_refused_with_the_identifiers_named ... ok
[INFO] [stdout] test tests::destroying_a_running_machine_stops_it_first ... ok
[INFO] [stdout] test tests::session_names_are_bent_into_something_the_api_accepts ... ok
[INFO] [stdout] test tests::creating_clones_the_template_and_tags_it_with_an_expiry ... ok
[INFO] [stdout] test tests::a_v6_only_guest_still_yields_its_address ... ok
[INFO] [stdout] test tests::moving_an_expiry_preserves_tags_this_project_did_not_write ... ok
[INFO] [stdout] test tests::destroying_also_clears_disks_a_failed_create_could_have_left ... ok
[INFO] [stdout] test tests::room_is_checked_against_the_storage_that_is_actually_short ... ok
[INFO] [stdout] test tests::the_token_is_sent_on_every_request ... ok
[INFO] [stdout] test tests::room_is_counted_per_storage_and_includes_the_template_being_copied ... ok
[INFO] [stdout] test tests::identifier_allocation_avoids_machines_this_provider_cannot_see ... ok
[INFO] [stdout] test tests::pool_hygiene_names_the_machines_that_want_a_human ... ok
[INFO] [stdout] test tests::creating_tags_before_starting_and_does_not_start_at_all ... ok
[INFO] [stdout] test tests::the_disk_slot_is_configurable ... ok
[INFO] [stdout] test tests::protection_is_cleared_before_the_machine_is_ever_started ... ok
[INFO] [stdout] test tests::starting_stopping_and_destroying_do_what_they_say ... ok
[INFO] [stdout] test tests::the_template_itself_is_never_unprotected ... ok
[INFO] [stdout] test tests::starting_or_stopping_a_gone_machine_says_gone ... ok
[INFO] [stdout] test tests::renewing_a_gone_machine_says_gone_not_permission_denied ... ok
[INFO] [stdout] test tests::the_disk_is_attached_in_the_same_call_as_the_expiry ... ok
[INFO] [stdout] test tests::a_clone_timeout_names_the_possible_orphan ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/reaper_providers-5192378b07554fff)
[INFO] [stdout] test tests::a_task_that_never_finishes_times_out_and_destroys_nothing ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 97 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.05s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests reaper_core
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::an_unknown_provider_names_the_ones_that_exist ... ok
[INFO] [stdout] test tests::every_advertised_provider_can_actually_be_selected ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests reaper_manifest
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests reaper_provider_proxmox
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests reaper_providers
[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" "b5b17bd9d2493c245b8367c99270eff81e83828ad870b501d886cc6a2cb8d791", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b5b17bd9d2493c245b8367c99270eff81e83828ad870b501d886cc6a2cb8d791", kill_on_drop: false }`
[INFO] [stdout] b5b17bd9d2493c245b8367c99270eff81e83828ad870b501d886cc6a2cb8d791
