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

Side by Side Diff: cc/resources/worker_pool_unittest.cc

Issue 17351017: Re-land: cc: Add raster finished signals to RasterWorkerPool. (Closed) Base URL: http://git.chromium.org/chromium/src.git@new-graph-build
Patch Set: rebase Created 7 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/resources/worker_pool.h" 5 #include "cc/resources/worker_pool.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "cc/base/completion_event.h" 9 #include "cc/base/completion_event.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 virtual ~FakeWorkerPool() {} 46 virtual ~FakeWorkerPool() {}
47 47
48 static scoped_ptr<FakeWorkerPool> Create() { 48 static scoped_ptr<FakeWorkerPool> Create() {
49 return make_scoped_ptr(new FakeWorkerPool); 49 return make_scoped_ptr(new FakeWorkerPool);
50 } 50 }
51 51
52 void ScheduleTasks(const base::Closure& callback, 52 void ScheduleTasks(const base::Closure& callback,
53 const base::Closure& reply, 53 const base::Closure& reply,
54 const base::Closure& dependency, 54 const base::Closure& dependency,
55 int count) { 55 int count) {
56 unsigned priority = 0u;
57 TaskGraph graph; 56 TaskGraph graph;
58 57
59 scoped_refptr<FakeWorkerPoolTaskImpl> completion_task( 58 scoped_refptr<FakeWorkerPoolTaskImpl> completion_task(
60 new FakeWorkerPoolTaskImpl( 59 new FakeWorkerPoolTaskImpl(
61 base::Bind(&FakeWorkerPool::OnTasksCompleted, 60 base::Bind(&FakeWorkerPool::OnTasksCompleted,
62 base::Unretained(this)), 61 base::Unretained(this)),
63 base::Closure())); 62 base::Closure()));
64 scoped_ptr<GraphNode> completion_node(new GraphNode); 63 scoped_ptr<internal::GraphNode> completion_node(
65 completion_node->set_task(completion_task.get()); 64 new internal::GraphNode(completion_task.get(), 0u));
66 65
67 scoped_refptr<FakeWorkerPoolTaskImpl> dependency_task( 66 scoped_refptr<FakeWorkerPoolTaskImpl> dependency_task(
68 new FakeWorkerPoolTaskImpl(dependency, base::Closure())); 67 new FakeWorkerPoolTaskImpl(dependency, base::Closure()));
69 scoped_ptr<GraphNode> dependency_node(new GraphNode); 68 scoped_ptr<internal::GraphNode> dependency_node(
70 dependency_node->set_task(dependency_task.get()); 69 new internal::GraphNode(dependency_task.get(), 0u));
71 70
72 TaskVector tasks; 71 TaskVector tasks;
73 for (int i = 0; i < count; ++i) { 72 for (int i = 0; i < count; ++i) {
74 scoped_refptr<FakeWorkerPoolTaskImpl> task( 73 scoped_refptr<FakeWorkerPoolTaskImpl> task(
75 new FakeWorkerPoolTaskImpl(callback, reply)); 74 new FakeWorkerPoolTaskImpl(callback, reply));
76 scoped_ptr<GraphNode> node(new GraphNode); 75 scoped_ptr<internal::GraphNode> node(
77 node->set_task(task.get()); 76 new internal::GraphNode(task.get(), 0u));
78 node->add_dependent(completion_node.get()); 77 node->add_dependent(completion_node.get());
79 completion_node->add_dependency(); 78 completion_node->add_dependency();
80 dependency_node->add_dependent(node.get()); 79 dependency_node->add_dependent(node.get());
81 node->add_dependency(); 80 node->add_dependency();
82 node->set_priority(priority++);
83 graph.set(task.get(), node.Pass()); 81 graph.set(task.get(), node.Pass());
84 tasks.push_back(task.get()); 82 tasks.push_back(task.get());
85 } 83 }
86 84
87 completion_node->set_priority(priority++);
88 graph.set(completion_task.get(), completion_node.Pass()); 85 graph.set(completion_task.get(), completion_node.Pass());
89 dependency_node->set_priority(priority++);
90 graph.set(dependency_task.get(), dependency_node.Pass()); 86 graph.set(dependency_task.get(), dependency_node.Pass());
91 87
92 scheduled_tasks_completion_.reset(new CompletionEvent); 88 scheduled_tasks_completion_.reset(new CompletionEvent);
93 89
94 SetTaskGraph(&graph); 90 SetTaskGraph(&graph);
95 91
96 tasks_.swap(tasks); 92 tasks_.swap(tasks);
97 completion_task_.swap(completion_task); 93 completion_task_.swap(completion_task);
98 dependency_task_.swap(dependency_task); 94 dependency_task_.swap(dependency_task);
99 } 95 }
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 EXPECT_EQ(1u, run_task_ids()[3]); 218 EXPECT_EQ(1u, run_task_ids()[3]);
223 EXPECT_EQ(1u, run_task_ids()[4]); 219 EXPECT_EQ(1u, run_task_ids()[4]);
224 ASSERT_EQ(3u, on_task_completed_ids().size()); 220 ASSERT_EQ(3u, on_task_completed_ids().size());
225 EXPECT_EQ(1u, on_task_completed_ids()[1]); 221 EXPECT_EQ(1u, on_task_completed_ids()[1]);
226 EXPECT_EQ(1u, on_task_completed_ids()[2]); 222 EXPECT_EQ(1u, on_task_completed_ids()[2]);
227 } 223 }
228 224
229 } // namespace 225 } // namespace
230 226
231 } // namespace cc 227 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698