diff options
Diffstat (limited to 'graphics/mapper/4.0/vts/functional/VtsHalGraphicsMapperV4_0TargetTest.cpp')
-rw-r--r-- | graphics/mapper/4.0/vts/functional/VtsHalGraphicsMapperV4_0TargetTest.cpp | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/graphics/mapper/4.0/vts/functional/VtsHalGraphicsMapperV4_0TargetTest.cpp b/graphics/mapper/4.0/vts/functional/VtsHalGraphicsMapperV4_0TargetTest.cpp index 2ab9c01c5d..5e012f6ef7 100644 --- a/graphics/mapper/4.0/vts/functional/VtsHalGraphicsMapperV4_0TargetTest.cpp +++ b/graphics/mapper/4.0/vts/functional/VtsHalGraphicsMapperV4_0TargetTest.cpp @@ -21,6 +21,7 @@ #include <thread> #include <vector> +#include <aidl/android/hardware/graphics/common/PixelFormat.h> #include <aidl/android/hardware/graphics/common/PlaneLayoutComponentType.h> #include <android-base/logging.h> @@ -92,7 +93,13 @@ class GraphicsMapperHidlTest ASSERT_NO_FATAL_FAILURE(bufferHandle = mGralloc->allocate(descriptorInfo, true)); hidl_vec<uint8_t> vec; - ASSERT_EQ(Error::NONE, mGralloc->get(bufferHandle, metadataType, &vec)); + const auto result = mGralloc->get(bufferHandle, metadataType, &vec); + + if (metadataType == gralloc4::MetadataType_Smpte2094_10 && result == Error::UNSUPPORTED) { + GTEST_SKIP() << "getting metadata for Smpte2094-10 is unsupported"; + } + + ASSERT_EQ(Error::NONE, result); ASSERT_NO_FATAL_FAILURE(decode(descriptorInfo, vec)); } @@ -1205,6 +1212,40 @@ TEST_P(GraphicsMapperHidlTest, IsSupportedY16) { } /** + * Test IMapper::isSupported with optional format R_8 + */ +TEST_P(GraphicsMapperHidlTest, IsSupportedR8) { + auto info = mDummyDescriptorInfo; + info.format = static_cast<android::hardware::graphics::common::V1_2::PixelFormat>( + aidl::android::hardware::graphics::common::PixelFormat::R_8); + bool supported = false; + + ASSERT_NO_FATAL_FAILURE(supported = mGralloc->isSupported(info)); + + if (!supported) { + GTEST_SUCCEED() << "R_8 is optional; unsupported so skipping allocation test"; + return; + } + + BufferDescriptor descriptor; + ASSERT_NO_FATAL_FAILURE(descriptor = mGralloc->createDescriptor(info)); + + constexpr uint32_t count = 1; + std::vector<const native_handle_t*> bufferHandles; + uint32_t stride; + ASSERT_NO_FATAL_FAILURE(bufferHandles = + mGralloc->allocate(descriptor, count, false, + Tolerance::kToleranceStrict, &stride)); + + EXPECT_LE(info.width, stride) << "invalid buffer stride"; + EXPECT_EQ(1u, bufferHandles.size()); + + for (auto bufferHandle : bufferHandles) { + mGralloc->freeBuffer(bufferHandle); + } +} + +/** * Test IMapper::get(BufferId) */ TEST_P(GraphicsMapperHidlTest, GetBufferId) { |