From 8dd77545b5ec2f45ce46b98dd7d94a3c4a13e290 Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 14 Feb 2026 02:39:49 +0100 Subject: Factor common test patterns into reusable utilities Refactor duplicated test setup/teardown code into shared fixtures: - test_math_helpers.h: Float comparison (test_near, test_near_vec3) - AudioTestFixture: RAII wrapper for AudioEngine lifecycle - EffectTestFixture: Combined WebGPU + AudioEngine + MainSequence Migrated 9 test files (3 math, 6 audio) to use fixtures. Net reduction: 54 LOC (178 insertions, 232 deletions). All 34 tests passing. Co-Authored-By: Claude Sonnet 4.5 --- src/tests/common/effect_test_fixture.cc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/tests/common/effect_test_fixture.cc (limited to 'src/tests/common/effect_test_fixture.cc') diff --git a/src/tests/common/effect_test_fixture.cc b/src/tests/common/effect_test_fixture.cc new file mode 100644 index 0000000..b403ef6 --- /dev/null +++ b/src/tests/common/effect_test_fixture.cc @@ -0,0 +1,23 @@ +// effect_test_fixture.cc - Combined WebGPU + AudioEngine + MainSequence fixture +// Simplifies GPU effect test setup + +#include "effect_test_fixture.h" +#include + +EffectTestFixture::EffectTestFixture() {} + +EffectTestFixture::~EffectTestFixture() { + if (m_initialized) { + m_gpu.shutdown(); + } +} + +bool EffectTestFixture::init() { + if (!m_gpu.init()) { + fprintf(stdout, " ⚠ WebGPU unavailable - skipping test\n"); + return false; + } + m_sequence.init_test(ctx()); + m_initialized = true; + return true; +} -- cgit v1.2.3