docs: add test tool designs and iOS test plan (TODO-020,043,044,046,047)
Design documents for event replay, audio processing test, audio loopback test, and protocol probe tools. iOS audio session test plan with 28 scenarios and 3-phase automation approach.
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
# Protocol Probe Tool Design
|
||||
|
||||
**Date:** 2026-06-11
|
||||
**Status:** Design proposal
|
||||
**TODO:** TODO-047
|
||||
**Requirements:** SysRS-128, SRS-123
|
||||
**Effort:** L
|
||||
|
||||
## Purpose
|
||||
|
||||
Connect to a TeamSpeak 3-compatible server and enumerate its capabilities. Validates server compatibility, reports supported features, permissions, and protocol behavior for verification and compatibility tracking.
|
||||
|
||||
## Inputs
|
||||
|
||||
- Server address (host:port)
|
||||
- Optional: nickname, identity, server password
|
||||
|
||||
## Outputs
|
||||
|
||||
- Server info: version, platform, name, welcome message
|
||||
- Supported features: text messaging, voice, file transfer, channel permissions
|
||||
- Client permissions: talk power, poke power, channel join capabilities
|
||||
- Protocol compatibility report: pass/fail/warning per feature
|
||||
- Error codes encountered during probing
|
||||
|
||||
## Architecture
|
||||
|
||||
```text
|
||||
┌──────────┐ ┌───────────────┐ ┌──────────────────┐
|
||||
│ CLI │────>│ Probe Session │────>│ tsclientlib │
|
||||
│ (host, │ │ (chanora_ │ │ Protocol Adapter │
|
||||
│ port) │ │ protocol) │ │ │
|
||||
└──────────┘ └───────┬───────┘ └──────────────────┘
|
||||
│
|
||||
┌──────────v──────────┐
|
||||
│ Probe Commands: │
|
||||
│ 1. connect │
|
||||
│ 2. server info │
|
||||
│ 3. channel list │
|
||||
│ 4. client list │
|
||||
│ 5. send test msg │
|
||||
│ 6. voice capability│
|
||||
│ 7. permissions │
|
||||
└──────────┬──────────┘
|
||||
│
|
||||
┌──────────v──────────┐
|
||||
│ Compatibility │
|
||||
│ Report (JSON/text) │
|
||||
└────────────────────┘
|
||||
```
|
||||
|
||||
1. **Connect:** Establish session via `chanora_protocol` adapter
|
||||
2. **Query:** Execute probe commands sequentially with timeout
|
||||
3. **Collect:** Gather responses, errors, and timing for each probe
|
||||
4. **Report:** Output structured compatibility report
|
||||
|
||||
## Implementation Plan
|
||||
|
||||
- New Rust binary crate: `tools/protocol-probe/`
|
||||
- Reuse `chanora_protocol::adapter` for tsclientlib connection
|
||||
- Probe sequence: connect → server info → channels → clients → text test → voice check → permissions
|
||||
- Each probe step has independent timeout (5s default)
|
||||
- CLI interface: `protocol-probe <host[:port]> [--nick probe-bot] [--password <pw>] [--output json|text]`
|
||||
- JSON output for CI integration; text output for human readability
|
||||
|
||||
## Dependencies
|
||||
|
||||
- `chanora_protocol` (adapter, tsclientlib wrapper)
|
||||
- `chanora_core` (connection manager, event types)
|
||||
- `serde_json` (report output)
|
||||
- `clap` (CLI argument parsing)
|
||||
|
||||
## Verification
|
||||
|
||||
- Unit test: mock protocol responses, verify report generation
|
||||
- Integration test: probe local test server, verify all features detected
|
||||
- Demo: probe public TeamSpeak server, show compatibility report
|
||||
- CI: run against test server in CI environment, assert pass on required features
|
||||
Reference in New Issue
Block a user