Skip to content

Add integration tests for core client flows#1689

Merged
oferchen merged 1 commit into
masterfrom
add-tests-to-achieve-95%-coverage
Oct 30, 2025
Merged

Add integration tests for core client flows#1689
oferchen merged 1 commit into
masterfrom
add-tests-to-achieve-95%-coverage

Conversation

@oferchen
Copy link
Copy Markdown
Owner

Summary

  • add an integration suite that exercises end-to-end client copies with deletion, filters, and metadata preservation
  • verify progress observer behaviour and completion tracking when running client transfers with observers

Testing

  • cargo test

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

@oferchen oferchen merged commit 1711852 into master Oct 30, 2025
@oferchen oferchen deleted the add-tests-to-achieve-95%-coverage branch October 30, 2025 13:30
oferchen added a commit that referenced this pull request Apr 29, 2026
…#1686, #1689) (#3438)

Adds docs/audits/ssh-socketpair-vs-pipes.md comparing oc-rsync's current
two-pipe SSH stdio model against upstream rsync 3.4.1's socketpair-based
wire (pipe.c::piped_child, util1.c::fd_pair). Documents trade-offs,
cross-platform impact (Unix socketpair, Windows pipe fallback), six
findings, and a phased migration plan. The auxiliary stderr channel
already uses socketpair on Unix; this audit recommends extending the
same pattern to the wire.
oferchen added a commit that referenced this pull request May 1, 2026
…#1686, #1689) (#3438)

Adds docs/audits/ssh-socketpair-vs-pipes.md comparing oc-rsync's current
two-pipe SSH stdio model against upstream rsync 3.4.1's socketpair-based
wire (pipe.c::piped_child, util1.c::fd_pair). Documents trade-offs,
cross-platform impact (Unix socketpair, Windows pipe fallback), six
findings, and a phased migration plan. The auxiliary stderr channel
already uses socketpair on Unix; this audit recommends extending the
same pattern to the wire.
oferchen added a commit that referenced this pull request May 1, 2026
…nsport (#1938) (#3525)

Formalizes the SSH stdio transport audit at docs/audits/ssh-socketpair-vs-pipes.md
under tracker #1938, consolidating prior #1686 working notes (PR #3438), the
io_uring boundary documented for #1858 (PR #3418), and the stderr socketpair
shipped under #1689 (PR #3383). Restructures the document into the formal
seven-section layout (summary, upstream reference, current implementation,
trade-offs, decision matrix, recommendation, implementation notes) plus
findings and references.

Recommends keeping anonymous pipes for the SSH wire and not pursuing the
socketpair migration: splice(2) and vmsplice(2) require a pipe end, the
zero-copy plan in #1860 depends on that, and the unified-FD argument is
subsumed by the async-transport refactor (#2068, #1655). Closes #1687
(prototype socketpair wire) as do-not-implement and #1902 (verify wire
claim against rsync_io source) as verified.

Citations were re-checked against worktree source: builder.rs:300-301
(Stdio::piped on the wire), aux_channel.rs:263-285 (UnixStream::pair for
stderr, Unix only), connection.rs:30-39 (SshConnection struct),
mod.rs:57-75 (io_uring boundary). Upstream evidence verified against
target/interop/upstream-src/rsync-3.4.1/: pipe.c:48-97 (piped_child),
util1.c:74-96 (fd_pair), main.c:504-663 (do_cmd dispatch),
clientserver.c:116-148 (daemon TCP wire), socket.c:736-846 (sock_exec
test escape).
oferchen added a commit that referenced this pull request May 5, 2026
…#1686, #1689) (#3438)

Adds docs/audits/ssh-socketpair-vs-pipes.md comparing oc-rsync's current
two-pipe SSH stdio model against upstream rsync 3.4.1's socketpair-based
wire (pipe.c::piped_child, util1.c::fd_pair). Documents trade-offs,
cross-platform impact (Unix socketpair, Windows pipe fallback), six
findings, and a phased migration plan. The auxiliary stderr channel
already uses socketpair on Unix; this audit recommends extending the
same pattern to the wire.
oferchen added a commit that referenced this pull request May 5, 2026
…nsport (#1938) (#3525)

Formalizes the SSH stdio transport audit at docs/audits/ssh-socketpair-vs-pipes.md
under tracker #1938, consolidating prior #1686 working notes (PR #3438), the
io_uring boundary documented for #1858 (PR #3418), and the stderr socketpair
shipped under #1689 (PR #3383). Restructures the document into the formal
seven-section layout (summary, upstream reference, current implementation,
trade-offs, decision matrix, recommendation, implementation notes) plus
findings and references.

Recommends keeping anonymous pipes for the SSH wire and not pursuing the
socketpair migration: splice(2) and vmsplice(2) require a pipe end, the
zero-copy plan in #1860 depends on that, and the unified-FD argument is
subsumed by the async-transport refactor (#2068, #1655). Closes #1687
(prototype socketpair wire) as do-not-implement and #1902 (verify wire
claim against rsync_io source) as verified.

Citations were re-checked against worktree source: builder.rs:300-301
(Stdio::piped on the wire), aux_channel.rs:263-285 (UnixStream::pair for
stderr, Unix only), connection.rs:30-39 (SshConnection struct),
mod.rs:57-75 (io_uring boundary). Upstream evidence verified against
target/interop/upstream-src/rsync-3.4.1/: pipe.c:48-97 (piped_child),
util1.c:74-96 (fd_pair), main.c:504-663 (do_cmd dispatch),
clientserver.c:116-148 (daemon TCP wire), socket.c:736-846 (sock_exec
test escape).
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