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

Side by Side Diff: cc/test/layer_tree_test.cc

Issue 242783003: cc: Add testing stubs for proxy test (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comment addressed Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/test/layer_tree_test.h" 5 #include "cc/test/layer_tree_test.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "cc/animation/animation.h" 8 #include "cc/animation/animation.h"
9 #include "cc/animation/animation_registrar.h" 9 #include "cc/animation/animation_registrar.h"
10 #include "cc/animation/layer_animation_controller.h" 10 #include "cc/animation/layer_animation_controller.h"
(...skipping 28 matching lines...) Expand all
39 LayerTreeHostImpl* host_impl, 39 LayerTreeHostImpl* host_impl,
40 LayerTreeHostImpl::FrameData* frame_data, 40 LayerTreeHostImpl::FrameData* frame_data,
41 DrawResult draw_result) { 41 DrawResult draw_result) {
42 return draw_result; 42 return draw_result;
43 } 43 }
44 44
45 base::TimeDelta TestHooks::LowFrequencyAnimationInterval() const { 45 base::TimeDelta TestHooks::LowFrequencyAnimationInterval() const {
46 return base::TimeDelta::FromMilliseconds(16); 46 return base::TimeDelta::FromMilliseconds(16);
47 } 47 }
48 48
49 // Adapts ThreadProxy for test. Injects test hooks for testing.
50 class ThreadProxyForTest : public ThreadProxy {
51 public:
52 static scoped_ptr<Proxy> Create(
53 TestHooks* test_hooks,
54 LayerTreeHost* host,
55 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) {
56 return make_scoped_ptr(
57 new ThreadProxyForTest(test_hooks,
58 host,
59 impl_task_runner)).PassAs<Proxy>();
60 }
61
62 const ThreadProxy::MainThreadOnly& main() const {
63 return ThreadProxy::main();
64 }
65
66 const ThreadProxy::CompositorThreadOnly& impl() const {
67 return ThreadProxy::impl();
68 }
69
70 virtual ~ThreadProxyForTest() {}
71
72 private:
73 TestHooks* test_hooks_;
74
75 ThreadProxyForTest(
76 TestHooks* test_hooks,
77 LayerTreeHost* host,
78 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner)
79 : ThreadProxy(host, impl_task_runner),
80 test_hooks_(test_hooks) {
81 }
82 };
83
49 // Adapts LayerTreeHostImpl for test. Runs real code, then invokes test hooks. 84 // Adapts LayerTreeHostImpl for test. Runs real code, then invokes test hooks.
50 class LayerTreeHostImplForTesting : public LayerTreeHostImpl { 85 class LayerTreeHostImplForTesting : public LayerTreeHostImpl {
51 public: 86 public:
52 static scoped_ptr<LayerTreeHostImplForTesting> Create( 87 static scoped_ptr<LayerTreeHostImplForTesting> Create(
53 TestHooks* test_hooks, 88 TestHooks* test_hooks,
54 const LayerTreeSettings& settings, 89 const LayerTreeSettings& settings,
55 LayerTreeHostImplClient* host_impl_client, 90 LayerTreeHostImplClient* host_impl_client,
56 Proxy* proxy, 91 Proxy* proxy,
57 SharedBitmapManager* manager, 92 SharedBitmapManager* manager,
58 RenderingStatsInstrumentation* stats_instrumentation) { 93 RenderingStatsInstrumentation* stats_instrumentation) {
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 // Adapts LayerTreeHost for test. Injects LayerTreeHostImplForTesting. 315 // Adapts LayerTreeHost for test. Injects LayerTreeHostImplForTesting.
281 class LayerTreeHostForTesting : public LayerTreeHost { 316 class LayerTreeHostForTesting : public LayerTreeHost {
282 public: 317 public:
283 static scoped_ptr<LayerTreeHostForTesting> Create( 318 static scoped_ptr<LayerTreeHostForTesting> Create(
284 TestHooks* test_hooks, 319 TestHooks* test_hooks,
285 LayerTreeHostClientForTesting* client, 320 LayerTreeHostClientForTesting* client,
286 const LayerTreeSettings& settings, 321 const LayerTreeSettings& settings,
287 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) { 322 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) {
288 scoped_ptr<LayerTreeHostForTesting> layer_tree_host( 323 scoped_ptr<LayerTreeHostForTesting> layer_tree_host(
289 new LayerTreeHostForTesting(test_hooks, client, settings)); 324 new LayerTreeHostForTesting(test_hooks, client, settings));
290 if (impl_task_runner.get()) 325 if (impl_task_runner.get()) {
291 layer_tree_host->InitializeThreaded(impl_task_runner); 326 layer_tree_host->InitializeForTesting(
292 else 327 ThreadProxyForTest::Create(test_hooks,
293 layer_tree_host->InitializeSingleThreaded(client); 328 layer_tree_host.get(),
329 impl_task_runner));
330 } else {
331 layer_tree_host->InitializeForTesting(
332 SingleThreadProxy::Create(layer_tree_host.get(), client));
333 }
294 return layer_tree_host.Pass(); 334 return layer_tree_host.Pass();
295 } 335 }
296 336
297 virtual scoped_ptr<LayerTreeHostImpl> CreateLayerTreeHostImpl( 337 virtual scoped_ptr<LayerTreeHostImpl> CreateLayerTreeHostImpl(
298 LayerTreeHostImplClient* host_impl_client) OVERRIDE { 338 LayerTreeHostImplClient* host_impl_client) OVERRIDE {
299 return LayerTreeHostImplForTesting::Create( 339 return LayerTreeHostImplForTesting::Create(
300 test_hooks_, 340 test_hooks_,
301 settings(), 341 settings(),
302 host_impl_client, 342 host_impl_client,
303 proxy(), 343 proxy(),
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 FAIL() << "Test timed out"; 695 FAIL() << "Test timed out";
656 return; 696 return;
657 } 697 }
658 AfterTest(); 698 AfterTest();
659 } 699 }
660 700
661 void LayerTreeTest::RunTestWithImplSidePainting() { 701 void LayerTreeTest::RunTestWithImplSidePainting() {
662 RunTest(true, false, true); 702 RunTest(true, false, true);
663 } 703 }
664 704
705 const ThreadProxy::MainThreadOnly&
706 LayerTreeTest::ThreadProxyMainOnly() const {
707 DCHECK(proxy());
708 DCHECK(proxy()->HasImplThread());
709 return static_cast<ThreadProxyForTest*>(proxy())->main();
710 }
711
712 const ThreadProxy::CompositorThreadOnly&
713 LayerTreeTest::ThreadProxyImplOnly() const {
714 DCHECK(proxy());
715 DCHECK(proxy()->HasImplThread());
716 return static_cast<ThreadProxyForTest*>(proxy())->impl();
717 }
718
665 scoped_ptr<OutputSurface> LayerTreeTest::CreateOutputSurface(bool fallback) { 719 scoped_ptr<OutputSurface> LayerTreeTest::CreateOutputSurface(bool fallback) {
666 scoped_ptr<FakeOutputSurface> output_surface = 720 scoped_ptr<FakeOutputSurface> output_surface =
667 CreateFakeOutputSurface(fallback); 721 CreateFakeOutputSurface(fallback);
668 if (output_surface) { 722 if (output_surface) {
669 DCHECK_EQ(delegating_renderer_, 723 DCHECK_EQ(delegating_renderer_,
670 output_surface->capabilities().delegated_rendering); 724 output_surface->capabilities().delegated_rendering);
671 } 725 }
672 output_surface_ = output_surface.get(); 726 output_surface_ = output_surface.get();
673 return output_surface.PassAs<OutputSurface>(); 727 return output_surface.PassAs<OutputSurface>();
674 } 728 }
(...skipping 21 matching lines...) Expand all
696 return -1; 750 return -1;
697 } 751 }
698 752
699 void LayerTreeTest::DestroyLayerTreeHost() { 753 void LayerTreeTest::DestroyLayerTreeHost() {
700 if (layer_tree_host_ && layer_tree_host_->root_layer()) 754 if (layer_tree_host_ && layer_tree_host_->root_layer())
701 layer_tree_host_->root_layer()->SetLayerTreeHost(NULL); 755 layer_tree_host_->root_layer()->SetLayerTreeHost(NULL);
702 layer_tree_host_.reset(); 756 layer_tree_host_.reset();
703 } 757 }
704 758
705 } // namespace cc 759 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698