|
| 1 | +# Test & Benchmark Requirements |
| 2 | + |
| 3 | +## Current State |
| 4 | +- Unit tests: NONE (no Haskell test files found, no test-suite in .cabal verified) |
| 5 | +- Integration tests: 1 Zig integration test (ABI/FFI template) |
| 6 | +- E2E tests: NONE |
| 7 | +- Benchmarks: NONE (benchmark dir has only README placeholder) |
| 8 | +- panic-attack scan: NEVER RUN |
| 9 | + |
| 10 | +## What's Missing |
| 11 | +### Point-to-Point (P2P) |
| 12 | +- Data/A2ML.hs (main module) — no tests |
| 13 | +- Data/A2ML/Types.hs — no tests |
| 14 | +- Data/A2ML/Parser.hs — no tests (parser is most critical) |
| 15 | +- Data/A2ML/Renderer.hs — no tests |
| 16 | +- Idris2 ABI definitions — no verification tests |
| 17 | +- Zig FFI — only template integration test |
| 18 | +- tests/fuzz/ contains only placeholder.txt |
| 19 | + |
| 20 | +### End-to-End (E2E) |
| 21 | +- Parse A2ML document and verify output |
| 22 | +- Render A2ML and verify format |
| 23 | +- Round-trip fidelity |
| 24 | +- QuickCheck / Hedgehog property-based tests for parser correctness |
| 25 | +- Error handling for malformed input |
| 26 | + |
| 27 | +### Aspect Tests |
| 28 | +- [ ] Security (untrusted A2ML input) |
| 29 | +- [ ] Performance (parsing large documents, lazy evaluation pitfalls) |
| 30 | +- [ ] Concurrency (N/A for library) |
| 31 | +- [ ] Error handling (partial parse, encoding issues) |
| 32 | +- [ ] Accessibility (N/A) |
| 33 | + |
| 34 | +### Build & Execution |
| 35 | +- [ ] cabal build — not verified |
| 36 | +- [ ] cabal test — not verified (no test-suite section found) |
| 37 | +- [ ] Self-diagnostic — none |
| 38 | + |
| 39 | +### Benchmarks Needed |
| 40 | +- Parse throughput vs Rust and Elixir implementations |
| 41 | +- Memory usage (Haskell lazy evaluation can hide space leaks) |
| 42 | +- Criterion benchmarks for parser and renderer |
| 43 | + |
| 44 | +### Self-Tests |
| 45 | +- [ ] panic-attack assail on own repo |
| 46 | +- [ ] Built-in doctor/check command (if applicable) |
| 47 | + |
| 48 | +## Priority |
| 49 | +- **HIGH** — 4 Haskell source modules with ZERO tests. For a Haskell library, the absence of property-based tests (QuickCheck/Hedgehog) is especially damning. The fuzz directory is empty. No benchmark code despite benchmark dir existing. |
0 commit comments