|
24 | 24 | #include <gui/Surface.h> |
25 | 25 | #include <ui/BufferQueueDefs.h> |
26 | 26 | #include <ui/GraphicBuffer.h> |
| 27 | +#include <utils/Errors.h> |
27 | 28 |
|
28 | 29 | #include <unordered_set> |
29 | 30 |
|
@@ -235,6 +236,38 @@ TEST_F(BufferItemConsumerTest, TriggerBufferFreed_DeleteBufferItemConsumer) { |
235 | 236 | ASSERT_EQ(1, GetFreedBufferCount()); |
236 | 237 | } |
237 | 238 |
|
| 239 | +TEST_F(BufferItemConsumerTest, ResizeAcquireCount) { |
| 240 | + EXPECT_EQ(OK, mBIC->setMaxAcquiredBufferCount(kMaxLockedBuffers + 1)); |
| 241 | + EXPECT_EQ(OK, mBIC->setMaxAcquiredBufferCount(kMaxLockedBuffers + 2)); |
| 242 | + EXPECT_EQ(OK, mBIC->setMaxAcquiredBufferCount(kMaxLockedBuffers - 1)); |
| 243 | + EXPECT_EQ(OK, mBIC->setMaxAcquiredBufferCount(kMaxLockedBuffers - 2)); |
| 244 | + EXPECT_EQ(OK, mBIC->setMaxAcquiredBufferCount(kMaxLockedBuffers + 1)); |
| 245 | + EXPECT_EQ(OK, mBIC->setMaxAcquiredBufferCount(kMaxLockedBuffers - 1)); |
| 246 | +} |
| 247 | + |
| 248 | +TEST_F(BufferItemConsumerTest, AttachBuffer) { |
| 249 | + ASSERT_EQ(OK, mBIC->setMaxAcquiredBufferCount(1)); |
| 250 | + |
| 251 | + int slot; |
| 252 | + DequeueBuffer(&slot); |
| 253 | + QueueBuffer(slot); |
| 254 | + AcquireBuffer(&slot); |
| 255 | + |
| 256 | + sp<GraphicBuffer> newBuffer1 = sp<GraphicBuffer>::make(kWidth, kHeight, kFormat, kUsage); |
| 257 | + sp<GraphicBuffer> newBuffer2 = sp<GraphicBuffer>::make(kWidth, kHeight, kFormat, kUsage); |
| 258 | + |
| 259 | + // For some reason, you can attach an extra buffer? |
| 260 | + // b/400973991 to investigate |
| 261 | + EXPECT_EQ(OK, mBIC->attachBuffer(newBuffer1)); |
| 262 | + EXPECT_EQ(INVALID_OPERATION, mBIC->attachBuffer(newBuffer2)); |
| 263 | + |
| 264 | + ReleaseBuffer(slot); |
| 265 | + |
| 266 | + EXPECT_EQ(OK, mBIC->attachBuffer(newBuffer2)); |
| 267 | + EXPECT_EQ(OK, mBIC->releaseBuffer(newBuffer1, Fence::NO_FENCE)); |
| 268 | + EXPECT_EQ(OK, mBIC->releaseBuffer(newBuffer2, Fence::NO_FENCE)); |
| 269 | +} |
| 270 | + |
238 | 271 | #if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_PLATFORM_API_IMPROVEMENTS) |
239 | 272 | // Test that delete BufferItemConsumer triggers onBufferFreed. |
240 | 273 | TEST_F(BufferItemConsumerTest, DetachBufferWithBuffer) { |
|
0 commit comments