Testing
Tests live in tests/ and use Boost.Test.
Running tests
Run from the Visual Studio Test Explorer, or via CTest in the build directory.
Conventions
- One test file per subsystem — e.g.
renderer.tests.cpp,sceneLoader.tests.cpp. - Every new feature or bug fix must include a corresponding test.
- Use the
test_render_api.cppstub for renderer-dependent tests that need a headless Vulkan context.
Current coverage
| File | Covers |
|---|---|
camera.tests.cpp | Camera matrices, frustum, physically-based params |
cascadeShadowCalculator.tests.cpp | CSM cascade split calculations |
colorTemperature.tests.cpp | Kelvin-to-RGB colour temperature conversion |
configuration.tests.cpp | Config loading and defaults |
console.tests.cpp | Developer console commands and log buffering |
drawCall.tests.cpp | Draw call batching and sorting |
freeFlyController.tests.cpp | Free-fly camera controller |
geometry.tests.cpp | Procedural geometry generation |
glitterPrimitiveModel.tests.cpp | Glitter primitive model creation |
gltfModel.tests.cpp | glTF model loading |
hwlayer.tests.cpp | Hardware layer (SDL window / context init) |
image.tests.cpp | Image loading (stb) |
inputMapper.tests.cpp | Input binding resolution |
keybindLoader.tests.cpp | Keybind JSON loading |
lightUnits.tests.cpp | Physical light unit conversions (lumen, lux, candela) |
materialLoader.tests.cpp | Material JSON loading |
orbitController.tests.cpp | Orbit camera controller |
pakReader.tests.cpp | .glitterpak archive reading and decompression |
reflectionProbe.tests.cpp | Reflection probe capture |
renderer.tests.cpp | Renderer creation, registry lookup |
renderStats.tests.cpp | Frame stats / performance counters |
resources.tests.cpp | Resource URI resolution |
sceneGraph.tests.cpp | Scene graph transforms |
sceneLoader.tests.cpp | Scene JSON parsing, node hierarchy |
sceneObject.tests.cpp | Scene object lifecycle |
shader.tests.cpp | Shader descriptor loading |
shaderBindings.tests.cpp | Shader binding parser |
shaderCache.tests.cpp | Shader cache (SPIR-V caching) |
shaderImportResolver.tests.cpp | Slang import resolution |
shaders.tests.cpp | Shader system (broader) |
skydomeModel.tests.cpp | Skydome model |
utilities.tests.cpp | String and stream utilities |
vulkanRenderer.tests.cpp | Vulkan renderer specifics |