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

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

Issue 2472113002: Correct stats for RTCPeerConnectionStats.dataChannels[Opened/Closed]. (Closed)
Patch Set: Addressed deadbeef's comments Created 4 years, 1 month 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/rtcstatscollector.cc ('k') | no next file » | 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 1052 matching lines...) Expand 10 before | Expand all | Expand 10 after
1063 *stats = session_stats; 1063 *stats = session_stats;
1064 return true; 1064 return true;
1065 })); 1065 }));
1066 1066
1067 rtc::scoped_refptr<const RTCStatsReport> report = GetStatsReport(); 1067 rtc::scoped_refptr<const RTCStatsReport> report = GetStatsReport();
1068 ExpectReportContainsCandidatePair( 1068 ExpectReportContainsCandidatePair(
1069 report, session_stats.transport_stats["transport"]); 1069 report, session_stats.transport_stats["transport"]);
1070 } 1070 }
1071 1071
1072 TEST_F(RTCStatsCollectorTest, CollectRTCPeerConnectionStats) { 1072 TEST_F(RTCStatsCollectorTest, CollectRTCPeerConnectionStats) {
1073 rtc::scoped_refptr<const RTCStatsReport> report = GetStatsReport();
1074 EXPECT_EQ(report->GetStatsOfType<RTCPeerConnectionStats>().size(),
1075 static_cast<size_t>(1)) << "Expecting 1 RTCPeerConnectionStats.";
1076 const RTCStats* stats = report->Get("RTCPeerConnection");
1077 EXPECT_TRUE(stats);
1078 { 1073 {
1079 // Expected stats with no data channels 1074 rtc::scoped_refptr<const RTCStatsReport> report = GetStatsReport();
1080 const RTCPeerConnectionStats& pcstats = 1075 RTCPeerConnectionStats expected("RTCPeerConnection",
1081 stats->cast_to<RTCPeerConnectionStats>(); 1076 report->timestamp_us());
1082 EXPECT_EQ(*pcstats.data_channels_opened, static_cast<uint32_t>(0)); 1077 expected.data_channels_opened = 0;
1083 EXPECT_EQ(*pcstats.data_channels_closed, static_cast<uint32_t>(0)); 1078 expected.data_channels_closed = 0;
1079 EXPECT_TRUE(report->Get("RTCPeerConnection"));
1080 EXPECT_EQ(expected,
1081 report->Get("RTCPeerConnection")->cast_to<
1082 RTCPeerConnectionStats>());
1084 } 1083 }
1085 1084
1086 test_->data_channels().push_back( 1085 rtc::scoped_refptr<DataChannel> dummy_channel_a = DataChannel::Create(
1087 new MockDataChannel(0, DataChannelInterface::kConnecting)); 1086 nullptr, cricket::DCT_NONE, "DummyChannelA", InternalDataChannelInit());
1088 test_->data_channels().push_back( 1087 test_->pc().SignalDataChannelCreated(dummy_channel_a.get());
1089 new MockDataChannel(1, DataChannelInterface::kOpen)); 1088 rtc::scoped_refptr<DataChannel> dummy_channel_b = DataChannel::Create(
1090 test_->data_channels().push_back( 1089 nullptr, cricket::DCT_NONE, "DummyChannelB", InternalDataChannelInit());
1091 new MockDataChannel(2, DataChannelInterface::kClosing)); 1090 test_->pc().SignalDataChannelCreated(dummy_channel_b.get());
1092 test_->data_channels().push_back(
1093 new MockDataChannel(3, DataChannelInterface::kClosed));
1094 1091
1095 collector_->ClearCachedStatsReport(); 1092 dummy_channel_a->SignalOpened(dummy_channel_a.get());
1096 report = GetStatsReport(); 1093 // Closing a channel that is not opened should not affect the counts.
1097 EXPECT_EQ(report->GetStatsOfType<RTCPeerConnectionStats>().size(), 1094 dummy_channel_b->SignalClosed(dummy_channel_b.get());
1098 static_cast<size_t>(1)) << "Expecting 1 RTCPeerConnectionStats."; 1095
1099 stats = report->Get("RTCPeerConnection");
1100 ASSERT_TRUE(stats);
1101 { 1096 {
1102 // Expected stats with the above four data channels 1097 collector_->ClearCachedStatsReport();
1103 // TODO(hbos): When the |RTCPeerConnectionStats| is the number of data 1098 rtc::scoped_refptr<const RTCStatsReport> report = GetStatsReport();
1104 // channels that have been opened and closed, not the numbers currently 1099 RTCPeerConnectionStats expected("RTCPeerConnection",
1105 // open/closed, we would expect opened >= closed and (opened - closed) to be 1100 report->timestamp_us());
1106 // the number currently open. crbug.com/636818. 1101 expected.data_channels_opened = 1;
1107 const RTCPeerConnectionStats& pcstats = 1102 expected.data_channels_closed = 0;
1108 stats->cast_to<RTCPeerConnectionStats>(); 1103 EXPECT_TRUE(report->Get("RTCPeerConnection"));
1109 EXPECT_EQ(*pcstats.data_channels_opened, static_cast<uint32_t>(1)); 1104 EXPECT_EQ(expected,
1110 EXPECT_EQ(*pcstats.data_channels_closed, static_cast<uint32_t>(3)); 1105 report->Get("RTCPeerConnection")->cast_to<
1106 RTCPeerConnectionStats>());
1107 }
1108
1109 dummy_channel_b->SignalOpened(dummy_channel_b.get());
1110 dummy_channel_b->SignalClosed(dummy_channel_b.get());
1111
1112 {
1113 collector_->ClearCachedStatsReport();
1114 rtc::scoped_refptr<const RTCStatsReport> report = GetStatsReport();
1115 RTCPeerConnectionStats expected("RTCPeerConnection",
1116 report->timestamp_us());
1117 expected.data_channels_opened = 2;
1118 expected.data_channels_closed = 1;
1119 EXPECT_TRUE(report->Get("RTCPeerConnection"));
1120 EXPECT_EQ(expected,
1121 report->Get("RTCPeerConnection")->cast_to<
1122 RTCPeerConnectionStats>());
1111 } 1123 }
1112 } 1124 }
1113 1125
1114 TEST_F(RTCStatsCollectorTest, 1126 TEST_F(RTCStatsCollectorTest,
1115 CollectRTCMediaStreamStatsAndRTCMediaStreamTrackStats_Audio) { 1127 CollectRTCMediaStreamStatsAndRTCMediaStreamTrackStats_Audio) {
1116 rtc::scoped_refptr<StreamCollection> local_streams = 1128 rtc::scoped_refptr<StreamCollection> local_streams =
1117 StreamCollection::Create(); 1129 StreamCollection::Create();
1118 rtc::scoped_refptr<StreamCollection> remote_streams = 1130 rtc::scoped_refptr<StreamCollection> remote_streams =
1119 StreamCollection::Create(); 1131 StreamCollection::Create();
1120 EXPECT_CALL(test_->pc(), local_streams()) 1132 EXPECT_CALL(test_->pc(), local_streams())
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
1635 rtc::scoped_refptr<FakeRTCStatsCollector> collector_; 1647 rtc::scoped_refptr<FakeRTCStatsCollector> collector_;
1636 }; 1648 };
1637 1649
1638 TEST_F(RTCStatsCollectorTestWithFakeCollector, ThreadUsageAndResultsMerging) { 1650 TEST_F(RTCStatsCollectorTestWithFakeCollector, ThreadUsageAndResultsMerging) {
1639 collector_->VerifyThreadUsageAndResultsMerging(); 1651 collector_->VerifyThreadUsageAndResultsMerging();
1640 } 1652 }
1641 1653
1642 } // namespace 1654 } // namespace
1643 1655
1644 } // namespace webrtc 1656 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/api/rtcstatscollector.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698