OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2014 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 using testing::Invoke; | 44 using testing::Invoke; |
45 using testing::Return; | 45 using testing::Return; |
46 using testing::ReturnNull; | 46 using testing::ReturnNull; |
47 using testing::ReturnRef; | 47 using testing::ReturnRef; |
48 using testing::SetArgPointee; | 48 using testing::SetArgPointee; |
49 using webrtc::PeerConnectionInterface; | 49 using webrtc::PeerConnectionInterface; |
50 using webrtc::StatsReport; | 50 using webrtc::StatsReport; |
51 using webrtc::StatsReports; | 51 using webrtc::StatsReports; |
52 | 52 |
53 namespace { | 53 namespace { |
54 const bool kDefaultRtcpMuxRequired = true; | 54 const bool kDefaultRtcpEnabled = false; |
55 const bool kDefaultSrtpRequired = true; | 55 const bool kDefaultSrtpRequired = true; |
56 } | 56 } |
57 | 57 |
58 namespace cricket { | 58 namespace cricket { |
59 | 59 |
60 class ChannelManager; | 60 class ChannelManager; |
61 | 61 |
62 } // namespace cricket | 62 } // namespace cricket |
63 | 63 |
64 namespace webrtc { | 64 namespace webrtc { |
(...skipping 795 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
860 InitSessionStats(kVideoChannelName); | 860 InitSessionStats(kVideoChannelName); |
861 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( | 861 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
862 [this](const ChannelNamePairs&) { | 862 [this](const ChannelNamePairs&) { |
863 return std::unique_ptr<SessionStats>( | 863 return std::unique_ptr<SessionStats>( |
864 new SessionStats(session_stats_)); | 864 new SessionStats(session_stats_)); |
865 })); | 865 })); |
866 | 866 |
867 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 867 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
868 cricket::VideoChannel video_channel( | 868 cricket::VideoChannel video_channel( |
869 worker_thread_, network_thread_, nullptr, media_channel, | 869 worker_thread_, network_thread_, nullptr, media_channel, |
870 kVideoChannelName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 870 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
871 StatsReports reports; // returned values. | 871 StatsReports reports; // returned values. |
872 cricket::VideoSenderInfo video_sender_info; | 872 cricket::VideoSenderInfo video_sender_info; |
873 cricket::VideoMediaInfo stats_read; | 873 cricket::VideoMediaInfo stats_read; |
874 // The number of bytes must be larger than 0xFFFFFFFF for this test. | 874 // The number of bytes must be larger than 0xFFFFFFFF for this test. |
875 const int64_t kBytesSent = 12345678901234LL; | 875 const int64_t kBytesSent = 12345678901234LL; |
876 const std::string kBytesSentString("12345678901234"); | 876 const std::string kBytesSentString("12345678901234"); |
877 | 877 |
878 AddOutgoingVideoTrackStats(); | 878 AddOutgoingVideoTrackStats(); |
879 stats.AddStream(stream_); | 879 stats.AddStream(stream_); |
880 | 880 |
(...skipping 28 matching lines...) Expand all Loading... |
909 InitSessionStats(kVideoChannelName); | 909 InitSessionStats(kVideoChannelName); |
910 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( | 910 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
911 [this](const ChannelNamePairs&) { | 911 [this](const ChannelNamePairs&) { |
912 return std::unique_ptr<SessionStats>( | 912 return std::unique_ptr<SessionStats>( |
913 new SessionStats(session_stats_)); | 913 new SessionStats(session_stats_)); |
914 })); | 914 })); |
915 | 915 |
916 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 916 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
917 cricket::VideoChannel video_channel( | 917 cricket::VideoChannel video_channel( |
918 worker_thread_, network_thread_, nullptr, media_channel, | 918 worker_thread_, network_thread_, nullptr, media_channel, |
919 kVideoChannelName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 919 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
920 | 920 |
921 StatsReports reports; // returned values. | 921 StatsReports reports; // returned values. |
922 cricket::VideoSenderInfo video_sender_info; | 922 cricket::VideoSenderInfo video_sender_info; |
923 cricket::VideoMediaInfo stats_read; | 923 cricket::VideoMediaInfo stats_read; |
924 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and | 924 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and |
925 // BWE. | 925 // BWE. |
926 const int64_t kBytesSent = 12345678901234LL; | 926 const int64_t kBytesSent = 12345678901234LL; |
927 const std::string kBytesSentString("12345678901234"); | 927 const std::string kBytesSentString("12345678901234"); |
928 | 928 |
929 AddOutgoingVideoTrackStats(); | 929 AddOutgoingVideoTrackStats(); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
985 } | 985 } |
986 | 986 |
987 // This test verifies that the empty track report exists in the returned stats | 987 // This test verifies that the empty track report exists in the returned stats |
988 // without calling StatsCollector::UpdateStats. | 988 // without calling StatsCollector::UpdateStats. |
989 TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) { | 989 TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) { |
990 StatsCollectorForTest stats(&pc_); | 990 StatsCollectorForTest stats(&pc_); |
991 | 991 |
992 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 992 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
993 cricket::VideoChannel video_channel( | 993 cricket::VideoChannel video_channel( |
994 worker_thread_, network_thread_, nullptr, media_channel, "video", | 994 worker_thread_, network_thread_, nullptr, media_channel, "video", |
995 kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 995 kDefaultRtcpEnabled, kDefaultSrtpRequired); |
996 AddOutgoingVideoTrackStats(); | 996 AddOutgoingVideoTrackStats(); |
997 stats.AddStream(stream_); | 997 stats.AddStream(stream_); |
998 | 998 |
999 // Verfies the existence of the track report. | 999 // Verfies the existence of the track report. |
1000 StatsReports reports; | 1000 StatsReports reports; |
1001 stats.GetStats(NULL, &reports); | 1001 stats.GetStats(NULL, &reports); |
1002 EXPECT_EQ((size_t)1, reports.size()); | 1002 EXPECT_EQ((size_t)1, reports.size()); |
1003 EXPECT_EQ(StatsReport::kStatsReportTypeTrack, reports[0]->type()); | 1003 EXPECT_EQ(StatsReport::kStatsReportTypeTrack, reports[0]->type()); |
1004 EXPECT_EQ(0, reports[0]->timestamp()); | 1004 EXPECT_EQ(0, reports[0]->timestamp()); |
1005 | 1005 |
(...skipping 18 matching lines...) Expand all Loading... |
1024 InitSessionStats(kVideoChannelName); | 1024 InitSessionStats(kVideoChannelName); |
1025 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( | 1025 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
1026 [this](const ChannelNamePairs&) { | 1026 [this](const ChannelNamePairs&) { |
1027 return std::unique_ptr<SessionStats>( | 1027 return std::unique_ptr<SessionStats>( |
1028 new SessionStats(session_stats_)); | 1028 new SessionStats(session_stats_)); |
1029 })); | 1029 })); |
1030 | 1030 |
1031 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1031 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1032 cricket::VideoChannel video_channel( | 1032 cricket::VideoChannel video_channel( |
1033 worker_thread_, network_thread_, nullptr, media_channel, | 1033 worker_thread_, network_thread_, nullptr, media_channel, |
1034 kVideoChannelName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 1034 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
1035 AddOutgoingVideoTrackStats(); | 1035 AddOutgoingVideoTrackStats(); |
1036 stats.AddStream(stream_); | 1036 stats.AddStream(stream_); |
1037 | 1037 |
1038 // Constructs an ssrc stats update. | 1038 // Constructs an ssrc stats update. |
1039 cricket::VideoSenderInfo video_sender_info; | 1039 cricket::VideoSenderInfo video_sender_info; |
1040 cricket::VideoMediaInfo stats_read; | 1040 cricket::VideoMediaInfo stats_read; |
1041 const int64_t kBytesSent = 12345678901234LL; | 1041 const int64_t kBytesSent = 12345678901234LL; |
1042 | 1042 |
1043 // Construct a stats value to read. | 1043 // Construct a stats value to read. |
1044 video_sender_info.add_ssrc(1234); | 1044 video_sender_info.add_ssrc(1234); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1093 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1093 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1094 .WillRepeatedly(Return(false)); | 1094 .WillRepeatedly(Return(false)); |
1095 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1095 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1096 .WillRepeatedly(Return(nullptr)); | 1096 .WillRepeatedly(Return(nullptr)); |
1097 | 1097 |
1098 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1098 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1099 // The transport_name known by the video channel. | 1099 // The transport_name known by the video channel. |
1100 const std::string kVcName("vcname"); | 1100 const std::string kVcName("vcname"); |
1101 cricket::VideoChannel video_channel( | 1101 cricket::VideoChannel video_channel( |
1102 worker_thread_, network_thread_, nullptr, media_channel, kVcName, | 1102 worker_thread_, network_thread_, nullptr, media_channel, kVcName, |
1103 kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 1103 kDefaultRtcpEnabled, kDefaultSrtpRequired); |
1104 AddOutgoingVideoTrackStats(); | 1104 AddOutgoingVideoTrackStats(); |
1105 stats.AddStream(stream_); | 1105 stats.AddStream(stream_); |
1106 | 1106 |
1107 // Constructs an ssrc stats update. | 1107 // Constructs an ssrc stats update. |
1108 cricket::VideoSenderInfo video_sender_info; | 1108 cricket::VideoSenderInfo video_sender_info; |
1109 cricket::VideoMediaInfo stats_read; | 1109 cricket::VideoMediaInfo stats_read; |
1110 const int64_t kBytesSent = 12345678901234LL; | 1110 const int64_t kBytesSent = 12345678901234LL; |
1111 | 1111 |
1112 // Construct a stats value to read. | 1112 // Construct a stats value to read. |
1113 video_sender_info.add_ssrc(1234); | 1113 video_sender_info.add_ssrc(1234); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1154 // This test verifies that a remote stats object will not be created for | 1154 // This test verifies that a remote stats object will not be created for |
1155 // an outgoing SSRC where remote stats are not returned. | 1155 // an outgoing SSRC where remote stats are not returned. |
1156 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) { | 1156 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) { |
1157 StatsCollectorForTest stats(&pc_); | 1157 StatsCollectorForTest stats(&pc_); |
1158 | 1158 |
1159 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1159 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1160 // The transport_name known by the video channel. | 1160 // The transport_name known by the video channel. |
1161 const std::string kVcName("vcname"); | 1161 const std::string kVcName("vcname"); |
1162 cricket::VideoChannel video_channel( | 1162 cricket::VideoChannel video_channel( |
1163 worker_thread_, network_thread_, nullptr, media_channel, kVcName, | 1163 worker_thread_, network_thread_, nullptr, media_channel, kVcName, |
1164 kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 1164 kDefaultRtcpEnabled, kDefaultSrtpRequired); |
1165 AddOutgoingVideoTrackStats(); | 1165 AddOutgoingVideoTrackStats(); |
1166 stats.AddStream(stream_); | 1166 stats.AddStream(stream_); |
1167 | 1167 |
1168 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 1168 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
1169 StatsReports reports; | 1169 StatsReports reports; |
1170 stats.GetStats(NULL, &reports); | 1170 stats.GetStats(NULL, &reports); |
1171 const StatsReport* remote_report = FindNthReportByType(reports, | 1171 const StatsReport* remote_report = FindNthReportByType(reports, |
1172 StatsReport::kStatsReportTypeRemoteSsrc, 1); | 1172 StatsReport::kStatsReportTypeRemoteSsrc, 1); |
1173 EXPECT_TRUE(remote_report == NULL); | 1173 EXPECT_TRUE(remote_report == NULL); |
1174 } | 1174 } |
1175 | 1175 |
1176 // This test verifies that a remote stats object will be created for | 1176 // This test verifies that a remote stats object will be created for |
1177 // an outgoing SSRC where stats are returned. | 1177 // an outgoing SSRC where stats are returned. |
1178 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) { | 1178 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) { |
1179 StatsCollectorForTest stats(&pc_); | 1179 StatsCollectorForTest stats(&pc_); |
1180 | 1180 |
1181 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1181 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1182 .WillRepeatedly(Return(false)); | 1182 .WillRepeatedly(Return(false)); |
1183 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1183 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1184 .WillRepeatedly(Return(nullptr)); | 1184 .WillRepeatedly(Return(nullptr)); |
1185 | 1185 |
1186 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1186 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1187 // The transport_name known by the video channel. | 1187 // The transport_name known by the video channel. |
1188 const std::string kVcName("vcname"); | 1188 const std::string kVcName("vcname"); |
1189 cricket::VideoChannel video_channel( | 1189 cricket::VideoChannel video_channel( |
1190 worker_thread_, network_thread_, nullptr, media_channel, kVcName, | 1190 worker_thread_, network_thread_, nullptr, media_channel, kVcName, |
1191 kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 1191 kDefaultRtcpEnabled, kDefaultSrtpRequired); |
1192 AddOutgoingVideoTrackStats(); | 1192 AddOutgoingVideoTrackStats(); |
1193 stats.AddStream(stream_); | 1193 stats.AddStream(stream_); |
1194 | 1194 |
1195 // Instruct the session to return stats containing the transport channel. | 1195 // Instruct the session to return stats containing the transport channel. |
1196 InitSessionStats(kVcName); | 1196 InitSessionStats(kVcName); |
1197 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( | 1197 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
1198 [this](const ChannelNamePairs&) { | 1198 [this](const ChannelNamePairs&) { |
1199 return std::unique_ptr<SessionStats>( | 1199 return std::unique_ptr<SessionStats>( |
1200 new SessionStats(session_stats_)); | 1200 new SessionStats(session_stats_)); |
1201 })); | 1201 })); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1241 InitSessionStats(kVideoChannelName); | 1241 InitSessionStats(kVideoChannelName); |
1242 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( | 1242 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
1243 [this](const ChannelNamePairs&) { | 1243 [this](const ChannelNamePairs&) { |
1244 return std::unique_ptr<SessionStats>( | 1244 return std::unique_ptr<SessionStats>( |
1245 new SessionStats(session_stats_)); | 1245 new SessionStats(session_stats_)); |
1246 })); | 1246 })); |
1247 | 1247 |
1248 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1248 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1249 cricket::VideoChannel video_channel( | 1249 cricket::VideoChannel video_channel( |
1250 worker_thread_, network_thread_, nullptr, media_channel, | 1250 worker_thread_, network_thread_, nullptr, media_channel, |
1251 kVideoChannelName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 1251 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
1252 AddIncomingVideoTrackStats(); | 1252 AddIncomingVideoTrackStats(); |
1253 stats.AddStream(stream_); | 1253 stats.AddStream(stream_); |
1254 | 1254 |
1255 // Constructs an ssrc stats update. | 1255 // Constructs an ssrc stats update. |
1256 cricket::VideoReceiverInfo video_receiver_info; | 1256 cricket::VideoReceiverInfo video_receiver_info; |
1257 cricket::VideoMediaInfo stats_read; | 1257 cricket::VideoMediaInfo stats_read; |
1258 const int64_t kNumOfPacketsConcealed = 54321; | 1258 const int64_t kNumOfPacketsConcealed = 54321; |
1259 | 1259 |
1260 // Construct a stats value to read. | 1260 // Construct a stats value to read. |
1261 video_receiver_info.add_ssrc(1234); | 1261 video_receiver_info.add_ssrc(1234); |
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1554 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1554 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1555 .WillRepeatedly(Return(false)); | 1555 .WillRepeatedly(Return(false)); |
1556 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1556 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1557 .WillRepeatedly(Return(nullptr)); | 1557 .WillRepeatedly(Return(nullptr)); |
1558 | 1558 |
1559 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1559 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1560 // The transport_name known by the voice channel. | 1560 // The transport_name known by the voice channel. |
1561 const std::string kVcName("vcname"); | 1561 const std::string kVcName("vcname"); |
1562 cricket::VoiceChannel voice_channel( | 1562 cricket::VoiceChannel voice_channel( |
1563 worker_thread_, network_thread_, nullptr, media_engine_, media_channel, | 1563 worker_thread_, network_thread_, nullptr, media_engine_, media_channel, |
1564 kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 1564 kVcName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
1565 | 1565 |
1566 // Create a local stream with a local audio track and adds it to the stats. | 1566 // Create a local stream with a local audio track and adds it to the stats. |
1567 if (stream_ == NULL) | 1567 if (stream_ == NULL) |
1568 stream_ = webrtc::MediaStream::Create("streamlabel"); | 1568 stream_ = webrtc::MediaStream::Create("streamlabel"); |
1569 | 1569 |
1570 rtc::scoped_refptr<FakeAudioTrackWithInitValue> local_track( | 1570 rtc::scoped_refptr<FakeAudioTrackWithInitValue> local_track( |
1571 new rtc::RefCountedObject<FakeAudioTrackWithInitValue>(kLocalTrackId)); | 1571 new rtc::RefCountedObject<FakeAudioTrackWithInitValue>(kLocalTrackId)); |
1572 stream_->AddTrack(local_track); | 1572 stream_->AddTrack(local_track); |
1573 EXPECT_CALL(session_, GetLocalTrackIdBySsrc(kSsrcOfTrack, _)) | 1573 EXPECT_CALL(session_, GetLocalTrackIdBySsrc(kSsrcOfTrack, _)) |
1574 .WillOnce(DoAll(SetArgPointee<1>(kLocalTrackId), Return(true))); | 1574 .WillOnce(DoAll(SetArgPointee<1>(kLocalTrackId), Return(true))); |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1664 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1664 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1665 .WillRepeatedly(Return(false)); | 1665 .WillRepeatedly(Return(false)); |
1666 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1666 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1667 .WillRepeatedly(Return(nullptr)); | 1667 .WillRepeatedly(Return(nullptr)); |
1668 | 1668 |
1669 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1669 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1670 // The transport_name known by the voice channel. | 1670 // The transport_name known by the voice channel. |
1671 const std::string kVcName("vcname"); | 1671 const std::string kVcName("vcname"); |
1672 cricket::VoiceChannel voice_channel( | 1672 cricket::VoiceChannel voice_channel( |
1673 worker_thread_, network_thread_, nullptr, media_engine_, media_channel, | 1673 worker_thread_, network_thread_, nullptr, media_engine_, media_channel, |
1674 kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 1674 kVcName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
1675 AddOutgoingAudioTrackStats(); | 1675 AddOutgoingAudioTrackStats(); |
1676 stats.AddStream(stream_); | 1676 stats.AddStream(stream_); |
1677 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); | 1677 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); |
1678 | 1678 |
1679 cricket::VoiceSenderInfo voice_sender_info; | 1679 cricket::VoiceSenderInfo voice_sender_info; |
1680 InitVoiceSenderInfo(&voice_sender_info); | 1680 InitVoiceSenderInfo(&voice_sender_info); |
1681 | 1681 |
1682 cricket::VoiceMediaInfo stats_read; | 1682 cricket::VoiceMediaInfo stats_read; |
1683 StatsReports reports; // returned values. | 1683 StatsReports reports; // returned values. |
1684 SetupAndVerifyAudioTrackStats( | 1684 SetupAndVerifyAudioTrackStats( |
(...skipping 15 matching lines...) Expand all Loading... |
1700 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1700 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1701 .WillRepeatedly(Return(false)); | 1701 .WillRepeatedly(Return(false)); |
1702 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1702 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1703 .WillRepeatedly(Return(nullptr)); | 1703 .WillRepeatedly(Return(nullptr)); |
1704 | 1704 |
1705 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1705 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1706 // The transport_name known by the voice channel. | 1706 // The transport_name known by the voice channel. |
1707 const std::string kVcName("vcname"); | 1707 const std::string kVcName("vcname"); |
1708 cricket::VoiceChannel voice_channel( | 1708 cricket::VoiceChannel voice_channel( |
1709 worker_thread_, network_thread_, nullptr, media_engine_, media_channel, | 1709 worker_thread_, network_thread_, nullptr, media_engine_, media_channel, |
1710 kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 1710 kVcName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
1711 AddIncomingAudioTrackStats(); | 1711 AddIncomingAudioTrackStats(); |
1712 stats.AddStream(stream_); | 1712 stats.AddStream(stream_); |
1713 | 1713 |
1714 cricket::VoiceReceiverInfo voice_receiver_info; | 1714 cricket::VoiceReceiverInfo voice_receiver_info; |
1715 InitVoiceReceiverInfo(&voice_receiver_info); | 1715 InitVoiceReceiverInfo(&voice_receiver_info); |
1716 voice_receiver_info.codec_name = "fake_codec"; | 1716 voice_receiver_info.codec_name = "fake_codec"; |
1717 | 1717 |
1718 cricket::VoiceMediaInfo stats_read; | 1718 cricket::VoiceMediaInfo stats_read; |
1719 StatsReports reports; // returned values. | 1719 StatsReports reports; // returned values. |
1720 SetupAndVerifyAudioTrackStats( | 1720 SetupAndVerifyAudioTrackStats( |
1721 audio_track_.get(), stream_.get(), &stats, &voice_channel, kVcName, | 1721 audio_track_.get(), stream_.get(), &stats, &voice_channel, kVcName, |
1722 media_channel, NULL, &voice_receiver_info, &stats_read, &reports); | 1722 media_channel, NULL, &voice_receiver_info, &stats_read, &reports); |
1723 } | 1723 } |
1724 | 1724 |
1725 // This test verifies that a local stats object won't update its statistics | 1725 // This test verifies that a local stats object won't update its statistics |
1726 // after a RemoveLocalAudioTrack() call. | 1726 // after a RemoveLocalAudioTrack() call. |
1727 TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) { | 1727 TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) { |
1728 StatsCollectorForTest stats(&pc_); | 1728 StatsCollectorForTest stats(&pc_); |
1729 | 1729 |
1730 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1730 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1731 .WillRepeatedly(Return(false)); | 1731 .WillRepeatedly(Return(false)); |
1732 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1732 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1733 .WillRepeatedly(Return(nullptr)); | 1733 .WillRepeatedly(Return(nullptr)); |
1734 | 1734 |
1735 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1735 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1736 // The transport_name known by the voice channel. | 1736 // The transport_name known by the voice channel. |
1737 const std::string kVcName("vcname"); | 1737 const std::string kVcName("vcname"); |
1738 cricket::VoiceChannel voice_channel( | 1738 cricket::VoiceChannel voice_channel( |
1739 worker_thread_, network_thread_, nullptr, media_engine_, media_channel, | 1739 worker_thread_, network_thread_, nullptr, media_engine_, media_channel, |
1740 kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 1740 kVcName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
1741 AddOutgoingAudioTrackStats(); | 1741 AddOutgoingAudioTrackStats(); |
1742 stats.AddStream(stream_); | 1742 stats.AddStream(stream_); |
1743 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); | 1743 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); |
1744 | 1744 |
1745 // Instruct the session to return stats containing the transport channel. | 1745 // Instruct the session to return stats containing the transport channel. |
1746 InitSessionStats(kVcName); | 1746 InitSessionStats(kVcName); |
1747 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( | 1747 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
1748 [this](const ChannelNamePairs&) { | 1748 [this](const ChannelNamePairs&) { |
1749 return std::unique_ptr<SessionStats>( | 1749 return std::unique_ptr<SessionStats>( |
1750 new SessionStats(session_stats_)); | 1750 new SessionStats(session_stats_)); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1794 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1794 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1795 .WillRepeatedly(Return(false)); | 1795 .WillRepeatedly(Return(false)); |
1796 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1796 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1797 .WillRepeatedly(Return(nullptr)); | 1797 .WillRepeatedly(Return(nullptr)); |
1798 | 1798 |
1799 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1799 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1800 // The transport_name known by the voice channel. | 1800 // The transport_name known by the voice channel. |
1801 const std::string kVcName("vcname"); | 1801 const std::string kVcName("vcname"); |
1802 cricket::VoiceChannel voice_channel( | 1802 cricket::VoiceChannel voice_channel( |
1803 worker_thread_, network_thread_, nullptr, media_engine_, media_channel, | 1803 worker_thread_, network_thread_, nullptr, media_engine_, media_channel, |
1804 kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 1804 kVcName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
1805 | 1805 |
1806 // Create a local stream with a local audio track and adds it to the stats. | 1806 // Create a local stream with a local audio track and adds it to the stats. |
1807 AddOutgoingAudioTrackStats(); | 1807 AddOutgoingAudioTrackStats(); |
1808 stats.AddStream(stream_); | 1808 stats.AddStream(stream_); |
1809 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); | 1809 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); |
1810 | 1810 |
1811 // Create a remote stream with a remote audio track and adds it to the stats. | 1811 // Create a remote stream with a remote audio track and adds it to the stats. |
1812 rtc::scoped_refptr<webrtc::MediaStream> remote_stream( | 1812 rtc::scoped_refptr<webrtc::MediaStream> remote_stream( |
1813 webrtc::MediaStream::Create("remotestreamlabel")); | 1813 webrtc::MediaStream::Create("remotestreamlabel")); |
1814 rtc::scoped_refptr<FakeAudioTrack> remote_track( | 1814 rtc::scoped_refptr<FakeAudioTrack> remote_track( |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1884 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1884 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1885 .WillRepeatedly(Return(false)); | 1885 .WillRepeatedly(Return(false)); |
1886 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1886 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1887 .WillRepeatedly(Return(nullptr)); | 1887 .WillRepeatedly(Return(nullptr)); |
1888 | 1888 |
1889 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1889 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1890 // The transport_name known by the voice channel. | 1890 // The transport_name known by the voice channel. |
1891 const std::string kVcName("vcname"); | 1891 const std::string kVcName("vcname"); |
1892 cricket::VoiceChannel voice_channel( | 1892 cricket::VoiceChannel voice_channel( |
1893 worker_thread_, network_thread_, nullptr, media_engine_, media_channel, | 1893 worker_thread_, network_thread_, nullptr, media_engine_, media_channel, |
1894 kVcName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 1894 kVcName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
1895 | 1895 |
1896 // Create a local stream with a local audio track and adds it to the stats. | 1896 // Create a local stream with a local audio track and adds it to the stats. |
1897 AddOutgoingAudioTrackStats(); | 1897 AddOutgoingAudioTrackStats(); |
1898 stats.AddStream(stream_); | 1898 stats.AddStream(stream_); |
1899 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); | 1899 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); |
1900 | 1900 |
1901 cricket::VoiceSenderInfo voice_sender_info; | 1901 cricket::VoiceSenderInfo voice_sender_info; |
1902 voice_sender_info.add_ssrc(kSsrcOfTrack); | 1902 voice_sender_info.add_ssrc(kSsrcOfTrack); |
1903 | 1903 |
1904 cricket::VoiceMediaInfo stats_read; | 1904 cricket::VoiceMediaInfo stats_read; |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1944 InitSessionStats(kVideoChannelName); | 1944 InitSessionStats(kVideoChannelName); |
1945 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( | 1945 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
1946 [this](const ChannelNamePairs&) { | 1946 [this](const ChannelNamePairs&) { |
1947 return std::unique_ptr<SessionStats>( | 1947 return std::unique_ptr<SessionStats>( |
1948 new SessionStats(session_stats_)); | 1948 new SessionStats(session_stats_)); |
1949 })); | 1949 })); |
1950 | 1950 |
1951 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1951 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1952 cricket::VideoChannel video_channel( | 1952 cricket::VideoChannel video_channel( |
1953 worker_thread_, network_thread_, nullptr, media_channel, | 1953 worker_thread_, network_thread_, nullptr, media_channel, |
1954 kVideoChannelName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 1954 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
1955 StatsReports reports; // returned values. | 1955 StatsReports reports; // returned values. |
1956 cricket::VideoSenderInfo video_sender_info; | 1956 cricket::VideoSenderInfo video_sender_info; |
1957 cricket::VideoMediaInfo stats_read; | 1957 cricket::VideoMediaInfo stats_read; |
1958 | 1958 |
1959 AddOutgoingVideoTrackStats(); | 1959 AddOutgoingVideoTrackStats(); |
1960 stats.AddStream(stream_); | 1960 stats.AddStream(stream_); |
1961 | 1961 |
1962 // Construct a stats value to read. | 1962 // Construct a stats value to read. |
1963 video_sender_info.add_ssrc(1234); | 1963 video_sender_info.add_ssrc(1234); |
1964 video_sender_info.frames_encoded = 10; | 1964 video_sender_info.frames_encoded = 10; |
(...skipping 27 matching lines...) Expand all Loading... |
1992 InitSessionStats(kVideoChannelName); | 1992 InitSessionStats(kVideoChannelName); |
1993 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( | 1993 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
1994 [this](const ChannelNamePairs&) { | 1994 [this](const ChannelNamePairs&) { |
1995 return std::unique_ptr<SessionStats>( | 1995 return std::unique_ptr<SessionStats>( |
1996 new SessionStats(session_stats_)); | 1996 new SessionStats(session_stats_)); |
1997 })); | 1997 })); |
1998 | 1998 |
1999 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1999 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
2000 cricket::VideoChannel video_channel( | 2000 cricket::VideoChannel video_channel( |
2001 worker_thread_, network_thread_, nullptr, media_channel, | 2001 worker_thread_, network_thread_, nullptr, media_channel, |
2002 kVideoChannelName, kDefaultRtcpMuxRequired, kDefaultSrtpRequired); | 2002 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
2003 StatsReports reports; // returned values. | 2003 StatsReports reports; // returned values. |
2004 cricket::VideoReceiverInfo video_receiver_info; | 2004 cricket::VideoReceiverInfo video_receiver_info; |
2005 cricket::VideoMediaInfo stats_read; | 2005 cricket::VideoMediaInfo stats_read; |
2006 | 2006 |
2007 AddIncomingVideoTrackStats(); | 2007 AddIncomingVideoTrackStats(); |
2008 stats.AddStream(stream_); | 2008 stats.AddStream(stream_); |
2009 | 2009 |
2010 // Construct a stats value to read. | 2010 // Construct a stats value to read. |
2011 video_receiver_info.add_ssrc(1234); | 2011 video_receiver_info.add_ssrc(1234); |
2012 video_receiver_info.frames_decoded = 10; | 2012 video_receiver_info.frames_decoded = 10; |
2013 stats_read.receivers.push_back(video_receiver_info); | 2013 stats_read.receivers.push_back(video_receiver_info); |
2014 | 2014 |
2015 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); | 2015 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); |
2016 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); | 2016 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); |
2017 EXPECT_CALL(*media_channel, GetStats(_)) | 2017 EXPECT_CALL(*media_channel, GetStats(_)) |
2018 .WillOnce(DoAll(SetArgPointee<0>(stats_read), Return(true))); | 2018 .WillOnce(DoAll(SetArgPointee<0>(stats_read), Return(true))); |
2019 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 2019 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
2020 stats.GetStats(NULL, &reports); | 2020 stats.GetStats(NULL, &reports); |
2021 EXPECT_EQ(rtc::ToString(video_receiver_info.frames_decoded), | 2021 EXPECT_EQ(rtc::ToString(video_receiver_info.frames_decoded), |
2022 ExtractSsrcStatsValue(reports, | 2022 ExtractSsrcStatsValue(reports, |
2023 StatsReport::kStatsValueNameFramesDecoded)); | 2023 StatsReport::kStatsValueNameFramesDecoded)); |
2024 } | 2024 } |
2025 | 2025 |
2026 } // namespace webrtc | 2026 } // namespace webrtc |
OLD | NEW |