Testing Procedures
1. Build Commands
Windows
bash
scripts/build_windows.bat Debug
Linux
bash
scripts/build_linux.sh
NEVER
- •Run cmake directly
- •Use WSL for Windows builds
2. Test Execution
Windows
bash
./build-windows/bin/kalahari-tests.exe
Linux
bash
./build-linux/bin/kalahari-tests
3. Test Framework
- •Framework: Catch2 v3
- •Style: BDD (Behavior-Driven Development)
- •Location:
tests/
4. Result Interpretation
Output format
code
[PASS] TestName [FAIL] TestName - expected X, got Y
Summary
code
=============================================== All tests passed (42 assertions in 15 test cases)
or
code
=============================================== test cases: 15 | 14 passed | 1 failed assertions: 42 | 40 passed | 2 failed
5. What to Check
After implementation
- • All existing tests still pass?
- • No regressions (previously passing tests)?
- • New tests added for new functionality?
Test coverage
- • Core business logic tested?
- • Edge cases covered?
- • Error handling tested?
6. Manual Testing
When needed
- •UI changes (visual verification)
- •User interaction flows
- •Theme switching
- •Panel resizing/docking
Steps
- •Run application:
./build-windows/bin/kalahari.exe - •Test the specific feature
- •Verify visual appearance
- •Check responsiveness
7. Reporting Results
Pass
json
{
"decision": "pass",
"tests": "42/42 passed",
"summary": "All tests pass"
}
Fail
json
{
"decision": "fail",
"tests": "40/42 passed",
"failures": [
"TestSettings::save - expected true, got false",
"TestDocument::load - file not found"
],
"summary": "2 tests failed"
}
8. Common Issues
Build fails
- •Check CMake output for errors
- •Verify vcpkg dependencies
- •Check for missing includes
Tests fail
- •Read failure message carefully
- •Check if test assumptions still valid
- •Verify test data/fixtures
Flaky tests
- •Check for timing dependencies
- •Look for shared state between tests
- •Verify test isolation