diff options
author | 2024-12-04 18:56:59 +0000 | |
---|---|---|
committer | 2024-12-04 23:25:14 +0000 | |
commit | f48bef8ed6b6733bb75591fc919620a0fdbf336f (patch) | |
tree | 0700cca2f0d0039d659d0af90dca2c2e6eef485d | |
parent | a2ab5be9799866b2c6d10285adea4e09ffd49657 (diff) |
tests: Eliminate annoying and noisy CompositionEngine errors
These tests create surfaces for virtual displays, but delete the
consumer side of the BQ before they attach, causing errors in SF that
spam logs and seem confusing.
In this change, we keep the consumers around for the lifetime of the
virtual displays.
Bug: 374973152
Flag: EXEMPT tests
Test: atest
BYPASS_IGBP_IGBC_API_REASON=fixing old tests
Change-Id: I70943093652516b8b083a8c46c82d9ddbea56695
-rw-r--r-- | libs/gui/tests/EndToEndNativeInputTest.cpp | 14 | ||||
-rw-r--r-- | services/surfaceflinger/tests/MultiDisplayLayerBounds_test.cpp | 18 |
2 files changed, 25 insertions, 7 deletions
diff --git a/libs/gui/tests/EndToEndNativeInputTest.cpp b/libs/gui/tests/EndToEndNativeInputTest.cpp index a1c7cbf416..c77a30a5ff 100644 --- a/libs/gui/tests/EndToEndNativeInputTest.cpp +++ b/libs/gui/tests/EndToEndNativeInputTest.cpp @@ -34,6 +34,8 @@ #include <binder/Parcel.h> #include <binder/ProcessState.h> +#include <gui/IConsumerListener.h> +#include <gui/IGraphicBufferConsumer.h> #include <gui/ISurfaceComposer.h> #include <gui/Surface.h> #include <gui/SurfaceComposerClient.h> @@ -1214,7 +1216,15 @@ public: BufferQueue::createBufferQueue(&producer, &consumer); consumer->setConsumerName(String8("Virtual disp consumer (MultiDisplayTests)")); consumer->setDefaultBufferSize(width, height); - mProducers.push_back(producer); + + class StubConsumerListener : public BnConsumerListener { + virtual void onFrameAvailable(const BufferItem&) override {} + virtual void onBuffersReleased() override {} + virtual void onSidebandStreamChanged() override {} + }; + + consumer->consumerConnect(sp<StubConsumerListener>::make(), true); + mBufferQueues.push_back({consumer, producer}); std::string name = "VirtualDisplay"; name += std::to_string(mVirtualDisplays.size()); @@ -1231,7 +1241,7 @@ public: } std::vector<sp<IBinder>> mVirtualDisplays; - std::vector<sp<IGraphicBufferProducer>> mProducers; + std::vector<std::tuple<sp<IGraphicBufferConsumer>, sp<IGraphicBufferProducer>>> mBufferQueues; }; TEST_F(MultiDisplayTests, drop_touch_if_layer_on_invalid_display) { diff --git a/services/surfaceflinger/tests/MultiDisplayLayerBounds_test.cpp b/services/surfaceflinger/tests/MultiDisplayLayerBounds_test.cpp index 350e347ae3..65add63165 100644 --- a/services/surfaceflinger/tests/MultiDisplayLayerBounds_test.cpp +++ b/services/surfaceflinger/tests/MultiDisplayLayerBounds_test.cpp @@ -19,6 +19,7 @@ #pragma clang diagnostic ignored "-Wconversion" #include <common/FlagManager.h> +#include <gui/IConsumerListener.h> #include <ui/DisplayState.h> #include "LayerTransactionTest.h" @@ -45,11 +46,17 @@ protected: SurfaceComposerClient::getDisplayState(mMainDisplay, &mMainDisplayState); SurfaceComposerClient::getActiveDisplayMode(mMainDisplay, &mMainDisplayMode); - sp<IGraphicBufferConsumer> consumer; - BufferQueue::createBufferQueue(&mProducer, &consumer); - consumer->setConsumerName(String8("Virtual disp consumer (MultiDisplayLayerBounds)")); - consumer->setDefaultBufferSize(mMainDisplayMode.resolution.getWidth(), - mMainDisplayMode.resolution.getHeight()); + BufferQueue::createBufferQueue(&mProducer, &mConsumer); + mConsumer->setConsumerName(String8("Virtual disp consumer (MultiDisplayLayerBounds)")); + mConsumer->setDefaultBufferSize(mMainDisplayMode.resolution.getWidth(), + mMainDisplayMode.resolution.getHeight()); + + class StubConsumerListener : public BnConsumerListener { + virtual void onFrameAvailable(const BufferItem&) override {} + virtual void onBuffersReleased() override {} + virtual void onSidebandStreamChanged() override {} + }; + mConsumer->consumerConnect(sp<StubConsumerListener>::make(), true); } virtual void TearDown() { @@ -92,6 +99,7 @@ protected: sp<IBinder> mMainDisplay; PhysicalDisplayId mMainDisplayId; sp<IBinder> mVirtualDisplay; + sp<IGraphicBufferConsumer> mConsumer; sp<IGraphicBufferProducer> mProducer; sp<SurfaceControl> mColorLayer; Color mExpectedColor = {63, 63, 195, 255}; |