summaryrefslogtreecommitdiff
path: root/src/tests/common/audio_test_fixture.h
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-14 02:39:49 +0100
committerskal <pascal.massimino@gmail.com>2026-02-14 02:39:49 +0100
commit8dd77545b5ec2f45ce46b98dd7d94a3c4a13e290 (patch)
treea338b9c1356da64a609621155c81d8d96f7ca7fe /src/tests/common/audio_test_fixture.h
parentc007d7fa6ddb1936108aeca156b2a4bda425ca84 (diff)
Factor common test patterns into reusable utilitiesHEADmain
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 <noreply@anthropic.com>
Diffstat (limited to 'src/tests/common/audio_test_fixture.h')
-rw-r--r--src/tests/common/audio_test_fixture.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/tests/common/audio_test_fixture.h b/src/tests/common/audio_test_fixture.h
new file mode 100644
index 0000000..328e167
--- /dev/null
+++ b/src/tests/common/audio_test_fixture.h
@@ -0,0 +1,26 @@
+// audio_test_fixture.h - RAII wrapper for AudioEngine lifecycle
+// Simplifies audio test setup and teardown
+
+#pragma once
+#include "audio/audio_engine.h"
+#include "audio/gen.h"
+#include "audio/tracker.h"
+#include "generated/assets.h"
+
+// RAII wrapper for AudioEngine lifecycle
+class AudioTestFixture {
+public:
+ AudioTestFixture(); // Calls engine.init()
+ ~AudioTestFixture(); // Calls engine.shutdown()
+
+ AudioEngine& engine() { return m_engine; }
+
+ // Helper: Load tracker music data
+ void load_music(const TrackerScore* score,
+ const NoteParams* samples,
+ const AssetId* assets,
+ uint32_t count);
+
+private:
+ AudioEngine m_engine;
+};