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

Side by Side Diff: webrtc/video/call_stats_unittest.cc

Issue 1669623004: Use CallStats for RTT in Call, rather than VideoSendStream::GetRtt() (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Addressed comment, rebase Created 4 years, 10 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
« no previous file with comments | « webrtc/video/call_stats.cc ('k') | webrtc/video/end_to_end_tests.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include "testing/gmock/include/gmock/gmock.h" 11 #include "testing/gmock/include/gmock/gmock.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 #include "webrtc/base/scoped_ptr.h" 14 #include "webrtc/base/scoped_ptr.h"
15 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" 15 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
16 #include "webrtc/system_wrappers/include/metrics.h"
16 #include "webrtc/system_wrappers/include/tick_util.h" 17 #include "webrtc/system_wrappers/include/tick_util.h"
18 #include "webrtc/test/histogram.h"
17 #include "webrtc/video/call_stats.h" 19 #include "webrtc/video/call_stats.h"
18 20
19 using ::testing::_; 21 using ::testing::_;
20 using ::testing::AnyNumber; 22 using ::testing::AnyNumber;
21 using ::testing::Return; 23 using ::testing::Return;
22 24
23 namespace webrtc { 25 namespace webrtc {
24 26
25 class MockStatsObserver : public CallStatsObserver { 27 class MockStatsObserver : public CallStatsObserver {
26 public: 28 public:
(...skipping 11 matching lines...) Expand all
38 virtual void SetUp() { call_stats_.reset(new CallStats(&fake_clock_)); } 40 virtual void SetUp() { call_stats_.reset(new CallStats(&fake_clock_)); }
39 SimulatedClock fake_clock_; 41 SimulatedClock fake_clock_;
40 rtc::scoped_ptr<CallStats> call_stats_; 42 rtc::scoped_ptr<CallStats> call_stats_;
41 }; 43 };
42 44
43 TEST_F(CallStatsTest, AddAndTriggerCallback) { 45 TEST_F(CallStatsTest, AddAndTriggerCallback) {
44 MockStatsObserver stats_observer; 46 MockStatsObserver stats_observer;
45 RtcpRttStats* rtcp_rtt_stats = call_stats_->rtcp_rtt_stats(); 47 RtcpRttStats* rtcp_rtt_stats = call_stats_->rtcp_rtt_stats();
46 call_stats_->RegisterStatsObserver(&stats_observer); 48 call_stats_->RegisterStatsObserver(&stats_observer);
47 fake_clock_.AdvanceTimeMilliseconds(1000); 49 fake_clock_.AdvanceTimeMilliseconds(1000);
48 EXPECT_EQ(0, rtcp_rtt_stats->LastProcessedRtt()); 50 EXPECT_EQ(-1, rtcp_rtt_stats->LastProcessedRtt());
49 51
50 const int64_t kRtt = 25; 52 const int64_t kRtt = 25;
51 rtcp_rtt_stats->OnRttUpdate(kRtt); 53 rtcp_rtt_stats->OnRttUpdate(kRtt);
52 EXPECT_CALL(stats_observer, OnRttUpdate(kRtt, kRtt)).Times(1); 54 EXPECT_CALL(stats_observer, OnRttUpdate(kRtt, kRtt)).Times(1);
53 call_stats_->Process(); 55 call_stats_->Process();
54 EXPECT_EQ(kRtt, rtcp_rtt_stats->LastProcessedRtt()); 56 EXPECT_EQ(kRtt, rtcp_rtt_stats->LastProcessedRtt());
55 57
56 const int64_t kRttTimeOutMs = 1500 + 10; 58 const int64_t kRttTimeOutMs = 1500 + 10;
57 fake_clock_.AdvanceTimeMilliseconds(kRttTimeOutMs); 59 fake_clock_.AdvanceTimeMilliseconds(kRttTimeOutMs);
58 EXPECT_CALL(stats_observer, OnRttUpdate(_, _)).Times(0); 60 EXPECT_CALL(stats_observer, OnRttUpdate(_, _)).Times(0);
59 call_stats_->Process(); 61 call_stats_->Process();
60 EXPECT_EQ(0, rtcp_rtt_stats->LastProcessedRtt()); 62 EXPECT_EQ(-1, rtcp_rtt_stats->LastProcessedRtt());
61 63
62 call_stats_->DeregisterStatsObserver(&stats_observer); 64 call_stats_->DeregisterStatsObserver(&stats_observer);
63 } 65 }
64 66
65 TEST_F(CallStatsTest, ProcessTime) { 67 TEST_F(CallStatsTest, ProcessTime) {
66 MockStatsObserver stats_observer; 68 MockStatsObserver stats_observer;
67 call_stats_->RegisterStatsObserver(&stats_observer); 69 call_stats_->RegisterStatsObserver(&stats_observer);
68 RtcpRttStats* rtcp_rtt_stats = call_stats_->rtcp_rtt_stats(); 70 RtcpRttStats* rtcp_rtt_stats = call_stats_->rtcp_rtt_stats();
69 rtcp_rtt_stats->OnRttUpdate(100); 71 rtcp_rtt_stats->OnRttUpdate(100);
70 72
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 fake_clock_.AdvanceTimeMilliseconds(1000); 196 fake_clock_.AdvanceTimeMilliseconds(1000);
195 rtcp_rtt_stats->OnRttUpdate(kRttLow); 197 rtcp_rtt_stats->OnRttUpdate(kRttLow);
196 rtcp_rtt_stats->OnRttUpdate(kRttHigh); 198 rtcp_rtt_stats->OnRttUpdate(kRttHigh);
197 EXPECT_CALL(stats_observer, OnRttUpdate(kAvgRtt, kRttHigh)).Times(1); 199 EXPECT_CALL(stats_observer, OnRttUpdate(kAvgRtt, kRttHigh)).Times(1);
198 call_stats_->Process(); 200 call_stats_->Process();
199 EXPECT_EQ(kAvgRtt, rtcp_rtt_stats->LastProcessedRtt()); 201 EXPECT_EQ(kAvgRtt, rtcp_rtt_stats->LastProcessedRtt());
200 202
201 call_stats_->DeregisterStatsObserver(&stats_observer); 203 call_stats_->DeregisterStatsObserver(&stats_observer);
202 } 204 }
203 205
206 TEST_F(CallStatsTest, ProducesHistogramMetrics) {
207 const int64_t kRtt = 123;
208 RtcpRttStats* rtcp_rtt_stats = call_stats_->rtcp_rtt_stats();
209 rtcp_rtt_stats->OnRttUpdate(kRtt);
210 fake_clock_.AdvanceTimeMilliseconds(metrics::kMinRunTimeInSeconds * 1000);
211 rtcp_rtt_stats->OnRttUpdate(kRtt);
212 call_stats_->Process();
213 call_stats_.reset();
214
215 EXPECT_EQ(1, test::NumHistogramSamples(
216 "WebRTC.Video.AverageRoundTripTimeInMilliseconds"));
217 EXPECT_EQ(kRtt, test::LastHistogramSample(
218 "WebRTC.Video.AverageRoundTripTimeInMilliseconds"));
219 }
220
204 } // namespace webrtc 221 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/video/call_stats.cc ('k') | webrtc/video/end_to_end_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698