Merge "Audio VTS: Fix MMAP tests"

This commit is contained in:
TreeHugger Robot
2019-11-19 19:56:46 +00:00
committed by Android (Google) Code Review
3 changed files with 12 additions and 13 deletions

View File

@@ -277,7 +277,7 @@ interface IStream {
* @return retval OK in case the success.
* NOT_SUPPORTED on non mmap mode streams
* NOT_INITIALIZED in case of memory allocation error
* INVALID_ARGUMENTS if the requested buffer size is too large
* INVALID_ARGUMENTS if the requested buffer size is invalid
* INVALID_STATE if called out of sequence
* @return info a MmapBufferInfo struct containing information on the MMMAP buffer created.
*/

View File

@@ -100,7 +100,8 @@ const std::vector<DeviceConfigParameter>& getOutputDeviceConfigParameters() {
special = true;
}
if ((flags & AUDIO_OUTPUT_FLAG_DIRECT) &&
!(flags & AUDIO_OUTPUT_FLAG_HW_AV_SYNC)) {
!(flags &
(AUDIO_OUTPUT_FLAG_HW_AV_SYNC | AUDIO_OUTPUT_FLAG_MMAP_NOIRQ))) {
result.emplace_back(device, config,
AudioOutputFlag(AUDIO_OUTPUT_FLAG_DIRECT));
special = true;

View File

@@ -1202,19 +1202,17 @@ TEST_IO_STREAM(closeTwice, "Make sure a stream can not be closed twice",
waitForStreamDestruction())
// clang-format on
static void testCreateTooBigMmapBuffer(IStream* stream) {
MmapBufferInfo info;
Result res;
// Assume that int max is a value too big to be allocated
// This is true currently with a 32bit media server, but might not when it
// will run in 64 bit
auto minSizeFrames = std::numeric_limits<int32_t>::max();
ASSERT_OK(stream->createMmapBuffer(minSizeFrames, returnIn(res, info)));
ASSERT_RESULT(invalidArgsOrNotSupported, res);
static void testMmapBufferOfInvalidSize(IStream* stream) {
for (int32_t value : {-1, 0, std::numeric_limits<int32_t>::max()}) {
MmapBufferInfo info;
Result res;
EXPECT_OK(stream->createMmapBuffer(value, returnIn(res, info)));
EXPECT_RESULT(invalidArgsOrNotSupported, res) << "value=" << value;
}
}
TEST_IO_STREAM(CreateTooBigMmapBuffer, "Create mmap buffer too big should fail",
testCreateTooBigMmapBuffer(stream.get()))
TEST_IO_STREAM(CreateTooBigMmapBuffer, "Create mmap buffer of invalid size must fail",
testMmapBufferOfInvalidSize(stream.get()))
static void testGetMmapPositionOfNonMmapedStream(IStream* stream) {
Result res;