Skip to content

Commit e29ccf1

Browse files
committed
All tests follow same pattern
1 parent 9192c2d commit e29ccf1

6 files changed

+47
-26
lines changed

test/test_interactive.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -311,35 +311,35 @@ def test_audio_worklet_stereo_io(self):
311311
os.mkdir('audio_files')
312312
shutil.copy(test_file('webaudio/audio_files/emscripten-beat.mp3'), 'audio_files/')
313313
shutil.copy(test_file('webaudio/audio_files/emscripten-bass.mp3'), 'audio_files/')
314-
self.btest_exit('webaudio/audioworklet_in_out_stereo.c', args=['-sAUDIO_WORKLET', '-sWASM_WORKERS'])
314+
self.btest_exit('webaudio/audioworklet_in_out_stereo.c', args=['-sAUDIO_WORKLET', '-sWASM_WORKERS', '-DTEST_AND_EXIT=1'])
315315

316316
# Tests an AudioWorklet with multiple stereo inputs copying in the processor to multiple stereo outputs (6kB stack)
317317
def test_audio_worklet_2x_stereo_io(self):
318318
os.mkdir('audio_files')
319319
shutil.copy(test_file('webaudio/audio_files/emscripten-beat.mp3'), 'audio_files/')
320320
shutil.copy(test_file('webaudio/audio_files/emscripten-bass.mp3'), 'audio_files/')
321-
self.btest_exit('webaudio/audioworklet_2x_in_out_stereo.c', args=['-sAUDIO_WORKLET', '-sWASM_WORKERS'])
321+
self.btest_exit('webaudio/audioworklet_2x_in_out_stereo.c', args=['-sAUDIO_WORKLET', '-sWASM_WORKERS', '-DTEST_AND_EXIT=1'])
322322

323323
# Tests an AudioWorklet with multiple mono inputs mixing in the processor to a single mono output (2kB stack)
324324
def test_audio_worklet_mono_io(self):
325325
os.mkdir('audio_files')
326326
shutil.copy(test_file('webaudio/audio_files/emscripten-beat-mono.mp3'), 'audio_files/')
327327
shutil.copy(test_file('webaudio/audio_files/emscripten-bass-mono.mp3'), 'audio_files/')
328-
self.btest_exit('webaudio/audioworklet_in_out_mono.c', args=['-sAUDIO_WORKLET', '-sWASM_WORKERS'])
328+
self.btest_exit('webaudio/audioworklet_in_out_mono.c', args=['-sAUDIO_WORKLET', '-sWASM_WORKERS', '-DTEST_AND_EXIT=1'])
329329

330330
# Tests an AudioWorklet with multiple mono inputs copying in the processor to L+R stereo outputs (3kB stack)
331331
def test_audio_worklet_2x_hard_pan_io(self):
332332
os.mkdir('audio_files')
333333
shutil.copy(test_file('webaudio/audio_files/emscripten-beat-mono.mp3'), 'audio_files/')
334334
shutil.copy(test_file('webaudio/audio_files/emscripten-bass-mono.mp3'), 'audio_files/')
335-
self.btest_exit('webaudio/audioworklet_2x_in_hard_pan.c', args=['-sAUDIO_WORKLET', '-sWASM_WORKERS'])
335+
self.btest_exit('webaudio/audioworklet_2x_in_hard_pan.c', args=['-sAUDIO_WORKLET', '-sWASM_WORKERS', '-DTEST_AND_EXIT=1'])
336336

337337
# Tests an AudioWorklet with multiple stereo inputs mixing in the processor via a parameter to a single stereo output (6kB stack)
338338
def test_audio_worklet_params_mixing(self):
339339
os.mkdir('audio_files')
340340
shutil.copy(test_file('webaudio/audio_files/emscripten-beat.mp3'), 'audio_files/')
341341
shutil.copy(test_file('webaudio/audio_files/emscripten-bass.mp3'), 'audio_files/')
342-
self.btest_exit('webaudio/audioworklet_params_mixing.c', args=['-sAUDIO_WORKLET', '-sWASM_WORKERS', '-DTEST_AND_EXIT'])
342+
self.btest_exit('webaudio/audioworklet_params_mixing.c', args=['-sAUDIO_WORKLET', '-sWASM_WORKERS', '-DTEST_AND_EXIT=1'])
343343

344344

345345
class interactive64(interactive):

test/webaudio/audioworklet_2x_in_hard_pan.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include <assert.h>
22
#include <string.h>
3-
#include <stdio.h>
43

54
#include <emscripten/em_js.h>
65
#include <emscripten/webaudio.h>
@@ -16,7 +15,9 @@
1615

1716
// Callback to process and copy the audio tracks
1817
bool process(int numInputs, const AudioSampleFrame* inputs, int numOutputs, AudioSampleFrame* outputs, int __unused numParams, const AudioParamFrame* __unused params, void* __unused data) {
18+
#ifdef TEST_AND_EXIT
1919
audioProcessedCount++;
20+
#endif
2021

2122
// Twin mono in (or disabled), single stereo out
2223
assert(numInputs == 2 && numOutputs == 1);
@@ -47,11 +48,11 @@ bool process(int numInputs, const AudioSampleFrame* inputs, int numOutputs, Audi
4748
// Audio processor created, now register the audio callback
4849
void processorCreated(EMSCRIPTEN_WEBAUDIO_T context, bool success, void* __unused data) {
4950
if (!success) {
50-
printf("Audio worklet node creation failed\n");
51+
assert("Audio worklet failed in processorCreated()" && success);
5152
return;
5253
}
53-
printf("Audio worklet processor created\n");
54-
printf("Click to toggle audio playback\n");
54+
emscripten_out("Audio worklet processor created");
55+
emscripten_out("Click to toggle audio playback");
5556

5657
// Stereo output, two inputs
5758
int outputChannelCounts[2] = { 2 };
@@ -77,8 +78,10 @@ void processorCreated(EMSCRIPTEN_WEBAUDIO_T context, bool success, void* __unuse
7778
// Register a click to start playback
7879
emscripten_set_click_callback(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, WA_2_VOIDP(context), false, &onClick);
7980

80-
// Register the counter that exits the test after one second of mixing
81+
#ifdef TEST_AND_EXIT
82+
// Register the counter that exits the test after one second of playback
8183
emscripten_set_timeout_loop(&playedAndMixed, 16, NULL);
84+
#endif
8285
}
8386

8487
// This implementation has no custom start-up requirements

test/webaudio/audioworklet_2x_in_out_stereo.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include <assert.h>
22
#include <string.h>
3-
#include <stdio.h>
43

54
#include <emscripten/em_js.h>
65
#include <emscripten/webaudio.h>
@@ -15,7 +14,9 @@
1514

1615
// Callback to process and copy the audio tracks
1716
bool process(int numInputs, const AudioSampleFrame* inputs, int numOutputs, AudioSampleFrame* outputs, int __unused numParams, const AudioParamFrame* __unused params, void* __unused data) {
17+
#ifdef TEST_AND_EXIT
1818
audioProcessedCount++;
19+
#endif
1920

2021
// Twin stereo in and out
2122
assert(numInputs == 2 && numOutputs == 2);
@@ -46,11 +47,11 @@ bool process(int numInputs, const AudioSampleFrame* inputs, int numOutputs, Audi
4647
// Audio processor created, now register the audio callback
4748
void processorCreated(EMSCRIPTEN_WEBAUDIO_T context, bool success, void* __unused data) {
4849
if (!success) {
49-
printf("Audio worklet node creation failed\n");
50+
assert("Audio worklet failed in processorCreated()" && success);
5051
return;
5152
}
52-
printf("Audio worklet processor created\n");
53-
printf("Click to toggle audio playback\n");
53+
emscripten_out("Audio worklet processor created");
54+
emscripten_out("Click to toggle audio playback");
5455

5556
// Two stereo outputs, two inputs
5657
int outputChannelCounts[2] = { 2, 2 };
@@ -78,8 +79,10 @@ void processorCreated(EMSCRIPTEN_WEBAUDIO_T context, bool success, void* __unuse
7879
// Register a click to start playback
7980
emscripten_set_click_callback(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, WA_2_VOIDP(context), false, &onClick);
8081

81-
// Register the counter that exits the test after one second of mixing
82+
#ifdef TEST_AND_EXIT
83+
// Register the counter that exits the test after one second of playback
8284
emscripten_set_timeout_loop(&playedAndMixed, 16, NULL);
85+
#endif
8386
}
8487

8588
// This implementation has no custom start-up requirements

test/webaudio/audioworklet_in_out_mono.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include <assert.h>
22
#include <string.h>
3-
#include <stdio.h>
43

54
#include <emscripten/em_js.h>
65
#include <emscripten/webaudio.h>
@@ -16,7 +15,9 @@
1615

1716
// Callback to process and mix the audio tracks
1817
bool process(int numInputs, const AudioSampleFrame* inputs, int numOutputs, AudioSampleFrame* outputs, int __unused numParams, const AudioParamFrame* __unused params, void* __unused data) {
18+
#ifdef TEST_AND_EXIT
1919
audioProcessedCount++;
20+
#endif
2021

2122
// Single mono output
2223
assert(numOutputs == 1 && outputs[0].numberOfChannels == 1);
@@ -54,11 +55,11 @@ bool process(int numInputs, const AudioSampleFrame* inputs, int numOutputs, Audi
5455
// Audio processor created, now register the audio callback
5556
void processorCreated(EMSCRIPTEN_WEBAUDIO_T context, bool success, void* __unused data) {
5657
if (!success) {
57-
printf("Audio worklet node creation failed\n");
58+
assert("Audio worklet failed in processorCreated()" && success);
5859
return;
5960
}
60-
printf("Audio worklet processor created\n");
61-
printf("Click to toggle audio playback\n");
61+
emscripten_out("Audio worklet processor created");
62+
emscripten_out("Click to toggle audio playback");
6263

6364
// Mono output, two inputs
6465
int outputChannelCounts[1] = { 1 };
@@ -84,12 +85,13 @@ void processorCreated(EMSCRIPTEN_WEBAUDIO_T context, bool success, void* __unuse
8485
// Register a click to start playback
8586
emscripten_set_click_callback(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, WA_2_VOIDP(context), false, &onClick);
8687

88+
#ifdef TEST_AND_EXIT
8789
// Register the counter that exits the test after one second of mixing
8890
emscripten_set_timeout_loop(&playedAndMixed, 16, NULL);
91+
#endif
8992
}
9093

9194
// This implementation has no custom start-up requirements
9295
EmscriptenStartWebAudioWorkletCallback getStartCallback(void) {
9396
return &initialised;
9497
}
95-

test/webaudio/audioworklet_in_out_stereo.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include <assert.h>
22
#include <string.h>
3-
#include <stdio.h>
43

54
#include <emscripten/em_js.h>
65
#include <emscripten/webaudio.h>
@@ -16,7 +15,9 @@
1615

1716
// Callback to process and mix the audio tracks
1817
bool process(int numInputs, const AudioSampleFrame* inputs, int numOutputs, AudioSampleFrame* outputs, int __unused numParams, const AudioParamFrame* __unused params, void* __unused data) {
18+
#ifdef TEST_AND_EXIT
1919
audioProcessedCount++;
20+
#endif
2021

2122
// Single stereo output
2223
assert(numOutputs == 1 && outputs[0].numberOfChannels == 2);
@@ -54,11 +55,11 @@ bool process(int numInputs, const AudioSampleFrame* inputs, int numOutputs, Audi
5455
// Audio processor created, now register the audio callback
5556
void processorCreated(EMSCRIPTEN_WEBAUDIO_T context, bool success, void* __unused data) {
5657
if (!success) {
57-
printf("Audio worklet node creation failed\n");
58+
assert("Audio worklet failed in processorCreated()" && success);
5859
return;
5960
}
60-
printf("Audio worklet processor created\n");
61-
printf("Click to toggle audio playback\n");
61+
emscripten_out("Audio worklet processor created");
62+
emscripten_out("Click to toggle audio playback");
6263

6364
// Stereo output, two inputs
6465
int outputChannelCounts[1] = { 2 };
@@ -84,8 +85,10 @@ void processorCreated(EMSCRIPTEN_WEBAUDIO_T context, bool success, void* __unuse
8485
// Register a click to start playback
8586
emscripten_set_click_callback(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, WA_2_VOIDP(context), false, &onClick);
8687

88+
#ifdef TEST_AND_EXIT
8789
// Register the counter that exits the test after one second of mixing
8890
emscripten_set_timeout_loop(&playedAndMixed, 16, NULL);
91+
#endif
8992
}
9093

9194
// This implementation has no custom start-up requirements

test/webaudio/audioworklet_test_shared.inc

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,12 @@
1919
#ifdef TEST_AND_EXIT
2020
volatile int audioProcessedCount = 0;
2121
bool playedAndMixed(double __unused time, void* __unused data) {
22+
#if TEST_AND_EXIT > 0
23+
// Special interactive case to play for 10 seconds
24+
if (audioProcessedCount >= 3750) {
25+
#else
2226
if (audioProcessedCount >= 375) {
27+
#endif
2328
emscripten_force_exit(EXIT_SUCCESS);
2429
return false;
2530
}
@@ -110,8 +115,13 @@ int main(void) {
110115

111116
#ifdef TEST_AND_EXIT
112117
// We're in the test harness and exiting is via playedAndMixed()
113-
emscripten_exit_with_live_runtime();
114-
#endif
118+
#if TEST_AND_EXIT > 0
119+
emscripten_out("In test mode, will exit after 10 seconds of playback");
120+
#else
121+
emscripten_out("In test mode, will exit after 1 second of playback");
122+
#endif
123+
emscripten_exit_with_live_runtime();
124+
#endif
115125

116126
return EXIT_SUCCESS;
117127
}

0 commit comments

Comments
 (0)