Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e202fc24 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "aaudio test: add tests for after release" into rvc-dev

parents f8b4f9a0 cc131ba4
Loading
Loading
Loading
Loading
+24 −3
Original line number Diff line number Diff line
@@ -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));