- Add Transport class for unified communication layer - Implement new communicator patterns - Add VERSIONING.md for version management - Add crosstest files for Dart/Go integration testing - Update protocol documentation - Add new skills and templates for AI-assisted development - Various bug fixes and improvements to Dart implementation
1.6 KiB
1.6 KiB
Cross-language Test Checklist
Use the runner layout from skills/add-crosstest-language/SKILL.md.
Runner Layout
- Server-language orchestrator lives under
<server-language>/crosstest/. - Client-language subprocess helper lives under
<client-language>/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:
INFO typeName <language>=TestData
Each scenario prints exactly one result line:
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 validatesindexandmessage. - Scenario 2: server pushes
TestData(index=200, message=push from ... server)to the client. - Scenario 3: client
sendRequestreceivesindex=req.index*2andmessage=echo: req.message. - Scenario 4: multiple concurrent
sendRequestcalls 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.