diff options
| author | 2022-02-04 09:40:49 +0000 | |
|---|---|---|
| committer | 2022-02-04 09:40:49 +0000 | |
| commit | d2afdfcbc44135e74f6a025d526e3b8fd9739c99 (patch) | |
| tree | 45ccbcc0744c39ad98e9742244902aad79f179d2 | |
| parent | 9f3153648834dfa2222d3b001d0ecd3c4933127d (diff) | |
| parent | e0eafa8e477891069538422bc3a1fc865182176d (diff) | |
Merge "CompositionEngine: fix memory leak in unit tests"
7 files changed, 209 insertions, 199 deletions
diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/LayerFE.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/LayerFE.h index 16aebef9f3..ee0c53ded7 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/LayerFE.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/LayerFE.h @@ -26,8 +26,18 @@ namespace android::compositionengine::mock { // Defines the interface used by the CompositionEngine to make requests // of the front-end layer. class LayerFE : public compositionengine::LayerFE { -public: +private: + // Making the constructor private as this class implements RefBase, + // and constructing it with a different way than sp<LayerFE>::make() causes + // a memory leak of the shared state. LayerFE(); + + // friends class to allow instantiation via sp<LayerFE>::make() and + // sp<StrictMock<LayerFE>>::make() + friend class sp<LayerFE>; + friend class testing::StrictMock<LayerFE>; + +public: virtual ~LayerFE(); MOCK_CONST_METHOD0(getCompositionState, const LayerFECompositionState*()); diff --git a/services/surfaceflinger/CompositionEngine/tests/CompositionEngineTest.cpp b/services/surfaceflinger/CompositionEngine/tests/CompositionEngineTest.cpp index 325361b45a..de9de0150d 100644 --- a/services/surfaceflinger/CompositionEngine/tests/CompositionEngineTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/CompositionEngineTest.cpp @@ -203,9 +203,9 @@ TEST_F(CompositionEngineUpdateCursorAsyncTest, handlesMultipleLayersBeingCursorL */ struct CompositionTestPreComposition : public CompositionEngineTest { - sp<StrictMock<mock::LayerFE>> mLayer1FE{new StrictMock<mock::LayerFE>()}; - sp<StrictMock<mock::LayerFE>> mLayer2FE{new StrictMock<mock::LayerFE>()}; - sp<StrictMock<mock::LayerFE>> mLayer3FE{new StrictMock<mock::LayerFE>()}; + sp<StrictMock<mock::LayerFE>> mLayer1FE = sp<StrictMock<mock::LayerFE>>::make(); + sp<StrictMock<mock::LayerFE>> mLayer2FE = sp<StrictMock<mock::LayerFE>>::make(); + sp<StrictMock<mock::LayerFE>> mLayer3FE = sp<StrictMock<mock::LayerFE>>::make(); }; TEST_F(CompositionTestPreComposition, preCompositionSetsFrameTimestamp) { diff --git a/services/surfaceflinger/CompositionEngine/tests/DisplayTest.cpp b/services/surfaceflinger/CompositionEngine/tests/DisplayTest.cpp index 03c6f8dd81..125ce7468e 100644 --- a/services/surfaceflinger/CompositionEngine/tests/DisplayTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/DisplayTest.cpp @@ -74,7 +74,7 @@ struct Layer { EXPECT_CALL(*outputLayer, getHwcLayer()).WillRepeatedly(Return(&hwc2Layer)); } - sp<mock::LayerFE> layerFE = new StrictMock<mock::LayerFE>(); + sp<StrictMock<mock::LayerFE>> layerFE = sp<StrictMock<mock::LayerFE>>::make(); StrictMock<mock::OutputLayer>* outputLayer = new StrictMock<mock::OutputLayer>(); StrictMock<HWC2::mock::Layer> hwc2Layer; }; @@ -85,7 +85,7 @@ struct LayerNoHWC2Layer { EXPECT_CALL(*outputLayer, getHwcLayer()).WillRepeatedly(Return(nullptr)); } - sp<mock::LayerFE> layerFE = new StrictMock<mock::LayerFE>(); + sp<StrictMock<mock::LayerFE>> layerFE = sp<StrictMock<mock::LayerFE>>::make(); StrictMock<mock::OutputLayer>* outputLayer = new StrictMock<mock::OutputLayer>(); }; @@ -469,7 +469,7 @@ TEST_F(DisplayCreateRenderSurfaceTest, setsRenderSurface) { using DisplayCreateOutputLayerTest = FullDisplayImplTestCommon; TEST_F(DisplayCreateOutputLayerTest, setsHwcLayer) { - sp<mock::LayerFE> layerFE = new StrictMock<mock::LayerFE>(); + sp<StrictMock<mock::LayerFE>> layerFE = sp<StrictMock<mock::LayerFE>>::make(); auto hwcLayer = std::make_shared<StrictMock<HWC2::mock::Layer>>(); EXPECT_CALL(mHwComposer, createLayer(HalDisplayId(DEFAULT_DISPLAY_ID))) diff --git a/services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp b/services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp index 0b123b12d1..82dcc66833 100644 --- a/services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp @@ -109,8 +109,8 @@ struct OutputLayerTest : public testing::Test { } compositionengine::mock::Output mOutput; - sp<compositionengine::mock::LayerFE> mLayerFE{ - new StrictMock<compositionengine::mock::LayerFE>()}; + sp<StrictMock<compositionengine::mock::LayerFE>> mLayerFE = + sp<StrictMock<compositionengine::mock::LayerFE>>::make(); OutputLayer mOutputLayer{mOutput, mLayerFE}; LayerFECompositionState mLayerFEState; diff --git a/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp b/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp index f7d5991fef..e72bc9f66d 100644 --- a/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp @@ -106,7 +106,7 @@ struct InjectedLayer { } mock::OutputLayer* outputLayer = {new StrictMock<mock::OutputLayer>}; - sp<StrictMock<mock::LayerFE>> layerFE = new StrictMock<mock::LayerFE>(); + sp<StrictMock<mock::LayerFE>> layerFE = sp<StrictMock<mock::LayerFE>>::make(); LayerFECompositionState layerFEState; impl::OutputLayerCompositionState outputLayerState; }; @@ -123,7 +123,7 @@ struct NonInjectedLayer { } mock::OutputLayer outputLayer; - sp<StrictMock<mock::LayerFE>> layerFE = new StrictMock<mock::LayerFE>(); + sp<StrictMock<mock::LayerFE>> layerFE = sp<StrictMock<mock::LayerFE>>::make(); LayerFECompositionState layerFEState; impl::OutputLayerCompositionState outputLayerState; }; @@ -722,9 +722,9 @@ TEST_F(OutputTest, getOutputLayerForLayerWorks) { using OutputSetReleasedLayersTest = OutputTest; TEST_F(OutputSetReleasedLayersTest, setReleasedLayersTakesGivenLayers) { - sp<StrictMock<mock::LayerFE>> layer1FE{new StrictMock<mock::LayerFE>()}; - sp<StrictMock<mock::LayerFE>> layer2FE{new StrictMock<mock::LayerFE>()}; - sp<StrictMock<mock::LayerFE>> layer3FE{new StrictMock<mock::LayerFE>()}; + sp<StrictMock<mock::LayerFE>> layer1FE = sp<StrictMock<mock::LayerFE>>::make(); + sp<StrictMock<mock::LayerFE>> layer2FE = sp<StrictMock<mock::LayerFE>>::make(); + sp<StrictMock<mock::LayerFE>> layer3FE = sp<StrictMock<mock::LayerFE>>::make(); Output::ReleasedLayers layers; layers.push_back(layer1FE); @@ -1209,7 +1209,7 @@ struct OutputCollectVisibleLayersTest : public testing::Test { StrictMock<mock::OutputLayer> outputLayer; impl::OutputLayerCompositionState outputLayerState; - sp<StrictMock<mock::LayerFE>> layerFE{new StrictMock<mock::LayerFE>()}; + sp<StrictMock<mock::LayerFE>> layerFE = sp<StrictMock<mock::LayerFE>>::make(); }; OutputCollectVisibleLayersTest() { @@ -2987,9 +2987,9 @@ TEST_F(OutputPostFramebufferTest, releasedLayersSentPresentFence) { EXPECT_CALL(mOutput, getOutputLayerCount()).WillOnce(Return(0u)); // Load up the released layers with some mock instances - sp<StrictMock<mock::LayerFE>> releasedLayer1{new StrictMock<mock::LayerFE>()}; - sp<StrictMock<mock::LayerFE>> releasedLayer2{new StrictMock<mock::LayerFE>()}; - sp<StrictMock<mock::LayerFE>> releasedLayer3{new StrictMock<mock::LayerFE>()}; + sp<StrictMock<mock::LayerFE>> releasedLayer1 = sp<StrictMock<mock::LayerFE>>::make(); + sp<StrictMock<mock::LayerFE>> releasedLayer2 = sp<StrictMock<mock::LayerFE>>::make(); + sp<StrictMock<mock::LayerFE>> releasedLayer3 = sp<StrictMock<mock::LayerFE>>::make(); Output::ReleasedLayers layers; layers.push_back(releasedLayer1); layers.push_back(releasedLayer2); diff --git a/services/surfaceflinger/CompositionEngine/tests/planner/LayerStateTest.cpp b/services/surfaceflinger/CompositionEngine/tests/planner/LayerStateTest.cpp index 84b3fc5698..0b1c2626a1 100644 --- a/services/surfaceflinger/CompositionEngine/tests/planner/LayerStateTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/planner/LayerStateTest.cpp @@ -107,7 +107,7 @@ struct LayerStateTest : public testing::Test { EXPECT_EQ(fields, rhs.getDifferingFields(lhs)); } - mock::LayerFE mLayerFE; + sp<mock::LayerFE> mLayerFE = sp<mock::LayerFE>::make(); mock::OutputLayer mOutputLayer; std::unique_ptr<LayerState> mLayerState; }; @@ -115,7 +115,7 @@ struct LayerStateTest : public testing::Test { TEST_F(LayerStateTest, getOutputLayer) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); EXPECT_EQ(&mOutputLayer, mLayerState->getOutputLayer()); @@ -124,14 +124,14 @@ TEST_F(LayerStateTest, getOutputLayer) { TEST_F(LayerStateTest, updateOutputLayer) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); EXPECT_EQ(&mOutputLayer, mLayerState->getOutputLayer()); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState->update(&newOutputLayer); EXPECT_EQ(&newOutputLayer, mLayerState->getOutputLayer()); @@ -140,7 +140,7 @@ TEST_F(LayerStateTest, updateOutputLayer) { TEST_F(LayerStateTest, getId) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); EXPECT_EQ(sSequenceId, mLayerState->getId()); @@ -149,13 +149,13 @@ TEST_F(LayerStateTest, getId) { TEST_F(LayerStateTest, updateId) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionState, sSequenceIdTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(sSequenceIdTwo, mLayerState->getId()); @@ -165,12 +165,12 @@ TEST_F(LayerStateTest, updateId) { TEST_F(LayerStateTest, compareId) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionState, sSequenceIdTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -185,7 +185,7 @@ TEST_F(LayerStateTest, compareId) { TEST_F(LayerStateTest, getName) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); EXPECT_EQ(sDebugName, mLayerState->getName()); @@ -194,13 +194,13 @@ TEST_F(LayerStateTest, getName) { TEST_F(LayerStateTest, updateName) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionState, sSequenceId, sDebugNameTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(sDebugNameTwo, mLayerState->getName()); @@ -210,12 +210,12 @@ TEST_F(LayerStateTest, updateName) { TEST_F(LayerStateTest, compareName) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionState, sSequenceId, sDebugNameTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -231,7 +231,7 @@ TEST_F(LayerStateTest, getDisplayFrame) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.displayFrame = sRectOne; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); EXPECT_EQ(sRectOne, mLayerState->getDisplayFrame()); @@ -241,15 +241,15 @@ TEST_F(LayerStateTest, updateDisplayFrame) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.displayFrame = sRectOne; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; outputLayerCompositionStateTwo.displayFrame = sRectTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionStateTwo, layerFECompositionState); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(sRectTwo, mLayerState->getDisplayFrame()); @@ -260,14 +260,14 @@ TEST_F(LayerStateTest, compareDisplayFrame) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.displayFrame = sRectOne; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; outputLayerCompositionStateTwo.displayFrame = sRectTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionStateTwo, layerFECompositionState); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -282,7 +282,7 @@ TEST_F(LayerStateTest, getCompositionType) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.compositionType = Composition::DEVICE; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); EXPECT_EQ(Composition::DEVICE, mLayerState->getCompositionType()); @@ -293,7 +293,7 @@ TEST_F(LayerStateTest, getCompositionType_forcedClient) { outputLayerCompositionState.forceClientComposition = true; LayerFECompositionState layerFECompositionState; layerFECompositionState.compositionType = Composition::DEVICE; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); EXPECT_EQ(Composition::CLIENT, mLayerState->getCompositionType()); @@ -303,15 +303,15 @@ TEST_F(LayerStateTest, updateCompositionType) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.compositionType = Composition::DEVICE; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.compositionType = Composition::SOLID_COLOR; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Composition::SOLID_COLOR, mLayerState->getCompositionType()); @@ -322,14 +322,14 @@ TEST_F(LayerStateTest, compareCompositionType) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.compositionType = Composition::DEVICE; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.compositionType = Composition::SOLID_COLOR; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -345,15 +345,15 @@ TEST_F(LayerStateTest, updateBuffer) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.buffer = new GraphicBuffer(); - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.buffer = new GraphicBuffer(); - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::Buffer), updates); @@ -363,14 +363,14 @@ TEST_F(LayerStateTest, compareBuffer) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.buffer = new GraphicBuffer(); - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.buffer = new GraphicBuffer(); - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -386,15 +386,15 @@ TEST_F(LayerStateTest, updateSourceCrop) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.sourceCrop = sFloatRectOne; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; outputLayerCompositionStateTwo.sourceCrop = sFloatRectTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionStateTwo, layerFECompositionState); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::SourceCrop), updates); @@ -404,14 +404,14 @@ TEST_F(LayerStateTest, compareSourceCrop) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.sourceCrop = sFloatRectOne; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; outputLayerCompositionStateTwo.sourceCrop = sFloatRectTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionStateTwo, layerFECompositionState); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -425,15 +425,15 @@ TEST_F(LayerStateTest, updateBufferTransform) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.bufferTransform = Hwc2::Transform::FLIP_H; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; outputLayerCompositionStateTwo.bufferTransform = Hwc2::Transform::FLIP_V; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionStateTwo, layerFECompositionState); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::BufferTransform), updates); @@ -443,14 +443,14 @@ TEST_F(LayerStateTest, compareBufferTransform) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.bufferTransform = Hwc2::Transform::FLIP_H; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; outputLayerCompositionStateTwo.bufferTransform = Hwc2::Transform::FLIP_V; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionStateTwo, layerFECompositionState); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -465,15 +465,15 @@ TEST_F(LayerStateTest, updateBlendMode) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.blendMode = hal::BlendMode::COVERAGE; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.blendMode = hal::BlendMode::PREMULTIPLIED; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::BlendMode), updates); @@ -483,14 +483,14 @@ TEST_F(LayerStateTest, compareBlendMode) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.blendMode = hal::BlendMode::COVERAGE; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.blendMode = hal::BlendMode::PREMULTIPLIED; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -504,15 +504,15 @@ TEST_F(LayerStateTest, updateAlpha) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.alpha = sAlphaOne; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.alpha = sAlphaTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::Alpha), updates); @@ -522,14 +522,14 @@ TEST_F(LayerStateTest, compareAlpha) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.alpha = sAlphaOne; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.alpha = sAlphaTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -543,15 +543,15 @@ TEST_F(LayerStateTest, updateLayerMetadata) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.metadata[sMetadataKeyOne] = sMetadataValueOne; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.metadata[sMetadataKeyTwo] = sMetadataValueTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::LayerMetadata), updates); @@ -561,14 +561,14 @@ TEST_F(LayerStateTest, compareLayerMetadata) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.metadata[sMetadataKeyOne] = sMetadataValueOne; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.metadata[sMetadataKeyTwo] = sMetadataValueTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -582,7 +582,7 @@ TEST_F(LayerStateTest, getVisibleRegion) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.visibleRegion = sRegionOne; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); EXPECT_TRUE(mLayerState->getVisibleRegion().hasSameRects(sRegionOne)); @@ -592,15 +592,15 @@ TEST_F(LayerStateTest, updateVisibleRegion) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.visibleRegion = sRegionOne; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; outputLayerCompositionStateTwo.visibleRegion = sRegionTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionStateTwo, layerFECompositionState); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::VisibleRegion), updates); @@ -610,14 +610,14 @@ TEST_F(LayerStateTest, compareVisibleRegion) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.visibleRegion = sRegionOne; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; outputLayerCompositionStateTwo.visibleRegion = sRegionTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionStateTwo, layerFECompositionState); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -631,15 +631,15 @@ TEST_F(LayerStateTest, updateDataspace) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.dataspace = ui::Dataspace::SRGB; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; outputLayerCompositionStateTwo.dataspace = ui::Dataspace::DISPLAY_P3; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionStateTwo, layerFECompositionState); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::Dataspace), updates); @@ -649,14 +649,14 @@ TEST_F(LayerStateTest, compareDataspace) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.dataspace = ui::Dataspace::SRGB; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; outputLayerCompositionStateTwo.dataspace = ui::Dataspace::DISPLAY_P3; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionStateTwo, layerFECompositionState); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -674,19 +674,19 @@ TEST_F(LayerStateTest, updatePixelFormat) { AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN | AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN, "buffer1"); - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.buffer = new GraphicBuffer(1, 1, PIXEL_FORMAT_RGBX_8888, AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN | AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN, "buffer2"); - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::Buffer) | @@ -702,18 +702,18 @@ TEST_F(LayerStateTest, comparePixelFormat) { AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN | AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN, "buffer1"); - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.buffer = new GraphicBuffer(1, 1, PIXEL_FORMAT_RGBX_8888, AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN | AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN, "buffer2"); - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -729,16 +729,16 @@ TEST_F(LayerStateTest, updateColorTransform) { LayerFECompositionState layerFECompositionState; layerFECompositionState.colorTransformIsIdentity = true; layerFECompositionState.colorTransform = mat4(); - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.colorTransformIsIdentity = false; layerFECompositionStateTwo.colorTransform = sMat4One; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::ColorTransform), updates); @@ -749,15 +749,15 @@ TEST_F(LayerStateTest, compareColorTransform) { LayerFECompositionState layerFECompositionState; layerFECompositionState.colorTransformIsIdentity = true; layerFECompositionState.colorTransform = mat4(); - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.colorTransformIsIdentity = false; layerFECompositionStateTwo.colorTransform = sMat4One; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -771,15 +771,15 @@ TEST_F(LayerStateTest, updateSidebandStream) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.sidebandStream = NativeHandle::create(sFakeSidebandStreamOne, false); - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.sidebandStream = NativeHandle::create(sFakeSidebandStreamTwo, false); - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::SidebandStream), updates); @@ -789,14 +789,14 @@ TEST_F(LayerStateTest, compareSidebandStream) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.sidebandStream = NativeHandle::create(sFakeSidebandStreamOne, false); - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.sidebandStream = NativeHandle::create(sFakeSidebandStreamTwo, false); - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -810,15 +810,15 @@ TEST_F(LayerStateTest, updateSolidColor) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.color = sHalf4One; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.color = sHalf4Two; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::SolidColor), updates); @@ -828,14 +828,14 @@ TEST_F(LayerStateTest, compareSolidColor) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.color = sHalf4One; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.color = sHalf4Two; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -849,15 +849,15 @@ TEST_F(LayerStateTest, updateBackgroundBlur) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.backgroundBlurRadius = sBgBlurRadiusOne; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.backgroundBlurRadius = sBgBlurRadiusTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::BackgroundBlurRadius), updates); @@ -867,14 +867,14 @@ TEST_F(LayerStateTest, compareBackgroundBlur) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.backgroundBlurRadius = sBgBlurRadiusOne; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.backgroundBlurRadius = sBgBlurRadiusTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -889,15 +889,15 @@ TEST_F(LayerStateTest, updateBlurRegions) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.blurRegions.push_back(sBlurRegionOne); - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.blurRegions.push_back(sBlurRegionTwo); - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::BlurRegions), updates); @@ -907,14 +907,14 @@ TEST_F(LayerStateTest, compareBlurRegions) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.blurRegions.push_back(sBlurRegionOne); - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.blurRegions.push_back(sBlurRegionTwo); - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -927,7 +927,7 @@ TEST_F(LayerStateTest, compareBlurRegions) { TEST_F(LayerStateTest, hasBlurBehind_noBlur_returnsFalse) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); EXPECT_FALSE(mLayerState->hasBlurBehind()); @@ -937,7 +937,7 @@ TEST_F(LayerStateTest, hasBlurBehind_withBackgroundBlur_returnsTrue) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.backgroundBlurRadius = sBgBlurRadiusOne; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); EXPECT_TRUE(mLayerState->hasBlurBehind()); @@ -947,7 +947,7 @@ TEST_F(LayerStateTest, hasBlurBehind_withBlurRegion_returnsTrue) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.blurRegions.push_back(sBlurRegionOne); - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); EXPECT_TRUE(mLayerState->hasBlurBehind()); @@ -956,7 +956,7 @@ TEST_F(LayerStateTest, hasBlurBehind_withBlurRegion_returnsTrue) { TEST_F(LayerStateTest, dumpDoesNotCrash) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); std::string dump; @@ -967,7 +967,7 @@ TEST_F(LayerStateTest, dumpDoesNotCrash) { TEST_F(LayerStateTest, framesSinceBufferUpdate) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); @@ -982,14 +982,14 @@ TEST_F(LayerStateTest, getNonBufferHash_doesNotCommute) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.displayFrame = sRectOne; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; outputLayerCompositionStateTwo.displayFrame = sRectTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionStateTwo, layerFECompositionState); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -1001,14 +1001,14 @@ TEST_F(LayerStateTest, getNonBufferHash_isIdempotent) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.displayFrame = sRectOne; LayerFECompositionState layerFECompositionState; - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; outputLayerCompositionStateTwo.displayFrame = sRectTwo; - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionStateTwo, layerFECompositionState); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); @@ -1020,15 +1020,15 @@ TEST_F(LayerStateTest, getNonBufferHash_filtersOutBuffers) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; layerFECompositionState.buffer = new GraphicBuffer(); - setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, + setupMocksForLayer(mOutputLayer, *mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; - mock::LayerFE newLayerFE; + sp<mock::LayerFE> newLayerFE = sp<mock::LayerFE>::make(); LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.buffer = new GraphicBuffer(); - setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, + setupMocksForLayer(newOutputLayer, *newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); diff --git a/services/surfaceflinger/CompositionEngine/tests/planner/PredictorTest.cpp b/services/surfaceflinger/CompositionEngine/tests/planner/PredictorTest.cpp index 6038268a8c..68c72e0945 100644 --- a/services/surfaceflinger/CompositionEngine/tests/planner/PredictorTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/planner/PredictorTest.cpp @@ -73,26 +73,26 @@ struct LayerStackTest : public testing::Test { TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchSizeDifferences) { mock::OutputLayer outputLayerOne; - mock::LayerFE layerFEOne; + sp<mock::LayerFE> layerFEOne = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateOne; LayerFECompositionState layerFECompositionStateOne; - setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, + setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); mock::OutputLayer outputLayerTwo; - mock::LayerFE layerFETwo; + sp<mock::LayerFE> layerFETwo = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; LayerFECompositionState layerFECompositionStateTwo; - setupMocksForLayer(outputLayerTwo, layerFETwo, outputLayerCompositionStateTwo, + setupMocksForLayer(outputLayerTwo, *layerFETwo, outputLayerCompositionStateTwo, layerFECompositionStateTwo); LayerState layerStateTwo(&outputLayerTwo); mock::OutputLayer outputLayerThree; - mock::LayerFE layerFEThree; + sp<mock::LayerFE> layerFEThree = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateThree; LayerFECompositionState layerFECompositionStateThree; - setupMocksForLayer(outputLayerThree, layerFEThree, outputLayerCompositionStateThree, + setupMocksForLayer(outputLayerThree, *layerFEThree, outputLayerCompositionStateThree, layerFECompositionStateThree); LayerState layerStateThree(&outputLayerThree); @@ -104,20 +104,20 @@ TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchSizeDifferences) { TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchDifferentCompositionTypes) { mock::OutputLayer outputLayerOne; - mock::LayerFE layerFEOne; + sp<mock::LayerFE> layerFEOne = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateOne; LayerFECompositionState layerFECompositionStateOne; layerFECompositionStateOne.compositionType = Composition::DEVICE; - setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, + setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); mock::OutputLayer outputLayerTwo; - mock::LayerFE layerFETwo; + sp<mock::LayerFE> layerFETwo = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.compositionType = Composition::SOLID_COLOR; - setupMocksForLayer(outputLayerTwo, layerFETwo, outputLayerCompositionStateTwo, + setupMocksForLayer(outputLayerTwo, *layerFETwo, outputLayerCompositionStateTwo, layerFECompositionStateTwo); LayerState layerStateTwo(&outputLayerTwo); @@ -128,22 +128,22 @@ TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchDifferentCompositionTypes TEST_F(LayerStackTest, getApproximateMatch_matchesSingleDifferenceInSingleLayer) { mock::OutputLayer outputLayerOne; - mock::LayerFE layerFEOne; + sp<mock::LayerFE> layerFEOne = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateOne{ .sourceCrop = sFloatRectOne, }; LayerFECompositionState layerFECompositionStateOne; - setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, + setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); mock::OutputLayer outputLayerTwo; - mock::LayerFE layerFETwo; + sp<mock::LayerFE> layerFETwo = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo{ .sourceCrop = sFloatRectTwo, }; LayerFECompositionState layerFECompositionStateTwo; - setupMocksForLayer(outputLayerTwo, layerFETwo, outputLayerCompositionStateTwo, + setupMocksForLayer(outputLayerTwo, *layerFETwo, outputLayerCompositionStateTwo, layerFECompositionStateTwo); LayerState layerStateTwo(&outputLayerTwo); @@ -159,22 +159,22 @@ TEST_F(LayerStackTest, getApproximateMatch_matchesSingleDifferenceInSingleLayer) TEST_F(LayerStackTest, getApproximateMatch_matchesSingleDifferenceInMultiLayerStack) { mock::OutputLayer outputLayerOne; - mock::LayerFE layerFEOne; + sp<mock::LayerFE> layerFEOne = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateOne{ .sourceCrop = sFloatRectOne, }; LayerFECompositionState layerFECompositionStateOne; - setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, + setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); mock::OutputLayer outputLayerTwo; - mock::LayerFE layerFETwo; + sp<mock::LayerFE> layerFETwo = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo{ .sourceCrop = sFloatRectTwo, }; LayerFECompositionState layerFECompositionStateTwo; - setupMocksForLayer(outputLayerTwo, layerFETwo, outputLayerCompositionStateTwo, + setupMocksForLayer(outputLayerTwo, *layerFETwo, outputLayerCompositionStateTwo, layerFECompositionStateTwo); LayerState layerStateTwo(&outputLayerTwo); @@ -190,7 +190,7 @@ TEST_F(LayerStackTest, getApproximateMatch_matchesSingleDifferenceInMultiLayerSt TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchManyDifferences) { mock::OutputLayer outputLayerOne; - mock::LayerFE layerFEOne; + sp<mock::LayerFE> layerFEOne = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateOne{ .visibleRegion = sRegionOne, .displayFrame = sRectOne, @@ -201,12 +201,12 @@ TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchManyDifferences) { layerFECompositionStateOne.alpha = sAlphaOne; layerFECompositionStateOne.colorTransformIsIdentity = true; layerFECompositionStateOne.blendMode = hal::BlendMode::NONE; - setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, + setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); mock::OutputLayer outputLayerTwo; - mock::LayerFE layerFETwo; + sp<mock::LayerFE> layerFETwo = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo{ .visibleRegion = sRegionTwo, .displayFrame = sRectTwo, @@ -218,7 +218,7 @@ TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchManyDifferences) { layerFECompositionStateTwo.colorTransformIsIdentity = false; layerFECompositionStateTwo.colorTransform = sMat4One; layerFECompositionStateTwo.blendMode = hal::BlendMode::PREMULTIPLIED; - setupMocksForLayer(outputLayerTwo, layerFETwo, outputLayerCompositionStateTwo, + setupMocksForLayer(outputLayerTwo, *layerFETwo, outputLayerCompositionStateTwo, layerFECompositionStateTwo); LayerState layerStateTwo(&outputLayerTwo); @@ -230,20 +230,20 @@ TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchManyDifferences) { TEST_F(LayerStackTest, getApproximateMatch_exactMatchesSameBuffer) { sp<GraphicBuffer> buffer = new GraphicBuffer(); mock::OutputLayer outputLayerOne; - mock::LayerFE layerFEOne; + sp<mock::LayerFE> layerFEOne = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateOne; LayerFECompositionState layerFECompositionStateOne; layerFECompositionStateOne.buffer = buffer; - setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, + setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); mock::OutputLayer outputLayerTwo; - mock::LayerFE layerFETwo; + sp<mock::LayerFE> layerFETwo = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo; LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.buffer = buffer; - setupMocksForLayer(outputLayerTwo, layerFETwo, outputLayerCompositionStateTwo, + setupMocksForLayer(outputLayerTwo, *layerFETwo, outputLayerCompositionStateTwo, layerFECompositionStateTwo); LayerState layerStateTwo(&outputLayerTwo); @@ -259,7 +259,7 @@ TEST_F(LayerStackTest, getApproximateMatch_exactMatchesSameBuffer) { TEST_F(LayerStackTest, getApproximateMatch_alwaysMatchesClientComposition) { mock::OutputLayer outputLayerOne; - mock::LayerFE layerFEOne; + sp<mock::LayerFE> layerFEOne = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateOne{ .visibleRegion = sRegionOne, .forceClientComposition = true, @@ -271,12 +271,12 @@ TEST_F(LayerStackTest, getApproximateMatch_alwaysMatchesClientComposition) { layerFECompositionStateOne.buffer = new GraphicBuffer(); layerFECompositionStateOne.alpha = sAlphaOne; layerFECompositionStateOne.colorTransformIsIdentity = true; - setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, + setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); mock::OutputLayer outputLayerTwo; - mock::LayerFE layerFETwo; + sp<mock::LayerFE> layerFETwo = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo{ .visibleRegion = sRegionTwo, .forceClientComposition = true, @@ -289,7 +289,7 @@ TEST_F(LayerStackTest, getApproximateMatch_alwaysMatchesClientComposition) { layerFECompositionStateTwo.alpha = sAlphaTwo; layerFECompositionStateTwo.colorTransformIsIdentity = false; layerFECompositionStateTwo.colorTransform = sMat4One; - setupMocksForLayer(outputLayerTwo, layerFETwo, outputLayerCompositionStateTwo, + setupMocksForLayer(outputLayerTwo, *layerFETwo, outputLayerCompositionStateTwo, layerFECompositionStateTwo); LayerState layerStateTwo(&outputLayerTwo); @@ -305,24 +305,24 @@ TEST_F(LayerStackTest, getApproximateMatch_alwaysMatchesClientComposition) { TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchMultipleApproximations) { mock::OutputLayer outputLayerOne; - mock::LayerFE layerFEOne; + sp<mock::LayerFE> layerFEOne = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateOne{ .sourceCrop = sFloatRectOne, }; LayerFECompositionState layerFECompositionStateOne; layerFECompositionStateOne.buffer = new GraphicBuffer(); - setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, + setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); mock::OutputLayer outputLayerTwo; - mock::LayerFE layerFETwo; + sp<mock::LayerFE> layerFETwo = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo{ .sourceCrop = sFloatRectTwo, }; LayerFECompositionState layerFECompositionStateTwo; layerFECompositionStateTwo.buffer = new GraphicBuffer(); - setupMocksForLayer(outputLayerTwo, layerFETwo, outputLayerCompositionStateTwo, + setupMocksForLayer(outputLayerTwo, *layerFETwo, outputLayerCompositionStateTwo, layerFECompositionStateTwo); LayerState layerStateTwo(&outputLayerTwo); @@ -348,22 +348,22 @@ struct PredictionTest : public testing::Test { TEST_F(LayerStackTest, reorderingChangesNonBufferHash) { mock::OutputLayer outputLayerOne; - mock::LayerFE layerFEOne; + sp<mock::LayerFE> layerFEOne = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateOne{ .sourceCrop = sFloatRectOne, }; LayerFECompositionState layerFECompositionStateOne; - setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, + setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); mock::OutputLayer outputLayerTwo; - mock::LayerFE layerFETwo; + sp<mock::LayerFE> layerFETwo = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo{ .sourceCrop = sFloatRectTwo, }; LayerFECompositionState layerFECompositionStateTwo; - setupMocksForLayer(outputLayerTwo, layerFETwo, outputLayerCompositionStateTwo, + setupMocksForLayer(outputLayerTwo, *layerFETwo, outputLayerCompositionStateTwo, layerFECompositionStateTwo); LayerState layerStateTwo(&outputLayerTwo); @@ -443,11 +443,11 @@ TEST_F(PredictorTest, getPredictedPlan_emptyLayersWithoutExactMatch_returnsNullo TEST_F(PredictorTest, getPredictedPlan_recordCandidateAndRetrieveExactMatch) { mock::OutputLayer outputLayerOne; - mock::LayerFE layerFEOne; + sp<mock::LayerFE> layerFEOne = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateOne; LayerFECompositionState layerFECompositionStateOne; layerFECompositionStateOne.compositionType = Composition::DEVICE; - setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, + setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); @@ -468,22 +468,22 @@ TEST_F(PredictorTest, getPredictedPlan_recordCandidateAndRetrieveExactMatch) { TEST_F(PredictorTest, getPredictedPlan_recordCandidateAndRetrieveApproximateMatch) { mock::OutputLayer outputLayerOne; - mock::LayerFE layerFEOne; + sp<mock::LayerFE> layerFEOne = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateOne{ .sourceCrop = sFloatRectOne, }; LayerFECompositionState layerFECompositionStateOne; - setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, + setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); mock::OutputLayer outputLayerTwo; - mock::LayerFE layerFETwo; + sp<mock::LayerFE> layerFETwo = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo{ .sourceCrop = sFloatRectTwo, }; LayerFECompositionState layerFECompositionStateTwo; - setupMocksForLayer(outputLayerTwo, layerFETwo, outputLayerCompositionStateTwo, + setupMocksForLayer(outputLayerTwo, *layerFETwo, outputLayerCompositionStateTwo, layerFECompositionStateTwo); LayerState layerStateTwo(&outputLayerTwo); @@ -505,22 +505,22 @@ TEST_F(PredictorTest, getPredictedPlan_recordCandidateAndRetrieveApproximateMatc TEST_F(PredictorTest, recordMissedPlan_skipsApproximateMatch) { mock::OutputLayer outputLayerOne; - mock::LayerFE layerFEOne; + sp<mock::LayerFE> layerFEOne = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateOne{ .sourceCrop = sFloatRectOne, }; LayerFECompositionState layerFECompositionStateOne; - setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, + setupMocksForLayer(outputLayerOne, *layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); mock::OutputLayer outputLayerTwo; - mock::LayerFE layerFETwo; + sp<mock::LayerFE> layerFETwo = sp<mock::LayerFE>::make(); OutputLayerCompositionState outputLayerCompositionStateTwo{ .sourceCrop = sFloatRectTwo, }; LayerFECompositionState layerFECompositionStateTwo; - setupMocksForLayer(outputLayerTwo, layerFETwo, outputLayerCompositionStateTwo, + setupMocksForLayer(outputLayerTwo, *layerFETwo, outputLayerCompositionStateTwo, layerFECompositionStateTwo); LayerState layerStateTwo(&outputLayerTwo); |