diff options
| -rw-r--r-- | cmake/DemoTests.cmake | 4 | ||||
| -rw-r--r-- | src/tests/audio/test_silent_backend.cc | 204 |
2 files changed, 0 insertions, 208 deletions
diff --git a/cmake/DemoTests.cmake b/cmake/DemoTests.cmake index 2f7cdd1..a23202a 100644 --- a/cmake/DemoTests.cmake +++ b/cmake/DemoTests.cmake @@ -34,10 +34,6 @@ add_demo_test(test_audio_backend AudioBackendTest audio src/tests/audio/test_aud target_link_libraries(test_audio_backend PRIVATE audio util procedural ${DEMO_LIBS}) demo_add_asset_deps(test_audio_backend audio) -add_demo_test(test_silent_backend SilentBackendTest audio src/tests/audio/test_silent_backend.cc src/tests/common/audio_test_fixture.cc ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC}) -target_link_libraries(test_silent_backend PRIVATE audio util procedural ${DEMO_LIBS}) -demo_add_asset_deps(test_silent_backend audio) -add_dependencies(test_silent_backend generate_tracker_music) add_demo_test(test_mock_backend MockAudioBackendTest audio src/tests/audio/test_mock_backend.cc src/audio/backend/mock_audio_backend.cc ${GEN_DEMO_CC}) target_link_libraries(test_mock_backend PRIVATE audio util procedural ${DEMO_LIBS}) diff --git a/src/tests/audio/test_silent_backend.cc b/src/tests/audio/test_silent_backend.cc deleted file mode 100644 index cecf72c..0000000 --- a/src/tests/audio/test_silent_backend.cc +++ /dev/null @@ -1,204 +0,0 @@ -// This file is part of the 64k demo project. -// It tests the SilentBackend for audio testing without hardware. -// Verifies audio.cc functionality using silent backend. - -#include "../common/audio_test_fixture.h" -#include "audio/audio.h" -#include "audio/audio_engine.h" -#include "audio/backend/silent_backend.h" -#include "audio/synth.h" -#include <assert.h> -#include <stdio.h> - -#if !defined(STRIP_ALL) - -// Test: SilentBackend initialization and lifecycle -void test_silent_backend_lifecycle() { - SilentBackend backend; - - assert(!backend.is_initialized()); - assert(!backend.is_started()); - - backend.init(); - assert(backend.is_initialized()); - assert(!backend.is_started()); - - backend.start(); - assert(backend.is_initialized()); - assert(backend.is_started()); - - backend.shutdown(); - assert(!backend.is_initialized()); - assert(!backend.is_started()); - - printf("SilentBackend lifecycle test PASSED\n"); -} - -// Test: Audio system with SilentBackend -void test_audio_with_silent_backend() { - SilentBackend backend; - audio_set_backend(&backend); - - audio_init(); - assert(backend.is_initialized()); - - audio_start(); - assert(backend.is_started()); - - audio_shutdown(); - assert(!backend.is_initialized()); - - printf("Audio with SilentBackend test PASSED\n"); -} - -// Test: Peak control in SilentBackend -void test_silent_backend_peak() { - SilentBackend backend; - audio_set_backend(&backend); - - audio_init(); - - // Default peak should be 0 - assert(backend.get_realtime_peak() == 0.0f); - assert(audio_get_realtime_peak() == 0.0f); - - // Set test peak - backend.set_peak(0.75f); - assert(backend.get_realtime_peak() == 0.75f); - assert(audio_get_realtime_peak() == 0.75f); - - // Reset - backend.set_peak(0.0f); - assert(backend.get_realtime_peak() == 0.0f); - - audio_shutdown(); - - printf("SilentBackend peak control test PASSED\n"); -} - -// Test: Frame and voice tracking -void test_silent_backend_tracking() { - SilentBackend backend; - audio_set_backend(&backend); - - AudioTestFixture fixture; - - // Initial state - assert(backend.get_frames_rendered() == 0); - assert(backend.get_voice_trigger_count() == 0); - - // Create a dummy spectrogram - float data[DCT_SIZE * 2] = {0}; - Spectrogram spec = {data, data, 2}; - int id = synth_register_spectrogram(&spec); - - // Trigger a voice - synth_trigger_voice(id, 0.8f, 0.0f); - assert(backend.get_voice_trigger_count() == 1); - - // Render audio (calls on_frames_rendered) - (void)audio_render_ahead(0.0f, 0.1f); // Render ~0.1 seconds - assert(backend.get_frames_rendered() > 0); - - // Reset stats - backend.reset_stats(); - assert(backend.get_frames_rendered() == 0); - assert(backend.get_voice_trigger_count() == 0); - - audio_shutdown(); - - printf("SilentBackend tracking test PASSED\n"); -} - -// Test: Playback time with SilentBackend -void test_audio_playback_time() { - SilentBackend backend; - audio_set_backend(&backend); - - AudioTestFixture fixture; - audio_start(); - - // Initial playback time should be 0 - float t0 = audio_get_playback_time(); - assert(t0 == 0.0f); - - // Render some audio - (void)audio_render_ahead(0.5f, 0.1f); // Advance music time to 0.5s - - // Playback time should advance based on frames rendered - // Note: audio_get_playback_time() tracks cumulative frames consumed - float t1 = audio_get_playback_time(); - assert(t1 >= 0.0f); // Should have advanced - - // Render more - (void)audio_render_ahead(1.0f, 0.5f); - float t2 = audio_get_playback_time(); - assert(t2 >= t1); // Should continue advancing - - audio_shutdown(); - - printf("Audio playback time test PASSED\n"); -} - -// Test: Buffer management with partial writes -void test_audio_buffer_partial_writes() { - SilentBackend backend; - audio_set_backend(&backend); - - AudioTestFixture fixture; - audio_start(); - - // Fill buffer multiple times to test wraparound - // Note: With SilentBackend, frames_rendered won't increase because - // there's no audio callback consuming from the ring buffer - for (int i = 0; i < 10; ++i) { - (void)audio_render_ahead((float)i * 0.1f, 0.1f); - } - - // Buffer should have handled multiple writes correctly (no crash) - // We can't check frames_rendered with SilentBackend since there's - // no audio callback to consume from the ring buffer - audio_update(); // Should not crash - - audio_shutdown(); - - printf("Audio buffer partial writes test PASSED\n"); -} - -// Test: audio_update() with SilentBackend -void test_audio_update() { - SilentBackend backend; - audio_set_backend(&backend); - - AudioTestFixture fixture; - audio_start(); - - // audio_update() should be callable without crashing - audio_update(); - audio_update(); - audio_update(); - - audio_shutdown(); - - printf("Audio update test PASSED\n"); -} - -#endif /* !defined(STRIP_ALL) */ - -int main() { -#if !defined(STRIP_ALL) - printf("Running SilentBackend tests...\n"); - test_silent_backend_lifecycle(); - test_audio_with_silent_backend(); - test_silent_backend_peak(); - test_silent_backend_tracking(); - test_audio_playback_time(); - test_audio_buffer_partial_writes(); - test_audio_update(); - printf("All SilentBackend tests PASSED\n"); - return 0; -#else - printf("SilentBackend tests skipped (STRIP_ALL enabled)\n"); - return 0; -#endif /* !defined(STRIP_ALL) */ -} |
