Chromium Code Reviews| Index: cc/layers/texture_layer_unittest.cc |
| diff --git a/cc/layers/texture_layer_unittest.cc b/cc/layers/texture_layer_unittest.cc |
| index 998c6291e3b13e612b3a0908286e3eee16a23dc0..88365e7ca5c54f967d3fad77d1d742615a7c874a 100644 |
| --- a/cc/layers/texture_layer_unittest.cc |
| +++ b/cc/layers/texture_layer_unittest.cc |
| @@ -789,9 +789,21 @@ class TextureLayerMailboxIsActivatedDuringCommit : public LayerTreeTest { |
| protected: |
| TextureLayerMailboxIsActivatedDuringCommit() : activate_count_(0) {} |
| - static void ReleaseCallback(const gpu::SyncToken& original_sync_token, |
| - const gpu::SyncToken& release_sync_token, |
| - bool lost_resource) {} |
| + void ReleaseCallback(const gpu::SyncToken& original_sync_token, |
| + const gpu::SyncToken& release_sync_token, |
| + bool lost_resource) { |
| + released_count_++; |
| + switch (released_count_) { |
| + case 1: |
| + break; |
| + case 2: |
| + EXPECT_EQ(3, layer_tree_host()->SourceFrameNumber()); |
| + EndTest(); |
| + break; |
| + default: |
| + NOTREACHED(); |
| + } |
| + } |
| void SetMailbox(char mailbox_char) { |
| const gpu::SyncToken sync_token = |
| @@ -799,7 +811,7 @@ class TextureLayerMailboxIsActivatedDuringCommit : public LayerTreeTest { |
| std::unique_ptr<SingleReleaseCallback> callback = |
| SingleReleaseCallback::Create(base::Bind( |
| &TextureLayerMailboxIsActivatedDuringCommit::ReleaseCallback, |
| - sync_token)); |
| + base::Unretained(this), sync_token)); |
| layer_->SetTextureMailbox(TextureMailbox(MailboxFromChar(mailbox_char), |
| sync_token, GL_TEXTURE_2D), |
| std::move(callback)); |
| @@ -849,8 +861,12 @@ class TextureLayerMailboxIsActivatedDuringCommit : public LayerTreeTest { |
| layer_->RemoveFromParent(); |
| break; |
| case 3: |
| - EndTest(); |
| + // This ensures all texture mailboxes are released before the end of the |
| + // test. |
| + layer_->ClearClient(); |
| break; |
| + default: |
| + NOTREACHED(); |
| } |
| } |
| @@ -866,12 +882,10 @@ class TextureLayerMailboxIsActivatedDuringCommit : public LayerTreeTest { |
| int activate_count_; |
|
danakj
2017/03/03 16:33:26
nit: can u init this here too now since you're doi
Saman Sami
2017/03/03 16:43:52
Done.
|
| scoped_refptr<Layer> root_; |
| scoped_refptr<TextureLayer> layer_; |
| + int released_count_ = 0; |
| }; |
| -// Flaky on windows and linux. https://crbug.com/641613 |
|
danakj
2017/03/03 16:33:26
Oooh dang, we let this sit here D:
|
| -#if !defined(OS_WIN) && !defined(OS_LINUX) |
| SINGLE_AND_MULTI_THREAD_TEST_F(TextureLayerMailboxIsActivatedDuringCommit); |
| -#endif |
| class TextureLayerImplWithMailboxTest : public TextureLayerTest { |
| protected: |