From 3f67e4e079ab119dcdc063c56e8224e29a395601 Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 7 Feb 2026 09:51:18 +0100 Subject: test(gpu): Add comprehensive effect class testing (Phase 2.1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- CMakeLists.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'CMakeLists.txt') 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 -- - -- cgit v1.2.3