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

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

Issue 1515433002: Replace uses of raw uint32's with a type-checked RtpTimeTicks data type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 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 "base/memory/ref_counted.h" 5 #include "base/memory/ref_counted.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/rand_util.h" 7 #include "base/rand_util.h"
8 #include "base/test/simple_test_tick_clock.h" 8 #include "base/test/simple_test_tick_clock.h"
9 #include "base/time/tick_clock.h" 9 #include "base/time/tick_clock.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 base::SimpleTestTickClock receiver_clock_; 60 base::SimpleTestTickClock receiver_clock_;
61 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; 61 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_;
62 scoped_refptr<CastEnvironment> cast_environment_; 62 scoped_refptr<CastEnvironment> cast_environment_;
63 test::FakeReceiverTimeOffsetEstimator fake_offset_estimator_; 63 test::FakeReceiverTimeOffsetEstimator fake_offset_estimator_;
64 scoped_ptr<StatsEventSubscriber> subscriber_; 64 scoped_ptr<StatsEventSubscriber> subscriber_;
65 }; 65 };
66 66
67 TEST_F(StatsEventSubscriberTest, CaptureEncode) { 67 TEST_F(StatsEventSubscriberTest, CaptureEncode) {
68 Init(VIDEO_EVENT); 68 Init(VIDEO_EVENT);
69 69
70 uint32 rtp_timestamp = 0; 70 RtpTimeTicks rtp_timestamp;
71 uint32 frame_id = 0; 71 uint32 frame_id = 0;
72 int extra_frames = 50; 72 int extra_frames = 50;
73 // Only the first |extra_frames| frames logged will be taken into account 73 // Only the first |extra_frames| frames logged will be taken into account
74 // when computing dropped frames. 74 // when computing dropped frames.
75 int num_frames = StatsEventSubscriber::kMaxFrameInfoMapSize + 50; 75 int num_frames = StatsEventSubscriber::kMaxFrameInfoMapSize + 50;
76 int dropped_frames = 0; 76 int dropped_frames = 0;
77 base::TimeTicks start_time = sender_clock_->NowTicks(); 77 base::TimeTicks start_time = sender_clock_->NowTicks();
78 // Drop half the frames during the encode step. 78 // Drop half the frames during the encode step.
79 for (int i = 0; i < num_frames; i++) { 79 for (int i = 0; i < num_frames; i++) {
80 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); 80 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent());
(...skipping 22 matching lines...) Expand all
103 encode_event->size = 1024; 103 encode_event->size = 1024;
104 encode_event->key_frame = true; 104 encode_event->key_frame = true;
105 encode_event->target_bitrate = 5678; 105 encode_event->target_bitrate = 5678;
106 encode_event->encoder_cpu_utilization = 9.10; 106 encode_event->encoder_cpu_utilization = 9.10;
107 encode_event->idealized_bitrate_utilization = 11.12; 107 encode_event->idealized_bitrate_utilization = 11.12;
108 cast_environment_->logger()->DispatchFrameEvent(encode_event.Pass()); 108 cast_environment_->logger()->DispatchFrameEvent(encode_event.Pass());
109 } else if (i < extra_frames) { 109 } else if (i < extra_frames) {
110 dropped_frames++; 110 dropped_frames++;
111 } 111 }
112 AdvanceClocks(base::TimeDelta::FromMicroseconds(34567)); 112 AdvanceClocks(base::TimeDelta::FromMicroseconds(34567));
113 rtp_timestamp += 90; 113 rtp_timestamp += RtpTimeDelta::FromTicks(90);
114 frame_id++; 114 frame_id++;
115 } 115 }
116 116
117 base::TimeTicks end_time = sender_clock_->NowTicks(); 117 base::TimeTicks end_time = sender_clock_->NowTicks();
118 118
119 StatsEventSubscriber::StatsMap stats_map; 119 StatsEventSubscriber::StatsMap stats_map;
120 subscriber_->GetStatsInternal(&stats_map); 120 subscriber_->GetStatsInternal(&stats_map);
121 121
122 StatsEventSubscriber::StatsMap::iterator it = 122 StatsEventSubscriber::StatsMap::iterator it =
123 stats_map.find(StatsEventSubscriber::CAPTURE_FPS); 123 stats_map.find(StatsEventSubscriber::CAPTURE_FPS);
(...skipping 16 matching lines...) Expand all
140 140
141 it = stats_map.find(StatsEventSubscriber::AVG_CAPTURE_LATENCY_MS); 141 it = stats_map.find(StatsEventSubscriber::AVG_CAPTURE_LATENCY_MS);
142 ASSERT_TRUE(it != stats_map.end()); 142 ASSERT_TRUE(it != stats_map.end());
143 143
144 EXPECT_DOUBLE_EQ(it->second, static_cast<double>(0.01)); 144 EXPECT_DOUBLE_EQ(it->second, static_cast<double>(0.01));
145 } 145 }
146 146
147 TEST_F(StatsEventSubscriberTest, Encode) { 147 TEST_F(StatsEventSubscriberTest, Encode) {
148 Init(VIDEO_EVENT); 148 Init(VIDEO_EVENT);
149 149
150 uint32 rtp_timestamp = 0; 150 RtpTimeTicks rtp_timestamp;
151 uint32 frame_id = 0; 151 uint32 frame_id = 0;
152 int num_frames = 10; 152 int num_frames = 10;
153 base::TimeTicks start_time = sender_clock_->NowTicks(); 153 base::TimeTicks start_time = sender_clock_->NowTicks();
154 AdvanceClocks(base::TimeDelta::FromMicroseconds(35678)); 154 AdvanceClocks(base::TimeDelta::FromMicroseconds(35678));
155 base::TimeTicks first_event_time = sender_clock_->NowTicks(); 155 base::TimeTicks first_event_time = sender_clock_->NowTicks();
156 base::TimeTicks last_event_time; 156 base::TimeTicks last_event_time;
157 int total_size = 0; 157 int total_size = 0;
158 for (int i = 0; i < num_frames; i++) { 158 for (int i = 0; i < num_frames; i++) {
159 int size = 1000 + base::RandInt(-100, 100); 159 int size = 1000 + base::RandInt(-100, 100);
160 total_size += size; 160 total_size += size;
161 scoped_ptr<FrameEvent> encode_event(new FrameEvent()); 161 scoped_ptr<FrameEvent> encode_event(new FrameEvent());
162 encode_event->timestamp = sender_clock_->NowTicks(); 162 encode_event->timestamp = sender_clock_->NowTicks();
163 encode_event->type = FRAME_ENCODED; 163 encode_event->type = FRAME_ENCODED;
164 encode_event->media_type = VIDEO_EVENT; 164 encode_event->media_type = VIDEO_EVENT;
165 encode_event->rtp_timestamp = rtp_timestamp; 165 encode_event->rtp_timestamp = rtp_timestamp;
166 encode_event->frame_id = frame_id; 166 encode_event->frame_id = frame_id;
167 encode_event->size = size; 167 encode_event->size = size;
168 encode_event->key_frame = true; 168 encode_event->key_frame = true;
169 encode_event->target_bitrate = 5678; 169 encode_event->target_bitrate = 5678;
170 encode_event->encoder_cpu_utilization = 9.10; 170 encode_event->encoder_cpu_utilization = 9.10;
171 encode_event->idealized_bitrate_utilization = 11.12; 171 encode_event->idealized_bitrate_utilization = 11.12;
172 cast_environment_->logger()->DispatchFrameEvent(encode_event.Pass()); 172 cast_environment_->logger()->DispatchFrameEvent(encode_event.Pass());
173 last_event_time = sender_clock_->NowTicks(); 173 last_event_time = sender_clock_->NowTicks();
174 174
175 AdvanceClocks(base::TimeDelta::FromMicroseconds(35678)); 175 AdvanceClocks(base::TimeDelta::FromMicroseconds(35678));
176 rtp_timestamp += 90; 176 rtp_timestamp += RtpTimeDelta::FromTicks(90);
177 frame_id++; 177 frame_id++;
178 } 178 }
179 179
180 base::TimeTicks end_time = sender_clock_->NowTicks(); 180 base::TimeTicks end_time = sender_clock_->NowTicks();
181 181
182 StatsEventSubscriber::StatsMap stats_map; 182 StatsEventSubscriber::StatsMap stats_map;
183 subscriber_->GetStatsInternal(&stats_map); 183 subscriber_->GetStatsInternal(&stats_map);
184 184
185 StatsEventSubscriber::StatsMap::iterator it = 185 StatsEventSubscriber::StatsMap::iterator it =
186 stats_map.find(StatsEventSubscriber::ENCODE_FPS); 186 stats_map.find(StatsEventSubscriber::ENCODE_FPS);
(...skipping 21 matching lines...) Expand all
208 ASSERT_TRUE(it != stats_map.end()); 208 ASSERT_TRUE(it != stats_map.end());
209 209
210 EXPECT_DOUBLE_EQ( 210 EXPECT_DOUBLE_EQ(
211 it->second, 211 it->second,
212 (last_event_time - base::TimeTicks::UnixEpoch()).InMillisecondsF()); 212 (last_event_time - base::TimeTicks::UnixEpoch()).InMillisecondsF());
213 } 213 }
214 214
215 TEST_F(StatsEventSubscriberTest, Decode) { 215 TEST_F(StatsEventSubscriberTest, Decode) {
216 Init(VIDEO_EVENT); 216 Init(VIDEO_EVENT);
217 217
218 uint32 rtp_timestamp = 0; 218 RtpTimeTicks rtp_timestamp;
219 uint32 frame_id = 0; 219 uint32 frame_id = 0;
220 int num_frames = 10; 220 int num_frames = 10;
221 base::TimeTicks start_time = sender_clock_->NowTicks(); 221 base::TimeTicks start_time = sender_clock_->NowTicks();
222 for (int i = 0; i < num_frames; i++) { 222 for (int i = 0; i < num_frames; i++) {
223 scoped_ptr<FrameEvent> decode_event(new FrameEvent()); 223 scoped_ptr<FrameEvent> decode_event(new FrameEvent());
224 decode_event->timestamp = receiver_clock_.NowTicks(); 224 decode_event->timestamp = receiver_clock_.NowTicks();
225 decode_event->type = FRAME_DECODED; 225 decode_event->type = FRAME_DECODED;
226 decode_event->media_type = VIDEO_EVENT; 226 decode_event->media_type = VIDEO_EVENT;
227 decode_event->rtp_timestamp = rtp_timestamp; 227 decode_event->rtp_timestamp = rtp_timestamp;
228 decode_event->frame_id = frame_id; 228 decode_event->frame_id = frame_id;
229 cast_environment_->logger()->DispatchFrameEvent(decode_event.Pass()); 229 cast_environment_->logger()->DispatchFrameEvent(decode_event.Pass());
230 230
231 AdvanceClocks(base::TimeDelta::FromMicroseconds(36789)); 231 AdvanceClocks(base::TimeDelta::FromMicroseconds(36789));
232 rtp_timestamp += 90; 232 rtp_timestamp += RtpTimeDelta::FromTicks(90);
233 frame_id++; 233 frame_id++;
234 } 234 }
235 235
236 base::TimeTicks end_time = sender_clock_->NowTicks(); 236 base::TimeTicks end_time = sender_clock_->NowTicks();
237 237
238 StatsEventSubscriber::StatsMap stats_map; 238 StatsEventSubscriber::StatsMap stats_map;
239 subscriber_->GetStatsInternal(&stats_map); 239 subscriber_->GetStatsInternal(&stats_map);
240 240
241 StatsEventSubscriber::StatsMap::iterator it = 241 StatsEventSubscriber::StatsMap::iterator it =
242 stats_map.find(StatsEventSubscriber::DECODE_FPS); 242 stats_map.find(StatsEventSubscriber::DECODE_FPS);
243 ASSERT_TRUE(it != stats_map.end()); 243 ASSERT_TRUE(it != stats_map.end());
244 244
245 base::TimeDelta duration = end_time - start_time; 245 base::TimeDelta duration = end_time - start_time;
246 EXPECT_DOUBLE_EQ( 246 EXPECT_DOUBLE_EQ(
247 it->second, 247 it->second,
248 static_cast<double>(num_frames) / duration.InMillisecondsF() * 1000); 248 static_cast<double>(num_frames) / duration.InMillisecondsF() * 1000);
249 } 249 }
250 250
251 TEST_F(StatsEventSubscriberTest, PlayoutDelay) { 251 TEST_F(StatsEventSubscriberTest, PlayoutDelay) {
252 Init(VIDEO_EVENT); 252 Init(VIDEO_EVENT);
253 253
254 uint32 rtp_timestamp = 0; 254 RtpTimeTicks rtp_timestamp;
255 uint32 frame_id = 0; 255 uint32 frame_id = 0;
256 int num_frames = 10; 256 int num_frames = 10;
257 int late_frames = 0; 257 int late_frames = 0;
258 for (int i = 0, delay_ms = -50; i < num_frames; i++, delay_ms += 10) { 258 for (int i = 0, delay_ms = -50; i < num_frames; i++, delay_ms += 10) {
259 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_ms); 259 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_ms);
260 if (delay_ms > 0) 260 if (delay_ms > 0)
261 late_frames++; 261 late_frames++;
262 scoped_ptr<FrameEvent> playout_event(new FrameEvent()); 262 scoped_ptr<FrameEvent> playout_event(new FrameEvent());
263 playout_event->timestamp = receiver_clock_.NowTicks(); 263 playout_event->timestamp = receiver_clock_.NowTicks();
264 playout_event->type = FRAME_PLAYOUT; 264 playout_event->type = FRAME_PLAYOUT;
265 playout_event->media_type = VIDEO_EVENT; 265 playout_event->media_type = VIDEO_EVENT;
266 playout_event->rtp_timestamp = rtp_timestamp; 266 playout_event->rtp_timestamp = rtp_timestamp;
267 playout_event->frame_id = frame_id; 267 playout_event->frame_id = frame_id;
268 playout_event->delay_delta = delay; 268 playout_event->delay_delta = delay;
269 cast_environment_->logger()->DispatchFrameEvent(playout_event.Pass()); 269 cast_environment_->logger()->DispatchFrameEvent(playout_event.Pass());
270 270
271 AdvanceClocks(base::TimeDelta::FromMicroseconds(37890)); 271 AdvanceClocks(base::TimeDelta::FromMicroseconds(37890));
272 rtp_timestamp += 90; 272 rtp_timestamp += RtpTimeDelta::FromTicks(90);
273 frame_id++; 273 frame_id++;
274 } 274 }
275 275
276 StatsEventSubscriber::StatsMap stats_map; 276 StatsEventSubscriber::StatsMap stats_map;
277 subscriber_->GetStatsInternal(&stats_map); 277 subscriber_->GetStatsInternal(&stats_map);
278 278
279 StatsEventSubscriber::StatsMap::iterator it = stats_map.find( 279 StatsEventSubscriber::StatsMap::iterator it = stats_map.find(
280 StatsEventSubscriber::NUM_FRAMES_LATE); 280 StatsEventSubscriber::NUM_FRAMES_LATE);
281 ASSERT_TRUE(it != stats_map.end()); 281 ASSERT_TRUE(it != stats_map.end());
282 282
283 EXPECT_DOUBLE_EQ(it->second, late_frames); 283 EXPECT_DOUBLE_EQ(it->second, late_frames);
284 } 284 }
285 285
286 TEST_F(StatsEventSubscriberTest, E2ELatency) { 286 TEST_F(StatsEventSubscriberTest, E2ELatency) {
287 Init(VIDEO_EVENT); 287 Init(VIDEO_EVENT);
288 288
289 uint32 rtp_timestamp = 0; 289 RtpTimeTicks rtp_timestamp;
290 uint32 frame_id = 0; 290 uint32 frame_id = 0;
291 int num_frames = 10; 291 int num_frames = 10;
292 base::TimeDelta total_latency; 292 base::TimeDelta total_latency;
293 for (int i = 0; i < num_frames; i++) { 293 for (int i = 0; i < num_frames; i++) {
294 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); 294 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent());
295 capture_begin_event->timestamp = sender_clock_->NowTicks(); 295 capture_begin_event->timestamp = sender_clock_->NowTicks();
296 capture_begin_event->type = FRAME_CAPTURE_BEGIN; 296 capture_begin_event->type = FRAME_CAPTURE_BEGIN;
297 capture_begin_event->media_type = VIDEO_EVENT; 297 capture_begin_event->media_type = VIDEO_EVENT;
298 capture_begin_event->rtp_timestamp = rtp_timestamp; 298 capture_begin_event->rtp_timestamp = rtp_timestamp;
299 cast_environment_->logger()->DispatchFrameEvent(capture_begin_event.Pass()); 299 cast_environment_->logger()->DispatchFrameEvent(capture_begin_event.Pass());
300 300
301 int latency_micros = 100000 + base::RandInt(-5000, 50000); 301 int latency_micros = 100000 + base::RandInt(-5000, 50000);
302 base::TimeDelta latency = base::TimeDelta::FromMicroseconds(latency_micros); 302 base::TimeDelta latency = base::TimeDelta::FromMicroseconds(latency_micros);
303 AdvanceClocks(latency); 303 AdvanceClocks(latency);
304 304
305 int delay_micros = base::RandInt(-50000, 50000); 305 int delay_micros = base::RandInt(-50000, 50000);
306 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_micros); 306 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_micros);
307 total_latency += latency; 307 total_latency += latency;
308 308
309 scoped_ptr<FrameEvent> playout_event(new FrameEvent()); 309 scoped_ptr<FrameEvent> playout_event(new FrameEvent());
310 playout_event->timestamp = receiver_clock_.NowTicks(); 310 playout_event->timestamp = receiver_clock_.NowTicks();
311 playout_event->type = FRAME_PLAYOUT; 311 playout_event->type = FRAME_PLAYOUT;
312 playout_event->media_type = VIDEO_EVENT; 312 playout_event->media_type = VIDEO_EVENT;
313 playout_event->rtp_timestamp = rtp_timestamp; 313 playout_event->rtp_timestamp = rtp_timestamp;
314 playout_event->frame_id = frame_id; 314 playout_event->frame_id = frame_id;
315 playout_event->delay_delta = delay; 315 playout_event->delay_delta = delay;
316 cast_environment_->logger()->DispatchFrameEvent(playout_event.Pass()); 316 cast_environment_->logger()->DispatchFrameEvent(playout_event.Pass());
317 317
318 rtp_timestamp += 90; 318 rtp_timestamp += RtpTimeDelta::FromTicks(90);
319 frame_id++; 319 frame_id++;
320 } 320 }
321 321
322 StatsEventSubscriber::StatsMap stats_map; 322 StatsEventSubscriber::StatsMap stats_map;
323 subscriber_->GetStatsInternal(&stats_map); 323 subscriber_->GetStatsInternal(&stats_map);
324 324
325 StatsEventSubscriber::StatsMap::iterator it = 325 StatsEventSubscriber::StatsMap::iterator it =
326 stats_map.find(StatsEventSubscriber::AVG_E2E_LATENCY_MS); 326 stats_map.find(StatsEventSubscriber::AVG_E2E_LATENCY_MS);
327 ASSERT_TRUE(it != stats_map.end()); 327 ASSERT_TRUE(it != stats_map.end());
328 328
329 EXPECT_DOUBLE_EQ( 329 EXPECT_DOUBLE_EQ(
330 it->second, total_latency.InMillisecondsF() / num_frames); 330 it->second, total_latency.InMillisecondsF() / num_frames);
331 } 331 }
332 332
333 TEST_F(StatsEventSubscriberTest, Packets) { 333 TEST_F(StatsEventSubscriberTest, Packets) {
334 Init(VIDEO_EVENT); 334 Init(VIDEO_EVENT);
335 335
336 uint32 rtp_timestamp = 0; 336 RtpTimeTicks rtp_timestamp;
337 int num_packets = 10; 337 int num_packets = 10;
338 int num_latency_recorded_packets = 0; 338 int num_latency_recorded_packets = 0;
339 base::TimeTicks start_time = sender_clock_->NowTicks(); 339 base::TimeTicks start_time = sender_clock_->NowTicks();
340 int total_size = 0; 340 int total_size = 0;
341 int retransmit_total_size = 0; 341 int retransmit_total_size = 0;
342 base::TimeDelta total_network_latency; 342 base::TimeDelta total_network_latency;
343 base::TimeDelta total_queueing_latency; 343 base::TimeDelta total_queueing_latency;
344 base::TimeDelta total_packet_latency; 344 base::TimeDelta total_packet_latency;
345 int num_packets_transmitted = 0; 345 int num_packets_transmitted = 0;
346 int num_packets_received = 0; 346 int num_packets_received = 0;
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 return false; 550 return false;
551 return bucket_count == expected_count; 551 return bucket_count == expected_count;
552 } 552 }
553 return false; 553 return false;
554 } 554 }
555 555
556 TEST_F(StatsEventSubscriberTest, Histograms) { 556 TEST_F(StatsEventSubscriberTest, Histograms) {
557 Init(VIDEO_EVENT); 557 Init(VIDEO_EVENT);
558 AdvanceClocks(base::TimeDelta::FromMilliseconds(123)); 558 AdvanceClocks(base::TimeDelta::FromMilliseconds(123));
559 559
560 uint32 rtp_timestamp = 123; 560 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(123));
561 uint32 frame_id = 0; 561 uint32 frame_id = 0;
562 562
563 // 10 Frames with capture latency in the bucket of "10-14"ms. 563 // 10 Frames with capture latency in the bucket of "10-14"ms.
564 // 10 Frames with encode time in the bucket of "15-19"ms. 564 // 10 Frames with encode time in the bucket of "15-19"ms.
565 for (int i = 0; i < 10; ++i) { 565 for (int i = 0; i < 10; ++i) {
566 ++frame_id; 566 ++frame_id;
567 ++rtp_timestamp; 567 rtp_timestamp += RtpTimeDelta::FromTicks(1);
568 568
569 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); 569 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent());
570 capture_begin_event->timestamp = sender_clock_->NowTicks(); 570 capture_begin_event->timestamp = sender_clock_->NowTicks();
571 capture_begin_event->type = FRAME_CAPTURE_BEGIN; 571 capture_begin_event->type = FRAME_CAPTURE_BEGIN;
572 capture_begin_event->media_type = VIDEO_EVENT; 572 capture_begin_event->media_type = VIDEO_EVENT;
573 capture_begin_event->rtp_timestamp = rtp_timestamp; 573 capture_begin_event->rtp_timestamp = rtp_timestamp;
574 cast_environment_->logger()->DispatchFrameEvent(capture_begin_event.Pass()); 574 cast_environment_->logger()->DispatchFrameEvent(capture_begin_event.Pass());
575 575
576 AdvanceClocks(base::TimeDelta::FromMilliseconds(10)); 576 AdvanceClocks(base::TimeDelta::FromMilliseconds(10));
577 scoped_ptr<FrameEvent> capture_end_event(new FrameEvent()); 577 scoped_ptr<FrameEvent> capture_end_event(new FrameEvent());
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 677
678 histogram = subscriber_->GetHistogramForTesting( 678 histogram = subscriber_->GetHistogramForTesting(
679 StatsEventSubscriber::LATE_FRAME_MS_HISTO); 679 StatsEventSubscriber::LATE_FRAME_MS_HISTO);
680 ASSERT_TRUE(histogram); 680 ASSERT_TRUE(histogram);
681 values = histogram->GetHistogram().Pass(); 681 values = histogram->GetHistogram().Pass();
682 EXPECT_TRUE(CheckHistogramHasValue(values.get(), "100-119", 1)); 682 EXPECT_TRUE(CheckHistogramHasValue(values.get(), "100-119", 1));
683 } 683 }
684 684
685 } // namespace cast 685 } // namespace cast
686 } // namespace media 686 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698