Skip to content

Refactor test libraries: align naming + collapse misnamed sub-projects (Option A)

Placeholder ppxd requested to merge refactor/test-libraries-naming-cleanup into main

Summary

Honest audit of tests/ revealed three structural issues; this PR fixes them via minimal cleanup ("Option A" — no aggressive shared-infra extraction):

  1. Squid.WindowsUpgradeE2ETests had naming drift — scope expanded to full Windows Tentacle E2E (register, deploy, multi-instance, diagnostic, capabilities, install) but kept the old "Upgrade" prefix. Renamed → Squid.WindowsTentacleE2ETests to match the Linux side's correct naming.

  2. Squid.LinuxTentacleE2E.TestService was not a project — just a directory with one bash script. Moved the script into Squid.LinuxTentacleE2ETests/Infrastructure/ where other fixture files live; deleted the empty parent dir.

  3. Linux stubs diverged in name from Windows after the Phase 12.M.L.D port — SquidHalibutStubServer / SquidHalibutStubAgent (Linux) vs StubSquidServer / StubAgent (Windows). Renamed Linux side to match.

Plus added CROSS-PLATFORM SYNC NOTE comments at the top of all 5 duplicated infrastructure files (StubSquidServer × 2, StubAgent × 2, LocalReleaseMirror Windows side; Linux LocalReleaseMirror already had one).

What this is NOT

❌ Aggressive shared-infra extraction. The two StubSquidServer copies are now nearly-identical but kept as parallel copies because:

  • Linux added a companion slim LinuxStubSquidServer that doesn't fit a shared layer
  • Each project still wants project-local conventions (collection naming, fixture suffix patterns, namespace structure)
  • Premature DRY locks down evolution — kept as parallel copies until either side diverges enough to justify the cross-project coupling cost

Files changed

  • Renames (git rename detection, ~99% similarity per file):
    • tests/Squid.WindowsUpgradeE2ETests/ → tests/Squid.WindowsTentacleE2ETests/
    • tests/Squid.WindowsUpgradeE2E.TestService/ → tests/Squid.WindowsTentacleE2E.TestService/
    • tests/Squid.WindowsUpgradeE2E.VersionStampedShim/ → tests/Squid.WindowsTentacleE2E.VersionStampedShim/
    • tests/Squid.LinuxTentacleE2ETests/Infrastructure/SquidHalibutStub{Server,Agent}.cs → Stub{SquidServer,Agent}.cs
  • Updates (in-place):
    • All .cs files in renamed projects: namespace updates
    • Squid.sln: project entries
    • .github/workflows/tentacle-windows-e2e.yml: paths + filter expressions
    • src/Squid.Core/Squid.Core.csproj: InternalsVisibleTo reference
    • 3 Linux test files: path-resolver call sites for the moved bash script
  • New comments (sync-trackers): 5 infrastructure files

Test plan

  • dotnet build green for all 4 renamed projects
  • dotnet test smoke green on macOS dev box (4 Windows diagnostic + 1 Linux stub-smoke)
  • CI Linux: existing 68 Linux E2E tests pass
  • CI Windows: existing 94 Windows E2E tests pass (after rename)
  • No functional changes — purely naming + organizational

🤖 Generated with Claude Code

Merge request reports

Loading