summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-07 09:51:18 +0100
committerskal <pascal.massimino@gmail.com>2026-02-07 09:51:18 +0100
commit3f67e4e079ab119dcdc063c56e8224e29a395601 (patch)
tree6f259ddcbcebd43ad45420394c2519d8e927d9f1 /CMakeLists.txt
parent4965202fb03299fc351f20eb2eb13f3fa30f6704 (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.txt13
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 -- -