Add handle creation testcase 15/250515/3
authorJaechul Lee <jcsing.lee@samsung.com>
Tue, 29 Dec 2020 00:30:14 +0000 (09:30 +0900)
committerJaechul Lee <jcsing.lee@samsung.com>
Tue, 29 Dec 2020 23:20:13 +0000 (08:20 +0900)
[Version] 0.5.40
[Issue Type] Enhancement

Change-Id: I2bd966aaf73807b310e620a9ab5e1d8ce23431c1
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
packaging/capi-media-audio-io.spec
test/audio_io_test.c

index f62cb95..83ff1f0 100644 (file)
@@ -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
index 51c82bf..2e0f754 100644 (file)
@@ -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) {