[INFO] fetching crate tsunagu 0.1.1...
[INFO] testing tsunagu-0.1.1 against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739-1
[INFO] extracting crate tsunagu 0.1.1 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate tsunagu 0.1.1
[INFO] finished tweaking crates.io crate tsunagu 0.1.1
[INFO] tweaked toml for crates.io crate tsunagu 0.1.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate tsunagu 0.1.1 on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate tsunagu 0.1.1 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 07529ff1004c5cf4fcab2ee5c7e2ccdec99da9a54c3a8e0a42247fb0c3714698
[INFO] running `Command { std: "docker" "start" "-a" "07529ff1004c5cf4fcab2ee5c7e2ccdec99da9a54c3a8e0a42247fb0c3714698", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "07529ff1004c5cf4fcab2ee5c7e2ccdec99da9a54c3a8e0a42247fb0c3714698", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "07529ff1004c5cf4fcab2ee5c7e2ccdec99da9a54c3a8e0a42247fb0c3714698", kill_on_drop: false }`
[INFO] [stdout] 07529ff1004c5cf4fcab2ee5c7e2ccdec99da9a54c3a8e0a42247fb0c3714698
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1f849be8e3655d3457fb4efbc363089ace355e895cdb08a8428b45853ea697d1
[INFO] running `Command { std: "docker" "start" "-a" "1f849be8e3655d3457fb4efbc363089ace355e895cdb08a8428b45853ea697d1", kill_on_drop: false }`
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tsunagu v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.19s
[INFO] running `Command { std: "docker" "inspect" "1f849be8e3655d3457fb4efbc363089ace355e895cdb08a8428b45853ea697d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1f849be8e3655d3457fb4efbc363089ace355e895cdb08a8428b45853ea697d1", kill_on_drop: false }`
[INFO] [stdout] 1f849be8e3655d3457fb4efbc363089ace355e895cdb08a8428b45853ea697d1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e868e08fbdbcd51dddd2ff6b58046ceb729d881f6dfbde8e9f17b2116267c07f
[INFO] running `Command { std: "docker" "start" "-a" "e868e08fbdbcd51dddd2ff6b58046ceb729d881f6dfbde8e9f17b2116267c07f", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling tsunagu v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 10.30s
[INFO] running `Command { std: "docker" "inspect" "e868e08fbdbcd51dddd2ff6b58046ceb729d881f6dfbde8e9f17b2116267c07f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e868e08fbdbcd51dddd2ff6b58046ceb729d881f6dfbde8e9f17b2116267c07f", kill_on_drop: false }`
[INFO] [stdout] e868e08fbdbcd51dddd2ff6b58046ceb729d881f6dfbde8e9f17b2116267c07f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e629d5707c110a98d785acfa1957c9a6c4ff73af1eda027a784e6fc7c516c33a
[INFO] running `Command { std: "docker" "start" "-a" "e629d5707c110a98d785acfa1957c9a6c4ff73af1eda027a784e6fc7c516c33a", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/tsunagu-c13a7364a43f8c4a)
[INFO] [stdout] 
[INFO] [stdout] running 205 tests
[INFO] [stdout] test daemon::tests::acquire_fails_when_already_running ... ok
[INFO] [stdout] test daemon::tests::acquire_removes_stale_pid ... ok
[INFO] [stdout] test daemon::tests::cleanup_when_no_files_exist ... ok
[INFO] [stdout] test daemon::tests::acquire_replaces_stale_pid_with_current ... ok
[INFO] [stdout] test daemon::tests::acquire_cleans_stale_pid_file_before_writing ... ok
[INFO] [stdout] test daemon::tests::acquire_then_drop_cleans_pid ... ok
[INFO] [stdout] test daemon::tests::acquire_writes_current_pid ... ok
[INFO] [stdout] test daemon::tests::acquire_twice_without_cleanup_fails_with_alive_checker ... ok
[INFO] [stdout] test daemon::tests::drop_without_any_writes_is_safe ... ok
[INFO] [stdout] test daemon::tests::app_name_is_stored ... ok
[INFO] [stdout] test daemon::tests::cleanup_removes_pid_even_if_socket_missing ... ok
[INFO] [stdout] test daemon::tests::is_running_false_for_garbage_pid_file ... ok
[INFO] [stdout] test daemon::tests::daemon_already_running_error_contains_pid ... ok
[INFO] [stdout] test daemon::tests::is_running_false_for_stale_pid_real ... ok
[INFO] [stdout] test daemon::tests::acquire_error_variant_matches_daemon_already_running ... ok
[INFO] [stdout] test daemon::tests::cleanup_removes_socket_even_if_pid_missing ... ok
[INFO] [stdout] test daemon::tests::is_running_true_when_pid_exists_and_alive ... ok
[INFO] [stdout] test daemon::tests::cleanup_then_reacquire ... ok
[INFO] [stdout] test daemon::tests::display_includes_app_name_and_pid_path ... ok
[INFO] [stdout] test daemon::tests::cleanup_is_idempotent ... ok
[INFO] [stdout] test daemon::tests::full_lifecycle_acquire_check_cleanup ... ok
[INFO] [stdout] test daemon::tests::cleanup_removes_files ... ok
[INFO] [stdout] test daemon::tests::is_running_false_for_empty_pid_file ... ok
[INFO] [stdout] test daemon::tests::is_running_detects_current_process_real ... ok
[INFO] [stdout] test daemon::tests::kill_zero_checker_detects_self ... ok
[INFO] [stdout] test daemon::tests::acquire_succeeds_when_not_running ... ok
[INFO] [stdout] test daemon::tests::mock_checker_acquire_blocks_when_alive ... ok
[INFO] [stdout] test daemon::tests::is_running_false_when_no_pid_file ... ok
[INFO] [stdout] test daemon::tests::kill_zero_checker_rejects_nonexistent ... ok
[INFO] [stdout] test daemon::tests::drop_cleans_up ... ok
[INFO] [stdout] test daemon::tests::mock_checker_is_running_depends_on_pid_file_parse ... ok
[INFO] [stdout] test daemon::tests::new_daemon_not_running ... ok
[INFO] [stdout] test daemon::tests::mock_checker_acquire_with_no_existing_pid_file ... ok
[INFO] [stdout] test daemon::tests::mock_checker_always_alive ... ok
[INFO] [stdout] test daemon::tests::process_alive_returns_false_for_nonexistent_pid ... ok
[INFO] [stdout] test daemon::tests::mock_checker_never_alive ... ok
[INFO] [stdout] test daemon::tests::is_running_false_when_pid_exists_but_dead ... ok
[INFO] [stdout] test daemon::tests::multiple_daemons_different_apps_coexist ... ok
[INFO] [stdout] test daemon::tests::new_uses_socket_path_defaults ... ok
[INFO] [stdout] test daemon::tests::mock_checker_acquire_succeeds_when_dead ... ok
[INFO] [stdout] test daemon::tests::process_alive_returns_false_for_pid_one_billion ... ok
[INFO] [stdout] test daemon::tests::multiple_writes_last_pid_wins ... ok
[INFO] [stdout] test daemon::tests::process_alive_returns_true_for_current_process ... ok
[INFO] [stdout] test daemon::tests::read_pid_accepts_u32_max ... ok
[INFO] [stdout] test daemon::tests::read_pid_handles_pid_with_carriage_return ... ok
[INFO] [stdout] test daemon::tests::read_pid_handles_pid_with_trailing_newline ... ok
[INFO] [stdout] test daemon::tests::read_pid_rejects_float ... ok
[INFO] [stdout] test daemon::tests::read_pid_rejects_hex ... ok
[INFO] [stdout] test daemon::tests::read_pid_rejects_multiple_numbers ... ok
[INFO] [stdout] test daemon::tests::read_pid_returns_none_for_empty_file ... ok
[INFO] [stdout] test daemon::tests::read_pid_returns_none_for_negative_number ... ok
[INFO] [stdout] test daemon::tests::read_pid_returns_none_when_missing ... ok
[INFO] [stdout] test daemon::tests::read_pid_returns_some_for_zero ... ok
[INFO] [stdout] test daemon::tests::read_pid_returns_written_pid ... ok
[INFO] [stdout] test daemon::tests::read_pid_trims_whitespace ... ok
[INFO] [stdout] test daemon::tests::socket_bidirectional_communication ... ok
[INFO] [stdout] test daemon::tests::socket_handshake_with_pid_lifecycle ... ok
[INFO] [stdout] test daemon::tests::system_process_checker_is_default_constructible ... ok
[INFO] [stdout] test daemon::tests::write_pid_creates_file ... ok
[INFO] [stdout] test daemon::tests::with_paths_preserves_exact_paths ... ok
[INFO] [stdout] test daemon::tests::with_paths_uses_custom_paths ... ok
[INFO] [stdout] test daemon::tests::write_pid_creates_parent_directories ... ok
[INFO] [stdout] test daemon::tests::write_pid_then_cleanup_then_read_returns_none ... ok
[INFO] [stdout] test daemon::tests::write_pid_overwrites_existing ... ok
[INFO] [stdout] test daemon::tests::write_pid_then_read_is_consistent ... ok
[INFO] [stdout] test error::tests::daemon_already_running_display ... ok
[INFO] [stdout] test error::tests::daemon_already_running_with_max_pid ... ok
[INFO] [stdout] test error::tests::daemon_already_running_with_pid_zero ... ok
[INFO] [stdout] test error::tests::daemon_not_running_display ... ok
[INFO] [stdout] test error::tests::daemon_not_running_empty_path ... ok
[INFO] [stdout] test error::tests::error_implements_std_error ... ok
[INFO] [stdout] test error::tests::error_is_debug_formattable ... ok
[INFO] [stdout] test error::tests::health_check_error_display ... ok
[INFO] [stdout] test error::tests::invalid_pid_file_display ... ok
[INFO] [stdout] test error::tests::io_error_from_conversion ... ok
[INFO] [stdout] test error::tests::io_error_preserves_kind ... ok
[INFO] [stdout] test error::tests::serialization_error_from_conversion ... ok
[INFO] [stdout] test error::tests::serialization_error_is_debug_formattable ... ok
[INFO] [stdout] test health::tests::builder_clone ... ok
[INFO] [stdout] test health::tests::builder_defaults_to_healthy ... ok
[INFO] [stdout] test health::tests::builder_unhealthy ... ok
[INFO] [stdout] test health::tests::builder_with_status_and_uptime ... ok
[INFO] [stdout] test health::tests::degraded_check ... ok
[INFO] [stdout] test health::tests::degraded_has_no_uptime_by_default ... ok
[INFO] [stdout] test health::tests::degraded_is_not_healthy_or_unhealthy ... ok
[INFO] [stdout] test health::tests::degraded_not_equal_to_unhealthy ... ok
[INFO] [stdout] test health::tests::degraded_status_equality_same_reason ... ok
[INFO] [stdout] test health::tests::degraded_status_inequality_different_reasons ... ok
[INFO] [stdout] test health::tests::deserialize_from_known_json_structure ... ok
[INFO] [stdout] test health::tests::deserialize_degraded_from_json ... ok
[INFO] [stdout] test health::tests::display_healthy ... ok
[INFO] [stdout] test health::tests::empty_reason_unhealthy ... ok
[INFO] [stdout] test health::tests::display_with_uptime ... ok
[INFO] [stdout] test health::tests::empty_service_name ... ok
[INFO] [stdout] test health::tests::deserialize_unhealthy_from_json ... ok
[INFO] [stdout] test health::tests::display_healthy_no_uptime_has_no_uptime_text ... ok
[INFO] [stdout] test health::tests::empty_version ... ok
[INFO] [stdout] test health::tests::from_json_rejects_garbage ... ok
[INFO] [stdout] test health::tests::fromstr_unhealthy_roundtrips ... ok
[INFO] [stdout] test health::tests::fromstr_degraded_roundtrips ... ok
[INFO] [stdout] test health::tests::from_json_returns_tsunagu_error ... ok
[INFO] [stdout] test health::tests::display_unhealthy ... ok
[INFO] [stdout] test health::tests::display_degraded ... ok
[INFO] [stdout] test health::tests::display_format_with_version ... ok
[INFO] [stdout] test health::tests::empty_reason_degraded ... ok
[INFO] [stdout] test health::tests::fromstr_rejects_empty_string ... ok
[INFO] [stdout] test health::tests::fromstr_rejects_garbage ... ok
[INFO] [stdout] test health::tests::health_check_clone ... ok
[INFO] [stdout] test health::tests::health_check_debug_format ... ok
[INFO] [stdout] test health::tests::health_check_equality_same ... ok
[INFO] [stdout] test health::tests::health_check_inequality_different_service ... ok
[INFO] [stdout] test health::tests::health_check_inequality_different_status ... ok
[INFO] [stdout] test health::tests::health_check_inequality_different_uptime ... ok
[INFO] [stdout] test health::tests::health_check_inequality_different_version ... ok
[INFO] [stdout] test health::tests::health_check_inequality_uptime_some_vs_none ... ok
[INFO] [stdout] test health::tests::health_check_usable_in_hash_set ... ok
[INFO] [stdout] test health::tests::health_checker_as_trait_object ... ok
[INFO] [stdout] test health::tests::health_checker_trait_object_degraded ... ok
[INFO] [stdout] test health::tests::health_checker_trait_object_dispatch ... ok
[INFO] [stdout] test health::tests::health_checker_trait_object_unhealthy ... ok
[INFO] [stdout] test health::tests::health_status_clone ... ok
[INFO] [stdout] test health::tests::health_status_debug_format ... ok
[INFO] [stdout] test health::tests::health_status_default_is_healthy ... ok
[INFO] [stdout] test health::tests::health_status_display ... ok
[INFO] [stdout] test health::tests::health_status_equality ... ok
[INFO] [stdout] test health::tests::healthy_check ... ok
[INFO] [stdout] test health::tests::health_status_usable_in_hash_set ... ok
[INFO] [stdout] test health::tests::parse_health_status_error_is_std_error ... ok
[INFO] [stdout] test health::tests::healthy_has_no_uptime_by_default ... ok
[INFO] [stdout] test health::tests::serde_roundtrip_degraded ... ok
[INFO] [stdout] test health::tests::serde_roundtrip_healthy ... ok
[INFO] [stdout] test health::tests::process_checker_trait_object_dispatch ... ok
[INFO] [stdout] test health::tests::serde_roundtrip_preserves_equality ... ok
[INFO] [stdout] test health::tests::serde_roundtrip_unhealthy ... ok
[INFO] [stdout] test health::tests::serde_roundtrip_without_uptime ... ok
[INFO] [stdout] test health::tests::simple_checker_cycle_all_states ... ok
[INFO] [stdout] test health::tests::serde_roundtrip_with_uptime ... ok
[INFO] [stdout] test health::tests::simple_checker_service_name ... ok
[INFO] [stdout] test health::tests::simple_checker_set_degraded ... ok
[INFO] [stdout] test health::tests::simple_checker_set_healthy_after_degraded ... ok
[INFO] [stdout] test health::tests::simple_checker_set_unhealthy ... ok
[INFO] [stdout] test health::tests::simple_checker_set_healthy_after_unhealthy ... ok
[INFO] [stdout] test health::tests::simple_checker_debug_format ... ok
[INFO] [stdout] test health::tests::simple_checker_version ... ok
[INFO] [stdout] test health::tests::status_is_degraded ... ok
[INFO] [stdout] test health::tests::status_is_healthy ... ok
[INFO] [stdout] test health::tests::status_is_unhealthy ... ok
[INFO] [stdout] test health::tests::simple_checker_starts_healthy ... ok
[INFO] [stdout] test health::tests::status_reason_degraded ... ok
[INFO] [stdout] test health::tests::simple_checker_unicode_names ... ok
[INFO] [stdout] test health::tests::status_reason_healthy_is_none ... ok
[INFO] [stdout] test health::tests::status_reason_unhealthy ... ok
[INFO] [stdout] test health::tests::to_json_contains_service_field ... ok
[INFO] [stdout] test health::tests::to_json_degraded_contains_reason ... ok
[INFO] [stdout] test health::tests::to_json_contains_status_field ... ok
[INFO] [stdout] test health::tests::to_json_produces_valid_json ... ok
[INFO] [stdout] test daemon::tests::read_pid_returns_none_for_non_numeric_content ... ok
[INFO] [stdout] test health::tests::to_json_unhealthy_contains_reason ... ok
[INFO] [stdout] test health::tests::try_from_str_healthy ... ok
[INFO] [stdout] test health::tests::try_from_str_rejects_garbage ... ok
[INFO] [stdout] test health::tests::unhealthy_check ... ok
[INFO] [stdout] test health::tests::unhealthy_has_no_uptime_by_default ... ok
[INFO] [stdout] test health::tests::unhealthy_is_not_healthy_or_degraded ... ok
[INFO] [stdout] test health::tests::unhealthy_status_equality_same_reason ... ok
[INFO] [stdout] test health::tests::unhealthy_status_inequality_different_reasons ... ok
[INFO] [stdout] test health::tests::unicode_reason ... ok
[INFO] [stdout] test health::tests::unicode_service_name ... ok
[INFO] [stdout] test daemon::tests::system_process_checker_rejects_nonexistent_pid ... ok
[INFO] [stdout] test health::tests::from_json_roundtrip ... ok
[INFO] [stdout] test health::tests::with_uptime_zero_is_valid ... ok
[INFO] [stdout] test health::tests::with_uptime_chainable ... ok
[INFO] [stdout] test shutdown::tests::cloned_controllers_share_state ... ok
[INFO] [stdout] test socket::tests::app_name_with_dots ... ok
[INFO] [stdout] test health::tests::with_uptime_max_u64 ... ok
[INFO] [stdout] test shutdown::tests::shutdown_is_idempotent ... ok
[INFO] [stdout] test shutdown::tests::manual_shutdown_fires_token ... ok
[INFO] [stdout] test shutdown::tests::is_triggered_reflects_state ... ok
[INFO] [stdout] test shutdown::tests::token_fires_when_subscribed_after_shutdown ... ok
[INFO] [stdout] test shutdown::tests::multiple_tokens_all_fire ... ok
[INFO] [stdout] test health::tests::with_uptime ... ok
[INFO] [stdout] test socket::tests::app_name_with_hyphens ... ok
[INFO] [stdout] test socket::tests::app_name_with_underscores ... ok
[INFO] [stdout] test socket::tests::different_apps_get_different_paths ... ok
[INFO] [stdout] test socket::tests::empty_app_name_still_produces_path ... ok
[INFO] [stdout] test socket::tests::fallback_to_temp_dir_when_xdg_unset ... ok
[INFO] [stdout] test socket::tests::paths_are_absolute ... ok
[INFO] [stdout] test shutdown::tests::controller_drop_unblocks_waiters ... ok
[INFO] [stdout] test socket::tests::respects_xdg_runtime_dir ... ok
[INFO] [stdout] test health::tests::fromstr_healthy_roundtrips ... ok
[INFO] [stdout] test socket::tests::runtime_base_contains_app_name ... ok
[INFO] [stdout] test socket::tests::pid_file_contains_app_name ... ok
[INFO] [stdout] test socket::tests::pid_file_has_correct_extension ... ok
[INFO] [stdout] test socket::tests::same_app_produces_deterministic_paths ... ok
[INFO] [stdout] test socket::tests::socket_and_pid_have_different_extensions ... ok
[INFO] [stdout] test socket::tests::socket_and_pid_share_directory ... ok
[INFO] [stdout] test socket::tests::socket_path_contains_app_name ... ok
[INFO] [stdout] test socket::tests::runtime_base_is_parent_of_socket_path ... ok
[INFO] [stdout] test socket::tests::runtime_base_is_parent_of_pid_path ... ok
[INFO] [stdout] test socket::tests::socket_path_has_exactly_three_components_under_base ... ok
[INFO] [stdout] test socket::tests::xdg_runtime_dir_with_trailing_slash ... ok
[INFO] [stdout] test daemon::tests::acquire_twice_without_cleanup_succeeds_with_dead_checker ... ok
[INFO] [stdout] test health::tests::simple_checker_empty_names ... ok
[INFO] [stdout] test shutdown::tests::install_signal_handlers_does_not_fire_without_signal ... ok
[INFO] [stdout] test daemon::tests::read_pid_returns_none_for_overflow ... ok
[INFO] [stdout] test shutdown::tests::wait_ref_can_be_polled_in_select ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 205 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests tsunagu
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test src/shutdown.rs - shutdown (line 17) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 10) ... ok
[INFO] [stdout] test src/health.rs - health::HealthChecker (line 13) ... ok
[INFO] [stdout] test src/health.rs - health::HealthCheckBuilder (line 256) ... ok
[INFO] [stdout] test src/health.rs - health::SimpleHealthChecker (line 43) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.80s; merged doctests compilation took 0.79s
[INFO] running `Command { std: "docker" "inspect" "e629d5707c110a98d785acfa1957c9a6c4ff73af1eda027a784e6fc7c516c33a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e629d5707c110a98d785acfa1957c9a6c4ff73af1eda027a784e6fc7c516c33a", kill_on_drop: false }`
[INFO] [stdout] e629d5707c110a98d785acfa1957c9a6c4ff73af1eda027a784e6fc7c516c33a
