Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Unified Diff: cc/layers/texture_layer_unittest.cc

Issue 15001027: [Aura] Added Support for rendering software compositor frames as cc::TextureLayers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Passed(&foo) instead for Passed(foo.Pass()). Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/layers/texture_layer_impl.cc ('k') | cc/output/compositor_frame_ack.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/texture_layer_unittest.cc
diff --git a/cc/layers/texture_layer_unittest.cc b/cc/layers/texture_layer_unittest.cc
index 505c1fcddd134234003984fc836194f025c675ef..65351da8783ce70d9db88530cd6f3b8252c37829 100644
--- a/cc/layers/texture_layer_unittest.cc
+++ b/cc/layers/texture_layer_unittest.cc
@@ -205,6 +205,9 @@ class MockMailboxCallback {
MOCK_METHOD3(Release, void(const std::string& mailbox,
unsigned sync_point,
bool lost_resource));
+ MOCK_METHOD3(Release2, void(base::SharedMemory* shared_memory,
+ unsigned sync_point,
+ bool lost_resource));
};
struct CommonMailboxObjects {
@@ -212,7 +215,8 @@ struct CommonMailboxObjects {
: mailbox_name1_(64, '1'),
mailbox_name2_(64, '2'),
sync_point1_(1),
- sync_point2_(2) {
+ sync_point2_(2),
+ shared_memory_(new base::SharedMemory) {
release_mailbox1_ = base::Bind(&MockMailboxCallback::Release,
base::Unretained(&mock_callback_),
mailbox_name1_);
@@ -225,6 +229,13 @@ struct CommonMailboxObjects {
gpu::Mailbox m2;
m2.SetName(reinterpret_cast<const int8*>(mailbox_name2_.data()));
mailbox2_ = TextureMailbox(m2, release_mailbox2_, sync_point2_);
+
+ gfx::Size size(128, 128);
+ EXPECT_TRUE(shared_memory_->CreateAndMapAnonymous(4 * size.GetArea()));
+ release_mailbox3_ = base::Bind(&MockMailboxCallback::Release2,
+ base::Unretained(&mock_callback_),
+ shared_memory_.get());
+ mailbox3_ = TextureMailbox(shared_memory_.get(), size, release_mailbox3_);
}
std::string mailbox_name1_;
@@ -232,10 +243,13 @@ struct CommonMailboxObjects {
MockMailboxCallback mock_callback_;
TextureMailbox::ReleaseCallback release_mailbox1_;
TextureMailbox::ReleaseCallback release_mailbox2_;
+ TextureMailbox::ReleaseCallback release_mailbox3_;
TextureMailbox mailbox1_;
TextureMailbox mailbox2_;
+ TextureMailbox mailbox3_;
unsigned sync_point1_;
unsigned sync_point2_;
+ scoped_ptr<base::SharedMemory> shared_memory_;
};
class TextureLayerWithMailboxTest : public TextureLayerTest {
@@ -288,6 +302,20 @@ TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) {
Mock::VerifyAndClearExpectations(layer_tree_host_.get());
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
+ test_layer->SetTextureMailbox(test_data_.mailbox3_);
+ Mock::VerifyAndClearExpectations(layer_tree_host_.get());
+ Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
+
+ EXPECT_CALL(*layer_tree_host_, AcquireLayerTextures()).Times(0);
+ EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1));
+ EXPECT_CALL(test_data_.mock_callback_,
+ Release2(test_data_.shared_memory_.get(),
+ 0, false))
+ .Times(1);
+ test_layer->SetTextureMailbox(TextureMailbox());
+ Mock::VerifyAndClearExpectations(layer_tree_host_.get());
+ Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
+
// Test destructor.
EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1));
test_layer->SetTextureMailbox(test_data_.mailbox1_);
« no previous file with comments | « cc/layers/texture_layer_impl.cc ('k') | cc/output/compositor_frame_ack.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698