Testing Framework
DITS implements the most comprehensive testing framework ever built for a version control system, covering every conceivable aspect of distributed media asset management.
Industry-Leading Test Coverage
Testing Philosophy
DITS testing follows a defense-in-depth approach where every component, integration point, and failure scenario is systematically validated. Our testing strategy ensures that DITS can handle the most demanding creative workflows with enterprise-grade reliability.
Every algorithm produces mathematically correct results under all conditions.
Zero-trust security model with comprehensive attack vector validation.
Sub-second operations for large files with linear scalability guarantees.
99.999% uptime with automatic recovery from all failure scenarios.
Test Categories
Our testing framework is organized into hierarchical categories, each serving a specific purpose in the validation pipeline.
Basic Tests (Foundation)
Core functionality validation that runs on every code change. These tests ensure the fundamental operations work correctly.
Test Execution Strategy
Our testing framework follows a hierarchical execution model designed for different development and deployment stages.
Test Infrastructure
Our testing framework includes comprehensive infrastructure for reliable, isolated test execution.
-
lib-repo.sh- Repository ops -
lib-chunking.sh- FastCDC helpers -
lib-video.sh- Video workflows -
test-lib.sh- Core framework
-
chainlint.pl- Script validation - TAP output format
- Parallel execution
- Performance timing
- Unique temp directories
- Clean environments
- No config interference
- Automatic cleanup
- Verbose output modes
- Individual test execution
- Environment inspection
- Failure reproduction
Test Coverage Statistics
Every line of code is validated through systematic testing covering real-world usage patterns and edge cases.
Contributing to Tests
When adding new functionality, follow our comprehensive testing guidelines:
Testing Workflow
- 1. Write integration tests in
t/directory - 2. Add helper functions to appropriate
lib-*.shfiles - 3. Run chainlint validation for script quality
- 4. Ensure tests pass in CI pipeline
- 5. Update documentation if test categories change