OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <map> | 5 #include <map> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #if defined(OS_MACOSX) | 10 #if defined(OS_MACOSX) |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 kUseGpu = 1 << 0, // Only execute test if --enable-gpu was given | 65 kUseGpu = 1 << 0, // Only execute test if --enable-gpu was given |
66 // on the command line. This is required for | 66 // on the command line. This is required for |
67 // tests that run on GPU. | 67 // tests that run on GPU. |
68 kDisableVsync = 1 << 1, // Do not limit framerate to vertical refresh. | 68 kDisableVsync = 1 << 1, // Do not limit framerate to vertical refresh. |
69 // when on GPU, nor to 60hz when not on GPU. | 69 // when on GPU, nor to 60hz when not on GPU. |
70 kSmallWindow = 1 << 2, // 1 = 800x600, 0 = 2000x1000 | 70 kSmallWindow = 1 << 2, // 1 = 800x600, 0 = 2000x1000 |
71 k24fps = 1 << 3, // use 24 fps video | 71 k24fps = 1 << 3, // use 24 fps video |
72 k30fps = 1 << 4, // use 30 fps video | 72 k30fps = 1 << 4, // use 30 fps video |
73 k60fps = 1 << 5, // use 60 fps video | 73 k60fps = 1 << 5, // use 60 fps video |
74 kProxyWifi = 1 << 6, // Run UDP through UDPProxy wifi profile | 74 kProxyWifi = 1 << 6, // Run UDP through UDPProxy wifi profile |
75 kProxyEvil = 1 << 7, // Run UDP through UDPProxy evil profile | 75 kProxyBad = 1 << 7, // Run UDP through UDPProxy bad profile |
76 kSlowClock = 1 << 8, // Receiver clock is 10 seconds slow | 76 kSlowClock = 1 << 8, // Receiver clock is 10 seconds slow |
77 kFastClock = 1 << 9, // Receiver clock is 10 seconds fast | 77 kFastClock = 1 << 9, // Receiver clock is 10 seconds fast |
78 }; | 78 }; |
79 | 79 |
80 class SkewedTickClock : public base::DefaultTickClock { | 80 class SkewedTickClock : public base::DefaultTickClock { |
81 public: | 81 public: |
82 explicit SkewedTickClock(const base::TimeDelta& delta) : delta_(delta) { | 82 explicit SkewedTickClock(const base::TimeDelta& delta) : delta_(delta) { |
83 } | 83 } |
84 virtual base::TimeTicks NowTicks() OVERRIDE { | 84 virtual base::TimeTicks NowTicks() OVERRIDE { |
85 return DefaultTickClock::NowTicks() + delta_; | 85 return DefaultTickClock::NowTicks() + delta_; |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 if (HasFlag(kSmallWindow)) | 307 if (HasFlag(kSmallWindow)) |
308 suffix += "_small"; | 308 suffix += "_small"; |
309 if (HasFlag(k24fps)) | 309 if (HasFlag(k24fps)) |
310 suffix += "_24fps"; | 310 suffix += "_24fps"; |
311 if (HasFlag(k30fps)) | 311 if (HasFlag(k30fps)) |
312 suffix += "_30fps"; | 312 suffix += "_30fps"; |
313 if (HasFlag(k60fps)) | 313 if (HasFlag(k60fps)) |
314 suffix += "_60fps"; | 314 suffix += "_60fps"; |
315 if (HasFlag(kProxyWifi)) | 315 if (HasFlag(kProxyWifi)) |
316 suffix += "_wifi"; | 316 suffix += "_wifi"; |
317 if (HasFlag(kProxyEvil)) | 317 if (HasFlag(kProxyBad)) |
318 suffix += "_evil"; | 318 suffix += "_bad"; |
319 if (HasFlag(kSlowClock)) | 319 if (HasFlag(kSlowClock)) |
320 suffix += "_slow"; | 320 suffix += "_slow"; |
321 if (HasFlag(kFastClock)) | 321 if (HasFlag(kFastClock)) |
322 suffix += "_fast"; | 322 suffix += "_fast"; |
323 return suffix; | 323 return suffix; |
324 } | 324 } |
325 | 325 |
326 int getfps() { | 326 int getfps() { |
327 if (HasFlag(k24fps)) | 327 if (HasFlag(k24fps)) |
328 return 24; | 328 return 24; |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
588 if (HasFlag(kSlowClock)) { | 588 if (HasFlag(kSlowClock)) { |
589 delta = base::TimeDelta::FromSeconds(-10); | 589 delta = base::TimeDelta::FromSeconds(-10); |
590 } | 590 } |
591 scoped_refptr<media::cast::StandaloneCastEnvironment> cast_environment( | 591 scoped_refptr<media::cast::StandaloneCastEnvironment> cast_environment( |
592 new SkewedCastEnvironment(delta)); | 592 new SkewedCastEnvironment(delta)); |
593 TestPatternReceiver* const receiver = | 593 TestPatternReceiver* const receiver = |
594 new TestPatternReceiver(cast_environment, receiver_end_point); | 594 new TestPatternReceiver(cast_environment, receiver_end_point); |
595 receiver->Start(); | 595 receiver->Start(); |
596 | 596 |
597 scoped_ptr<media::cast::test::UDPProxy> udp_proxy; | 597 scoped_ptr<media::cast::test::UDPProxy> udp_proxy; |
598 if (HasFlag(kProxyWifi) || HasFlag(kProxyEvil)) { | 598 if (HasFlag(kProxyWifi) || HasFlag(kProxyBad)) { |
599 net::IPEndPoint proxy_end_point = GetFreeLocalPort(); | 599 net::IPEndPoint proxy_end_point = GetFreeLocalPort(); |
600 if (HasFlag(kProxyWifi)) { | 600 if (HasFlag(kProxyWifi)) { |
601 udp_proxy = media::cast::test::UDPProxy::Create( | 601 udp_proxy = media::cast::test::UDPProxy::Create( |
602 proxy_end_point, | 602 proxy_end_point, |
603 receiver_end_point, | 603 receiver_end_point, |
604 media::cast::test::WifiNetwork().Pass(), | 604 media::cast::test::WifiNetwork().Pass(), |
605 media::cast::test::WifiNetwork().Pass(), | 605 media::cast::test::WifiNetwork().Pass(), |
606 NULL); | 606 NULL); |
607 } else if (HasFlag(kProxyEvil)) { | 607 } else if (HasFlag(kProxyBad)) { |
608 udp_proxy = media::cast::test::UDPProxy::Create( | 608 udp_proxy = media::cast::test::UDPProxy::Create( |
609 proxy_end_point, | 609 proxy_end_point, |
610 receiver_end_point, | 610 receiver_end_point, |
611 media::cast::test::EvilNetwork().Pass(), | 611 media::cast::test::BadNetwork().Pass(), |
612 media::cast::test::EvilNetwork().Pass(), | 612 media::cast::test::BadNetwork().Pass(), |
613 NULL); | 613 NULL); |
614 } | 614 } |
615 receiver_end_point = proxy_end_point; | 615 receiver_end_point = proxy_end_point; |
616 } | 616 } |
617 | 617 |
618 std::string json_events; | 618 std::string json_events; |
619 ASSERT_TRUE(tracing::BeginTracing("test_fps,mirroring,cast_perf_test")); | 619 ASSERT_TRUE(tracing::BeginTracing("test_fps,mirroring,cast_perf_test")); |
620 const std::string page_url = base::StringPrintf( | 620 const std::string page_url = base::StringPrintf( |
621 "performance%d.html?port=%d", | 621 "performance%d.html?port=%d", |
622 getfps(), | 622 getfps(), |
(...skipping 30 matching lines...) Expand all Loading... |
653 "ms"); | 653 "ms"); |
654 | 654 |
655 receiver->Analyze(test_name, GetSuffixForTestFlags()); | 655 receiver->Analyze(test_name, GetSuffixForTestFlags()); |
656 | 656 |
657 AnalyzeLatency(test_name, analyzer.get()); | 657 AnalyzeLatency(test_name, analyzer.get()); |
658 } | 658 } |
659 }; | 659 }; |
660 | 660 |
661 } // namespace | 661 } // namespace |
662 | 662 |
663 // crbug.com/356842 | 663 IN_PROC_BROWSER_TEST_P(CastV2PerformanceTest, Performance) { |
664 IN_PROC_BROWSER_TEST_P(CastV2PerformanceTest, DISABLED_Performance) { | |
665 RunTest("CastV2Performance"); | 664 RunTest("CastV2Performance"); |
666 } | 665 } |
667 | 666 |
668 // Note: First argument is optional and intentionally left blank. | 667 // Note: First argument is optional and intentionally left blank. |
669 // (it's a prefix for the generated test cases) | 668 // (it's a prefix for the generated test cases) |
670 INSTANTIATE_TEST_CASE_P( | 669 INSTANTIATE_TEST_CASE_P( |
671 , | 670 , |
672 CastV2PerformanceTest, | 671 CastV2PerformanceTest, |
673 testing::Values( | 672 testing::Values( |
674 kUseGpu | k24fps, | 673 kUseGpu | k24fps, |
675 kUseGpu | k30fps, | 674 kUseGpu | k30fps, |
676 kUseGpu | k60fps, | 675 kUseGpu | k60fps, |
677 kUseGpu | k24fps | kDisableVsync, | 676 kUseGpu | k24fps | kDisableVsync, |
678 kUseGpu | k30fps | kProxyWifi, | 677 kUseGpu | k30fps | kProxyWifi, |
679 kUseGpu | k30fps | kProxyEvil, | 678 kUseGpu | k30fps | kProxyBad, |
680 kUseGpu | k30fps | kSlowClock, | 679 kUseGpu | k30fps | kSlowClock, |
681 kUseGpu | k30fps | kFastClock)); | 680 kUseGpu | k30fps | kFastClock)); |
OLD | NEW |