From: Jaechul Lee Date: Tue, 29 Dec 2020 00:30:14 +0000 (+0900) Subject: Add handle creation testcase X-Git-Tag: accepted/tizen/unified/20210923.133037~2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fapi%2Faudio-io.git;a=commitdiff_plain;h=ff91ec2816611b6d57964b1b6db801623c22128c Add handle creation testcase [Version] 0.5.40 [Issue Type] Enhancement Change-Id: I2bd966aaf73807b310e620a9ab5e1d8ce23431c1 Signed-off-by: Jaechul Lee --- diff --git a/packaging/capi-media-audio-io.spec b/packaging/capi-media-audio-io.spec index f62cb95..83ff1f0 100644 --- a/packaging/capi-media-audio-io.spec +++ b/packaging/capi-media-audio-io.spec @@ -1,6 +1,6 @@ Name: capi-media-audio-io Summary: An Audio Input & Audio Output library in Tizen Native API -Version: 0.5.39 +Version: 0.5.40 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/test/audio_io_test.c b/test/audio_io_test.c index 51c82bf..2e0f754 100644 --- a/test/audio_io_test.c +++ b/test/audio_io_test.c @@ -863,7 +863,55 @@ EXIT: pthread_exit(0); } -int audio_io_stress_test() +#define OUT_HANDLE_MAX 1000 +#define IN_HANDLE_MAX 10 +void audio_io_test_handle_max() +{ + audio_out_h output[OUT_HANDLE_MAX] = { 0, }; + audio_in_h input[IN_HANDLE_MAX] = { 0, }; + int i; + int success = 0; + int ret; + + printf("==============================================\n"); + printf("playback handle creation test. try to create %d handles\n", OUT_HANDLE_MAX); + for (i = 0; i < OUT_HANDLE_MAX; i++) { + ret = audio_out_create_new(48000, AUDIO_CHANNEL_STEREO, AUDIO_SAMPLE_TYPE_S16_LE, &output[i]); + if (ret != AUDIO_IO_ERROR_NONE) { + printf("audio_out_create_new failed.\n"); + return; + } + + ret = audio_out_prepare(output[i]); + if (ret == AUDIO_IO_ERROR_NONE) + success++; + } + printf("created handle (%d/%d)\n", success, OUT_HANDLE_MAX); + + for (i = 0; i < OUT_HANDLE_MAX; i++) + audio_out_destroy(output[i]); + + /* pulseaudio oom when IN_HANDLE_MAX is set over 50 */ + printf("capture handle creation test. try to create %d handles\n", IN_HANDLE_MAX); + success = 0; + for (i = 0; i < IN_HANDLE_MAX; i++) { + ret = audio_in_create(48000, AUDIO_CHANNEL_STEREO, AUDIO_SAMPLE_TYPE_S16_LE, &input[i]); + if (ret != AUDIO_IO_ERROR_NONE) { + printf("audio_in_create_new failed.\n"); + return; + } + + ret = audio_in_prepare(input[i]); + if (ret == AUDIO_IO_ERROR_NONE) + success++; + } + printf("created handle (%d/%d)\n", success, IN_HANDLE_MAX); + + for (i = 0; i < IN_HANDLE_MAX; i++) + audio_in_destroy(input[i]); +} + +int audio_io_test_read_write() { int i; int ret; @@ -922,6 +970,7 @@ int audio_io_stress_test() } audio_in_set_stream_cb(input, in_stream_cb, NULL); + printf("==============================================\n"); printf("audio out sync test\n"); for (i = 0; i < THREAD_MAX; i++) pthread_create(&t[i], NULL, thread_stress_test_audio_out, output[0]); @@ -931,6 +980,7 @@ int audio_io_stress_test() printf("thread %d finished\n", i); } + printf("==============================================\n"); printf("audio out async test\n"); for (i = 0; i < THREAD_MAX; i++) pthread_create(&t[i], NULL, thread_stress_test_audio_out, output[1]); @@ -940,6 +990,7 @@ int audio_io_stress_test() printf("thread %d finished\n", i); } + printf("==============================================\n"); printf("audio in test\n"); for (i = 0; i < THREAD_MAX; i++) pthread_create(&t[i], NULL, thread_stress_test_audio_in, input); @@ -967,7 +1018,8 @@ int main(int argc, char **argv) } else if (argc == 3 && !strcmp(argv[1], "async")) { audio_io_async_test(atoi(argv[2])); } else if (argc == 2 && !strcmp(argv[1], "stress")) { - audio_io_stress_test(); + audio_io_test_handle_max(); + audio_io_test_read_write(); } else if (argc == 4) { int channel_idx = atoi(argv[3]); if (channel_idx < 0 || channel_idx > 8) {