Add remote install failure harness with 20 SSH host profiles#10505
Draft
alokedesai wants to merge 1 commit intomasterfrom
Draft
Add remote install failure harness with 20 SSH host profiles#10505alokedesai wants to merge 1 commit intomasterfrom
alokedesai wants to merge 1 commit intomasterfrom
Conversation
Builds a reusable test harness under script/remote-install-harness/ that reproduces each CSV failure family for the remote-server install script. The harness starts a local sshd on port 2222, creates per-profile user accounts, and runs the install_remote_server.sh template (with substituted placeholders pointing at a fake Python HTTP server) over SSH. Profiles covered: - 00: baseline normal install (succeeds) - 01: missing curl (wget fallback) - 02: missing wget (curl only) - 03: no HTTP client (exit 3, SCP fallback trigger) - 04: missing tar (exit 127) - 05: unsupported arch via mocked uname (exit 2) - 06: DNS failure (curl exit 6) - 07: connection refused (curl exit 7) - 08: HTTP 403 (curl exit 22) - 09: HTTP 502 (curl exit 22) - 10: partial/truncated download (curl exit 18) - 11: read-only home directory (exit 1) - 12: permission-denied install dir (exit 1) - 13: no space / quota (curl exit 23) - 14: read-only filesystem (exit 1) - 15: tar ownership/permission failure (curl exit 23) - 16: startup-file (.bashrc) permission denied (succeeds with stderr) - 17: forced SSH disconnect (exit 255) - 18: missing bash (exit 127) - 19: TLS/CA verification failure (curl exit 77) - 20: download write failure (curl exit 23) Co-Authored-By: Oz <oz-agent@warp.dev>
4da87c2 to
a24ea38
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The remote-server installer had many production failure families, but we did not have a repeatable way to construct hosts that exhibit those conditions. Without live repro profiles, fixes could only be validated with unit tests or by inspecting raw CSV examples, which is not enough to prove end-to-end behavior across SSH, shell startup, download tools, filesystems, and disconnects.
Solution
script/remote-install-harness/run_harness.sh, which creates local SSH test users, starts an OpenSSH server, serves fake download artifacts, and runs the install script over SSH.Proof / validation
No screenshots are applicable because the proof is remote-host command output. The harness was run inside a privileged Ubuntu Docker container after integration:
00_baseline_normal: RESULT: EXPECTED_EXIT (exit 0).01_missing_curland02_missing_wgetboth exited0.3, missing tar exited5, and DNS/connection/HTTP/partial/TLS/download-write profiles exited4.255.Co-Authored-By: Oz oz-agent@warp.dev