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

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 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.