Skip to content

Commit f48bef8

Browse files
author
Jim Shargo
committed
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
1 parent a2ab5be commit f48bef8

2 files changed

Lines changed: 25 additions & 7 deletions

File tree

libs/gui/tests/EndToEndNativeInputTest.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
#include <binder/Parcel.h>
3535
#include <binder/ProcessState.h>
3636

37+
#include <gui/IConsumerListener.h>
38+
#include <gui/IGraphicBufferConsumer.h>
3739
#include <gui/ISurfaceComposer.h>
3840
#include <gui/Surface.h>
3941
#include <gui/SurfaceComposerClient.h>
@@ -1214,7 +1216,15 @@ class MultiDisplayTests : public InputSurfacesTest {
12141216
BufferQueue::createBufferQueue(&producer, &consumer);
12151217
consumer->setConsumerName(String8("Virtual disp consumer (MultiDisplayTests)"));
12161218
consumer->setDefaultBufferSize(width, height);
1217-
mProducers.push_back(producer);
1219+
1220+
class StubConsumerListener : public BnConsumerListener {
1221+
virtual void onFrameAvailable(const BufferItem&) override {}
1222+
virtual void onBuffersReleased() override {}
1223+
virtual void onSidebandStreamChanged() override {}
1224+
};
1225+
1226+
consumer->consumerConnect(sp<StubConsumerListener>::make(), true);
1227+
mBufferQueues.push_back({consumer, producer});
12181228

12191229
std::string name = "VirtualDisplay";
12201230
name += std::to_string(mVirtualDisplays.size());
@@ -1231,7 +1241,7 @@ class MultiDisplayTests : public InputSurfacesTest {
12311241
}
12321242

12331243
std::vector<sp<IBinder>> mVirtualDisplays;
1234-
std::vector<sp<IGraphicBufferProducer>> mProducers;
1244+
std::vector<std::tuple<sp<IGraphicBufferConsumer>, sp<IGraphicBufferProducer>>> mBufferQueues;
12351245
};
12361246

12371247
TEST_F(MultiDisplayTests, drop_touch_if_layer_on_invalid_display) {

services/surfaceflinger/tests/MultiDisplayLayerBounds_test.cpp

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#pragma clang diagnostic ignored "-Wconversion"
2020

2121
#include <common/FlagManager.h>
22+
#include <gui/IConsumerListener.h>
2223
#include <ui/DisplayState.h>
2324

2425
#include "LayerTransactionTest.h"
@@ -45,11 +46,17 @@ class MultiDisplayLayerBoundsTest : public LayerTransactionTest {
4546
SurfaceComposerClient::getDisplayState(mMainDisplay, &mMainDisplayState);
4647
SurfaceComposerClient::getActiveDisplayMode(mMainDisplay, &mMainDisplayMode);
4748

48-
sp<IGraphicBufferConsumer> consumer;
49-
BufferQueue::createBufferQueue(&mProducer, &consumer);
50-
consumer->setConsumerName(String8("Virtual disp consumer (MultiDisplayLayerBounds)"));
51-
consumer->setDefaultBufferSize(mMainDisplayMode.resolution.getWidth(),
52-
mMainDisplayMode.resolution.getHeight());
49+
BufferQueue::createBufferQueue(&mProducer, &mConsumer);
50+
mConsumer->setConsumerName(String8("Virtual disp consumer (MultiDisplayLayerBounds)"));
51+
mConsumer->setDefaultBufferSize(mMainDisplayMode.resolution.getWidth(),
52+
mMainDisplayMode.resolution.getHeight());
53+
54+
class StubConsumerListener : public BnConsumerListener {
55+
virtual void onFrameAvailable(const BufferItem&) override {}
56+
virtual void onBuffersReleased() override {}
57+
virtual void onSidebandStreamChanged() override {}
58+
};
59+
mConsumer->consumerConnect(sp<StubConsumerListener>::make(), true);
5360
}
5461

5562
virtual void TearDown() {
@@ -92,6 +99,7 @@ class MultiDisplayLayerBoundsTest : public LayerTransactionTest {
9299
sp<IBinder> mMainDisplay;
93100
PhysicalDisplayId mMainDisplayId;
94101
sp<IBinder> mVirtualDisplay;
102+
sp<IGraphicBufferConsumer> mConsumer;
95103
sp<IGraphicBufferProducer> mProducer;
96104
sp<SurfaceControl> mColorLayer;
97105
Color mExpectedColor = {63, 63, 195, 255};

0 commit comments

Comments
 (0)