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

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

Issue 12907011: cc: Allow command line flag to prevent unit test timeouts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/test/layer_tree_test.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "cc/animation/animation.h" 8 #include "cc/animation/animation.h"
8 #include "cc/animation/animation_registrar.h" 9 #include "cc/animation/animation_registrar.h"
9 #include "cc/animation/layer_animation_controller.h" 10 #include "cc/animation/layer_animation_controller.h"
10 #include "cc/animation/timing_function.h" 11 #include "cc/animation/timing_function.h"
11 #include "cc/base/thread_impl.h" 12 #include "cc/base/thread_impl.h"
12 #include "cc/input/input_handler.h" 13 #include "cc/input/input_handler.h"
13 #include "cc/layers/content_layer.h" 14 #include "cc/layers/content_layer.h"
14 #include "cc/layers/layer.h" 15 #include "cc/layers/layer.h"
15 #include "cc/layers/layer_impl.h" 16 #include "cc/layers/layer_impl.h"
16 #include "cc/test/animation_test_common.h" 17 #include "cc/test/animation_test_common.h"
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 }; 305 };
305 306
306 LayerTreeTest::LayerTreeTest() 307 LayerTreeTest::LayerTreeTest()
307 : beginning_(false), 308 : beginning_(false),
308 end_when_begin_returns_(false), 309 end_when_begin_returns_(false),
309 timed_out_(false), 310 timed_out_(false),
310 scheduled_(false), 311 scheduled_(false),
311 schedule_when_set_visible_true_(false), 312 schedule_when_set_visible_true_(false),
312 started_(false), 313 started_(false),
313 ended_(false), 314 ended_(false),
315 timeout_seconds_(0),
314 impl_thread_(NULL), 316 impl_thread_(NULL),
315 weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { 317 weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
316 main_thread_weak_ptr_ = weak_factory_.GetWeakPtr(); 318 main_thread_weak_ptr_ = weak_factory_.GetWeakPtr();
319
320 // Tests should timeout quickly unless --cc-layer-tree-test-no-timeout was
321 // specified (for running in a debugger).
322 CommandLine* command_line = CommandLine::ForCurrentProcess();
323 if (!command_line->HasSwitch("cc-layer-tree-test-no-timeout"))
324 timeout_seconds_ = 5;
317 } 325 }
318 326
319 LayerTreeTest::~LayerTreeTest() {} 327 LayerTreeTest::~LayerTreeTest() {}
320 328
321 void LayerTreeTest::EndTest() { 329 void LayerTreeTest::EndTest() {
322 // For the case where we EndTest during BeginTest(), set a flag to indicate 330 // For the case where we EndTest during BeginTest(), set a flag to indicate
323 // that the test should end the second BeginTest regains control. 331 // that the test should end the second BeginTest regains control.
324 if (beginning_) { 332 if (beginning_) {
325 end_when_begin_returns_ = true; 333 end_when_begin_returns_ = true;
326 } else if (proxy()) { 334 } else if (proxy()) {
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 impl_thread_.reset(new base::Thread("LayerTreeTest")); 528 impl_thread_.reset(new base::Thread("LayerTreeTest"));
521 ASSERT_TRUE(impl_thread_->Start()); 529 ASSERT_TRUE(impl_thread_->Start());
522 } 530 }
523 531
524 main_ccthread_ = cc::ThreadImpl::CreateForCurrentThread(); 532 main_ccthread_ = cc::ThreadImpl::CreateForCurrentThread();
525 533
526 InitializeSettings(&settings_); 534 InitializeSettings(&settings_);
527 535
528 main_ccthread_->PostTask( 536 main_ccthread_->PostTask(
529 base::Bind(&LayerTreeTest::DoBeginTest, base::Unretained(this))); 537 base::Bind(&LayerTreeTest::DoBeginTest, base::Unretained(this)));
530 timeout_.Reset(base::Bind(&LayerTreeTest::Timeout, base::Unretained(this))); 538
531 main_ccthread_->PostDelayedTask(timeout_.callback(), 539 if (timeout_seconds_) {
532 base::TimeDelta::FromSeconds(5)); 540 timeout_.Reset(base::Bind(&LayerTreeTest::Timeout, base::Unretained(this)));
541 main_ccthread_->PostDelayedTask(
542 timeout_.callback(),
543 base::TimeDelta::FromSeconds(timeout_seconds_));
544 }
545
533 MessageLoop::current()->Run(); 546 MessageLoop::current()->Run();
534 if (layer_tree_host_ && layer_tree_host_->root_layer()) 547 if (layer_tree_host_ && layer_tree_host_->root_layer())
535 layer_tree_host_->root_layer()->SetLayerTreeHost(NULL); 548 layer_tree_host_->root_layer()->SetLayerTreeHost(NULL);
536 layer_tree_host_.reset(); 549 layer_tree_host_.reset();
537 550
538 timeout_.Cancel(); 551 timeout_.Cancel();
539 552
540 ASSERT_FALSE(layer_tree_host_.get()); 553 ASSERT_FALSE(layer_tree_host_.get());
541 client_.reset(); 554 client_.reset();
542 if (timed_out_) { 555 if (timed_out_) {
543 FAIL() << "Test timed out"; 556 FAIL() << "Test timed out";
544 return; 557 return;
545 } 558 }
546 AfterTest(); 559 AfterTest();
547 } 560 }
548 561
549 } // namespace cc 562 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/layer_tree_test.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698