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

Side by Side Diff: webrtc/api/rtcstatscollector_unittest.cc

Issue 2340443002: Making sure rtc_stats_unittests passes on all bots (tsan fix) (Closed)
Patch Set: String compare fix Created 4 years, 3 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/api/rtcstats_unittest.cc ('k') | webrtc/api/rtcstatsreport_unittest.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 2016 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2016 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
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 MediaControllerInterface::Create(cricket::MediaConfig(), 52 MediaControllerInterface::Create(cricket::MediaConfig(),
53 worker_thread_, 53 worker_thread_,
54 channel_manager_.get())), 54 channel_manager_.get())),
55 session_(media_controller_.get()), 55 session_(media_controller_.get()),
56 pc_() { 56 pc_() {
57 EXPECT_CALL(pc_, session()).WillRepeatedly(Return(&session_)); 57 EXPECT_CALL(pc_, session()).WillRepeatedly(Return(&session_));
58 EXPECT_CALL(pc_, sctp_data_channels()).WillRepeatedly( 58 EXPECT_CALL(pc_, sctp_data_channels()).WillRepeatedly(
59 ReturnRef(data_channels_)); 59 ReturnRef(data_channels_));
60 } 60 }
61 61
62 rtc::ScopedFakeClock& fake_clock() { return fake_clock_; }
62 MockWebRtcSession& session() { return session_; } 63 MockWebRtcSession& session() { return session_; }
63 MockPeerConnection& pc() { return pc_; } 64 MockPeerConnection& pc() { return pc_; }
64 std::vector<rtc::scoped_refptr<DataChannel>>& data_channels() { 65 std::vector<rtc::scoped_refptr<DataChannel>>& data_channels() {
65 return data_channels_; 66 return data_channels_;
66 } 67 }
67 68
68 // SetSessionDescriptionObserver overrides. 69 // SetSessionDescriptionObserver overrides.
69 void OnSuccess() override {} 70 void OnSuccess() override {}
70 void OnFailure(const std::string& error) override { 71 void OnFailure(const std::string& error) override {
71 RTC_NOTREACHED() << error; 72 RTC_NOTREACHED() << error;
72 } 73 }
73 74
74 private: 75 private:
76 rtc::ScopedFakeClock fake_clock_;
75 rtc::Thread* const worker_thread_; 77 rtc::Thread* const worker_thread_;
76 rtc::Thread* const network_thread_; 78 rtc::Thread* const network_thread_;
77 std::unique_ptr<cricket::ChannelManager> channel_manager_; 79 std::unique_ptr<cricket::ChannelManager> channel_manager_;
78 std::unique_ptr<webrtc::MediaControllerInterface> media_controller_; 80 std::unique_ptr<webrtc::MediaControllerInterface> media_controller_;
79 MockWebRtcSession session_; 81 MockWebRtcSession session_;
80 MockPeerConnection pc_; 82 MockPeerConnection pc_;
81 83
82 std::vector<rtc::scoped_refptr<DataChannel>> data_channels_; 84 std::vector<rtc::scoped_refptr<DataChannel>> data_channels_;
83 }; 85 };
84 86
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 collector_->GetStatsReport(StatsCallback::Create(&b)); 273 collector_->GetStatsReport(StatsCallback::Create(&b));
272 collector_->GetStatsReport(StatsCallback::Create(&c)); 274 collector_->GetStatsReport(StatsCallback::Create(&c));
273 EXPECT_TRUE_WAIT(a, kGetStatsReportTimeoutMs); 275 EXPECT_TRUE_WAIT(a, kGetStatsReportTimeoutMs);
274 EXPECT_TRUE_WAIT(b, kGetStatsReportTimeoutMs); 276 EXPECT_TRUE_WAIT(b, kGetStatsReportTimeoutMs);
275 EXPECT_TRUE_WAIT(c, kGetStatsReportTimeoutMs); 277 EXPECT_TRUE_WAIT(c, kGetStatsReportTimeoutMs);
276 EXPECT_EQ(a.get(), b.get()); 278 EXPECT_EQ(a.get(), b.get());
277 EXPECT_EQ(b.get(), c.get()); 279 EXPECT_EQ(b.get(), c.get());
278 } 280 }
279 281
280 TEST_F(RTCStatsCollectorTest, CachedStatsReports) { 282 TEST_F(RTCStatsCollectorTest, CachedStatsReports) {
281 rtc::ScopedFakeClock fake_clock;
282 // Caching should ensure |a| and |b| are the same report. 283 // Caching should ensure |a| and |b| are the same report.
283 rtc::scoped_refptr<const RTCStatsReport> a = GetStatsReport(); 284 rtc::scoped_refptr<const RTCStatsReport> a = GetStatsReport();
284 rtc::scoped_refptr<const RTCStatsReport> b = GetStatsReport(); 285 rtc::scoped_refptr<const RTCStatsReport> b = GetStatsReport();
285 EXPECT_EQ(a.get(), b.get()); 286 EXPECT_EQ(a.get(), b.get());
286 // Invalidate cache by clearing it. 287 // Invalidate cache by clearing it.
287 collector_->ClearCachedStatsReport(); 288 collector_->ClearCachedStatsReport();
288 rtc::scoped_refptr<const RTCStatsReport> c = GetStatsReport(); 289 rtc::scoped_refptr<const RTCStatsReport> c = GetStatsReport();
289 EXPECT_NE(b.get(), c.get()); 290 EXPECT_NE(b.get(), c.get());
290 // Invalidate cache by advancing time. 291 // Invalidate cache by advancing time.
291 fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(51)); 292 test_->fake_clock().AdvanceTime(rtc::TimeDelta::FromMilliseconds(51));
292 rtc::scoped_refptr<const RTCStatsReport> d = GetStatsReport(); 293 rtc::scoped_refptr<const RTCStatsReport> d = GetStatsReport();
293 EXPECT_TRUE(d); 294 EXPECT_TRUE(d);
294 EXPECT_NE(c.get(), d.get()); 295 EXPECT_NE(c.get(), d.get());
295 } 296 }
296 297
297 TEST_F(RTCStatsCollectorTest, MultipleCallbacksWithInvalidatedCacheInBetween) { 298 TEST_F(RTCStatsCollectorTest, MultipleCallbacksWithInvalidatedCacheInBetween) {
298 rtc::ScopedFakeClock fake_clock;
299 rtc::scoped_refptr<const RTCStatsReport> a; 299 rtc::scoped_refptr<const RTCStatsReport> a;
300 rtc::scoped_refptr<const RTCStatsReport> b; 300 rtc::scoped_refptr<const RTCStatsReport> b;
301 rtc::scoped_refptr<const RTCStatsReport> c; 301 rtc::scoped_refptr<const RTCStatsReport> c;
302 collector_->GetStatsReport(StatsCallback::Create(&a)); 302 collector_->GetStatsReport(StatsCallback::Create(&a));
303 collector_->GetStatsReport(StatsCallback::Create(&b)); 303 collector_->GetStatsReport(StatsCallback::Create(&b));
304 // Cache is invalidated after 50 ms. 304 // Cache is invalidated after 50 ms.
305 fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(51)); 305 test_->fake_clock().AdvanceTime(rtc::TimeDelta::FromMilliseconds(51));
306 collector_->GetStatsReport(StatsCallback::Create(&c)); 306 collector_->GetStatsReport(StatsCallback::Create(&c));
307 EXPECT_TRUE_WAIT(a, kGetStatsReportTimeoutMs); 307 EXPECT_TRUE_WAIT(a, kGetStatsReportTimeoutMs);
308 EXPECT_TRUE_WAIT(b, kGetStatsReportTimeoutMs); 308 EXPECT_TRUE_WAIT(b, kGetStatsReportTimeoutMs);
309 EXPECT_TRUE_WAIT(c, kGetStatsReportTimeoutMs); 309 EXPECT_TRUE_WAIT(c, kGetStatsReportTimeoutMs);
310 EXPECT_EQ(a.get(), b.get()); 310 EXPECT_EQ(a.get(), b.get());
311 // The act of doing |AdvanceTime| processes all messages. If this was not the 311 // The act of doing |AdvanceTime| processes all messages. If this was not the
312 // case we might not require |c| to be fresher than |b|. 312 // case we might not require |c| to be fresher than |b|.
313 EXPECT_NE(c.get(), b.get()); 313 EXPECT_NE(c.get(), b.get());
314 } 314 }
315 315
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 rtc::scoped_refptr<FakeRTCStatsCollector> collector_; 374 rtc::scoped_refptr<FakeRTCStatsCollector> collector_;
375 }; 375 };
376 376
377 TEST_F(RTCStatsCollectorTestWithFakeCollector, ThreadUsageAndResultsMerging) { 377 TEST_F(RTCStatsCollectorTestWithFakeCollector, ThreadUsageAndResultsMerging) {
378 collector_->VerifyThreadUsageAndResultsMerging(); 378 collector_->VerifyThreadUsageAndResultsMerging();
379 } 379 }
380 380
381 } // namespace 381 } // namespace
382 382
383 } // namespace webrtc 383 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/api/rtcstats_unittest.cc ('k') | webrtc/api/rtcstatsreport_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698