Improve test isolation and cross-platform testing, and update the AI
skills. No SRS media server or proxy code changes; only tests, test
tools and skills change.
## Test ports
Every test layer gets its own port range below the Linux ephemeral range
(32768+), so tests run in parallel, alongside a human SRS or Docker
container, and a client socket never takes a port a test picked.
- Each test script takes one optional `SRS_TEST_PORT_BASE` and defaults
to its own 100-port slot: 11000-11700 for the eight proxy E2E scripts,
12100-12800 for the config-file, reload, GB28181 and RTC scripts. This
replaces `SRS_E2E_PORT_OFFSET` and the per-port `SRS_GB_*`,
`SRS_PLAIN_*` and `SRS_RTX_*` variables, so a Full tier sets no port
variables.
- The regression SRS runs on 13000+ through the `SRS_*_LISTEN` env, with
its pid and log in `/tmp/srs-regression`. `srs_test` adds
`-srs-rtmp-port`, `-srs-api-port` and `-srs-rtsp-port`, so it no longer
needs 1935, 1985 or 8554.
- Black-box tests allocate from 21000-25999 (`SRS_BLACKBOX_PORTS`), and
the custom-port RTSP case now allocates its port too. C++ utests use
26000-29999 (`SRS_UTEST_PORTS`).
- The Port Plan in `integration-tests.md` is the source of truth, with
every range, its owner, and the ports bound and still free.
## State Threads on every OS
- New `st-test.sh` detects the platforms and runs every ST test on each:
the local OS first, then Linux in Docker and Windows x64 in parallel,
with a summary per OS and the platforms not tested and why.
`st-test-runner.sh` runs one build.
- New `st-windows-test.sh`, opted in by `SRS_TEST_WINDOWS_HOST`, mirrors
the local checkout on a Windows host over SSH. It syncs a commit by
pushing to the branch's upstream, never `origin`.
- `full-tier-lock.sh` takes `--product`, so ST runs hold their own lock
and run in parallel with SRS tiers.
## Skills
- `srs-autopilot`: `tasks/tracker.md` lists every task file and its
state, and this skill's rows are owned by `SRS`. Each task gets its own
worktree and branch in every repository it changes. Tests are reported
by OS and CPU.
- `srs-develop`: `testable-code.md` covers the test platforms and
running tests in a subagent. New Step 5 verifies ST on Windows. Issue
titles start with the owning component: `SRS:`, `Proxy:`, `ST:` or
`Oryx:`.
- `internal-codemap-for-srs` and `internal-docs-for-srs`: the C++ test
map moves into `cpp-server.md`, `go-server.md` adds the Go proxy tests,
and the docs list the native Windows x64 coroutine doc and
`md_win64.asm`.
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>