|
| 1 | +# Test & Benchmark Requirements |
| 2 | + |
| 3 | +## Current State |
| 4 | +- Unit tests: 14 pass / 0 fail (11 unit + 3 doc-tests) |
| 5 | +- Integration tests: NONE |
| 6 | +- E2E tests: NONE |
| 7 | +- Benchmarks: NONE (benchmark dir has only README placeholder) |
| 8 | +- panic-attack scan: NEVER RUN (feature dir exists but no report) |
| 9 | + |
| 10 | +## What's Missing |
| 11 | +### Point-to-Point (P2P) |
| 12 | +- lib.rs — 11 inline tests exist, reasonable for module size |
| 13 | +- parser.rs — tests exist but edge cases likely missing (malformed input, unicode, deeply nested structures) |
| 14 | +- renderer.rs — likely untested or minimally tested |
| 15 | +- types.rs — likely untested |
| 16 | +- error.rs — error paths and formatting not tested |
| 17 | +- tests/fuzz/ contains only placeholder.txt — no fuzzing |
| 18 | + |
| 19 | +### End-to-End (E2E) |
| 20 | +- Parse real-world A2ML files from other hyperpolymath repos |
| 21 | +- Round-trip (parse -> render -> parse) equality check |
| 22 | +- Cross-implementation compatibility with a2ml_ex, a2ml_gleam, a2ml-haskell |
| 23 | +- CLI integration if binary exists |
| 24 | + |
| 25 | +### Aspect Tests |
| 26 | +- [ ] Security (untrusted A2ML input, DoS via deeply nested structures) |
| 27 | +- [ ] Performance (large document parsing) |
| 28 | +- [ ] Concurrency (N/A for library) |
| 29 | +- [ ] Error handling (all error.rs variants reachable and tested) |
| 30 | +- [ ] Accessibility (N/A) |
| 31 | + |
| 32 | +### Build & Execution |
| 33 | +- [x] cargo build — clean |
| 34 | +- [x] cargo test — 14 pass, 0 fail |
| 35 | +- [ ] Self-diagnostic — none |
| 36 | + |
| 37 | +### Benchmarks Needed |
| 38 | +- Parse throughput (Criterion benchmarks) |
| 39 | +- Memory allocation profile |
| 40 | +- Comparison vs a2ml_ex (BEAM) and a2ml-deno (V8) |
| 41 | + |
| 42 | +### Self-Tests |
| 43 | +- [ ] panic-attack assail on own repo |
| 44 | +- [ ] Built-in doctor/check command (if applicable) |
| 45 | + |
| 46 | +## Priority |
| 47 | +- **MEDIUM** — 5 source files with 14 tests is decent ratio but renderer and types likely lack coverage. Fuzz directory is empty. No benchmarks despite benchmark dir existing. As the Rust reference implementation, this should have the most comprehensive tests of all A2ML libraries. |
0 commit comments