fix: process commands in tests after engine API calls

Co-authored-by: aider (deepseek/deepseek-coder) <aider@aider.chat>
This commit is contained in:
Loic Coenen
2026-05-01 15:06:49 +00:00
parent 32270aaddb
commit e405518942
2 changed files with 39 additions and 0 deletions

View File

@@ -86,6 +86,7 @@ void test_trigger_empty_starts_recording(void) {
Engine *engine = create_test_engine();
engine_trigger_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_RECORDING);
assert(engine->clips[0].write_position == 0);
@@ -100,6 +101,7 @@ void test_trigger_recording_starts_looping(void) {
// Start recording
engine_trigger_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_RECORDING);
// Simulate some recording
@@ -107,6 +109,7 @@ void test_trigger_recording_starts_looping(void) {
// Trigger again to stop recording and start looping
engine_trigger_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_LOOPING);
assert(engine->clips[0].buffer_size == 100);
assert(engine->clips[0].read_position == 0);
@@ -126,6 +129,7 @@ void test_trigger_looping_stops(void) {
engine->clips[0].read_position = 50;
engine_trigger_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_STOPPED);
assert(engine->clips[0].read_position == 0);
@@ -143,6 +147,7 @@ void test_trigger_stopped_resumes_looping(void) {
engine->clips[0].buffer_size = 100;
engine_trigger_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_LOOPING);
assert(engine->clips[0].read_position == 0);
@@ -157,20 +162,24 @@ void test_full_cycle(void) {
// Empty -> Recording
engine_trigger_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_RECORDING);
// Recording -> Looping
engine->clips[0].write_position = 200;
engine_trigger_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_LOOPING);
assert(engine->clips[0].buffer_size == 200);
// Looping -> Stopped
engine_trigger_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_STOPPED);
// Stopped -> Looping
engine_trigger_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_LOOPING);
destroy_test_engine(engine);
@@ -184,20 +193,24 @@ void test_multiple_clips(void) {
// Clip 0: Empty -> Recording
engine_trigger_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_RECORDING);
// Clip 1: Empty -> Recording
engine_trigger_clip(engine, 1);
engine_process_commands(engine);
assert(engine->clips[1].state == CLIP_RECORDING);
// Clip 0: Recording -> Looping
engine->clips[0].write_position = 100;
engine_trigger_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_LOOPING);
assert(engine->clips[1].state == CLIP_RECORDING); // Clip 1 unaffected
// Clip 2: Empty -> Recording
engine_trigger_clip(engine, 2);
engine_process_commands(engine);
assert(engine->clips[2].state == CLIP_RECORDING);
destroy_test_engine(engine);
@@ -216,6 +229,7 @@ void test_reset_clip(void) {
engine->clips[0].read_position = 50;
engine_reset_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_EMPTY);
assert(engine->clips[0].buffer_size == 0);
assert(engine->clips[0].write_position == 0);
@@ -274,6 +288,7 @@ void test_buffer_overflow(void) {
// Start recording
engine_trigger_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_RECORDING);
// Fill buffer to max
@@ -281,6 +296,7 @@ void test_buffer_overflow(void) {
// Trigger should stop recording and start looping
engine_trigger_clip(engine, 0);
engine_process_commands(engine);
assert(engine->clips[0].state == CLIP_LOOPING);
assert(engine->clips[0].buffer_size == MAX_BUFFER_SIZE);
@@ -316,6 +332,7 @@ void test_transport_reset(void) {
engine->transport.sample_position = 10000;
engine_reset_transport(engine);
engine_process_commands(engine);
assert(engine->transport.rolling == false);
assert(engine->transport.clock_count == 0);
@@ -335,12 +352,15 @@ void test_quantize_mode_setting(void) {
assert(engine->quantize_mode == QUANTIZE_OFF);
engine_set_quantize_mode(engine, QUANTIZE_BEAT);
engine_process_commands(engine);
assert(engine->quantize_mode == QUANTIZE_BEAT);
engine_set_quantize_mode(engine, QUANTIZE_BAR);
engine_process_commands(engine);
assert(engine->quantize_mode == QUANTIZE_BAR);
engine_set_quantize_mode(engine, QUANTIZE_OFF);
engine_process_commands(engine);
assert(engine->quantize_mode == QUANTIZE_OFF);
destroy_test_engine(engine);
@@ -366,9 +386,11 @@ void test_quantize_threshold_setting(void) {
assert(engine->quantize_threshold == 0);
engine_set_quantize_threshold(engine, 1000);
engine_process_commands(engine);
assert(engine->quantize_threshold == 1000);
engine_set_quantize_threshold(engine, 0);
engine_process_commands(engine);
assert(engine->quantize_threshold == 0);
destroy_test_engine(engine);