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

Unified Diff: cc/layers/delegated_frame_resource_collection_unittest.cc

Issue 1057283003: Remove parts of //cc we aren't using (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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/delegated_frame_resource_collection.cc ('k') | cc/layers/delegated_renderer_layer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/delegated_frame_resource_collection_unittest.cc
diff --git a/cc/layers/delegated_frame_resource_collection_unittest.cc b/cc/layers/delegated_frame_resource_collection_unittest.cc
deleted file mode 100644
index f91fe6308ec256740b612ce82c5d43fbd267f6d1..0000000000000000000000000000000000000000
--- a/cc/layers/delegated_frame_resource_collection_unittest.cc
+++ /dev/null
@@ -1,166 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/bind.h"
-#include "base/run_loop.h"
-#include "base/synchronization/waitable_event.h"
-#include "base/threading/thread.h"
-#include "cc/layers/delegated_frame_resource_collection.h"
-#include "cc/resources/returned_resource.h"
-#include "cc/resources/transferable_resource.h"
-#include "cc/trees/blocking_task_runner.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace cc {
-namespace {
-
-class DelegatedFrameResourceCollectionTest
- : public testing::Test,
- public DelegatedFrameResourceCollectionClient {
- protected:
- DelegatedFrameResourceCollectionTest() : resources_available_(false) {}
-
- void SetUp() override { CreateResourceCollection(); }
-
- void TearDown() override { DestroyResourceCollection(); }
-
- void CreateResourceCollection() {
- DCHECK(!resource_collection_.get());
- resource_collection_ = new DelegatedFrameResourceCollection;
- resource_collection_->SetClient(this);
- }
-
- void DestroyResourceCollection() {
- if (resource_collection_.get()) {
- resource_collection_->SetClient(nullptr);
- resource_collection_ = nullptr;
- }
- }
-
- TransferableResourceArray CreateResourceArray() {
- TransferableResourceArray resources;
- TransferableResource resource;
- resource.id = 444;
- resources.push_back(resource);
- return resources;
- }
-
- void UnusedResourcesAreAvailable() override {
- resources_available_ = true;
- resource_collection_->TakeUnusedResourcesForChildCompositor(
- &returned_resources_);
- if (!resources_available_closure_.is_null())
- resources_available_closure_.Run();
- }
-
- bool ReturnAndResetResourcesAvailable() {
- bool r = resources_available_;
- resources_available_ = false;
- return r;
- }
-
- scoped_refptr<DelegatedFrameResourceCollection> resource_collection_;
- bool resources_available_;
- ReturnedResourceArray returned_resources_;
- base::Closure resources_available_closure_;
-};
-
-// This checks that taking the return callback doesn't take extra refcounts,
-// since it's sent to other threads.
-TEST_F(DelegatedFrameResourceCollectionTest, NoRef) {
- // Start with one ref.
- EXPECT_TRUE(resource_collection_->HasOneRef());
-
- ReturnCallback return_callback =
- resource_collection_->GetReturnResourcesCallbackForImplThread();
-
- // Callback shouldn't take a ref since it's sent to other threads.
- EXPECT_TRUE(resource_collection_->HasOneRef());
-}
-
-void ReturnResourcesOnThread(ReturnCallback callback,
- const ReturnedResourceArray& resources,
- base::WaitableEvent* event,
- BlockingTaskRunner* main_thread_task_runner) {
- callback.Run(resources, main_thread_task_runner);
- if (event)
- event->Wait();
-}
-
-// Tests that the ReturnCallback can run safely on threads even after the
-// last references to the collection were dropped.
-// Flaky: crbug.com/313441
-TEST_F(DelegatedFrameResourceCollectionTest, Thread) {
- base::Thread thread("test thread");
- thread.Start();
- scoped_ptr<BlockingTaskRunner> main_thread_task_runner(
- BlockingTaskRunner::Create(base::MessageLoopProxy::current()));
-
- TransferableResourceArray resources = CreateResourceArray();
- resource_collection_->ReceivedResources(resources);
- resource_collection_->RefResources(resources);
-
- ReturnedResourceArray returned_resources;
- TransferableResource::ReturnResources(resources, &returned_resources);
-
- base::WaitableEvent event(false, false);
-
- {
- base::RunLoop run_loop;
- resources_available_closure_ = run_loop.QuitClosure();
-
- thread.message_loop()->PostTask(
- FROM_HERE,
- base::Bind(
- &ReturnResourcesOnThread,
- resource_collection_->GetReturnResourcesCallbackForImplThread(),
- returned_resources,
- &event,
- main_thread_task_runner.get()));
-
- run_loop.Run();
- }
- EXPECT_TRUE(ReturnAndResetResourcesAvailable());
- EXPECT_EQ(1u, returned_resources_.size());
- EXPECT_EQ(444u, returned_resources_[0].id);
- EXPECT_EQ(1, returned_resources_[0].count);
- returned_resources_.clear();
-
- // The event prevents the return resources callback from being deleted.
- // Destroy the last reference from this thread to the collection before
- // signaling the event, to ensure any reference taken by the callback, if any,
- // would be the last one.
- DestroyResourceCollection();
- event.Signal();
-
- CreateResourceCollection();
- resource_collection_->ReceivedResources(resources);
- resource_collection_->RefResources(resources);
-
- // Destroy the collection before we have a chance to run the return callback.
- ReturnCallback return_callback =
- resource_collection_->GetReturnResourcesCallbackForImplThread();
- resource_collection_->LoseAllResources();
- DestroyResourceCollection();
-
- EXPECT_TRUE(ReturnAndResetResourcesAvailable());
- EXPECT_EQ(1u, returned_resources_.size());
- EXPECT_EQ(444u, returned_resources_[0].id);
- EXPECT_EQ(1, returned_resources_[0].count);
- EXPECT_TRUE(returned_resources_[0].lost);
- returned_resources_.clear();
-
- base::WaitableEvent* null_event = nullptr;
- thread.message_loop()->PostTask(FROM_HERE,
- base::Bind(&ReturnResourcesOnThread,
- return_callback,
- returned_resources,
- null_event,
- main_thread_task_runner.get()));
-
- thread.Stop();
-}
-
-} // namespace
-} // namespace cc
« no previous file with comments | « cc/layers/delegated_frame_resource_collection.cc ('k') | cc/layers/delegated_renderer_layer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698