Chromium Code Reviews| Index: Source/platform/graphics/gpu/DrawingBufferTest.cpp |
| diff --git a/Source/platform/graphics/gpu/DrawingBufferTest.cpp b/Source/platform/graphics/gpu/DrawingBufferTest.cpp |
| index 437629396ecd825fda31b093c327420a9d2ea2c6..567d53f4e2c92b2db741c80b5e376eca21bf5aff 100644 |
| --- a/Source/platform/graphics/gpu/DrawingBufferTest.cpp |
| +++ b/Source/platform/graphics/gpu/DrawingBufferTest.cpp |
| @@ -315,6 +315,41 @@ TEST_F(DrawingBufferTest, verifyDestructionCompleteAfterAllMailboxesReleased) |
| EXPECT_EQ(live, false); |
| } |
| +TEST_F(DrawingBufferTest, verifyClearDrawingBufferIfResourceLost) |
|
Ken Russell (switch to Gerrit)
2014/07/28 21:25:13
This test looks pretty good, but the name could be
Hongbo Min
2014/07/29 00:46:48
Done.
|
| +{ |
| + bool live = true; |
| + m_drawingBuffer->m_live = &live; |
| + blink::WebExternalTextureMailbox mailbox1; |
| + blink::WebExternalTextureMailbox mailbox2; |
| + blink::WebExternalTextureMailbox mailbox3; |
| + |
| + m_drawingBuffer->markContentsChanged(); |
| + EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox1, 0)); |
| + m_drawingBuffer->markContentsChanged(); |
| + EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox2, 0)); |
| + m_drawingBuffer->markContentsChanged(); |
| + EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox3, 0)); |
| + |
| + m_drawingBuffer->markContentsChanged(); |
| + m_drawingBuffer->mailboxReleased(mailbox1, true); |
| + EXPECT_EQ(live, true); |
| + |
| + m_drawingBuffer->beginDestruction(); |
| + EXPECT_EQ(live, true); |
| + |
| + m_drawingBuffer->markContentsChanged(); |
| + m_drawingBuffer->mailboxReleased(mailbox2, false); |
| + EXPECT_EQ(live, true); |
| + |
| + DrawingBufferForTests* weakPtr = m_drawingBuffer.get(); |
| + m_drawingBuffer.clear(); |
| + EXPECT_EQ(live, true); |
| + |
| + weakPtr->markContentsChanged(); |
| + weakPtr->mailboxReleased(mailbox3, true); |
| + EXPECT_EQ(live, false); |
| +} |
| + |
| class TextureMailboxWrapper { |
| public: |
| explicit TextureMailboxWrapper(const blink::WebExternalTextureMailbox& mailbox) |