|
| 1 | +# TEST-NEEDS: typell |
| 2 | + |
| 3 | +## Current State |
| 4 | + |
| 5 | +| Category | Count | Details | |
| 6 | +|----------|-------|---------| |
| 7 | +| **Source modules** | 53 | Rust: typell-core (12: types, error, unify, infer, check, linear, effects, qtt, dimensional, session, proof, lib), typell-eclexia (3), typell-affinescript (3), typell-ephapax (3), typell-wokelang (3), typell-tangle (3), typell-betlang (3), typell-mylang (3), typell-oblibeny (3), typell-jtv (3), typell-phronesis (3), typell-errorlang (3), typell-vql (4) + 3 Idris2 ABI | |
| 8 | +| **Unit tests (inline)** | 398 | Distributed across all crates -- types=21, unify=31, proof=14, session=7, dimensional=10, etc. | |
| 9 | +| **Integration tests** | 2 files | core_comprehensive_tests.rs (95), vql_bridge_tests.rs (58) | |
| 10 | +| **E2E tests** | 0 | None | |
| 11 | +| **Benchmarks** | 0 | benches/.gitkeep ONLY | |
| 12 | + |
| 13 | +## What's Missing |
| 14 | + |
| 15 | +### P2P Tests |
| 16 | +- [ ] No tests for cross-language bridge correctness (e.g., typell-wokelang checks match wokelang semantics) |
| 17 | +- [ ] No tests for bridge interoperability (two language backends against same type) |
| 18 | + |
| 19 | +### E2E Tests (CRITICAL) |
| 20 | +- [ ] No test that type-checks a real program through the full pipeline |
| 21 | +- [ ] No test for all 10 type system levels (dependent, linear, session, QTT, effects, modal, dimensional, proof, epistemic, tropical) |
| 22 | +- [ ] No test for language backend integration with actual language compilers |
| 23 | + |
| 24 | +### Aspect Tests |
| 25 | +- [ ] **Security**: Type system = trust boundary; no soundness fuzzing |
| 26 | +- [ ] **Performance**: No benchmarks despite being performance-critical type checker |
| 27 | +- [ ] **Concurrency**: No parallel type checking tests |
| 28 | +- [ ] **Error handling**: No tests for unsatisfiable constraints, infinite unification, cyclic types |
| 29 | + |
| 30 | +### Benchmarks Needed (CRITICAL) |
| 31 | +- [ ] **benches/.gitkeep is EMPTY** -- phantom benchmarks |
| 32 | +- [ ] Type checking throughput (expressions/second) |
| 33 | +- [ ] Unification performance scaling with constraint count |
| 34 | +- [ ] QTT resource tracking overhead |
| 35 | +- [ ] Session type verification latency |
| 36 | +- [ ] Proof checking throughput |
| 37 | + |
| 38 | +### Self-Tests |
| 39 | +- [ ] No soundness self-check |
| 40 | +- [ ] No regression suite for type system properties |
| 41 | + |
| 42 | +## FLAGGED ISSUES |
| 43 | +- **398 inline tests across 13 crates is respectable** -- best inline coverage among non-Julia repos |
| 44 | +- **benches/.gitkeep = phantom benchmarks** -- a type checker with no performance measurements |
| 45 | +- **13 language backends (eclexia through vql) each have only ~10 inline tests** -- thin coverage per backend |
| 46 | +- **0 E2E for a 10-level type system** -- can't verify the type system actually works on real programs |
| 47 | +- **core_comprehensive_tests.rs (95 tests) is solid** for the kernel |
| 48 | + |
| 49 | +## Priority: P1 (HIGH) -- inline tests are decent but need E2E, benchmarks, and soundness proofs |
| 50 | + |
| 51 | +## FAKE-FUZZ ALERT |
| 52 | + |
| 53 | +- `tests/fuzz/placeholder.txt` is a scorecard placeholder inherited from rsr-template-repo — it does NOT provide real fuzz testing |
| 54 | +- Replace with an actual fuzz harness (see rsr-template-repo/tests/fuzz/README.adoc) or remove the file |
| 55 | +- Priority: P2 — creates false impression of fuzz coverage |
0 commit comments