From e6683e2b06b1de1b48fddebe86271a3cdbd5f051 Mon Sep 17 00:00:00 2001 From: Valerie Hau Date: Thu, 30 Aug 2018 15:47:37 -0700 Subject: [PATCH] Fixing execute bug in VTS tests for hardware composer Bug: 113532117 Test: ./VtsHalGraphicsComposerV2_1TargetTest && ./VtsHalGraphicsComposerV2_2TargetTest Change-Id: I5c3485d45c798c40377e4567ab14cce667dd17ea --- .../composer/2.1/utils/vts/ComposerVts.cpp | 1 - .../2.1/utils/vts/TestCommandReader.cpp | 4 +++- .../composer-vts/2.1/TestCommandReader.h | 1 + .../VtsHalGraphicsComposerV2_1TargetTest.cpp | 5 ++++- .../composer/2.2/utils/vts/ComposerVts.cpp | 1 - .../VtsHalGraphicsComposerV2_2TargetTest.cpp | 19 ++++++++++++++++++- 6 files changed, 26 insertions(+), 5 deletions(-) diff --git a/graphics/composer/2.1/utils/vts/ComposerVts.cpp b/graphics/composer/2.1/utils/vts/ComposerVts.cpp index 43a5378bfb..1cafafe3ae 100644 --- a/graphics/composer/2.1/utils/vts/ComposerVts.cpp +++ b/graphics/composer/2.1/utils/vts/ComposerVts.cpp @@ -293,7 +293,6 @@ void ComposerClient::execute(TestCommandReader* reader, CommandWriterBase* write if (queueChanged) { auto ret = mClient->setInputCommandQueue(*writer->getMQDescriptor()); ASSERT_EQ(Error::NONE, static_cast(ret)); - return; } mClient->executeCommands(commandLength, commandHandles, diff --git a/graphics/composer/2.1/utils/vts/TestCommandReader.cpp b/graphics/composer/2.1/utils/vts/TestCommandReader.cpp index e1dc5b6ebe..454a89ccdc 100644 --- a/graphics/composer/2.1/utils/vts/TestCommandReader.cpp +++ b/graphics/composer/2.1/utils/vts/TestCommandReader.cpp @@ -26,6 +26,7 @@ namespace V2_1 { namespace vts { void TestCommandReader::parse() { + mErrors.clear(); mCompositionChanges.clear(); while (!isEmpty()) { IComposerClient::Command command; @@ -41,7 +42,8 @@ void TestCommandReader::parse() { ASSERT_EQ(2, length); auto loc = read(); auto err = readSigned(); - GTEST_FAIL() << "unexpected error " << err << " at location " << loc; + std::pair error(loc, err); + mErrors.push_back(error); } break; case IComposerClient::Command::SET_CHANGED_COMPOSITION_TYPES: ASSERT_EQ(0, length % 3); diff --git a/graphics/composer/2.1/utils/vts/include/composer-vts/2.1/TestCommandReader.h b/graphics/composer/2.1/utils/vts/include/composer-vts/2.1/TestCommandReader.h index b9a4a5c103..c12debe066 100644 --- a/graphics/composer/2.1/utils/vts/include/composer-vts/2.1/TestCommandReader.h +++ b/graphics/composer/2.1/utils/vts/include/composer-vts/2.1/TestCommandReader.h @@ -33,6 +33,7 @@ class TestCommandReader : public CommandReaderBase { // unexpected errors or commands. void parse(); + std::vector> mErrors; std::vector> mCompositionChanges; }; diff --git a/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp b/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp index 0607d4d81f..8b8c7aeef3 100644 --- a/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp +++ b/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp @@ -672,7 +672,10 @@ class GraphicsComposerHidlCommandTest : public GraphicsComposerHidlTest { mReader = std::make_unique(); } - void TearDown() override { ASSERT_NO_FATAL_FAILURE(GraphicsComposerHidlTest::TearDown()); } + void TearDown() override { + ASSERT_EQ(0, mReader->mErrors.size()); + ASSERT_NO_FATAL_FAILURE(GraphicsComposerHidlTest::TearDown()); + } const native_handle_t* allocate() { IMapper::BufferDescriptorInfo info{}; diff --git a/graphics/composer/2.2/utils/vts/ComposerVts.cpp b/graphics/composer/2.2/utils/vts/ComposerVts.cpp index 459e0fe2c1..d8fb656b7b 100644 --- a/graphics/composer/2.2/utils/vts/ComposerVts.cpp +++ b/graphics/composer/2.2/utils/vts/ComposerVts.cpp @@ -68,7 +68,6 @@ void ComposerClient::execute(V2_1::vts::TestCommandReader* reader, CommandWriter if (queueChanged) { auto ret = mClient->setInputCommandQueue(*writer->getMQDescriptor()); ASSERT_EQ(Error::NONE, static_cast(ret)); - return; } mClient->executeCommands(commandLength, commandHandles, diff --git a/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp b/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp index e40dc22396..ffd6daf310 100644 --- a/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp +++ b/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp @@ -127,7 +127,10 @@ class GraphicsComposerHidlCommandTest : public GraphicsComposerHidlTest { mReader = std::make_unique(); } - void TearDown() override { ASSERT_NO_FATAL_FAILURE(GraphicsComposerHidlTest::TearDown()); } + void TearDown() override { + ASSERT_EQ(0, mReader->mErrors.size()); + ASSERT_NO_FATAL_FAILURE(GraphicsComposerHidlTest::TearDown()); + } const native_handle_t* allocate() { IMapper::BufferDescriptorInfo info{}; @@ -189,6 +192,12 @@ TEST_F(GraphicsComposerHidlCommandTest, SET_LAYER_PER_FRAME_METADATA) { {IComposerClient::PerFrameMetadataKey::MAX_FRAME_AVERAGE_LIGHT_LEVEL, 62.0}); mWriter->setLayerPerFrameMetadata(hidlMetadata); execute(); + + if (mReader->mErrors.size() == 1 && + static_cast(mReader->mErrors[0].second) == Error::UNSUPPORTED) { + mReader->mErrors.clear(); + GTEST_SUCCEED() << "SetLayerPerFrameMetadata is not supported"; + } } /** @@ -313,6 +322,14 @@ TEST_F(GraphicsComposerHidlCommandTest, SET_LAYER_FLOAT_COLOR) { mWriter->selectLayer(layer); mWriter->setLayerFloatColor(IComposerClient::FloatColor{1.0, 1.0, 1.0, 1.0}); mWriter->setLayerFloatColor(IComposerClient::FloatColor{0.0, 0.0, 0.0, 0.0}); + execute(); + + if (mReader->mErrors.size() == 2 && + static_cast(mReader->mErrors[0].second) == Error::UNSUPPORTED && + static_cast(mReader->mErrors[1].second) == Error::UNSUPPORTED) { + mReader->mErrors.clear(); + GTEST_SUCCEED() << "SetLayerFloatColor is not supported"; + } } /**