summaryrefslogtreecommitdiff
path: root/src/tests/audio/test_audio_engine.cc
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/audio/test_audio_engine.cc
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/audio/test_audio_engine.cc')
-rw-r--r--src/tests/audio/test_audio_engine.cc71
1 files changed, 27 insertions, 44 deletions
diff --git a/src/tests/audio/test_audio_engine.cc b/src/tests/audio/test_audio_engine.cc
index 3b29dcd..72c1653 100644
--- a/src/tests/audio/test_audio_engine.cc
+++ b/src/tests/audio/test_audio_engine.cc
@@ -4,6 +4,7 @@
#include "audio/audio_engine.h"
#include "audio/tracker.h"
#include "generated/assets.h"
+#include "../common/audio_test_fixture.h"
#include <assert.h>
#include <stdio.h>
@@ -13,19 +14,13 @@
void test_audio_engine_lifecycle() {
printf("Test: AudioEngine lifecycle...\n");
- AudioEngine engine;
- printf(" Created AudioEngine object...\n");
-
- engine.init();
- printf(" Initialized AudioEngine...\n");
+ AudioTestFixture fixture;
+ printf(" Created and initialized AudioEngine...\n");
// Verify initialization
- assert(engine.get_active_voice_count() == 0);
+ assert(fixture.engine().get_active_voice_count() == 0);
printf(" Verified voice count is 0...\n");
- engine.shutdown();
- printf(" Shutdown AudioEngine...\n");
-
printf(" ✓ AudioEngine lifecycle test passed\n");
}
@@ -33,16 +28,15 @@ void test_audio_engine_lifecycle() {
void test_audio_engine_music_loading() {
printf("Test: AudioEngine music data loading...\n");
- AudioEngine engine;
- engine.init();
+ AudioTestFixture fixture;
// Load global music data
- engine.load_music_data(&g_tracker_score, g_tracker_samples,
- g_tracker_sample_assets, g_tracker_samples_count);
+ fixture.load_music(&g_tracker_score, g_tracker_samples,
+ g_tracker_sample_assets, g_tracker_samples_count);
// Verify resource manager was initialized (samples registered but not loaded
// yet)
- SpectrogramResourceManager* res_mgr = engine.get_resource_manager();
+ SpectrogramResourceManager* res_mgr = fixture.engine().get_resource_manager();
assert(res_mgr != nullptr);
// Initially, no samples should be loaded (lazy loading)
@@ -51,8 +45,6 @@ void test_audio_engine_music_loading() {
printf(" ✓ Music data loaded: %u samples registered\n",
g_tracker_samples_count);
- engine.shutdown();
-
printf(" ✓ AudioEngine music loading test passed\n");
}
@@ -60,14 +52,13 @@ void test_audio_engine_music_loading() {
void test_audio_engine_manual_resource_loading() {
printf("Test: AudioEngine manual resource loading...\n");
- AudioEngine engine;
- engine.init();
+ AudioTestFixture fixture;
// Load music data
- engine.load_music_data(&g_tracker_score, g_tracker_samples,
- g_tracker_sample_assets, g_tracker_samples_count);
+ fixture.load_music(&g_tracker_score, g_tracker_samples,
+ g_tracker_sample_assets, g_tracker_samples_count);
- SpectrogramResourceManager* res_mgr = engine.get_resource_manager();
+ SpectrogramResourceManager* res_mgr = fixture.engine().get_resource_manager();
const int initial_loaded = res_mgr->get_loaded_count();
assert(initial_loaded == 0); // No samples loaded yet
@@ -89,8 +80,6 @@ void test_audio_engine_manual_resource_loading() {
assert(spec1 != nullptr);
assert(spec2 != nullptr);
- engine.shutdown();
-
printf(" ✓ AudioEngine manual resource loading test passed\n");
}
@@ -98,13 +87,12 @@ void test_audio_engine_manual_resource_loading() {
void test_audio_engine_reset() {
printf("Test: AudioEngine reset...\n");
- AudioEngine engine;
- engine.init();
+ AudioTestFixture fixture;
- engine.load_music_data(&g_tracker_score, g_tracker_samples,
- g_tracker_sample_assets, g_tracker_samples_count);
+ fixture.load_music(&g_tracker_score, g_tracker_samples,
+ g_tracker_sample_assets, g_tracker_samples_count);
- SpectrogramResourceManager* res_mgr = engine.get_resource_manager();
+ SpectrogramResourceManager* res_mgr = fixture.engine().get_resource_manager();
// Manually load some samples
res_mgr->preload(0);
@@ -115,10 +103,10 @@ void test_audio_engine_reset() {
assert(loaded_before_reset == 3);
// Reset engine
- engine.reset();
+ fixture.engine().reset();
// After reset, state should be cleared
- assert(engine.get_active_voice_count() == 0);
+ assert(fixture.engine().get_active_voice_count() == 0);
// Resources should be marked as unloaded (but memory not freed)
const int loaded_after_reset = res_mgr->get_loaded_count();
@@ -126,8 +114,6 @@ void test_audio_engine_reset() {
loaded_before_reset, loaded_after_reset);
assert(loaded_after_reset == 0);
- engine.shutdown();
-
printf(" ✓ AudioEngine reset test passed\n");
}
@@ -136,25 +122,22 @@ void test_audio_engine_reset() {
void test_audio_engine_seeking() {
printf("Test: AudioEngine seeking...\n");
- AudioEngine engine;
- engine.init();
+ AudioTestFixture fixture;
- engine.load_music_data(&g_tracker_score, g_tracker_samples,
- g_tracker_sample_assets, g_tracker_samples_count);
+ fixture.load_music(&g_tracker_score, g_tracker_samples,
+ g_tracker_sample_assets, g_tracker_samples_count);
// Seek to t=5.0s
- engine.seek(5.0f);
- assert(engine.get_time() == 5.0f);
+ fixture.engine().seek(5.0f);
+ assert(fixture.engine().get_time() == 5.0f);
// Seek backward to t=2.0s
- engine.seek(2.0f);
- assert(engine.get_time() == 2.0f);
+ fixture.engine().seek(2.0f);
+ assert(fixture.engine().get_time() == 2.0f);
// Seek to beginning
- engine.seek(0.0f);
- assert(engine.get_time() == 0.0f);
-
- engine.shutdown();
+ fixture.engine().seek(0.0f);
+ assert(fixture.engine().get_time() == 0.0f);
printf(" ✓ AudioEngine seeking test passed\n");
}