# Cross-language Test Checklist Use the runner layout from `skills/add-crosstest-language/SKILL.md`. ## Runner Layout - [ ] Server-language orchestrator lives under `/crosstest/`. - [ ] Client-language subprocess helper lives under `/crosstest/`. - [ ] No root-level package metadata is added only for crosstests. - [ ] Subprocess paths resolve from the package root or runner source location. ## Required Output The client helper prints its protocol type name before scenarios: ```text INFO typeName =TestData ``` Each scenario prints exactly one result line: ```text PASS scenario=N detail=... FAIL scenario=N error=... ``` The orchestrator fails when an expected scenario is missing, any `FAIL` line appears, or the subprocess exits non-zero. ## Required Scenarios Run each scenario for TCP and WebSocket: - [ ] Scenario 1: client sends fire-and-forget `TestData`; server validates `index` and `message`. - [ ] Scenario 2: server pushes `TestData(index=200, message=push from ... server)` to the client. - [ ] Scenario 3: client `sendRequest` receives `index=req.index*2` and `message=echo: req.message`. - [ ] Scenario 4: multiple concurrent `sendRequest` calls verify nonce and response routing. Split protocols into separate send-push and request phases if a communicator forbids normal listener and request listener registration for the same message type. ## Review Notes - [ ] Record the exact commands used to run both directions. - [ ] Record fixed ports and why they do not conflict with existing tests. - [ ] Record any unsupported transport or platform caveat.