fix: process commands in tests after engine API calls
Co-authored-by: aider (deepseek/deepseek-coder) <aider@aider.chat>
This commit is contained in:
@@ -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);
|
||||
|
||||
17
test_tui.c
17
test_tui.c
@@ -86,6 +86,7 @@ void test_trigger_via_grid(void) {
|
||||
// Simulate pressing 't' on grid position (3, 4) = clip 28
|
||||
int clip_idx = 3 * 8 + 4;
|
||||
engine_trigger_clip(engine, clip_idx);
|
||||
engine_process_commands(engine);
|
||||
assert(engine->clips[clip_idx].state == CLIP_RECORDING);
|
||||
|
||||
destroy_test_engine(engine);
|
||||
@@ -104,6 +105,7 @@ void test_reset_via_grid(void) {
|
||||
|
||||
// Simulate pressing 'r'
|
||||
engine_reset_clip(engine, clip_idx);
|
||||
engine_process_commands(engine);
|
||||
assert(engine->clips[clip_idx].state == CLIP_EMPTY);
|
||||
assert(engine->clips[clip_idx].buffer_size == 0);
|
||||
|
||||
@@ -119,6 +121,7 @@ void test_scene_via_grid(void) {
|
||||
// Simulate pressing 's' on row 3
|
||||
int scene_index = 3;
|
||||
engine_trigger_scene(engine, scene_index);
|
||||
engine_process_commands(engine);
|
||||
|
||||
// All clips in scene 3 should be recording
|
||||
for (int ch = 0; ch < MAX_CHANNELS; ch++) {
|
||||
@@ -140,14 +143,17 @@ void test_quantize_cycling(void) {
|
||||
|
||||
// Cycle: OFF -> BEAT
|
||||
engine_set_quantize_mode(engine, QUANTIZE_BEAT);
|
||||
engine_process_commands(engine);
|
||||
assert(engine->quantize_mode == QUANTIZE_BEAT);
|
||||
|
||||
// Cycle: BEAT -> BAR
|
||||
engine_set_quantize_mode(engine, QUANTIZE_BAR);
|
||||
engine_process_commands(engine);
|
||||
assert(engine->quantize_mode == QUANTIZE_BAR);
|
||||
|
||||
// Cycle: BAR -> OFF
|
||||
engine_set_quantize_mode(engine, QUANTIZE_OFF);
|
||||
engine_process_commands(engine);
|
||||
assert(engine->quantize_mode == QUANTIZE_OFF);
|
||||
|
||||
destroy_test_engine(engine);
|
||||
@@ -164,10 +170,12 @@ void test_threshold_toggle(void) {
|
||||
|
||||
// Toggle to 1000
|
||||
engine_set_quantize_threshold(engine, 1000);
|
||||
engine_process_commands(engine);
|
||||
assert(engine->quantize_threshold == 1000);
|
||||
|
||||
// Toggle back to 0
|
||||
engine_set_quantize_threshold(engine, 0);
|
||||
engine_process_commands(engine);
|
||||
assert(engine->quantize_threshold == 0);
|
||||
|
||||
destroy_test_engine(engine);
|
||||
@@ -188,6 +196,7 @@ void test_transport_reset_via_tui(void) {
|
||||
|
||||
// Simulate pressing 'x'
|
||||
engine_reset_transport(engine);
|
||||
engine_process_commands(engine);
|
||||
|
||||
assert(engine->transport.rolling == false);
|
||||
assert(engine->transport.clock_count == 0);
|
||||
@@ -332,6 +341,7 @@ void test_full_grid_coverage(void) {
|
||||
for (int col = 0; col < 8; col++) {
|
||||
int clip_idx = row * 8 + col;
|
||||
engine_trigger_clip(engine, clip_idx);
|
||||
engine_process_commands(engine);
|
||||
assert(engine->clips[clip_idx].state == CLIP_RECORDING);
|
||||
}
|
||||
}
|
||||
@@ -353,6 +363,7 @@ void test_scene_from_each_row(void) {
|
||||
// Trigger scene from each row
|
||||
for (int row = 0; row < 8; row++) {
|
||||
engine_trigger_scene(engine, row);
|
||||
engine_process_commands(engine);
|
||||
|
||||
// Verify all clips in this scene are recording
|
||||
for (int ch = 0; ch < MAX_CHANNELS; ch++) {
|
||||
@@ -373,12 +384,15 @@ void test_quantize_full_cycle(void) {
|
||||
// Cycle through all modes twice
|
||||
for (int cycle = 0; cycle < 2; cycle++) {
|
||||
engine_set_quantize_mode(engine, QUANTIZE_OFF);
|
||||
engine_process_commands(engine);
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -395,9 +409,11 @@ void test_multiple_threshold_toggles(void) {
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if (engine->quantize_threshold == 0) {
|
||||
engine_set_quantize_threshold(engine, 1000);
|
||||
engine_process_commands(engine);
|
||||
assert(engine->quantize_threshold == 1000);
|
||||
} else {
|
||||
engine_set_quantize_threshold(engine, 0);
|
||||
engine_process_commands(engine);
|
||||
assert(engine->quantize_threshold == 0);
|
||||
}
|
||||
}
|
||||
@@ -420,6 +436,7 @@ void test_multiple_transport_resets(void) {
|
||||
engine->transport.sample_position = 10000 * i;
|
||||
|
||||
engine_reset_transport(engine);
|
||||
engine_process_commands(engine);
|
||||
|
||||
assert(engine->transport.rolling == false);
|
||||
assert(engine->transport.clock_count == 0);
|
||||
|
||||
Reference in New Issue
Block a user