| Index: cc/layers/texture_layer_unittest.cc
|
| diff --git a/cc/layers/texture_layer_unittest.cc b/cc/layers/texture_layer_unittest.cc
|
| index 08309c760671376f8429076e1a6d6a0fdba3aa7e..feb712654af9a998fa0954ce10e0922e619a2a2b 100644
|
| --- a/cc/layers/texture_layer_unittest.cc
|
| +++ b/cc/layers/texture_layer_unittest.cc
|
| @@ -102,6 +102,16 @@ class MockMailboxCallback {
|
| void(base::SharedMemory* shared_memory,
|
| uint32 sync_point,
|
| bool lost_resource));
|
| + MOCK_METHOD4(ReleaseImpl,
|
| + void(const gpu::Mailbox& mailbox,
|
| + uint32 sync_point,
|
| + bool lost_resource,
|
| + BlockingTaskRunner* main_thread_task_runner));
|
| + MOCK_METHOD4(ReleaseImpl2,
|
| + void(base::SharedMemory* shared_memory,
|
| + uint32 sync_point,
|
| + bool lost_resource,
|
| + BlockingTaskRunner* main_thread_task_runner));
|
| };
|
|
|
| struct CommonMailboxObjects {
|
| @@ -117,6 +127,12 @@ struct CommonMailboxObjects {
|
| release_mailbox2_ = base::Bind(&MockMailboxCallback::Release,
|
| base::Unretained(&mock_callback_),
|
| mailbox_name2_);
|
| + release_mailbox1_impl_ = base::Bind(&MockMailboxCallback::ReleaseImpl,
|
| + base::Unretained(&mock_callback_),
|
| + mailbox_name1_);
|
| + release_mailbox2_impl_ = base::Bind(&MockMailboxCallback::ReleaseImpl,
|
| + base::Unretained(&mock_callback_),
|
| + mailbox_name2_);
|
| const uint32 arbitrary_target1 = GL_TEXTURE_2D;
|
| const uint32 arbitrary_target2 = GL_TEXTURE_EXTERNAL_OES;
|
| mailbox1_ = TextureMailbox(mailbox_name1_, arbitrary_target1, sync_point1_);
|
| @@ -126,6 +142,9 @@ struct CommonMailboxObjects {
|
| release_mailbox3_ = base::Bind(&MockMailboxCallback::Release2,
|
| base::Unretained(&mock_callback_),
|
| shared_memory_.get());
|
| + release_mailbox3_impl_ = base::Bind(&MockMailboxCallback::ReleaseImpl2,
|
| + base::Unretained(&mock_callback_),
|
| + shared_memory_.get());
|
| mailbox3_ = TextureMailbox(shared_memory_.get(), size);
|
| }
|
|
|
| @@ -135,6 +154,9 @@ struct CommonMailboxObjects {
|
| ReleaseCallback release_mailbox1_;
|
| ReleaseCallback release_mailbox2_;
|
| ReleaseCallback release_mailbox3_;
|
| + ReleaseCallbackImpl release_mailbox1_impl_;
|
| + ReleaseCallbackImpl release_mailbox2_impl_;
|
| + ReleaseCallbackImpl release_mailbox3_impl_;
|
| TextureMailbox mailbox1_;
|
| TextureMailbox mailbox2_;
|
| TextureMailbox mailbox3_;
|
| @@ -377,6 +399,11 @@ class TextureLayerMailboxHolderTest : public TextureLayerTest {
|
| TextureLayerMailboxHolderTest()
|
| : main_thread_("MAIN") {
|
| main_thread_.Start();
|
| + main_thread_.message_loop()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&TextureLayerMailboxHolderTest::InitializeOnMain,
|
| + base::Unretained(this)));
|
| + Wait(main_thread_);
|
| }
|
|
|
| void Wait(const base::Thread& thread) {
|
| @@ -399,7 +426,7 @@ class TextureLayerMailboxHolderTest : public TextureLayerTest {
|
| main_ref_.reset();
|
| }
|
|
|
| - void CreateImplRef(scoped_ptr<SingleReleaseCallback>* impl_ref) {
|
| + void CreateImplRef(scoped_ptr<SingleReleaseCallbackImpl>* impl_ref) {
|
| *impl_ref = main_ref_->holder()->GetCallbackForImplThread();
|
| }
|
|
|
| @@ -407,15 +434,22 @@ class TextureLayerMailboxHolderTest : public TextureLayerTest {
|
| base::WaitableEvent* wait_for_capture,
|
| base::WaitableEvent* stop_capture) {
|
| begin_capture->Wait();
|
| - BlockingTaskRunner::CapturePostTasks capture;
|
| + BlockingTaskRunner::CapturePostTasks capture(
|
| + main_thread_task_runner_.get());
|
| wait_for_capture->Signal();
|
| stop_capture->Wait();
|
| }
|
|
|
| protected:
|
| + void InitializeOnMain() {
|
| + main_thread_task_runner_ =
|
| + BlockingTaskRunner::Create(main_thread_.message_loop_proxy());
|
| + }
|
| +
|
| scoped_ptr<TestMailboxHolder::MainThreadReference>
|
| main_ref_;
|
| base::Thread main_thread_;
|
| + scoped_ptr<BlockingTaskRunner> main_thread_task_runner_;
|
| CommonMailboxObjects test_data_;
|
| };
|
|
|
| @@ -432,7 +466,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) {
|
|
|
| // The texture layer is attached to compositor1, and passes a reference to its
|
| // impl tree.
|
| - scoped_ptr<SingleReleaseCallback> compositor1;
|
| + scoped_ptr<SingleReleaseCallbackImpl> compositor1;
|
| main_thread_.message_loop()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef,
|
| @@ -441,7 +475,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) {
|
|
|
| // Then the texture layer is removed and attached to compositor2, and passes a
|
| // reference to its impl tree.
|
| - scoped_ptr<SingleReleaseCallback> compositor2;
|
| + scoped_ptr<SingleReleaseCallbackImpl> compositor2;
|
| main_thread_.message_loop()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef,
|
| @@ -453,8 +487,8 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) {
|
|
|
| // The compositors both destroy their impl trees before the main thread layer
|
| // is destroyed.
|
| - compositor1->Run(100, false);
|
| - compositor2->Run(200, false);
|
| + compositor1->Run(100, false, main_thread_task_runner_.get());
|
| + compositor2->Run(200, false, main_thread_task_runner_.get());
|
|
|
| Wait(main_thread_);
|
|
|
| @@ -487,7 +521,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) {
|
|
|
| // The texture layer is attached to compositor1, and passes a reference to its
|
| // impl tree.
|
| - scoped_ptr<SingleReleaseCallback> compositor1;
|
| + scoped_ptr<SingleReleaseCallbackImpl> compositor1;
|
| main_thread_.message_loop()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef,
|
| @@ -496,7 +530,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) {
|
|
|
| // Then the texture layer is removed and attached to compositor2, and passes a
|
| // reference to its impl tree.
|
| - scoped_ptr<SingleReleaseCallback> compositor2;
|
| + scoped_ptr<SingleReleaseCallbackImpl> compositor2;
|
| main_thread_.message_loop()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef,
|
| @@ -507,7 +541,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) {
|
| Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
|
|
|
| // One compositor destroys their impl tree.
|
| - compositor1->Run(100, false);
|
| + compositor1->Run(100, false, main_thread_task_runner_.get());
|
|
|
| // Then the main thread reference is destroyed.
|
| main_thread_.message_loop()->PostTask(
|
| @@ -525,7 +559,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) {
|
| EXPECT_CALL(test_data_.mock_callback_,
|
| Release(test_data_.mailbox_name1_, 200, true)).Times(1);
|
|
|
| - compositor2->Run(200, true);
|
| + compositor2->Run(200, true, main_thread_task_runner_.get());
|
| Wait(main_thread_);
|
| Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
|
| }
|
| @@ -543,7 +577,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) {
|
|
|
| // The texture layer is attached to compositor1, and passes a reference to its
|
| // impl tree.
|
| - scoped_ptr<SingleReleaseCallback> compositor1;
|
| + scoped_ptr<SingleReleaseCallbackImpl> compositor1;
|
| main_thread_.message_loop()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef,
|
| @@ -552,7 +586,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) {
|
|
|
| // Then the texture layer is removed and attached to compositor2, and passes a
|
| // reference to its impl tree.
|
| - scoped_ptr<SingleReleaseCallback> compositor2;
|
| + scoped_ptr<SingleReleaseCallbackImpl> compositor2;
|
| main_thread_.message_loop()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef,
|
| @@ -569,7 +603,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) {
|
| base::Unretained(this)));
|
|
|
| // One compositor destroys their impl tree.
|
| - compositor2->Run(200, false);
|
| + compositor2->Run(200, false, main_thread_task_runner_.get());
|
|
|
| Wait(main_thread_);
|
|
|
| @@ -581,7 +615,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) {
|
| EXPECT_CALL(test_data_.mock_callback_,
|
| Release(test_data_.mailbox_name1_, 100, true)).Times(1);
|
|
|
| - compositor1->Run(100, true);
|
| + compositor1->Run(100, true, main_thread_task_runner_.get());
|
| Wait(main_thread_);
|
| Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
|
| }
|
| @@ -599,7 +633,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) {
|
|
|
| // The texture layer is attached to compositor1, and passes a reference to its
|
| // impl tree.
|
| - scoped_ptr<SingleReleaseCallback> compositor1;
|
| + scoped_ptr<SingleReleaseCallbackImpl> compositor1;
|
| main_thread_.message_loop()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef,
|
| @@ -608,7 +642,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) {
|
|
|
| // Then the texture layer is removed and attached to compositor2, and passes a
|
| // reference to its impl tree.
|
| - scoped_ptr<SingleReleaseCallback> compositor2;
|
| + scoped_ptr<SingleReleaseCallbackImpl> compositor2;
|
| main_thread_.message_loop()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&TextureLayerMailboxHolderTest::CreateImplRef,
|
| @@ -646,7 +680,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) {
|
| // Before the main thread capturing starts, one compositor destroys their
|
| // impl reference. Since capturing did not start, this gets post-tasked to
|
| // the main thread.
|
| - compositor1->Run(100, false);
|
| + compositor1->Run(100, false, main_thread_task_runner_.get());
|
|
|
| // Start capturing on the main thread.
|
| begin_capture.Signal();
|
| @@ -657,7 +691,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) {
|
| // released before compositor1, whose reference will be released later when
|
| // the post-task is serviced. But since it was destroyed _on the impl thread_
|
| // last, its sync point values should be used.
|
| - compositor2->Run(200, true);
|
| + compositor2->Run(200, true, main_thread_task_runner_.get());
|
|
|
| stop_capture.Signal();
|
| Wait(main_thread_);
|
| @@ -917,13 +951,12 @@ class TextureLayerImplWithMailboxTest : public TextureLayerTest {
|
| // Test conditions for results of TextureLayerImpl::WillDraw under
|
| // different configurations of different mailbox, texture_id, and draw_mode.
|
| TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) {
|
| - EXPECT_CALL(test_data_.mock_callback_,
|
| - Release(test_data_.mailbox_name1_,
|
| - test_data_.sync_point1_,
|
| - false))
|
| + EXPECT_CALL(
|
| + test_data_.mock_callback_,
|
| + ReleaseImpl(test_data_.mailbox_name1_, test_data_.sync_point1_, false, _))
|
| .Times(AnyNumber());
|
| EXPECT_CALL(test_data_.mock_callback_,
|
| - Release2(test_data_.shared_memory_.get(), 0, false))
|
| + ReleaseImpl2(test_data_.shared_memory_.get(), 0, false, _))
|
| .Times(AnyNumber());
|
| // Hardware mode.
|
| {
|
| @@ -931,7 +964,7 @@ TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) {
|
| TextureLayerImpl::Create(host_impl_.active_tree(), 1);
|
| impl_layer->SetTextureMailbox(
|
| test_data_.mailbox1_,
|
| - SingleReleaseCallback::Create(test_data_.release_mailbox1_));
|
| + SingleReleaseCallbackImpl::Create(test_data_.release_mailbox1_impl_));
|
| EXPECT_TRUE(WillDraw(impl_layer.get(), DRAW_MODE_HARDWARE));
|
| }
|
|
|
| @@ -939,7 +972,7 @@ TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) {
|
| scoped_ptr<TextureLayerImpl> impl_layer =
|
| TextureLayerImpl::Create(host_impl_.active_tree(), 1);
|
| impl_layer->SetTextureMailbox(TextureMailbox(),
|
| - scoped_ptr<SingleReleaseCallback>());
|
| + scoped_ptr<SingleReleaseCallbackImpl>());
|
| EXPECT_FALSE(WillDraw(impl_layer.get(), DRAW_MODE_HARDWARE));
|
| }
|
|
|
| @@ -949,7 +982,7 @@ TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) {
|
| TextureLayerImpl::Create(host_impl_.active_tree(), 1);
|
| impl_layer->SetTextureMailbox(
|
| test_data_.mailbox3_,
|
| - SingleReleaseCallback::Create(test_data_.release_mailbox3_));
|
| + SingleReleaseCallbackImpl::Create(test_data_.release_mailbox3_impl_));
|
| EXPECT_TRUE(WillDraw(impl_layer.get(), DRAW_MODE_HARDWARE));
|
| }
|
|
|
| @@ -959,7 +992,7 @@ TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) {
|
| TextureLayerImpl::Create(host_impl_.active_tree(), 1);
|
| impl_layer->SetTextureMailbox(
|
| test_data_.mailbox1_,
|
| - SingleReleaseCallback::Create(test_data_.release_mailbox1_));
|
| + SingleReleaseCallbackImpl::Create(test_data_.release_mailbox1_impl_));
|
| EXPECT_FALSE(WillDraw(impl_layer.get(), DRAW_MODE_SOFTWARE));
|
| }
|
|
|
| @@ -967,7 +1000,7 @@ TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) {
|
| scoped_ptr<TextureLayerImpl> impl_layer =
|
| TextureLayerImpl::Create(host_impl_.active_tree(), 1);
|
| impl_layer->SetTextureMailbox(TextureMailbox(),
|
| - scoped_ptr<SingleReleaseCallback>());
|
| + scoped_ptr<SingleReleaseCallbackImpl>());
|
| EXPECT_FALSE(WillDraw(impl_layer.get(), DRAW_MODE_SOFTWARE));
|
| }
|
|
|
| @@ -977,7 +1010,7 @@ TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) {
|
| TextureLayerImpl::Create(host_impl_.active_tree(), 1);
|
| impl_layer->SetTextureMailbox(
|
| test_data_.mailbox3_,
|
| - SingleReleaseCallback::Create(test_data_.release_mailbox3_));
|
| + SingleReleaseCallbackImpl::Create(test_data_.release_mailbox3_impl_));
|
| EXPECT_TRUE(WillDraw(impl_layer.get(), DRAW_MODE_SOFTWARE));
|
| }
|
|
|
| @@ -987,7 +1020,7 @@ TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) {
|
| TextureLayerImpl::Create(host_impl_.active_tree(), 1);
|
| impl_layer->SetTextureMailbox(
|
| test_data_.mailbox1_,
|
| - SingleReleaseCallback::Create(test_data_.release_mailbox1_));
|
| + SingleReleaseCallbackImpl::Create(test_data_.release_mailbox1_impl_));
|
| EXPECT_FALSE(WillDraw(impl_layer.get(), DRAW_MODE_RESOURCELESS_SOFTWARE));
|
| }
|
| }
|
| @@ -1004,55 +1037,51 @@ TEST_F(TextureLayerImplWithMailboxTest, TestImplLayerCallbacks) {
|
|
|
| pending_layer->SetTextureMailbox(
|
| test_data_.mailbox1_,
|
| - SingleReleaseCallback::Create(test_data_.release_mailbox1_));
|
| + SingleReleaseCallbackImpl::Create(test_data_.release_mailbox1_impl_));
|
|
|
| // Test multiple commits without an activation.
|
| - EXPECT_CALL(test_data_.mock_callback_,
|
| - Release(test_data_.mailbox_name1_,
|
| - test_data_.sync_point1_,
|
| - false))
|
| + EXPECT_CALL(
|
| + test_data_.mock_callback_,
|
| + ReleaseImpl(test_data_.mailbox_name1_, test_data_.sync_point1_, false, _))
|
| .Times(1);
|
| pending_layer->SetTextureMailbox(
|
| test_data_.mailbox2_,
|
| - SingleReleaseCallback::Create(test_data_.release_mailbox2_));
|
| + SingleReleaseCallbackImpl::Create(test_data_.release_mailbox2_impl_));
|
| Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
|
|
|
| // Test callback after activation.
|
| pending_layer->PushPropertiesTo(active_layer.get());
|
| active_layer->DidBecomeActive();
|
|
|
| - EXPECT_CALL(test_data_.mock_callback_, Release(_, _, _)).Times(0);
|
| + EXPECT_CALL(test_data_.mock_callback_, ReleaseImpl(_, _, _, _)).Times(0);
|
| pending_layer->SetTextureMailbox(
|
| test_data_.mailbox1_,
|
| - SingleReleaseCallback::Create(test_data_.release_mailbox1_));
|
| + SingleReleaseCallbackImpl::Create(test_data_.release_mailbox1_impl_));
|
| Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
|
|
|
| EXPECT_CALL(test_data_.mock_callback_,
|
| - Release(test_data_.mailbox_name2_, _, false))
|
| - .Times(1);
|
| + ReleaseImpl(test_data_.mailbox_name2_, _, false, _)).Times(1);
|
| pending_layer->PushPropertiesTo(active_layer.get());
|
| active_layer->DidBecomeActive();
|
| Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
|
|
|
| // Test resetting the mailbox.
|
| EXPECT_CALL(test_data_.mock_callback_,
|
| - Release(test_data_.mailbox_name1_, _, false))
|
| - .Times(1);
|
| + ReleaseImpl(test_data_.mailbox_name1_, _, false, _)).Times(1);
|
| pending_layer->SetTextureMailbox(TextureMailbox(),
|
| - scoped_ptr<SingleReleaseCallback>());
|
| + scoped_ptr<SingleReleaseCallbackImpl>());
|
| pending_layer->PushPropertiesTo(active_layer.get());
|
| active_layer->DidBecomeActive();
|
| Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
|
|
|
| // Test destructor.
|
| - EXPECT_CALL(test_data_.mock_callback_,
|
| - Release(test_data_.mailbox_name1_,
|
| - test_data_.sync_point1_,
|
| - false))
|
| + EXPECT_CALL(
|
| + test_data_.mock_callback_,
|
| + ReleaseImpl(test_data_.mailbox_name1_, test_data_.sync_point1_, false, _))
|
| .Times(1);
|
| pending_layer->SetTextureMailbox(
|
| test_data_.mailbox1_,
|
| - SingleReleaseCallback::Create(test_data_.release_mailbox1_));
|
| + SingleReleaseCallbackImpl::Create(test_data_.release_mailbox1_impl_));
|
| }
|
|
|
| TEST_F(TextureLayerImplWithMailboxTest,
|
| @@ -1062,25 +1091,23 @@ TEST_F(TextureLayerImplWithMailboxTest,
|
| ASSERT_TRUE(impl_layer);
|
|
|
| EXPECT_CALL(test_data_.mock_callback_,
|
| - Release(test_data_.mailbox_name1_, _, false))
|
| - .Times(1);
|
| + ReleaseImpl(test_data_.mailbox_name1_, _, false, _)).Times(1);
|
| impl_layer->SetTextureMailbox(
|
| test_data_.mailbox1_,
|
| - SingleReleaseCallback::Create(test_data_.release_mailbox1_));
|
| + SingleReleaseCallbackImpl::Create(test_data_.release_mailbox1_impl_));
|
| impl_layer->DidBecomeActive();
|
| EXPECT_TRUE(impl_layer->WillDraw(
|
| DRAW_MODE_HARDWARE, host_impl_.active_tree()->resource_provider()));
|
| impl_layer->DidDraw(host_impl_.active_tree()->resource_provider());
|
| impl_layer->SetTextureMailbox(TextureMailbox(),
|
| - scoped_ptr<SingleReleaseCallback>());
|
| + scoped_ptr<SingleReleaseCallbackImpl>());
|
| }
|
|
|
| TEST_F(TextureLayerImplWithMailboxTest, TestCallbackOnInUseResource) {
|
| ResourceProvider* provider = host_impl_.active_tree()->resource_provider();
|
| - ResourceProvider::ResourceId id =
|
| - provider->CreateResourceFromTextureMailbox(
|
| - test_data_.mailbox1_,
|
| - SingleReleaseCallback::Create(test_data_.release_mailbox1_));
|
| + ResourceProvider::ResourceId id = provider->CreateResourceFromTextureMailbox(
|
| + test_data_.mailbox1_,
|
| + SingleReleaseCallbackImpl::Create(test_data_.release_mailbox1_impl_));
|
| provider->AllocateForTesting(id);
|
|
|
| // Transfer some resources to the parent.
|
| @@ -1089,12 +1116,11 @@ TEST_F(TextureLayerImplWithMailboxTest, TestCallbackOnInUseResource) {
|
| TransferableResourceArray list;
|
| provider->PrepareSendToParent(resource_ids_to_transfer, &list);
|
| EXPECT_TRUE(provider->InUseByConsumer(id));
|
| - EXPECT_CALL(test_data_.mock_callback_, Release(_, _, _)).Times(0);
|
| + EXPECT_CALL(test_data_.mock_callback_, ReleaseImpl(_, _, _, _)).Times(0);
|
| provider->DeleteResource(id);
|
| Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
|
| EXPECT_CALL(test_data_.mock_callback_,
|
| - Release(test_data_.mailbox_name1_, _, false))
|
| - .Times(1);
|
| + ReleaseImpl(test_data_.mailbox_name1_, _, false, _)).Times(1);
|
| ReturnedResourceArray returned;
|
| TransferableResource::ReturnResources(list, &returned);
|
| provider->ReceiveReturnsFromParent(returned);
|
|
|