- 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
44 lines
1.6 KiB
Markdown
44 lines
1.6 KiB
Markdown
# 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:
|
|
|
|
```text
|
|
INFO typeName <language>=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.
|