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

Side by Side Diff: cc/scheduler/begin_frame_source_unittest.cc

Issue 1132753008: Replaced TestNowSource with SimpleTestTickClock. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebasing and additional code changes. Created 5 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
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 <deque> 5 #include <deque>
6 #include <string> 6 #include <string>
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/gtest_prod_util.h" 9 #include "base/gtest_prod_util.h"
10 #include "base/test/test_simple_task_runner.h" 10 #include "base/test/test_simple_task_runner.h"
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 307
308 scoped_refptr<base::trace_event::TracedValue> state = 308 scoped_refptr<base::trace_event::TracedValue> state =
309 new base::trace_event::TracedValue(); 309 new base::trace_event::TracedValue();
310 source.AsValueInto(state.get()); 310 source.AsValueInto(state.get());
311 } 311 }
312 312
313 // BackToBackBeginFrameSource testing ----------------------------------------- 313 // BackToBackBeginFrameSource testing -----------------------------------------
314 class TestBackToBackBeginFrameSource : public BackToBackBeginFrameSource { 314 class TestBackToBackBeginFrameSource : public BackToBackBeginFrameSource {
315 public: 315 public:
316 static scoped_ptr<TestBackToBackBeginFrameSource> Create( 316 static scoped_ptr<TestBackToBackBeginFrameSource> Create(
317 scoped_refptr<TestNowSource> now_src, 317 base::SimpleTestTickClock* now_src,
318 base::SingleThreadTaskRunner* task_runner) { 318 base::SingleThreadTaskRunner* task_runner) {
319 return make_scoped_ptr( 319 return make_scoped_ptr(
320 new TestBackToBackBeginFrameSource(now_src, task_runner)); 320 new TestBackToBackBeginFrameSource(now_src, task_runner));
321 } 321 }
322 322
323 protected: 323 protected:
324 TestBackToBackBeginFrameSource(scoped_refptr<TestNowSource> now_src, 324 TestBackToBackBeginFrameSource(base::SimpleTestTickClock* now_src,
325 base::SingleThreadTaskRunner* task_runner) 325 base::SingleThreadTaskRunner* task_runner)
326 : BackToBackBeginFrameSource(task_runner), now_src_(now_src) {} 326 : BackToBackBeginFrameSource(task_runner), now_src_(now_src) {}
327 327
328 base::TimeTicks Now() override { return now_src_->Now(); } 328 base::TimeTicks Now() override { return now_src_->NowTicks(); }
329 329
330 scoped_refptr<TestNowSource> now_src_; 330 base::SimpleTestTickClock* now_src_;
331 }; 331 };
332 332
333 class BackToBackBeginFrameSourceTest : public ::testing::Test { 333 class BackToBackBeginFrameSourceTest : public ::testing::Test {
334 public: 334 public:
335 static const int64_t kDeadline; 335 static const int64_t kDeadline;
336 static const int64_t kInterval; 336 static const int64_t kInterval;
337 337
338 scoped_refptr<TestNowSource> now_src_; 338 base::SimpleTestTickClock* now_src_;
339 scoped_refptr<OrderedSimpleTaskRunner> task_runner_; 339 scoped_refptr<OrderedSimpleTaskRunner> task_runner_;
340 scoped_ptr<TestBackToBackBeginFrameSource> source_; 340 scoped_ptr<TestBackToBackBeginFrameSource> source_;
341 scoped_ptr<MockBeginFrameObserver> obs_; 341 scoped_ptr<MockBeginFrameObserver> obs_;
342 342
343 void SetUp() override { 343 void SetUp() override {
344 now_src_ = TestNowSource::Create(1000); 344 now_src_ = new base::SimpleTestTickClock(1000);
345 task_runner_ = 345 task_runner_ =
346 make_scoped_refptr(new OrderedSimpleTaskRunner(now_src_, false)); 346 make_scoped_refptr(new OrderedSimpleTaskRunner(now_src_, false));
347 task_runner_->SetRunTaskLimit(1); 347 task_runner_->SetRunTaskLimit(1);
348 source_ = 348 source_ =
349 TestBackToBackBeginFrameSource::Create(now_src_, task_runner_.get()); 349 TestBackToBackBeginFrameSource::Create(now_src_, task_runner_.get());
350 obs_ = make_scoped_ptr(new ::testing::StrictMock<MockBeginFrameObserver>()); 350 obs_ = make_scoped_ptr(new ::testing::StrictMock<MockBeginFrameObserver>());
351 source_->AddObserver(obs_.get()); 351 source_->AddObserver(obs_.get());
352 } 352 }
353 353
354 void TearDown() override { obs_.reset(); } 354 void TearDown() override { obs_.reset(); }
355 }; 355 };
356 356
357 const int64_t BackToBackBeginFrameSourceTest::kDeadline = 357 const int64_t BackToBackBeginFrameSourceTest::kDeadline =
358 BeginFrameArgs::DefaultInterval().ToInternalValue(); 358 BeginFrameArgs::DefaultInterval().ToInternalValue();
359 359
360 const int64_t BackToBackBeginFrameSourceTest::kInterval = 360 const int64_t BackToBackBeginFrameSourceTest::kInterval =
361 BeginFrameArgs::DefaultInterval().ToInternalValue(); 361 BeginFrameArgs::DefaultInterval().ToInternalValue();
362 362
363 TEST_F(BackToBackBeginFrameSourceTest, SetNeedsBeginFramesSendsBeginFrame) { 363 TEST_F(BackToBackBeginFrameSourceTest, SetNeedsBeginFramesSendsBeginFrame) {
364 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval); 364 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval);
365 source_->SetNeedsBeginFrames(true); 365 source_->SetNeedsBeginFrames(true);
366 EXPECT_TRUE(task_runner_->HasPendingTasks()); 366 EXPECT_TRUE(task_runner_->HasPendingTasks());
367 task_runner_->RunUntilIdle(); 367 task_runner_->RunUntilIdle();
368 368
369 EXPECT_BEGIN_FRAME_USED(*obs_, 1100, 1100 + kDeadline, kInterval); 369 EXPECT_BEGIN_FRAME_USED(*obs_, 1100, 1100 + kDeadline, kInterval);
370 now_src_->AdvanceNowMicroseconds(100); 370 now_src_->AdvanceMicroseconds(100);
371 source_->DidFinishFrame(0); 371 source_->DidFinishFrame(0);
372 task_runner_->RunUntilIdle(); 372 task_runner_->RunUntilIdle();
373 } 373 }
374 374
375 TEST_F(BackToBackBeginFrameSourceTest, 375 TEST_F(BackToBackBeginFrameSourceTest,
376 DidFinishFrameThenSetNeedsBeginFramesProducesNoFrame) { 376 DidFinishFrameThenSetNeedsBeginFramesProducesNoFrame) {
377 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval); 377 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval);
378 source_->SetNeedsBeginFrames(true); 378 source_->SetNeedsBeginFrames(true);
379 task_runner_->RunUntilIdle(); 379 task_runner_->RunUntilIdle();
380 380
381 source_->SetNeedsBeginFrames(false); 381 source_->SetNeedsBeginFrames(false);
382 source_->DidFinishFrame(0); 382 source_->DidFinishFrame(0);
383 383
384 EXPECT_FALSE(task_runner_->HasPendingTasks()); 384 EXPECT_FALSE(task_runner_->HasPendingTasks());
385 } 385 }
386 386
387 TEST_F(BackToBackBeginFrameSourceTest, 387 TEST_F(BackToBackBeginFrameSourceTest,
388 SetNeedsBeginFramesThenDidFinishFrameProducesNoFrame) { 388 SetNeedsBeginFramesThenDidFinishFrameProducesNoFrame) {
389 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval); 389 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval);
390 source_->SetNeedsBeginFrames(true); 390 source_->SetNeedsBeginFrames(true);
391 task_runner_->RunUntilIdle(); 391 task_runner_->RunUntilIdle();
392 392
393 now_src_->AdvanceNowMicroseconds(100); 393 now_src_->AdvanceMicroseconds(100);
394 source_->DidFinishFrame(0); 394 source_->DidFinishFrame(0);
395 source_->SetNeedsBeginFrames(false); 395 source_->SetNeedsBeginFrames(false);
396 396
397 EXPECT_TRUE(task_runner_->HasPendingTasks()); 397 EXPECT_TRUE(task_runner_->HasPendingTasks());
398 task_runner_->RunUntilIdle(); 398 task_runner_->RunUntilIdle();
399 } 399 }
400 400
401 TEST_F(BackToBackBeginFrameSourceTest, 401 TEST_F(BackToBackBeginFrameSourceTest,
402 DidFinishFrameThenTogglingSetNeedsBeginFramesProducesCorrectFrame) { 402 DidFinishFrameThenTogglingSetNeedsBeginFramesProducesCorrectFrame) {
403 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval); 403 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval);
404 source_->SetNeedsBeginFrames(true); 404 source_->SetNeedsBeginFrames(true);
405 task_runner_->RunUntilIdle(); 405 task_runner_->RunUntilIdle();
406 406
407 now_src_->AdvanceNowMicroseconds(100); 407 now_src_->AdvanceMicroseconds(100);
408 408
409 source_->SetNeedsBeginFrames(false); 409 source_->SetNeedsBeginFrames(false);
410 now_src_->AdvanceNowMicroseconds(10); 410 now_src_->AdvanceMicroseconds(10);
411 source_->DidFinishFrame(0); 411 source_->DidFinishFrame(0);
412 now_src_->AdvanceNowMicroseconds(10); 412 now_src_->AdvanceMicroseconds(10);
413 source_->SetNeedsBeginFrames(false); 413 source_->SetNeedsBeginFrames(false);
414 now_src_->AdvanceNowMicroseconds(10); 414 now_src_->AdvanceMicroseconds(10);
415 source_->SetNeedsBeginFrames(true); 415 source_->SetNeedsBeginFrames(true);
416 416
417 EXPECT_BEGIN_FRAME_USED(*obs_, 1130, 1130 + kDeadline, kInterval); 417 EXPECT_BEGIN_FRAME_USED(*obs_, 1130, 1130 + kDeadline, kInterval);
418 EXPECT_TRUE(task_runner_->HasPendingTasks()); 418 EXPECT_TRUE(task_runner_->HasPendingTasks());
419 task_runner_->RunUntilIdle(); 419 task_runner_->RunUntilIdle();
420 } 420 }
421 421
422 TEST_F(BackToBackBeginFrameSourceTest, 422 TEST_F(BackToBackBeginFrameSourceTest,
423 TogglingSetNeedsBeginFramesThenDidFinishFrameProducesCorrectFrame) { 423 TogglingSetNeedsBeginFramesThenDidFinishFrameProducesCorrectFrame) {
424 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval); 424 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval);
425 source_->SetNeedsBeginFrames(true); 425 source_->SetNeedsBeginFrames(true);
426 task_runner_->RunUntilIdle(); 426 task_runner_->RunUntilIdle();
427 427
428 now_src_->AdvanceNowMicroseconds(100); 428 now_src_->AdvanceMicroseconds(100);
429 source_->DidFinishFrame(0); 429 source_->DidFinishFrame(0);
430 now_src_->AdvanceNowMicroseconds(10); 430 now_src_->AdvanceMicroseconds(10);
431 source_->SetNeedsBeginFrames(false); 431 source_->SetNeedsBeginFrames(false);
432 now_src_->AdvanceNowMicroseconds(10); 432 now_src_->AdvanceMicroseconds(10);
433 source_->SetNeedsBeginFrames(true); 433 source_->SetNeedsBeginFrames(true);
434 now_src_->AdvanceNowMicroseconds(10); 434 now_src_->AdvanceMicroseconds(10);
435 435
436 EXPECT_BEGIN_FRAME_USED(*obs_, 1130, 1130 + kDeadline, kInterval); 436 EXPECT_BEGIN_FRAME_USED(*obs_, 1130, 1130 + kDeadline, kInterval);
437 EXPECT_TRUE(task_runner_->HasPendingTasks()); 437 EXPECT_TRUE(task_runner_->HasPendingTasks());
438 task_runner_->RunUntilIdle(); 438 task_runner_->RunUntilIdle();
439 } 439 }
440 440
441 TEST_F(BackToBackBeginFrameSourceTest, DidFinishFrameNeedsBeginFrameFalse) { 441 TEST_F(BackToBackBeginFrameSourceTest, DidFinishFrameNeedsBeginFrameFalse) {
442 source_->SetNeedsBeginFrames(false); 442 source_->SetNeedsBeginFrames(false);
443 source_->DidFinishFrame(0); 443 source_->DidFinishFrame(0);
444 EXPECT_FALSE(task_runner_->RunPendingTasks()); 444 EXPECT_FALSE(task_runner_->RunPendingTasks());
445 } 445 }
446 446
447 TEST_F(BackToBackBeginFrameSourceTest, DidFinishFrameRemainingFrames) { 447 TEST_F(BackToBackBeginFrameSourceTest, DidFinishFrameRemainingFrames) {
448 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval); 448 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval);
449 source_->SetNeedsBeginFrames(true); 449 source_->SetNeedsBeginFrames(true);
450 task_runner_->RunUntilIdle(); 450 task_runner_->RunUntilIdle();
451 451
452 now_src_->AdvanceNowMicroseconds(100); 452 now_src_->AdvanceMicroseconds(100);
453 453
454 source_->DidFinishFrame(3); 454 source_->DidFinishFrame(3);
455 EXPECT_FALSE(task_runner_->HasPendingTasks()); 455 EXPECT_FALSE(task_runner_->HasPendingTasks());
456 source_->DidFinishFrame(2); 456 source_->DidFinishFrame(2);
457 EXPECT_FALSE(task_runner_->HasPendingTasks()); 457 EXPECT_FALSE(task_runner_->HasPendingTasks());
458 source_->DidFinishFrame(1); 458 source_->DidFinishFrame(1);
459 EXPECT_FALSE(task_runner_->HasPendingTasks()); 459 EXPECT_FALSE(task_runner_->HasPendingTasks());
460 460
461 EXPECT_BEGIN_FRAME_USED(*obs_, 1100, 1100 + kDeadline, kInterval); 461 EXPECT_BEGIN_FRAME_USED(*obs_, 1100, 1100 + kDeadline, kInterval);
462 source_->DidFinishFrame(0); 462 source_->DidFinishFrame(0);
463 EXPECT_EQ(base::TimeDelta(), task_runner_->DelayToNextTaskTime()); 463 EXPECT_EQ(base::TimeDelta(), task_runner_->DelayToNextTaskTime());
464 task_runner_->RunUntilIdle(); 464 task_runner_->RunUntilIdle();
465 } 465 }
466 466
467 TEST_F(BackToBackBeginFrameSourceTest, DidFinishFrameMultipleCallsIdempotent) { 467 TEST_F(BackToBackBeginFrameSourceTest, DidFinishFrameMultipleCallsIdempotent) {
468 source_->SetNeedsBeginFrames(true); 468 source_->SetNeedsBeginFrames(true);
469 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval); 469 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval);
470 task_runner_->RunUntilIdle(); 470 task_runner_->RunUntilIdle();
471 471
472 now_src_->AdvanceNowMicroseconds(100); 472 now_src_->AdvanceMicroseconds(100);
473 source_->DidFinishFrame(0); 473 source_->DidFinishFrame(0);
474 source_->DidFinishFrame(0); 474 source_->DidFinishFrame(0);
475 source_->DidFinishFrame(0); 475 source_->DidFinishFrame(0);
476 EXPECT_BEGIN_FRAME_USED(*obs_, 1100, 1100 + kDeadline, kInterval); 476 EXPECT_BEGIN_FRAME_USED(*obs_, 1100, 1100 + kDeadline, kInterval);
477 task_runner_->RunUntilIdle(); 477 task_runner_->RunUntilIdle();
478 478
479 now_src_->AdvanceNowMicroseconds(100); 479 now_src_->AdvanceMicroseconds(100);
480 source_->DidFinishFrame(0); 480 source_->DidFinishFrame(0);
481 source_->DidFinishFrame(0); 481 source_->DidFinishFrame(0);
482 source_->DidFinishFrame(0); 482 source_->DidFinishFrame(0);
483 EXPECT_BEGIN_FRAME_USED(*obs_, 1200, 1200 + kDeadline, kInterval); 483 EXPECT_BEGIN_FRAME_USED(*obs_, 1200, 1200 + kDeadline, kInterval);
484 task_runner_->RunUntilIdle(); 484 task_runner_->RunUntilIdle();
485 } 485 }
486 486
487 TEST_F(BackToBackBeginFrameSourceTest, DelayInPostedTaskProducesCorrectFrame) { 487 TEST_F(BackToBackBeginFrameSourceTest, DelayInPostedTaskProducesCorrectFrame) {
488 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval); 488 EXPECT_BEGIN_FRAME_USED(*obs_, 1000, 1000 + kDeadline, kInterval);
489 source_->SetNeedsBeginFrames(true); 489 source_->SetNeedsBeginFrames(true);
490 task_runner_->RunUntilIdle(); 490 task_runner_->RunUntilIdle();
491 491
492 now_src_->AdvanceNowMicroseconds(100); 492 now_src_->AdvanceMicroseconds(100);
493 source_->DidFinishFrame(0); 493 source_->DidFinishFrame(0);
494 now_src_->AdvanceNowMicroseconds(50); 494 now_src_->AdvanceMicroseconds(50);
495 EXPECT_BEGIN_FRAME_USED(*obs_, 1150, 1150 + kDeadline, kInterval); 495 EXPECT_BEGIN_FRAME_USED(*obs_, 1150, 1150 + kDeadline, kInterval);
496 496
497 EXPECT_TRUE(task_runner_->HasPendingTasks()); 497 EXPECT_TRUE(task_runner_->HasPendingTasks());
498 task_runner_->RunUntilIdle(); 498 task_runner_->RunUntilIdle();
499 } 499 }
500 500
501 // SyntheticBeginFrameSource testing ------------------------------------------ 501 // SyntheticBeginFrameSource testing ------------------------------------------
502 class SyntheticBeginFrameSourceTest : public ::testing::Test { 502 class SyntheticBeginFrameSourceTest : public ::testing::Test {
503 public: 503 public:
504 scoped_refptr<TestNowSource> now_src_; 504 base::SimpleTestTickClock* now_src_;
505 scoped_refptr<OrderedSimpleTaskRunner> task_runner_; 505 scoped_refptr<OrderedSimpleTaskRunner> task_runner_;
506 scoped_ptr<TestSyntheticBeginFrameSource> source_; 506 scoped_ptr<TestSyntheticBeginFrameSource> source_;
507 scoped_ptr<MockBeginFrameObserver> obs_; 507 scoped_ptr<MockBeginFrameObserver> obs_;
508 508
509 void SetUp() override { 509 void SetUp() override {
510 now_src_ = TestNowSource::Create(1000); 510 now_src_ = new base::SimpleTestTickClock(1000);
511 task_runner_ = 511 task_runner_ =
512 make_scoped_refptr(new OrderedSimpleTaskRunner(now_src_, false)); 512 make_scoped_refptr(new OrderedSimpleTaskRunner(now_src_, false));
513 source_ = TestSyntheticBeginFrameSource::Create( 513 source_ = TestSyntheticBeginFrameSource::Create(
514 now_src_, task_runner_.get(), base::TimeDelta::FromMicroseconds(10000)); 514 now_src_, task_runner_.get(), base::TimeDelta::FromMicroseconds(10000));
515 obs_ = make_scoped_ptr(new MockBeginFrameObserver()); 515 obs_ = make_scoped_ptr(new MockBeginFrameObserver());
516 source_->AddObserver(obs_.get()); 516 source_->AddObserver(obs_.get());
517 } 517 }
518 518
519 void TearDown() override { obs_.reset(); } 519 void TearDown() override { obs_.reset(); }
520 }; 520 };
521 521
522 TEST_F(SyntheticBeginFrameSourceTest, 522 TEST_F(SyntheticBeginFrameSourceTest,
523 SetNeedsBeginFramesCallsOnBeginFrameWithMissedTick) { 523 SetNeedsBeginFramesCallsOnBeginFrameWithMissedTick) {
524 now_src_->SetNowMicroseconds(10010); 524 now_src_->SetMicroseconds(10010);
525 EXPECT_CALL((*obs_), OnBeginFrame(CreateBeginFrameArgsForTesting( 525 EXPECT_CALL((*obs_), OnBeginFrame(CreateBeginFrameArgsForTesting(
526 BEGINFRAME_FROM_HERE, 10000, 20000, 10000, 526 BEGINFRAME_FROM_HERE, 10000, 20000, 10000,
527 BeginFrameArgs::MISSED))); 527 BeginFrameArgs::MISSED)));
528 source_->SetNeedsBeginFrames(true); // Should cause the last tick to be sent 528 source_->SetNeedsBeginFrames(true); // Should cause the last tick to be sent
529 // No tasks should need to be run for this to occur. 529 // No tasks should need to be run for this to occur.
530 } 530 }
531 531
532 TEST_F(SyntheticBeginFrameSourceTest, 532 TEST_F(SyntheticBeginFrameSourceTest,
533 SetNeedsBeginFramesCallsCausesOnBeginFrame) { 533 SetNeedsBeginFramesCallsCausesOnBeginFrame) {
534 source_->SetNeedsBeginFrames(true); 534 source_->SetNeedsBeginFrames(true);
535 EXPECT_EQ(10000, task_runner_->NextTaskTime().ToInternalValue()); 535 EXPECT_EQ(10000, task_runner_->NextTaskTime().ToInternalValue());
536 536
537 EXPECT_BEGIN_FRAME_USED(*obs_, 10000, 20000, 10000); 537 EXPECT_BEGIN_FRAME_USED(*obs_, 10000, 20000, 10000);
538 now_src_->SetNowMicroseconds(10010); 538 now_src_->SetMicroseconds(10010);
539 task_runner_->RunPendingTasks(); 539 task_runner_->RunPendingTasks();
540 } 540 }
541 541
542 TEST_F(SyntheticBeginFrameSourceTest, BasicOperation) { 542 TEST_F(SyntheticBeginFrameSourceTest, BasicOperation) {
543 task_runner_->SetAutoAdvanceNowToPendingTasks(true); 543 task_runner_->SetAutoAdvanceNowToPendingTasks(true);
544 544
545 source_->SetNeedsBeginFrames(true); 545 source_->SetNeedsBeginFrames(true);
546 EXPECT_BEGIN_FRAME_USED(*obs_, 10000, 20000, 10000); 546 EXPECT_BEGIN_FRAME_USED(*obs_, 10000, 20000, 10000);
547 EXPECT_BEGIN_FRAME_USED(*obs_, 20000, 30000, 10000); 547 EXPECT_BEGIN_FRAME_USED(*obs_, 20000, 30000, 10000);
548 EXPECT_BEGIN_FRAME_USED(*obs_, 30000, 40000, 10000); 548 EXPECT_BEGIN_FRAME_USED(*obs_, 30000, 40000, 10000);
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 mux_->SetActiveSource(source2_); 766 mux_->SetActiveSource(source2_);
767 SEND_BEGIN_FRAME_DROP(*source2_, 750, 1050, 300); 767 SEND_BEGIN_FRAME_DROP(*source2_, 750, 1050, 300);
768 SEND_BEGIN_FRAME_USED(*source2_, 1050, 1250, 300); 768 SEND_BEGIN_FRAME_USED(*source2_, 1050, 1250, 300);
769 769
770 mux_->SetActiveSource(source1_); 770 mux_->SetActiveSource(source1_);
771 SEND_BEGIN_FRAME_DROP(*source2_, 1100, 1400, 300); 771 SEND_BEGIN_FRAME_DROP(*source2_, 1100, 1400, 300);
772 } 772 }
773 773
774 } // namespace 774 } // namespace
775 } // namespace cc 775 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698