Linux deploy E2E PR-2: first dispatch round-trip test (L-D1h echo bash)
Summary
-
PR-2 of P0 5.1 Linux deploy E2E rollout. PR-1 (#257) ported
StubSquidServer+ smoke. This PR adds the first real deploy test: server dispatches an echo script via Halibut RPC, listening agent runs bash, output round-trips back. - New:
SquidHalibutStubAgent(port of WindowsStubAgent, ~290 lines) +TentacleLinuxDeployE2ETests.cswithL-D1h_Listening_EchoBashScript_OutputCapturedAndExitZero. - Linux csproj now references
Squid.Tentacle(mirroring Windows project) — needed because productionLocalScriptServicelives there.
Why this matters
What this catches that the script-tier tests don't:
- Halibut serialization regressions on Linux (ProcessOutput truncation)
- LocalScriptService bash-spawn regression (PATH / shell resolution)
- Halibut listener/poller TLS handshake regression on Linux
- Production observe-loop polling timing
Mirror of Windows TentacleDeployE2ETests.Listening_EchoScript — closes the cross-OS coverage gap operators on mixed fleets relied on.
Follow-up PRs (P0 5.1 PR-3+)
Will add: non-zero exit propagation, multi-line output preservation, stderr capture, long-running scripts, concurrent dispatches, polling-mode round-trip, output-variable round-trip, file transfer. ~12 more tests mirroring Windows deploy suite — each follows the pattern this PR establishes.
Test plan
-
dotnet buildgreen -
Linux CI passes LD1h_Listening_EchoBashScript_OutputCapturedAndExitZero -
Existing 51 Linux E2E tests still pass