Skip to content

Align remote fallback test with availability diagnostic#1801

Merged
oferchen merged 2 commits into
masterfrom
establish-rsync-3.4.1-protocol-parity
Oct 31, 2025
Merged

Align remote fallback test with availability diagnostic#1801
oferchen merged 2 commits into
masterfrom
establish-rsync-3.4.1-protocol-parity

Conversation

@oferchen
Copy link
Copy Markdown
Owner

Summary

  • update the remote fallback missing-binary test to look for the helper-provided diagnostic instead of the spawn failure text

Testing

  • cargo test -p rsync-cli --lib -- --test-threads=1

https://chatgpt.com/codex/tasks/task_e_6905430b48248323b07fb6bfe3ed3f97

@oferchen oferchen merged commit 3cf4742 into master Oct 31, 2025
@oferchen oferchen deleted the establish-rsync-3.4.1-protocol-parity branch October 31, 2025 23:23
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 1 to +3
use super::common::*;
use super::*;
use rsync_core::fallback::describe_missing_fallback_binary;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Remove unused fallback helper import

The new use rsync_core::fallback::describe_missing_fallback_binary; is never referenced in this file, so cargo clippy --workspace --all-targets -- -Dwarnings will emit an unused_imports error and fail the lint job. Either drop the import or update the assertion to call describe_missing_fallback_binary so the helper is actually exercised.

Useful? React with 👍 / 👎.

oferchen added a commit that referenced this pull request May 17, 2026
…e) (#1795) (#4266)

Introduce a structured connection primitive that wraps the existing
`SshCommand` builder behind explicit `SshConnectConfig` and
`KeepAliveConfig` structs. This is the first concrete step in the SSH
transport chain (#1795 -> #1796 -> #1797 -> #1805 -> #1806) and lets
upstream call sites compose connect, auth, and session-setup steps from
a single config value instead of a long sequence of builder setters.

The new `SshConnection::connect_with_config(remote, &config)` entry point
stays synchronous and reuses the existing watchdog + stderr-drain
plumbing. Defaults mirror the historical `SshCommand::new` behaviour
(30 s connect timeout, 20 s keepalive interval, 3 allowed failures); a
`None` field disables the corresponding `-o ConnectTimeout` or
`-o ServerAlive*` injection. The async variant is reserved for task
#1801 and intentionally not introduced here, so no new runtime
dependencies land in this PR.

Unit coverage exercises the config defaults, the builder-setter round
trip, the rendered argv (timeout, keepalive, remote command ordering),
keepalive disabled / custom-value cases, sub-second rounding, and
user/host splitting. A unix-gated, env-guarded smoke test
(`OC_RSYNC_SSH_NET=1`) confirms an unreachable host surfaces an
io::Error within ~2x the configured timeout.
oferchen added a commit that referenced this pull request May 18, 2026
…e) (#1795) (#4266)

Introduce a structured connection primitive that wraps the existing
`SshCommand` builder behind explicit `SshConnectConfig` and
`KeepAliveConfig` structs. This is the first concrete step in the SSH
transport chain (#1795 -> #1796 -> #1797 -> #1805 -> #1806) and lets
upstream call sites compose connect, auth, and session-setup steps from
a single config value instead of a long sequence of builder setters.

The new `SshConnection::connect_with_config(remote, &config)` entry point
stays synchronous and reuses the existing watchdog + stderr-drain
plumbing. Defaults mirror the historical `SshCommand::new` behaviour
(30 s connect timeout, 20 s keepalive interval, 3 allowed failures); a
`None` field disables the corresponding `-o ConnectTimeout` or
`-o ServerAlive*` injection. The async variant is reserved for task
#1801 and intentionally not introduced here, so no new runtime
dependencies land in this PR.

Unit coverage exercises the config defaults, the builder-setter round
trip, the rendered argv (timeout, keepalive, remote command ordering),
keepalive disabled / custom-value cases, sub-second rounding, and
user/host splitting. A unix-gated, env-guarded smoke test
(`OC_RSYNC_SSH_NET=1`) confirms an unreachable host surfaces an
io::Error within ~2x the configured timeout.
oferchen added a commit that referenced this pull request May 18, 2026
…e) (#1795) (#4266)

Introduce a structured connection primitive that wraps the existing
`SshCommand` builder behind explicit `SshConnectConfig` and
`KeepAliveConfig` structs. This is the first concrete step in the SSH
transport chain (#1795 -> #1796 -> #1797 -> #1805 -> #1806) and lets
upstream call sites compose connect, auth, and session-setup steps from
a single config value instead of a long sequence of builder setters.

The new `SshConnection::connect_with_config(remote, &config)` entry point
stays synchronous and reuses the existing watchdog + stderr-drain
plumbing. Defaults mirror the historical `SshCommand::new` behaviour
(30 s connect timeout, 20 s keepalive interval, 3 allowed failures); a
`None` field disables the corresponding `-o ConnectTimeout` or
`-o ServerAlive*` injection. The async variant is reserved for task
#1801 and intentionally not introduced here, so no new runtime
dependencies land in this PR.

Unit coverage exercises the config defaults, the builder-setter round
trip, the rendered argv (timeout, keepalive, remote command ordering),
keepalive disabled / custom-value cases, sub-second rounding, and
user/host splitting. A unix-gated, env-guarded smoke test
(`OC_RSYNC_SSH_NET=1`) confirms an unreachable host surfaces an
io::Error within ~2x the configured timeout.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant