proto-socket/templates/language/CROSSTEST_CHECKLIST.md
toki c384516b47 feat: implement new communication patterns and add cross-test support
- 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
2026-04-12 07:53:31 +09:00

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.