Loading media/libaaudio/tests/test_various.cpp +24 −3 Original line number Diff line number Diff line Loading @@ -75,12 +75,33 @@ void checkReleaseThenClose(aaudio_performance_mode_t perfMode, EXPECT_EQ(AAUDIO_OK, AAudioStream_requestStop(aaudioStream)); EXPECT_EQ(AAUDIO_OK, AAudioStream_release(aaudioStream)); aaudio_stream_state_t state = AAudioStream_getState(aaudioStream); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, state); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, AAudioStream_getState(aaudioStream)); // We should be able to call this again without crashing. EXPECT_EQ(AAUDIO_OK, AAudioStream_release(aaudioStream)); state = AAudioStream_getState(aaudioStream); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, AAudioStream_getState(aaudioStream)); // We expect these not to crash. AAudioStream_setBufferSizeInFrames(aaudioStream, 0); AAudioStream_setBufferSizeInFrames(aaudioStream, 99999999); // We should NOT be able to start or change a stream after it has been released. EXPECT_EQ(AAUDIO_ERROR_INVALID_STATE, AAudioStream_requestStart(aaudioStream)); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, AAudioStream_getState(aaudioStream)); EXPECT_EQ(AAUDIO_ERROR_INVALID_STATE, AAudioStream_requestPause(aaudioStream)); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, AAudioStream_getState(aaudioStream)); EXPECT_EQ(AAUDIO_ERROR_INVALID_STATE, AAudioStream_requestStop(aaudioStream)); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, AAudioStream_getState(aaudioStream)); // Does this crash? EXPECT_LT(0, AAudioStream_getFramesRead(aaudioStream)); EXPECT_LT(0, AAudioStream_getFramesWritten(aaudioStream)); // Verify Closing State. Does this crash? aaudio_stream_state_t state = AAUDIO_STREAM_STATE_UNKNOWN; EXPECT_EQ(AAUDIO_OK, AAudioStream_waitForStateChange(aaudioStream, AAUDIO_STREAM_STATE_UNKNOWN, &state, 500 * NANOS_PER_MILLISECOND)); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, state); EXPECT_EQ(AAUDIO_OK, AAudioStream_close(aaudioStream)); Loading Loading
media/libaaudio/tests/test_various.cpp +24 −3 Original line number Diff line number Diff line Loading @@ -75,12 +75,33 @@ void checkReleaseThenClose(aaudio_performance_mode_t perfMode, EXPECT_EQ(AAUDIO_OK, AAudioStream_requestStop(aaudioStream)); EXPECT_EQ(AAUDIO_OK, AAudioStream_release(aaudioStream)); aaudio_stream_state_t state = AAudioStream_getState(aaudioStream); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, state); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, AAudioStream_getState(aaudioStream)); // We should be able to call this again without crashing. EXPECT_EQ(AAUDIO_OK, AAudioStream_release(aaudioStream)); state = AAudioStream_getState(aaudioStream); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, AAudioStream_getState(aaudioStream)); // We expect these not to crash. AAudioStream_setBufferSizeInFrames(aaudioStream, 0); AAudioStream_setBufferSizeInFrames(aaudioStream, 99999999); // We should NOT be able to start or change a stream after it has been released. EXPECT_EQ(AAUDIO_ERROR_INVALID_STATE, AAudioStream_requestStart(aaudioStream)); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, AAudioStream_getState(aaudioStream)); EXPECT_EQ(AAUDIO_ERROR_INVALID_STATE, AAudioStream_requestPause(aaudioStream)); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, AAudioStream_getState(aaudioStream)); EXPECT_EQ(AAUDIO_ERROR_INVALID_STATE, AAudioStream_requestStop(aaudioStream)); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, AAudioStream_getState(aaudioStream)); // Does this crash? EXPECT_LT(0, AAudioStream_getFramesRead(aaudioStream)); EXPECT_LT(0, AAudioStream_getFramesWritten(aaudioStream)); // Verify Closing State. Does this crash? aaudio_stream_state_t state = AAUDIO_STREAM_STATE_UNKNOWN; EXPECT_EQ(AAUDIO_OK, AAudioStream_waitForStateChange(aaudioStream, AAUDIO_STREAM_STATE_UNKNOWN, &state, 500 * NANOS_PER_MILLISECOND)); EXPECT_EQ(AAUDIO_STREAM_STATE_CLOSING, state); EXPECT_EQ(AAUDIO_OK, AAudioStream_close(aaudioStream)); Loading