Skip to main content

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.cpp stub for renderer-dependent tests that need a headless Vulkan context.

Current coverage

FileCovers
camera.tests.cppCamera matrices, frustum, physically-based params
cascadeShadowCalculator.tests.cppCSM cascade split calculations
colorTemperature.tests.cppKelvin-to-RGB colour temperature conversion
configuration.tests.cppConfig loading and defaults
console.tests.cppDeveloper console commands and log buffering
drawCall.tests.cppDraw call batching and sorting
freeFlyController.tests.cppFree-fly camera controller
geometry.tests.cppProcedural geometry generation
glitterPrimitiveModel.tests.cppGlitter primitive model creation
gltfModel.tests.cppglTF model loading
hwlayer.tests.cppHardware layer (SDL window / context init)
image.tests.cppImage loading (stb)
inputMapper.tests.cppInput binding resolution
keybindLoader.tests.cppKeybind JSON loading
lightUnits.tests.cppPhysical light unit conversions (lumen, lux, candela)
materialLoader.tests.cppMaterial JSON loading
orbitController.tests.cppOrbit camera controller
pakReader.tests.cpp.glitterpak archive reading and decompression
reflectionProbe.tests.cppReflection probe capture
renderer.tests.cppRenderer creation, registry lookup
renderStats.tests.cppFrame stats / performance counters
resources.tests.cppResource URI resolution
sceneGraph.tests.cppScene graph transforms
sceneLoader.tests.cppScene JSON parsing, node hierarchy
sceneObject.tests.cppScene object lifecycle
shader.tests.cppShader descriptor loading
shaderBindings.tests.cppShader binding parser
shaderCache.tests.cppShader cache (SPIR-V caching)
shaderImportResolver.tests.cppSlang import resolution
shaders.tests.cppShader system (broader)
skydomeModel.tests.cppSkydome model
utilities.tests.cppString and stream utilities
vulkanRenderer.tests.cppVulkan renderer specifics