Merge "aaudio: do not assert if deleting an unopened stream" into oc-dr1-dev
diff --git a/media/libaaudio/tests/test_n_streams.cpp b/media/libaaudio/tests/test_n_streams.cpp
index bf4b64e..271d024 100644
--- a/media/libaaudio/tests/test_n_streams.cpp
+++ b/media/libaaudio/tests/test_n_streams.cpp
@@ -26,42 +26,31 @@
#define MMAP_POLICY AAUDIO_POLICY_AUTO
//#define MMAP_POLICY AAUDIO_POLICY_ALWAYS
-#define MAX_STREAMS 100
+#define MAX_STREAMS 200
-int main(int argc, char **argv)
-{
- (void)argc; // unused
- (void)argv; // unused
-
+aaudio_result_t testMaxStreams(aaudio_direction_t direction) {
aaudio_result_t result = AAUDIO_OK;
AAudioStreamBuilder *aaudioBuilder = nullptr;
- AAudioStream *aaudioStream[MAX_STREAMS];
+ AAudioStream *aaudioStreams[MAX_STREAMS];
int32_t numStreams = 0;
- // Make printf print immediately so that debug info is not stuck
- // in a buffer if we hang or crash.
- setvbuf(stdout, NULL, _IONBF, (size_t) 0);
-
- printf("Try to open a maximum of %d streams.\n", MAX_STREAMS);
-
- AAudio_setMMapPolicy(MMAP_POLICY);
- printf("requested MMapPolicy = %d\n", AAudio_getMMapPolicy());
-
result = AAudio_createStreamBuilder(&aaudioBuilder);
if (result != AAUDIO_OK) {
return 1;
}
+ AAudioStreamBuilder_setDirection(aaudioBuilder, direction);
+
for (int i = 0; i < MAX_STREAMS; i++) {
// Create an AAudioStream using the Builder.
- result = AAudioStreamBuilder_openStream(aaudioBuilder, &aaudioStream[i]);
+ result = AAudioStreamBuilder_openStream(aaudioBuilder, &aaudioStreams[i]);
if (result != AAUDIO_OK) {
printf("ERROR could not open AAudio stream, %d %s\n",
result, AAudio_convertResultToText(result));
break;
} else {
printf("AAudio stream[%2d] opened successfully. MMAP = %s\n",
- i, AAudioStream_isMMapUsed(aaudioStream[i]) ? "YES" : "NO");
+ i, AAudioStream_isMMapUsed(aaudioStreams[i]) ? "YES" : "NO");
numStreams++;
}
}
@@ -70,7 +59,7 @@
// Close all the streams.
for (int i = 0; i < numStreams; i++) {
- result = AAudioStream_close(aaudioStream[i]);
+ result = AAudioStream_close(aaudioStreams[i]);
if (result != AAUDIO_OK) {
printf("ERROR could not close AAudio stream, %d %s\n",
result, AAudio_convertResultToText(result));
@@ -83,6 +72,28 @@
AAudioStreamBuilder_delete(aaudioBuilder);
finish:
- return (result != AAUDIO_OK) ? EXIT_FAILURE : EXIT_SUCCESS;
+ return result;
}
+int main(int argc, char **argv) {
+ (void)argc; // unused
+ (void)argv; // unused
+
+ // Make printf print immediately so that debug info is not stuck
+ // in a buffer if we hang or crash.
+ setvbuf(stdout, NULL, _IONBF, (size_t) 0);
+
+ printf("Try to open a maximum of %d streams.\n", MAX_STREAMS);
+
+ AAudio_setMMapPolicy(MMAP_POLICY);
+ printf("requested MMapPolicy = %d\n", AAudio_getMMapPolicy());
+
+ printf("Test AAUDIO_DIRECTION_OUTPUT ---------\n");
+ aaudio_result_t result = testMaxStreams(AAUDIO_DIRECTION_OUTPUT);
+ if (result == AAUDIO_OK) {
+ printf("Test AAUDIO_DIRECTION_INPUT ---------\n");
+ result = testMaxStreams(AAUDIO_DIRECTION_INPUT);
+ }
+
+ return (result != AAUDIO_OK) ? EXIT_FAILURE : EXIT_SUCCESS;
+}