Skip to content

Commit 18e48b6

Browse files
TaylorMutchelezar
authored andcommitted
fix(cli): retry transient sync probe failures
Signed-off-by: Taylor Mutch <taylormutch@gmail.com>
1 parent 6f35d0e commit 18e48b6

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

  • crates/openshell-cli/src

crates/openshell-cli/src/ssh.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1940,6 +1940,28 @@ mod tests {
19401940
assert_eq!(output.matches("Host openshell-demo").count(), 1);
19411941
}
19421942

1943+
#[test]
1944+
fn sync_error_retry_filter_accepts_transport_failures() {
1945+
let err = miette::miette!("transport error: connection reset by peer");
1946+
assert!(sync_error_is_retryable(&err));
1947+
}
1948+
1949+
#[test]
1950+
fn sync_error_retry_filter_accepts_transient_ssh_probe_failures() {
1951+
let err = Err::<(), _>(miette::miette!(
1952+
"ssh probe exited with status exit status: 255"
1953+
))
1954+
.wrap_err("failed to resolve sandbox source path '/sandbox/ha-sync/ha-sync-upload'")
1955+
.unwrap_err();
1956+
assert!(sync_error_is_retryable(&err));
1957+
}
1958+
1959+
#[test]
1960+
fn sync_error_retry_filter_rejects_validation_failures() {
1961+
let err = miette::miette!("sandbox source path '/etc/passwd' resolves outside /sandbox");
1962+
assert!(!sync_error_is_retryable(&err));
1963+
}
1964+
19431965
#[test]
19441966
#[allow(unsafe_code)] // Test-only: env vars require unsafe in Rust 2024.
19451967
fn install_ssh_config_adds_include_once_and_updates_managed_file() {

0 commit comments

Comments
 (0)