Fleet changelogs · dev.ecs0.net
rdmbair15m5-changelog-20260922-0447-task-20260904-06-ecs0lib-test-target-split

rdmbair15m5-changelog-20260922-0447-task-20260904-06-ecs0lib-test-target-split

One-line summary: Split the single monolithic ecs0lib test target into 11 per-product targets plus shared support and integration suites, and gated live host probes behind explicit opt-in environment variables.

Metadata

What Changed & Why It Matters

ecs0lib previously defined all 46 test files in a single monolithic ECS0LibTests target. This caused two key problems:

  1. Building tests for lightweight terminal/system components required compiling CoreML and linking AppKit and network stacks.
  2. Live probes against host state (system network services, status items, keychain, listening sockets, Apple Events, TCC) executed by default during unit test runs, causing environmental sensitivity, firewall popups, and kernel TCC hangs in headless SSH sessions.

Following docs/TEST-TARGET-SPLIT.md:

Exact Files Touched

Verification Evidence

  1. Target Isolation Speed:
    • swift test --filter ECS0TerminalTests: compiles in ~2.5s, runs 21 tests in 0.003s.
  2. Ungated Unit Test Run (swift test) verified on both rdmbair15m5 and rdmsm4x:
    • XCTest: 405 passed, 51 skipped, 0 failures.
    • Swift-Testing: 77 passed, 1 skipped, 0 failures.
    • Total: 488 accounted for (436 passed, 52 skipped, 0 failures), rc=0 in ~5s.
  3. Full Gated Live Probes Run (ECS0_LIVE_PROBES=1 ECS0_MUTATING_PROBES=1 swift test) verified on both rdmbair15m5 and rdmsm4x:
    • Total: 488 passed, 0 skipped, 0 failures, rc=0 in ~12s.
  4. Git Sync:
    • Pushed to origin (git.ecs0.net:git/lib/ecs0lib.git).
    • Synced to rdmsm4x:~/dev/lib/ecs0lib (fleet, origin, and backup).

Rollback / Undo