Merge "Check Exception Code for Service specific error" into tm-dev am: cb1fd25a53

Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/interfaces/+/17921233

Change-Id: I243a4df22209c1e1e0a3d893582527d307489b92
Ignore-AOSP-First: this is an automerge
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Ram Indani 2022-04-26 17:59:43 +00:00 committed by Automerger Merge Worker
commit be6e0a7899
2 changed files with 97 additions and 63 deletions

View file

@ -109,6 +109,11 @@ class GraphicsCompositionTestBase : public ::testing::Test {
int32_t getDisplayHeight() const { return getPrimaryDisplay().getDisplayHeight(); }
void assertServiceSpecificError(const ScopedAStatus& status, int32_t serviceSpecificError) {
ASSERT_EQ(status.getExceptionCode(), EX_SERVICE_SPECIFIC);
ASSERT_EQ(status.getServiceSpecificError(), serviceSpecificError);
}
std::pair<bool, ::android::sp<::android::GraphicBuffer>> allocateBuffer(uint32_t usage) {
const auto width = static_cast<uint32_t>(getDisplayWidth());
const auto height = static_cast<uint32_t>(getDisplayHeight());
@ -222,7 +227,8 @@ class GraphicsCompositionTestBase : public ::testing::Test {
mDataspace = readBackBufferAttributes.dataspace;
return ReadbackHelper::readbackSupported(mPixelFormat, mDataspace);
}
EXPECT_EQ(IComposerClient::EX_UNSUPPORTED, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(status, IComposerClient::EX_UNSUPPORTED));
return false;
}
@ -458,7 +464,7 @@ TEST_P(GraphicsCompositionTest, SetReadbackBuffer_BadDisplay) {
mComposerClient->setReadbackBuffer(getInvalidDisplayId(), bufferHandle, fence);
EXPECT_FALSE(status.isOk());
ASSERT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsCompositionTest, SetReadbackBuffer_BadParameter) {
@ -475,7 +481,7 @@ TEST_P(GraphicsCompositionTest, SetReadbackBuffer_BadParameter) {
mComposerClient->setReadbackBuffer(getPrimaryDisplayId(), &bufferHandle, releaseFence);
EXPECT_FALSE(status.isOk());
ASSERT_EQ(IComposerClient::EX_BAD_PARAMETER, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_PARAMETER));
}
TEST_P(GraphicsCompositionTest, GetReadbackBufferFenceInactive) {
@ -490,7 +496,7 @@ TEST_P(GraphicsCompositionTest, GetReadbackBufferFenceInactive) {
mComposerClient->getReadbackBufferFence(getPrimaryDisplayId());
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_UNSUPPORTED, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_UNSUPPORTED));
EXPECT_EQ(-1, releaseFence.get());
}
@ -1300,7 +1306,7 @@ TEST_P(GraphicsTransformCompositionTest, FLIP_H) {
for (ColorMode mode : mTestColorModes) {
auto status = mComposerClient->setColorMode(getPrimaryDisplayId(), mode,
RenderIntent::COLORIMETRIC);
if (!status.isOk() &&
if (!status.isOk() && status.getExceptionCode() == EX_SERVICE_SPECIFIC &&
(status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED ||
status.getServiceSpecificError() == IComposerClient::EX_BAD_PARAMETER)) {
SUCCEED() << "ColorMode not supported, skip test";

View file

@ -71,6 +71,11 @@ class GraphicsComposerAidlTest : public ::testing::TestWithParam<std::string> {
mComposerClient.reset();
}
void assertServiceSpecificError(const ScopedAStatus& status, int32_t serviceSpecificError) {
ASSERT_EQ(status.getExceptionCode(), EX_SERVICE_SPECIFIC);
ASSERT_EQ(status.getServiceSpecificError(), serviceSpecificError);
}
void Test_setContentTypeForDisplay(int64_t display,
const std::vector<ContentType>& supportedContentTypes,
ContentType contentType, const char* contentTypeStr) {
@ -81,7 +86,8 @@ class GraphicsComposerAidlTest : public ::testing::TestWithParam<std::string> {
if (!contentTypeSupport) {
const auto& status = mComposerClient->setContentType(display, contentType);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_UNSUPPORTED, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(status, IComposerClient::EX_UNSUPPORTED));
GTEST_SUCCEED() << contentTypeStr << " content type is not supported on display "
<< std::to_string(display) << ", skipping test";
return;
@ -132,7 +138,7 @@ TEST_P(GraphicsComposerAidlTest, GetDisplayCapabilities_BadDisplay) {
const auto& [status, _] = mComposerClient->getDisplayCapabilities(getInvalidDisplayId());
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, GetDisplayCapabilities) {
@ -153,13 +159,14 @@ TEST_P(GraphicsComposerAidlTest, CreateClientSingleton) {
const auto& status = mComposerClient->createClient();
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_NO_RESOURCES, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_NO_RESOURCES));
}
TEST_P(GraphicsComposerAidlTest, GetDisplayIdentificationData) {
const auto& [status0, displayIdentification0] =
mComposerClient->getDisplayIdentificationData(getPrimaryDisplayId());
if (!status0.isOk() && status0.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
if (!status0.isOk() && status0.getExceptionCode() == EX_SERVICE_SPECIFIC &&
status0.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
GTEST_SUCCEED() << "Display identification data not supported, skipping test";
return;
}
@ -200,7 +207,8 @@ TEST_P(GraphicsComposerAidlTest, GetHdrCapabilities) {
TEST_P(GraphicsComposerAidlTest, GetPerFrameMetadataKeys) {
const auto& [status, keys] = mComposerClient->getPerFrameMetadataKeys(getPrimaryDisplayId());
if (!status.isOk() && status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
if (!status.isOk() && status.getExceptionCode() == EX_SERVICE_SPECIFIC &&
status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
GTEST_SUCCEED() << "getPerFrameMetadataKeys is not supported";
return;
}
@ -211,7 +219,8 @@ TEST_P(GraphicsComposerAidlTest, GetPerFrameMetadataKeys) {
TEST_P(GraphicsComposerAidlTest, GetReadbackBufferAttributes) {
const auto& [status, _] = mComposerClient->getReadbackBufferAttributes(getPrimaryDisplayId());
if (!status.isOk() && status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
if (!status.isOk() && status.getExceptionCode() == EX_SERVICE_SPECIFIC &&
status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
GTEST_SUCCEED() << "getReadbackBufferAttributes is not supported";
return;
}
@ -254,7 +263,8 @@ TEST_P(GraphicsComposerAidlTest, GetRenderIntents_BadDisplay) {
mComposerClient->getRenderIntents(getInvalidDisplayId(), mode);
EXPECT_FALSE(intentStatus.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, intentStatus.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(intentStatus, IComposerClient::EX_BAD_DISPLAY));
}
}
@ -263,7 +273,7 @@ TEST_P(GraphicsComposerAidlTest, GetRenderIntents_BadParameter) {
mComposerClient->getRenderIntents(getPrimaryDisplayId(), static_cast<ColorMode>(-1));
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_PARAMETER, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_PARAMETER));
}
TEST_P(GraphicsComposerAidlTest, GetColorModes) {
@ -278,7 +288,7 @@ TEST_P(GraphicsComposerAidlTest, GetColorMode_BadDisplay) {
const auto& [status, _] = mComposerClient->getColorModes(getInvalidDisplayId());
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, SetColorMode) {
@ -294,7 +304,8 @@ TEST_P(GraphicsComposerAidlTest, SetColorMode) {
const auto modeStatus =
mComposerClient->setColorMode(getPrimaryDisplayId(), mode, intent);
EXPECT_TRUE(modeStatus.isOk() ||
IComposerClient::EX_UNSUPPORTED == modeStatus.getServiceSpecificError())
(modeStatus.getExceptionCode() == EX_SERVICE_SPECIFIC &&
IComposerClient::EX_UNSUPPORTED == modeStatus.getServiceSpecificError()))
<< "failed to set color mode";
}
}
@ -302,7 +313,8 @@ TEST_P(GraphicsComposerAidlTest, SetColorMode) {
const auto modeStatus = mComposerClient->setColorMode(getPrimaryDisplayId(), ColorMode::NATIVE,
RenderIntent::COLORIMETRIC);
EXPECT_TRUE(modeStatus.isOk() ||
IComposerClient::EX_UNSUPPORTED == modeStatus.getServiceSpecificError())
(modeStatus.getExceptionCode() == EX_SERVICE_SPECIFIC &&
IComposerClient::EX_UNSUPPORTED == modeStatus.getServiceSpecificError()))
<< "failed to set color mode";
}
@ -320,7 +332,8 @@ TEST_P(GraphicsComposerAidlTest, SetColorMode_BadDisplay) {
mComposerClient->setColorMode(getInvalidDisplayId(), mode, intent);
EXPECT_FALSE(modeStatus.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, modeStatus.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(modeStatus, IComposerClient::EX_BAD_DISPLAY));
}
}
}
@ -330,13 +343,13 @@ TEST_P(GraphicsComposerAidlTest, SetColorMode_BadParameter) {
RenderIntent::COLORIMETRIC);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_PARAMETER, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_PARAMETER));
status = mComposerClient->setColorMode(getPrimaryDisplayId(), ColorMode::NATIVE,
static_cast<RenderIntent>(-1));
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_PARAMETER, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_PARAMETER));
}
TEST_P(GraphicsComposerAidlTest, GetDisplayedContentSamplingAttributes) {
@ -344,7 +357,8 @@ TEST_P(GraphicsComposerAidlTest, GetDisplayedContentSamplingAttributes) {
const auto& [status, format] =
mComposerClient->getDisplayedContentSamplingAttributes(getPrimaryDisplayId());
if (!status.isOk() && status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
if (!status.isOk() && status.getExceptionCode() == EX_SERVICE_SPECIFIC &&
status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
SUCCEED() << "Device does not support optional extension. Test skipped";
return;
}
@ -360,7 +374,8 @@ TEST_P(GraphicsComposerAidlTest, SetDisplayedContentSamplingEnabled) {
FormatColorComponent enableAllComponents = FormatColorComponent::FORMAT_COMPONENT_0;
auto status = mComposerClient->setDisplayedContentSamplingEnabled(
getPrimaryDisplayId(), /*isEnabled*/ true, enableAllComponents, kMaxFrames);
if (!status.isOk() && status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
if (!status.isOk() && status.getExceptionCode() == EX_SERVICE_SPECIFIC &&
status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
SUCCEED() << "Device does not support optional extension. Test skipped";
return;
}
@ -374,7 +389,8 @@ TEST_P(GraphicsComposerAidlTest, SetDisplayedContentSamplingEnabled) {
TEST_P(GraphicsComposerAidlTest, GetDisplayedContentSample) {
const auto& [status, displayContentSamplingAttributes] =
mComposerClient->getDisplayedContentSamplingAttributes(getPrimaryDisplayId());
if (!status.isOk() && status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
if (!status.isOk() && status.getExceptionCode() == EX_SERVICE_SPECIFIC &&
status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
SUCCEED() << "Sampling attributes aren't supported on this device, test skipped";
return;
}
@ -383,7 +399,7 @@ TEST_P(GraphicsComposerAidlTest, GetDisplayedContentSample) {
int64_t constexpr kTimestamp = 0;
const auto& [sampleStatus, displayContentSample] = mComposerClient->getDisplayedContentSample(
getPrimaryDisplayId(), kMaxFrames, kTimestamp);
if (!sampleStatus.isOk() &&
if (!sampleStatus.isOk() && sampleStatus.getExceptionCode() == EX_SERVICE_SPECIFIC &&
sampleStatus.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
SUCCEED() << "Device does not support optional extension. Test skipped";
return;
@ -405,7 +421,7 @@ TEST_P(GraphicsComposerAidlTest, GetDisplayConnectionType) {
const auto& [status, type] = mComposerClient->getDisplayConnectionType(getInvalidDisplayId());
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
for (const auto& display : mDisplays) {
const auto& [connectionTypeStatus, _] =
@ -440,8 +456,10 @@ TEST_P(GraphicsComposerAidlTest, GetDisplayAttribute) {
for (const auto& attribute : optionalAttributes) {
const auto& [attribStatus, value] = mComposerClient->getDisplayAttribute(
display.getDisplayId(), config, attribute);
EXPECT_TRUE(attribStatus.isOk() || IComposerClient::EX_UNSUPPORTED ==
attribStatus.getServiceSpecificError());
EXPECT_TRUE(attribStatus.isOk() ||
(attribStatus.getExceptionCode() == EX_SERVICE_SPECIFIC &&
IComposerClient::EX_UNSUPPORTED ==
attribStatus.getServiceSpecificError()));
}
}
}
@ -463,7 +481,7 @@ TEST_P(GraphicsComposerAidlTest, GetDisplayVsyncPeriod_BadDisplay) {
mComposerClient->getDisplayVsyncPeriod(getInvalidDisplayId());
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, SetActiveConfigWithConstraints_BadDisplay) {
@ -476,7 +494,7 @@ TEST_P(GraphicsComposerAidlTest, SetActiveConfigWithConstraints_BadDisplay) {
&invalidDisplay, /*config*/ 0, constraints);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, SetActiveConfigWithConstraints_BadConfig) {
@ -490,7 +508,7 @@ TEST_P(GraphicsComposerAidlTest, SetActiveConfigWithConstraints_BadConfig) {
&display, kInvalidConfigId, constraints);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_CONFIG, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_CONFIG));
}
}
@ -502,7 +520,7 @@ TEST_P(GraphicsComposerAidlTest, SetBootDisplayConfig_BadDisplay) {
const auto& status = mComposerClient->setBootDisplayConfig(getInvalidDisplayId(), /*config*/ 0);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, SetBootDisplayConfig_BadConfig) {
@ -516,7 +534,7 @@ TEST_P(GraphicsComposerAidlTest, SetBootDisplayConfig_BadConfig) {
mComposerClient->setBootDisplayConfig(display.getDisplayId(), kInvalidConfigId);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_CONFIG, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_CONFIG));
}
}
@ -540,7 +558,7 @@ TEST_P(GraphicsComposerAidlTest, ClearBootDisplayConfig_BadDisplay) {
const auto& status = mComposerClient->clearBootDisplayConfig(getInvalidDisplayId());
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, ClearBootDisplayConfig) {
@ -559,7 +577,7 @@ TEST_P(GraphicsComposerAidlTest, GetPreferredBootDisplayConfig_BadDisplay) {
const auto& [status, _] = mComposerClient->getPreferredBootDisplayConfig(getInvalidDisplayId());
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, GetPreferredBootDisplayConfig) {
@ -585,26 +603,29 @@ TEST_P(GraphicsComposerAidlTest, BootDisplayConfig_Unsupported) {
auto status = mComposerClient->setBootDisplayConfig(getPrimaryDisplayId(), config);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_UNSUPPORTED, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(status, IComposerClient::EX_UNSUPPORTED));
status = mComposerClient->getPreferredBootDisplayConfig(getPrimaryDisplayId()).first;
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_UNSUPPORTED, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(status, IComposerClient::EX_UNSUPPORTED));
status = mComposerClient->clearBootDisplayConfig(getPrimaryDisplayId());
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_UNSUPPORTED, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(status, IComposerClient::EX_UNSUPPORTED));
}
}
TEST_P(GraphicsComposerAidlTest, SetAutoLowLatencyMode_BadDisplay) {
auto status = mComposerClient->setAutoLowLatencyMode(getInvalidDisplayId(), /*isEnabled*/ true);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
status = mComposerClient->setAutoLowLatencyMode(getInvalidDisplayId(), /*isEnabled*/ false);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, SetAutoLowLatencyMode) {
@ -621,11 +642,13 @@ TEST_P(GraphicsComposerAidlTest, SetAutoLowLatencyMode) {
const auto& statusIsOn = mComposerClient->setAutoLowLatencyMode(display.getDisplayId(),
/*isEnabled*/ true);
EXPECT_FALSE(statusIsOn.isOk());
EXPECT_EQ(IComposerClient::EX_UNSUPPORTED, statusIsOn.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(statusIsOn, IComposerClient::EX_UNSUPPORTED));
const auto& statusIsOff = mComposerClient->setAutoLowLatencyMode(display.getDisplayId(),
/*isEnabled*/ false);
EXPECT_FALSE(statusIsOff.isOk());
EXPECT_EQ(IComposerClient::EX_UNSUPPORTED, statusIsOff.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(statusIsOff, IComposerClient::EX_UNSUPPORTED));
GTEST_SUCCEED() << "Auto Low Latency Mode is not supported on display "
<< std::to_string(display.getDisplayId()) << ", skipping test";
return;
@ -640,7 +663,7 @@ TEST_P(GraphicsComposerAidlTest, GetSupportedContentTypes_BadDisplay) {
const auto& [status, _] = mComposerClient->getSupportedContentTypes(getInvalidDisplayId());
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, GetSupportedContentTypes) {
@ -671,7 +694,8 @@ TEST_P(GraphicsComposerAidlTest, SetContentType_BadDisplay) {
const auto& status = mComposerClient->setContentType(getInvalidDisplayId(), type);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
}
@ -720,7 +744,8 @@ TEST_P(GraphicsComposerAidlTest, DestroyVirtualDisplay_BadDisplay) {
const auto& destroyStatus = mComposerClient->destroyVirtualDisplay(getInvalidDisplayId());
EXPECT_FALSE(destroyStatus.isOk());
ASSERT_EQ(IComposerClient::EX_BAD_DISPLAY, destroyStatus.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(destroyStatus, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, CreateLayer) {
@ -735,7 +760,7 @@ TEST_P(GraphicsComposerAidlTest, CreateLayer_BadDisplay) {
const auto& [status, _] = mComposerClient->createLayer(getInvalidDisplayId(), kBufferSlotCount);
EXPECT_FALSE(status.isOk());
ASSERT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, DestroyLayer_BadDisplay) {
@ -746,7 +771,8 @@ TEST_P(GraphicsComposerAidlTest, DestroyLayer_BadDisplay) {
const auto& destroyStatus = mComposerClient->destroyLayer(getInvalidDisplayId(), layer);
EXPECT_FALSE(destroyStatus.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_DISPLAY, destroyStatus.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(destroyStatus, IComposerClient::EX_BAD_DISPLAY));
ASSERT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer).isOk());
}
@ -755,14 +781,14 @@ TEST_P(GraphicsComposerAidlTest, DestroyLayer_BadLayerError) {
const auto& status = mComposerClient->destroyLayer(getPrimaryDisplayId(), /*layer*/ 1);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_LAYER, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_LAYER));
}
TEST_P(GraphicsComposerAidlTest, GetActiveConfig_BadDisplay) {
const auto& [status, _] = mComposerClient->getActiveConfig(getInvalidDisplayId());
EXPECT_FALSE(status.isOk());
ASSERT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, GetDisplayConfig) {
@ -774,7 +800,7 @@ TEST_P(GraphicsComposerAidlTest, GetDisplayConfig_BadDisplay) {
const auto& [status, _] = mComposerClient->getDisplayConfigs(getInvalidDisplayId());
EXPECT_FALSE(status.isOk());
ASSERT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, GetDisplayName) {
@ -786,7 +812,7 @@ TEST_P(GraphicsComposerAidlTest, GetDisplayPhysicalOrientation_BadDisplay) {
const auto& [status, _] = mComposerClient->getDisplayPhysicalOrientation(getInvalidDisplayId());
EXPECT_FALSE(status.isOk());
ASSERT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, GetDisplayPhysicalOrientation) {
@ -863,27 +889,28 @@ TEST_P(GraphicsComposerAidlTest, SetPowerModeUnsupported) {
const auto& powerModeDozeStatus =
mComposerClient->setPowerMode(getPrimaryDisplayId(), PowerMode::DOZE);
EXPECT_FALSE(powerModeDozeStatus.isOk());
EXPECT_EQ(IComposerClient::EX_UNSUPPORTED, powerModeDozeStatus.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(powerModeDozeStatus, IComposerClient::EX_UNSUPPORTED));
const auto& powerModeDozeSuspendStatus =
mComposerClient->setPowerMode(getPrimaryDisplayId(), PowerMode::DOZE_SUSPEND);
EXPECT_FALSE(powerModeDozeSuspendStatus.isOk());
EXPECT_EQ(IComposerClient::EX_UNSUPPORTED,
powerModeDozeSuspendStatus.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(powerModeDozeSuspendStatus,
IComposerClient::EX_UNSUPPORTED));
}
if (!isSuspendSupported) {
const auto& powerModeSuspendStatus =
mComposerClient->setPowerMode(getPrimaryDisplayId(), PowerMode::ON_SUSPEND);
EXPECT_FALSE(powerModeSuspendStatus.isOk());
EXPECT_EQ(IComposerClient::EX_UNSUPPORTED,
powerModeSuspendStatus.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(powerModeSuspendStatus,
IComposerClient::EX_UNSUPPORTED));
const auto& powerModeDozeSuspendStatus =
mComposerClient->setPowerMode(getPrimaryDisplayId(), PowerMode::DOZE_SUSPEND);
EXPECT_FALSE(powerModeDozeSuspendStatus.isOk());
EXPECT_EQ(IComposerClient::EX_UNSUPPORTED,
powerModeDozeSuspendStatus.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(powerModeDozeSuspendStatus,
IComposerClient::EX_UNSUPPORTED));
}
}
@ -994,7 +1021,7 @@ TEST_P(GraphicsComposerAidlTest, SetPowerMode_BadDisplay) {
const auto& status = mComposerClient->setPowerMode(getInvalidDisplayId(), PowerMode::ON);
EXPECT_FALSE(status.isOk());
ASSERT_EQ(IComposerClient::EX_BAD_DISPLAY, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY));
}
TEST_P(GraphicsComposerAidlTest, SetPowerMode_BadParameter) {
@ -1002,7 +1029,7 @@ TEST_P(GraphicsComposerAidlTest, SetPowerMode_BadParameter) {
mComposerClient->setPowerMode(getPrimaryDisplayId(), static_cast<PowerMode>(-1));
EXPECT_FALSE(status.isOk());
ASSERT_EQ(IComposerClient::EX_BAD_PARAMETER, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_PARAMETER));
}
TEST_P(GraphicsComposerAidlTest, GetDataspaceSaturationMatrix) {
@ -1023,7 +1050,7 @@ TEST_P(GraphicsComposerAidlTest, GetDataspaceSaturationMatrix_BadParameter) {
mComposerClient->getDataspaceSaturationMatrix(common::Dataspace::UNKNOWN);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_PARAMETER, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_PARAMETER));
}
// Tests for Command.
@ -2003,8 +2030,8 @@ TEST_P(GraphicsComposerAidlCommandTest, SetActiveConfigWithConstraints_SeamlessN
const auto& [status, _] = mComposerClient->setActiveConfigWithConstraints(
&display, config2, constraints);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_SEAMLESS_NOT_ALLOWED,
status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(
status, IComposerClient::EX_SEAMLESS_NOT_ALLOWED));
}
});
}
@ -2029,7 +2056,8 @@ TEST_P(GraphicsComposerAidlCommandTest, SetIdleTimerEnabled_Unsupported) {
const auto& status =
mComposerClient->setIdleTimerEnabled(getPrimaryDisplayId(), /*timeout*/ 0);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_UNSUPPORTED, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(
assertServiceSpecificError(status, IComposerClient::EX_UNSUPPORTED));
}
}
@ -2044,7 +2072,7 @@ TEST_P(GraphicsComposerAidlCommandTest, SetIdleTimerEnabled_BadParameter) {
const auto& status =
mComposerClient->setIdleTimerEnabled(getPrimaryDisplayId(), /*timeout*/ -1);
EXPECT_FALSE(status.isOk());
EXPECT_EQ(IComposerClient::EX_BAD_PARAMETER, status.getServiceSpecificError());
EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_PARAMETER));
}
TEST_P(GraphicsComposerAidlCommandTest, SetIdleTimerEnabled_Disable) {