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

Side by Side Diff: media/cast/logging/logging_unittest.cc

Issue 130423007: Cast:Updating logging stats (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Responding to Review Created 6 years, 11 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <gtest/gtest.h> 5 #include <gtest/gtest.h>
6 #include <math.h>
6 7
7 #include "base/rand_util.h" 8 #include "base/rand_util.h"
8 #include "base/test/simple_test_tick_clock.h" 9 #include "base/test/simple_test_tick_clock.h"
9 #include "base/time/tick_clock.h" 10 #include "base/time/tick_clock.h"
10 #include "base/time/time.h" 11 #include "base/time/time.h"
11 #include "media/cast/logging/logging_impl.h" 12 #include "media/cast/logging/logging_impl.h"
12 #include "media/cast/test/fake_task_runner.h" 13 #include "media/cast/test/fake_task_runner.h"
13 14
14 namespace media { 15 namespace media {
15 namespace cast { 16 namespace cast {
(...skipping 19 matching lines...) Expand all
35 task_runner_ = new test::FakeTaskRunner(&testing_clock_); 36 task_runner_ = new test::FakeTaskRunner(&testing_clock_);
36 logging_.reset(new LoggingImpl(task_runner_, config_)); 37 logging_.reset(new LoggingImpl(task_runner_, config_));
37 } 38 }
38 39
39 virtual ~TestLogging() {} 40 virtual ~TestLogging() {}
40 41
41 CastLoggingConfig config_; 42 CastLoggingConfig config_;
42 scoped_refptr<test::FakeTaskRunner> task_runner_; 43 scoped_refptr<test::FakeTaskRunner> task_runner_;
43 scoped_ptr<LoggingImpl> logging_; 44 scoped_ptr<LoggingImpl> logging_;
44 base::SimpleTestTickClock testing_clock_; 45 base::SimpleTestTickClock testing_clock_;
46
47 DISALLOW_COPY_AND_ASSIGN(TestLogging);
45 }; 48 };
46 49
47 TEST_F(TestLogging, BasicFrameLogging) { 50 TEST_F(TestLogging, BasicFrameLogging) {
48 base::TimeTicks start_time = testing_clock_.NowTicks(); 51 base::TimeTicks start_time = testing_clock_.NowTicks();
49 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time; 52 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time;
50 uint32 rtp_timestamp = 0; 53 uint32 rtp_timestamp = 0;
51 uint32 frame_id = 0; 54 uint32 frame_id = 0;
55 base::TimeTicks now;
52 do { 56 do {
53 logging_->InsertFrameEvent(testing_clock_.NowTicks(), 57 now = testing_clock_.NowTicks();
54 kAudioFrameCaptured, rtp_timestamp, frame_id); 58 logging_->InsertFrameEvent(now, kAudioFrameCaptured, rtp_timestamp,
59 frame_id);
55 testing_clock_.Advance( 60 testing_clock_.Advance(
56 base::TimeDelta::FromMilliseconds(kFrameIntervalMs)); 61 base::TimeDelta::FromMilliseconds(kFrameIntervalMs));
57 rtp_timestamp += kFrameIntervalMs * 90; 62 rtp_timestamp += kFrameIntervalMs * 90;
58 ++frame_id; 63 ++frame_id;
59 time_interval = testing_clock_.NowTicks() - start_time; 64 time_interval = now - start_time;
60 } while (time_interval.InSeconds() < kIntervalTime1S); 65 } while (time_interval.InSeconds() < kIntervalTime1S);
66 base::TimeTicks end_time = now;
61 // Get logging data. 67 // Get logging data.
62 FrameRawMap frame_map = logging_->GetFrameRawData(); 68 FrameRawMap frame_map = logging_->GetFrameRawData();
63 // Size of map should be equal to the number of frames logged. 69 // Size of map should be equal to the number of frames logged.
64 EXPECT_EQ(frame_id, frame_map.size()); 70 EXPECT_EQ(frame_id, frame_map.size());
65 // Verify stats. 71 // Verify stats.
66 const FrameStatsMap* frame_stats = 72 FrameStatsMap frame_stats = logging_->GetFrameStatsData();
67 logging_->GetFrameStatsData(testing_clock_.NowTicks());
68 // Size of stats equals the number of events. 73 // Size of stats equals the number of events.
69 EXPECT_EQ(1u, frame_stats->size()); 74 EXPECT_EQ(1u, frame_stats.size());
70 FrameStatsMap::const_iterator it = frame_stats->find(kAudioFrameCaptured); 75 FrameStatsMap::const_iterator it = frame_stats.find(kAudioFrameCaptured);
71 EXPECT_TRUE(it != frame_stats->end()); 76 EXPECT_TRUE(it != frame_stats.end());
72 EXPECT_NEAR(30.3, it->second->framerate_fps, 0.1); 77 EXPECT_EQ(0, it->second.max_delay.InMilliseconds());
73 EXPECT_EQ(0, it->second->bitrate_kbps); 78 EXPECT_EQ(0, it->second.min_delay.InMilliseconds());
74 EXPECT_EQ(0, it->second->max_delay_ms); 79 EXPECT_EQ(start_time, it->second.first_event_time);
75 EXPECT_EQ(0, it->second->min_delay_ms); 80 EXPECT_EQ(end_time, it->second.last_event_time);
76 EXPECT_EQ(0, it->second->avg_delay_ms); 81 EXPECT_EQ(0u, it->second.sum_size);
82 // Number of events is equal to the number of frames.
83 EXPECT_EQ(static_cast<int>(frame_id), it->second.event_counter);
77 } 84 }
78 85
79 TEST_F(TestLogging, FrameLoggingWithSize) { 86 TEST_F(TestLogging, FrameLoggingWithSize) {
80 // Average packet size. 87 // Average packet size.
81 const int kBaseFrameSizeBytes = 25000; 88 const int kBaseFrameSizeBytes = 25000;
82 const int kRandomSizeInterval = 100; 89 const int kRandomSizeInterval = 100;
83 base::TimeTicks start_time = testing_clock_.NowTicks(); 90 base::TimeTicks start_time = testing_clock_.NowTicks();
84 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time; 91 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time;
85 uint32 rtp_timestamp = 0; 92 uint32 rtp_timestamp = 0;
86 uint32 frame_id = 0; 93 uint32 frame_id = 0;
94 size_t sum_size = 0;
87 do { 95 do {
88 int size = kBaseFrameSizeBytes + 96 int size = kBaseFrameSizeBytes +
89 base::RandInt(-kRandomSizeInterval, kRandomSizeInterval); 97 base::RandInt(-kRandomSizeInterval, kRandomSizeInterval);
98 sum_size += static_cast<size_t>(size);
90 logging_->InsertFrameEventWithSize(testing_clock_.NowTicks(), 99 logging_->InsertFrameEventWithSize(testing_clock_.NowTicks(),
91 kAudioFrameCaptured, rtp_timestamp, frame_id, size); 100 kAudioFrameCaptured, rtp_timestamp, frame_id, size);
92 testing_clock_.Advance( 101 testing_clock_.Advance(
93 base::TimeDelta::FromMilliseconds(kFrameIntervalMs)); 102 base::TimeDelta::FromMilliseconds(kFrameIntervalMs));
94 rtp_timestamp += kFrameIntervalMs * 90; 103 rtp_timestamp += kFrameIntervalMs * 90;
95 ++frame_id; 104 ++frame_id;
96 time_interval = testing_clock_.NowTicks() - start_time; 105 time_interval = testing_clock_.NowTicks() - start_time;
97 } while (time_interval.InSeconds() < kIntervalTime1S); 106 } while (time_interval.InSeconds() < kIntervalTime1S);
98 // Get logging data. 107 // Get logging data.
99 FrameRawMap frame_map = logging_->GetFrameRawData(); 108 FrameRawMap frame_map = logging_->GetFrameRawData();
100 // Size of map should be equal to the number of frames logged. 109 // Size of map should be equal to the number of frames logged.
101 EXPECT_EQ(frame_id, frame_map.size()); 110 EXPECT_EQ(frame_id, frame_map.size());
102 // Verify stats. 111 // Verify stats.
103 const FrameStatsMap* frame_stats = 112 FrameStatsMap frame_stats = logging_->GetFrameStatsData();
104 logging_->GetFrameStatsData(testing_clock_.NowTicks());
105 // Size of stats equals the number of events. 113 // Size of stats equals the number of events.
106 EXPECT_EQ(1u, frame_stats->size()); 114 EXPECT_EQ(1u, frame_stats.size());
107 FrameStatsMap::const_iterator it = frame_stats->find(kAudioFrameCaptured); 115 FrameStatsMap::const_iterator it = frame_stats.find(kAudioFrameCaptured);
108 EXPECT_TRUE(it != frame_stats->end()); 116 EXPECT_TRUE(it != frame_stats.end());
109 EXPECT_NEAR(30.3, it->second->framerate_fps, 0.1); 117 EXPECT_EQ(0, it->second.max_delay.InMilliseconds());
110 EXPECT_NEAR(8 * kBaseFrameSizeBytes / (kFrameIntervalMs * 1000), 118 EXPECT_EQ(0, it->second.min_delay.InMilliseconds());
111 it->second->bitrate_kbps, kRandomSizeInterval); 119 EXPECT_EQ(0, it->second.sum_delay.InMilliseconds());
112 EXPECT_EQ(0, it->second->max_delay_ms); 120 EXPECT_EQ(sum_size, it->second.sum_size);
113 EXPECT_EQ(0, it->second->min_delay_ms);
114 EXPECT_EQ(0, it->second->avg_delay_ms);
115 } 121 }
116 122
117 TEST_F(TestLogging, FrameLoggingWithDelay) { 123 TEST_F(TestLogging, FrameLoggingWithDelay) {
118 // Average packet size. 124 // Average packet size.
119 const int kPlayoutDelayMs = 50; 125 const int kPlayoutDelayMs = 50;
120 const int kRandomSizeInterval = 20; 126 const int kRandomSizeInterval = 20;
121 base::TimeTicks start_time = testing_clock_.NowTicks(); 127 base::TimeTicks start_time = testing_clock_.NowTicks();
122 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time; 128 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time;
123 uint32 rtp_timestamp = 0; 129 uint32 rtp_timestamp = 0;
124 uint32 frame_id = 0; 130 uint32 frame_id = 0;
125 do { 131 do {
126 int delay = kPlayoutDelayMs + 132 int delay = kPlayoutDelayMs +
127 base::RandInt(-kRandomSizeInterval, kRandomSizeInterval); 133 base::RandInt(-kRandomSizeInterval, kRandomSizeInterval);
128 logging_->InsertFrameEventWithDelay(testing_clock_.NowTicks(), 134 logging_->InsertFrameEventWithDelay(testing_clock_.NowTicks(),
129 kAudioFrameCaptured, rtp_timestamp, frame_id, 135 kAudioFrameCaptured, rtp_timestamp, frame_id,
130 base::TimeDelta::FromMilliseconds(delay)); 136 base::TimeDelta::FromMilliseconds(delay));
131 testing_clock_.Advance( 137 testing_clock_.Advance(
132 base::TimeDelta::FromMilliseconds(kFrameIntervalMs)); 138 base::TimeDelta::FromMilliseconds(kFrameIntervalMs));
133 rtp_timestamp += kFrameIntervalMs * 90; 139 rtp_timestamp += kFrameIntervalMs * 90;
134 ++frame_id; 140 ++frame_id;
135 time_interval = testing_clock_.NowTicks() - start_time; 141 time_interval = testing_clock_.NowTicks() - start_time;
136 } while (time_interval.InSeconds() < kIntervalTime1S); 142 } while (time_interval.InSeconds() < kIntervalTime1S);
137 // Get logging data. 143 // Get logging data.
138 FrameRawMap frame_map = logging_->GetFrameRawData(); 144 FrameRawMap frame_map = logging_->GetFrameRawData();
139 // Size of map should be equal to the number of frames logged. 145 // Size of map should be equal to the number of frames logged.
140 EXPECT_EQ(frame_id, frame_map.size()); 146 EXPECT_EQ(frame_id, frame_map.size());
141 // Verify stats. 147 // Verify stats.
142 const FrameStatsMap* frame_stats = 148 FrameStatsMap frame_stats = logging_->GetFrameStatsData();
143 logging_->GetFrameStatsData(testing_clock_.NowTicks());
144 // Size of stats equals the number of events. 149 // Size of stats equals the number of events.
145 EXPECT_EQ(1u, frame_stats->size()); 150 EXPECT_EQ(1u, frame_stats.size());
146 FrameStatsMap::const_iterator it = frame_stats->find(kAudioFrameCaptured); 151 FrameStatsMap::const_iterator it = frame_stats.find(kAudioFrameCaptured);
147 EXPECT_TRUE(it != frame_stats->end()); 152 EXPECT_TRUE(it != frame_stats.end());
148 EXPECT_NEAR(30.3, it->second->framerate_fps, 0.1); 153 EXPECT_GE(kPlayoutDelayMs + kRandomSizeInterval,
149 EXPECT_EQ(0, it->second->bitrate_kbps); 154 it->second.max_delay.InMilliseconds());
150 EXPECT_GE(kPlayoutDelayMs + kRandomSizeInterval, it->second->max_delay_ms); 155 EXPECT_LE(kPlayoutDelayMs - kRandomSizeInterval,
151 EXPECT_LE(kPlayoutDelayMs - kRandomSizeInterval, it->second->min_delay_ms); 156 it->second.min_delay.InMilliseconds());
152 EXPECT_NEAR(kPlayoutDelayMs, it->second->avg_delay_ms,
153 0.2 * kRandomSizeInterval);
154 } 157 }
155 158
156 TEST_F(TestLogging, MultipleEventFrameLogging) { 159 TEST_F(TestLogging, MultipleEventFrameLogging) {
157 base::TimeTicks start_time = testing_clock_.NowTicks(); 160 base::TimeTicks start_time = testing_clock_.NowTicks();
158 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time; 161 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time;
159 uint32 rtp_timestamp = 0; 162 uint32 rtp_timestamp = 0;
160 uint32 frame_id = 0; 163 uint32 frame_id = 0;
161 do { 164 do {
162 logging_->InsertFrameEvent(testing_clock_.NowTicks(), kAudioFrameCaptured, 165 logging_->InsertFrameEvent(testing_clock_.NowTicks(), kAudioFrameCaptured,
163 rtp_timestamp, frame_id); 166 rtp_timestamp, frame_id);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 base::TimeDelta::FromMilliseconds(kFrameIntervalMs)); 206 base::TimeDelta::FromMilliseconds(kFrameIntervalMs));
204 rtp_timestamp += kFrameIntervalMs * 90; 207 rtp_timestamp += kFrameIntervalMs * 90;
205 ++frame_id; 208 ++frame_id;
206 time_interval = testing_clock_.NowTicks() - start_time; 209 time_interval = testing_clock_.NowTicks() - start_time;
207 } while (time_interval.InSeconds() < kIntervalTime1S); 210 } while (time_interval.InSeconds() < kIntervalTime1S);
208 // Get logging data. 211 // Get logging data.
209 PacketRawMap raw_map = logging_->GetPacketRawData(); 212 PacketRawMap raw_map = logging_->GetPacketRawData();
210 // Size of map should be equal to the number of frames logged. 213 // Size of map should be equal to the number of frames logged.
211 EXPECT_EQ(frame_id, raw_map.size()); 214 EXPECT_EQ(frame_id, raw_map.size());
212 // Verify stats. 215 // Verify stats.
213 const PacketStatsMap* stats_map = 216 PacketStatsMap stats_map = logging_->GetPacketStatsData();
214 logging_->GetPacketStatsData(testing_clock_.NowTicks());
215 // Size of stats equals the number of events. 217 // Size of stats equals the number of events.
216 EXPECT_EQ(1u, stats_map->size()); 218 EXPECT_EQ(1u, stats_map.size());
217 PacketStatsMap::const_iterator it = stats_map->find(kPacketSentToPacer); 219 PacketStatsMap::const_iterator it = stats_map.find(kPacketSentToPacer);
218 EXPECT_TRUE(it != stats_map->end()); 220 EXPECT_TRUE(it != stats_map.end());
219 // We only store the bitrate as a packet statistic.
220 EXPECT_NEAR(8 * kNumPacketsPerFrame * kBaseSize / (kFrameIntervalMs * 1000),
221 it->second, kSizeInterval);
222 } 221 }
223 222
224 TEST_F(TestLogging, GenericLogging) { 223 TEST_F(TestLogging, GenericLogging) {
225 // Insert multiple generic types. 224 // Insert multiple generic types.
226 const size_t kNumRuns = 1000; 225 const size_t kNumRuns = 20;//1000;
227 const int kBaseValue = 20; 226 //const int kBaseValue = 20;
227 int sum_value_rtt = 0;
228 int sum_value_pl = 0;
229 int sum_value_jitter = 0;
230 int64 sumsq_value_rtt = 0;
231 int64 sumsq_value_pl = 0;
232 int64 sumsq_value_jitter = 0;
233 int min_value, max_value;
228 for (size_t i = 0; i < kNumRuns; ++i) { 234 for (size_t i = 0; i < kNumRuns; ++i) {
229 int value = kBaseValue + base::RandInt(-5, 5); 235 int value = 1;//kBaseValue + base::RandInt(-5, 5);
imcheng 2014/01/23 21:17:18 nit: rm comment
mikhal1 2014/01/23 23:02:17 Done.
236 sum_value_rtt += value;
237 sumsq_value_rtt += pow(value, 2);
230 logging_->InsertGenericEvent(testing_clock_.NowTicks(), kRttMs, value); 238 logging_->InsertGenericEvent(testing_clock_.NowTicks(), kRttMs, value);
231 if (i % 2) { 239 if (i % 2) {
232 logging_->InsertGenericEvent(testing_clock_.NowTicks(), kPacketLoss, 240 logging_->InsertGenericEvent(testing_clock_.NowTicks(), kPacketLoss,
233 value); 241 value);
242 sum_value_pl += value;
243 sumsq_value_pl += pow(value, 2);
234 } 244 }
235 if (!(i % 4)) { 245 if (!(i % 4)) {
236 logging_->InsertGenericEvent(testing_clock_.NowTicks(), kJitterMs, value); 246 logging_->InsertGenericEvent(testing_clock_.NowTicks(), kJitterMs, value);
247 sum_value_jitter += value;
248 sumsq_value_jitter += pow(value, 2);
249 }
250 if (i == 0) {
251 min_value = value;
252 max_value = value;
253 } else if (min_value > value) {
254 min_value = value;
255 } else if (max_value < value) {
256 max_value = value;
237 } 257 }
238 } 258 }
239 GenericRawMap raw_map = logging_->GetGenericRawData(); 259 GenericRawMap raw_map = logging_->GetGenericRawData();
240 const GenericStatsMap* stats_map = logging_->GetGenericStatsData(); 260 GenericStatsMap stats_map = logging_->GetGenericStatsData();
241 // Size of generic map = number of different events. 261 // Size of generic map = number of different events.
242 EXPECT_EQ(3u, raw_map.size()); 262 EXPECT_EQ(3u, raw_map.size());
243 EXPECT_EQ(3u, stats_map->size()); 263 EXPECT_EQ(3u, stats_map.size());
244 // Raw events - size of internal map = number of calls. 264 // Raw events - size of internal map = number of calls.
245 GenericRawMap::iterator rit = raw_map.find(kRttMs); 265 GenericRawMap::iterator rit = raw_map.find(kRttMs);
246 EXPECT_EQ(kNumRuns, rit->second.value.size()); 266 EXPECT_EQ(kNumRuns, rit->second.value.size());
247 EXPECT_EQ(kNumRuns, rit->second.timestamp.size()); 267 EXPECT_EQ(kNumRuns, rit->second.timestamp.size());
248 rit = raw_map.find(kPacketLoss); 268 rit = raw_map.find(kPacketLoss);
249 EXPECT_EQ(kNumRuns / 2, rit->second.value.size()); 269 EXPECT_EQ(kNumRuns / 2, rit->second.value.size());
250 EXPECT_EQ(kNumRuns / 2, rit->second.timestamp.size()); 270 EXPECT_EQ(kNumRuns / 2, rit->second.timestamp.size());
251 rit = raw_map.find(kJitterMs); 271 rit = raw_map.find(kJitterMs);
252 EXPECT_EQ(kNumRuns / 4, rit->second.value.size()); 272 EXPECT_EQ(kNumRuns / 4, rit->second.value.size());
253 EXPECT_EQ(kNumRuns / 4, rit->second.timestamp.size()); 273 EXPECT_EQ(kNumRuns / 4, rit->second.timestamp.size());
254 // Stats - one value per event. 274 // Stats - one value per all events.
255 GenericStatsMap::const_iterator sit = stats_map->find(kRttMs); 275 GenericStatsMap::const_iterator sit = stats_map.find(kRttMs);
256 EXPECT_NEAR(kBaseValue, sit->second, 2.5); 276 EXPECT_EQ(sum_value_rtt, sit->second.sum);
257 sit = stats_map->find(kPacketLoss); 277 EXPECT_EQ(sumsq_value_rtt, sit->second.sum_squared);
258 EXPECT_NEAR(kBaseValue, sit->second, 2.5); 278 EXPECT_GE(min_value, sit->second.min);
259 sit = stats_map->find(kJitterMs); 279 EXPECT_LE(max_value, sit->second.max);
260 EXPECT_NEAR(kBaseValue, sit->second, 2.5); 280 sit = stats_map.find(kPacketLoss);
281 EXPECT_EQ(sum_value_pl, sit->second.sum);
282 EXPECT_EQ(sumsq_value_pl, sit->second.sum_squared);
283 EXPECT_GE(min_value, sit->second.min);
284 EXPECT_LE(max_value, sit->second.max);
285 sit = stats_map.find(kJitterMs);
286 EXPECT_EQ(sumsq_value_jitter, sit->second.sum_squared);
287 EXPECT_GE(min_value, sit->second.min);
288 EXPECT_LE(max_value, sit->second.max);
261 } 289 }
262 290
263 TEST_F(TestLogging, RtcpMultipleEventFrameLogging) { 291 TEST_F(TestLogging, RtcpMultipleEventFrameLogging) {
264 base::TimeTicks start_time = testing_clock_.NowTicks(); 292 base::TimeTicks start_time = testing_clock_.NowTicks();
265 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time; 293 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time;
266 uint32 rtp_timestamp = 0; 294 uint32 rtp_timestamp = 0;
267 uint32 frame_id = 0; 295 uint32 frame_id = 0;
268 do { 296 do {
269 logging_->InsertFrameEvent(testing_clock_.NowTicks(), kAudioFrameCaptured, 297 logging_->InsertFrameEvent(testing_clock_.NowTicks(), kAudioFrameCaptured,
270 rtp_timestamp, frame_id); 298 rtp_timestamp, frame_id);
(...skipping 13 matching lines...) Expand all
284 rtp_timestamp += kFrameIntervalMs * 90; 312 rtp_timestamp += kFrameIntervalMs * 90;
285 ++frame_id; 313 ++frame_id;
286 time_interval = testing_clock_.NowTicks() - start_time; 314 time_interval = testing_clock_.NowTicks() - start_time;
287 } while (time_interval.InSeconds() < kIntervalTime1S); 315 } while (time_interval.InSeconds() < kIntervalTime1S);
288 // Get logging data. 316 // Get logging data.
289 FrameRawMap frame_map = logging_->GetFrameRawData(); 317 FrameRawMap frame_map = logging_->GetFrameRawData();
290 // Size of map should be equal to the number of frames logged. 318 // Size of map should be equal to the number of frames logged.
291 EXPECT_EQ(frame_id, frame_map.size()); 319 EXPECT_EQ(frame_id, frame_map.size());
292 // Multiple events captured per frame. 320 // Multiple events captured per frame.
293 321
294 AudioRtcpRawMap audio_rtcp = logging_->GetAudioRtcpRawData(); 322 AudioRtcpRawMap audio_rtcp = logging_->GetAndResetAudioRtcpRawData();
295 EXPECT_EQ(0u, audio_rtcp.size()); 323 EXPECT_EQ(0u, audio_rtcp.size());
296 324
297 VideoRtcpRawMap video_rtcp = logging_->GetVideoRtcpRawData(); 325 VideoRtcpRawMap video_rtcp = logging_->GetAndResetVideoRtcpRawData();
298 EXPECT_EQ((frame_id + 1) / 2, video_rtcp.size()); 326 EXPECT_EQ((frame_id + 1) / 2, video_rtcp.size());
299 } 327 }
300 328
301 } // namespace cast 329 } // namespace cast
302 } // namespace media 330 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698