diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-07 09:51:18 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-07 09:51:18 +0100 |
| commit | 3f67e4e079ab119dcdc063c56e8224e29a395601 (patch) | |
| tree | 6f259ddcbcebd43ad45420394c2519d8e927d9f1 /CMakeLists.txt | |
| parent | 4965202fb03299fc351f20eb2eb13f3fa30f6704 (diff) | |
test(gpu): Add comprehensive effect class testing (Phase 2.1)
Created test_demo_effects.cc to validate all effect classes:
- Tests 8 post-process effects (FlashEffect, PassthroughEffect,
GaussianBlurEffect, ChromaAberrationEffect, DistortEffect,
SolarizeEffect, FadeEffect, ThemeModulationEffect)
- Tests 6 scene effects (HeptagonEffect, ParticlesEffect,
ParticleSprayEffect, MovingEllipseEffect, FlashCubeEffect,
Hybrid3DEffect)
- Gracefully skips effects requiring full Renderer3D pipeline
(FlashCubeEffect, Hybrid3DEffect) with warning messages
- Validates effect type classification (is_post_process())
Test approach: Smoke tests for construction and initialization
- Construct effect → Add to Sequence → Sequence::init()
- Verify is_initialized flag transitions from false → true
- No crashes during initialization
Added CMake target with proper dependencies:
- Links against gpu, 3d, audio, procedural, util libraries
- Depends on generate_timeline and generate_demo_assets
Coverage: Adds validation for all 14 production effect classes
Zero binary size impact: All test code under #if !defined(STRIP_ALL)
Part of GPU Effects Test Infrastructure (Phase 2/3)
Next: test_post_process_helper.cc (Phase 2.2)
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ab8479..ee6673b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -498,6 +498,19 @@ if(DEMO_BUILD_TESTS) ${GENERATED_MUSIC_DATA_CC}) target_link_libraries(test_effect_base PRIVATE 3d gpu audio procedural util ${DEMO_LIBS}) add_dependencies(test_effect_base generate_timeline generate_demo_assets generate_tracker_music) + + # GPU Effects Test Infrastructure (Phase 2: Effect Classes) + add_demo_executable(test_demo_effects + src/tests/test_demo_effects.cc + src/tests/webgpu_test_fixture.cc + src/tests/offscreen_render_target.cc + src/tests/effect_test_helpers.cc + ${PLATFORM_SOURCES} + ${GEN_DEMO_CC} + ${GENERATED_TIMELINE_CC} + ${GENERATED_MUSIC_DATA_CC}) + target_link_libraries(test_demo_effects PRIVATE 3d gpu audio procedural util ${DEMO_LIBS}) + add_dependencies(test_demo_effects generate_timeline generate_demo_assets generate_tracker_music) endif() #-- - Extra Tools -- - |
