Skip to content

Latest commit

 

History

History
49 lines (37 loc) · 2.32 KB

File metadata and controls

49 lines (37 loc) · 2.32 KB

TEST-NEEDS — a2ml_ex

CRG Grade: C — ACHIEVED 2026-04-04

CRG C — Test Coverage Achieved

CRG C gate requires: unit, smoke, build, P2P (property-based), E2E, reflexive, contract, aspect, and benchmark tests.

Category File Count Notes
Unit test/a2_ml_test.exs 13 Parser, renderer, trust levels, attestation
Smoke test/a2_ml_test.exs Covered by minimal parse/render tests
Build mix compile CI gate
Property/P2P test/a2ml_property_test.exs 6 Determinism, anti-symmetry, round-trips
E2E test/a2_ml_test.exs 1 Full parse/render/re-parse roundtrip
Reflexive test/a2ml_property_test.exs 1 compare(x,x) == :eq for all levels
Contract test/a2ml_contract_test.exs 11 Named invariants (error/ok guarantees)
Aspect test/a2ml_aspect_test.exs 11 Security, correctness, performance, resilience
Benchmark test/a2ml_bench_test.exs 4 Timing guards (parse/render/roundtrip)

Total: 48 tests, 0 failures

Running Tests

mix test

Test Taxonomy (Testing Taxonomy v1.0)

  • Unit: individual function correctness
  • Smoke: essential path does not crash
  • Build: compilation gate (mix compile)
  • Property/P2P: determinism, algebraic laws, invariants over many inputs
  • E2E: full parse → render → re-parse pipeline
  • Reflexive: compare(x,x) == :eq identity laws
  • Contract: named behavioural invariants (error-tuple guarantee, etc.)
  • Aspect: cross-cutting concerns (security input safety, performance bounds, resilience)
  • Benchmark: wall-clock regression guards

Remaining Gaps (Future Work)

  • Real fuzz harness (the tests/fuzz/placeholder.txt is a scorecard placeholder only)
  • Cross-implementation comparison benchmarks vs a2ml-rs and a2ml-deno
  • Concurrency stress tests (if GenServer is added)