Pivot old stats generation to iterate senders/receivers
This is the old-style-stats equivalent of CL 34360.
Bug: webrtc:8616
Change-Id: I12573eb305a8f1ecf8134b87ab14e33eaec5ba22
Reviewed-on: https://webrtc-review.googlesource.com/37080
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21497}diff --git a/pc/statscollector_unittest.cc b/pc/statscollector_unittest.cc
index 74a5b52..4973fd3 100644
--- a/pc/statscollector_unittest.cc
+++ b/pc/statscollector_unittest.cc
@@ -619,6 +619,8 @@
std::vector<rtc::scoped_refptr<RtpSenderInterface>>()));
EXPECT_CALL(pc_, GetReceivers()).WillRepeatedly(Return(
std::vector<rtc::scoped_refptr<RtpReceiverInterface>>()));
+ // Boring calls
+ EXPECT_CALL(pc_, GetCallStats()).WillRepeatedly(Return(Call::Stats()));
}
~StatsCollectorTest() {}
@@ -638,52 +640,6 @@
channel->set_transport_name_for_testing(kTransportName);
}
- // Adds a outgoing video track with a given SSRC into the stats.
- void AddOutgoingVideoTrackStats() {
- stream_ = webrtc::MediaStream::Create("streamlabel");
- track_ = webrtc::VideoTrack::Create(kLocalTrackId,
- webrtc::FakeVideoTrackSource::Create(),
- rtc::Thread::Current());
- stream_->AddTrack(track_);
- EXPECT_CALL(pc_, GetLocalTrackIdBySsrc(kSsrcOfTrack, _))
- .WillRepeatedly(DoAll(SetArgPointee<1>(kLocalTrackId), Return(true)));
- }
-
- // Adds a incoming video track with a given SSRC into the stats.
- void AddIncomingVideoTrackStats() {
- stream_ = webrtc::MediaStream::Create("streamlabel");
- track_ = webrtc::VideoTrack::Create(kRemoteTrackId,
- webrtc::FakeVideoTrackSource::Create(),
- rtc::Thread::Current());
- stream_->AddTrack(track_);
- EXPECT_CALL(pc_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _))
- .WillRepeatedly(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true)));
- }
-
- // Adds a outgoing audio track with a given SSRC into the stats.
- void AddOutgoingAudioTrackStats() {
- if (stream_ == NULL)
- stream_ = webrtc::MediaStream::Create("streamlabel");
-
- audio_track_ = new rtc::RefCountedObject<FakeAudioTrack>(
- kLocalTrackId);
- stream_->AddTrack(audio_track_);
- EXPECT_CALL(pc_, GetLocalTrackIdBySsrc(kSsrcOfTrack, _))
- .WillOnce(DoAll(SetArgPointee<1>(kLocalTrackId), Return(true)));
- }
-
- // Adds a incoming audio track with a given SSRC into the stats.
- void AddIncomingAudioTrackStats() {
- if (stream_ == NULL)
- stream_ = webrtc::MediaStream::Create("streamlabel");
-
- audio_track_ = new rtc::RefCountedObject<FakeAudioTrack>(
- kRemoteTrackId);
- stream_->AddTrack(audio_track_);
- EXPECT_CALL(pc_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _))
- .WillOnce(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true)));
- }
-
void AddDataChannel(cricket::DataChannelType type,
const std::string& label,
int id) {
@@ -769,6 +725,8 @@
const StatsReport* track_report = FindNthReportByType(
track_reports, StatsReport::kStatsReportTypeSsrc, 1);
EXPECT_TRUE(track_report);
+ if (!track_report)
+ return;
EXPECT_EQ(stats->GetTimeNow(), track_report->timestamp());
track_id = ExtractSsrcStatsValue(track_reports,
StatsReport::kStatsValueNameTrackId);
@@ -880,10 +838,83 @@
MockPeerConnection pc_;
FakeDataChannelProvider data_channel_provider_;
SessionStats session_stats_;
+ std::vector<rtc::scoped_refptr<DataChannel>> data_channels_;
+};
+
+class StatsCollectorTrackTest : public StatsCollectorTest,
+ public ::testing::WithParamInterface<bool> {
+ public:
+ // Adds a outgoing video track with a given SSRC into the stats.
+ // If GetParam() returns true, the track is also inserted into the local
+ // stream, which is created if necessary.
+ void AddOutgoingVideoTrackStats(StatsCollectorForTest* stats) {
+ track_ = webrtc::VideoTrack::Create(kLocalTrackId,
+ webrtc::FakeVideoTrackSource::Create(),
+ rtc::Thread::Current());
+ if (GetParam()) {
+ if (!stream_)
+ stream_ = webrtc::MediaStream::Create("streamlabel");
+ stream_->AddTrack(track_);
+ stats->AddStream(stream_);
+ } else {
+ stats->AddTrack(track_);
+ }
+ EXPECT_CALL(pc_, GetLocalTrackIdBySsrc(kSsrcOfTrack, _))
+ .WillRepeatedly(DoAll(SetArgPointee<1>(kLocalTrackId), Return(true)));
+ }
+
+ // Adds a incoming video track with a given SSRC into the stats.
+ void AddIncomingVideoTrackStats(StatsCollectorForTest* stats) {
+ track_ = webrtc::VideoTrack::Create(kRemoteTrackId,
+ webrtc::FakeVideoTrackSource::Create(),
+ rtc::Thread::Current());
+ if (GetParam()) {
+ stream_ = webrtc::MediaStream::Create("streamlabel");
+ stream_->AddTrack(track_);
+ stats->AddStream(stream_);
+ } else {
+ stats->AddTrack(track_);
+ }
+ EXPECT_CALL(pc_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _))
+ .WillRepeatedly(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true)));
+ }
+
+ // Adds a outgoing audio track with a given SSRC into the stats,
+ // and register it into the stats object.
+ // If GetParam() returns true, the track is also inserted into the local
+ // stream, which is created if necessary.
+ void AddOutgoingAudioTrackStats(StatsCollectorForTest* stats) {
+ audio_track_ = new rtc::RefCountedObject<FakeAudioTrack>(kLocalTrackId);
+ if (GetParam()) {
+ if (!stream_)
+ stream_ = webrtc::MediaStream::Create("streamlabel");
+ stream_->AddTrack(audio_track_);
+ stats->AddStream(stream_);
+ } else {
+ stats->AddTrack(audio_track_);
+ }
+ EXPECT_CALL(pc_, GetLocalTrackIdBySsrc(kSsrcOfTrack, _))
+ .WillOnce(DoAll(SetArgPointee<1>(kLocalTrackId), Return(true)));
+ }
+
+ // Adds a incoming audio track with a given SSRC into the stats.
+ void AddIncomingAudioTrackStats(StatsCollectorForTest* stats) {
+ audio_track_ = new rtc::RefCountedObject<FakeAudioTrack>(kRemoteTrackId);
+ if (GetParam()) {
+ if (stream_ == NULL)
+ stream_ = webrtc::MediaStream::Create("streamlabel");
+ stream_->AddTrack(audio_track_);
+ stats->AddStream(stream_);
+ } else {
+ stats->AddTrack(audio_track_);
+ }
+ EXPECT_CALL(pc_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _))
+ .WillOnce(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true)));
+ }
+
rtc::scoped_refptr<webrtc::MediaStream> stream_;
rtc::scoped_refptr<webrtc::VideoTrack> track_;
rtc::scoped_refptr<FakeAudioTrack> audio_track_;
- std::vector<rtc::scoped_refptr<DataChannel>> data_channels_;
};
TEST_F(StatsCollectorTest, FilterOutNegativeDataChannelId) {
@@ -948,7 +979,7 @@
}
// This test verifies that 64-bit counters are passed successfully.
-TEST_F(StatsCollectorTest, BytesCounterHandles64Bits) {
+TEST_P(StatsCollectorTrackTest, BytesCounterHandles64Bits) {
StatsCollectorForTest stats(&pc_);
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
@@ -974,8 +1005,7 @@
const int64_t kBytesSent = 12345678901234LL;
const std::string kBytesSentString("12345678901234");
- AddOutgoingVideoTrackStats();
- stats.AddStream(stream_);
+ AddOutgoingVideoTrackStats(&stats);
// Construct a stats value to read.
video_sender_info.add_ssrc(1234);
@@ -995,7 +1025,7 @@
}
// Test that audio BWE information is reported via stats.
-TEST_F(StatsCollectorTest, AudioBandwidthEstimationInfoIsReported) {
+TEST_P(StatsCollectorTrackTest, AudioBandwidthEstimationInfoIsReported) {
StatsCollectorForTest stats(&pc_);
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
@@ -1022,8 +1052,7 @@
const int64_t kBytesSent = 12345678901234LL;
const std::string kBytesSentString("12345678901234");
- AddOutgoingAudioTrackStats();
- stats.AddStream(stream_);
+ AddOutgoingAudioTrackStats(&stats);
// Construct a stats value to read.
voice_sender_info.add_ssrc(1234);
@@ -1060,7 +1089,7 @@
}
// Test that video BWE information is reported via stats.
-TEST_F(StatsCollectorTest, VideoBandwidthEstimationInfoIsReported) {
+TEST_P(StatsCollectorTrackTest, VideoBandwidthEstimationInfoIsReported) {
StatsCollectorForTest stats(&pc_);
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
@@ -1087,8 +1116,7 @@
const int64_t kBytesSent = 12345678901234LL;
const std::string kBytesSentString("12345678901234");
- AddOutgoingVideoTrackStats();
- stats.AddStream(stream_);
+ AddOutgoingVideoTrackStats(&stats);
// Construct a stats value to read.
video_sender_info.add_ssrc(1234);
@@ -1156,20 +1184,19 @@
// This test verifies that the empty track report exists in the returned stats
// without calling StatsCollector::UpdateStats.
-TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) {
+TEST_P(StatsCollectorTrackTest, TrackObjectExistsWithoutUpdateStats) {
StatsCollectorForTest stats(&pc_);
auto* media_channel = new MockVideoMediaChannel();
cricket::VideoChannel video_channel(
worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
"video", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
- AddOutgoingVideoTrackStats();
- stats.AddStream(stream_);
+ AddOutgoingVideoTrackStats(&stats);
// Verfies the existence of the track report.
StatsReports reports;
stats.GetStats(NULL, &reports);
- EXPECT_EQ((size_t)1, reports.size());
+ ASSERT_EQ((size_t)1, reports.size());
EXPECT_EQ(StatsReport::kStatsReportTypeTrack, reports[0]->type());
EXPECT_EQ(0, reports[0]->timestamp());
@@ -1182,7 +1209,7 @@
// This test verifies that the empty track report exists in the returned stats
// when StatsCollector::UpdateStats is called with ssrc stats.
-TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) {
+TEST_P(StatsCollectorTrackTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) {
StatsCollectorForTest stats(&pc_);
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
@@ -1201,8 +1228,7 @@
new SessionStats(session_stats_));
}));
- AddOutgoingVideoTrackStats();
- stats.AddStream(stream_);
+ AddOutgoingVideoTrackStats(&stats);
// Constructs an ssrc stats update.
cricket::VideoSenderInfo video_sender_info;
@@ -1238,7 +1264,7 @@
EXPECT_LE((size_t)3, reports.size());
track_report = FindNthReportByType(
reports, StatsReport::kStatsReportTypeTrack, 1);
- EXPECT_TRUE(track_report);
+ ASSERT_TRUE(track_report);
EXPECT_EQ(stats.GetTimeNow(), track_report->timestamp());
std::string ssrc_id = ExtractSsrcStatsValue(
@@ -1256,7 +1282,7 @@
// This test verifies that an SSRC object has the identifier of a Transport
// stats object, and that this transport stats object exists in stats.
-TEST_F(StatsCollectorTest, TransportObjectLinkedFromSsrcObject) {
+TEST_P(StatsCollectorTrackTest, TransportObjectLinkedFromSsrcObject) {
StatsCollectorForTest stats(&pc_);
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
@@ -1267,8 +1293,7 @@
cricket::VideoChannel video_channel(
worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
"vcname", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
- AddOutgoingVideoTrackStats();
- stats.AddStream(stream_);
+ AddOutgoingVideoTrackStats(&stats);
// Constructs an ssrc stats update.
cricket::VideoSenderInfo video_sender_info;
@@ -1319,15 +1344,14 @@
// This test verifies that a remote stats object will not be created for
// an outgoing SSRC where remote stats are not returned.
-TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) {
+TEST_P(StatsCollectorTrackTest, RemoteSsrcInfoIsAbsent) {
StatsCollectorForTest stats(&pc_);
auto* media_channel = new MockVideoMediaChannel();
cricket::VideoChannel video_channel(
worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
"vcname", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
- AddOutgoingVideoTrackStats();
- stats.AddStream(stream_);
+ AddOutgoingVideoTrackStats(&stats);
stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard);
StatsReports reports;
@@ -1339,7 +1363,7 @@
// This test verifies that a remote stats object will be created for
// an outgoing SSRC where stats are returned.
-TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) {
+TEST_P(StatsCollectorTrackTest, RemoteSsrcInfoIsPresent) {
StatsCollectorForTest stats(&pc_);
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
@@ -1351,8 +1375,7 @@
cricket::VideoChannel video_channel(
worker_thread_, network_thread_, nullptr, rtc::WrapUnique(media_channel),
"vcname", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
- AddOutgoingVideoTrackStats();
- stats.AddStream(stream_);
+ AddOutgoingVideoTrackStats(&stats);
// Instruct the session to return stats containing the transport channel.
InitSessionStats(&video_channel);
@@ -1391,7 +1414,7 @@
// This test verifies that the empty track report exists in the returned stats
// when StatsCollector::UpdateStats is called with ssrc stats.
-TEST_F(StatsCollectorTest, ReportsFromRemoteTrack) {
+TEST_P(StatsCollectorTrackTest, ReportsFromRemoteTrack) {
StatsCollectorForTest stats(&pc_);
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
@@ -1410,8 +1433,7 @@
new SessionStats(session_stats_));
}));
- AddIncomingVideoTrackStats();
- stats.AddStream(stream_);
+ AddIncomingVideoTrackStats(&stats);
// Constructs an ssrc stats update.
cricket::VideoReceiverInfo video_receiver_info;
@@ -1437,7 +1459,7 @@
EXPECT_LE(static_cast<size_t>(3), reports.size());
const StatsReport* track_report = FindNthReportByType(
reports, StatsReport::kStatsReportTypeTrack, 1);
- EXPECT_TRUE(track_report);
+ ASSERT_TRUE(track_report);
EXPECT_EQ(stats.GetTimeNow(), track_report->timestamp());
std::string ssrc_id = ExtractSsrcStatsValue(
@@ -1707,9 +1729,12 @@
// This test verifies that the audio/video related stats which are -1 initially
// will be filtered out.
-TEST_F(StatsCollectorTest, FilterOutNegativeInitialValues) {
+TEST_P(StatsCollectorTrackTest, FilterOutNegativeInitialValues) {
StatsCollectorForTest stats(&pc_);
+ // This test uses streams, but only works for the stream case.
+ if (!GetParam())
+ return;
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
EXPECT_CALL(pc_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
.WillRepeatedly(Return(nullptr));
@@ -1729,7 +1754,9 @@
stream_->AddTrack(local_track);
EXPECT_CALL(pc_, GetLocalTrackIdBySsrc(kSsrcOfTrack, _))
.WillOnce(DoAll(SetArgPointee<1>(kLocalTrackId), Return(true)));
- stats.AddStream(stream_);
+ if (GetParam()) {
+ stats.AddStream(stream_);
+ }
stats.AddLocalAudioTrack(local_track.get(), kSsrcOfTrack);
// Create a remote stream with a remote audio track and adds it to the stats.
@@ -1740,7 +1767,9 @@
EXPECT_CALL(pc_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _))
.WillOnce(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true)));
remote_stream->AddTrack(remote_track);
- stats.AddStream(remote_stream);
+ if (GetParam()) {
+ stats.AddStream(remote_stream);
+ }
InitSessionStats(&voice_channel);
EXPECT_CALL(pc_, GetSessionStats(_))
@@ -1784,7 +1813,7 @@
stats.GetStats(local_track.get(), &reports);
const StatsReport* report =
FindNthReportByType(reports, StatsReport::kStatsReportTypeSsrc, 1);
- EXPECT_TRUE(report);
+ ASSERT_TRUE(report);
// The -1 will not be added to the stats report.
std::string value_in_report;
EXPECT_FALSE(
@@ -1802,7 +1831,7 @@
reports.clear();
stats.GetStats(remote_track.get(), &reports);
report = FindNthReportByType(reports, StatsReport::kStatsReportTypeSsrc, 1);
- EXPECT_TRUE(report);
+ ASSERT_TRUE(report);
EXPECT_FALSE(GetValue(report,
StatsReport::kStatsValueNameCaptureStartNtpTimeMs,
&value_in_report));
@@ -1812,7 +1841,7 @@
// This test verifies that a local stats object can get statistics via
// AudioTrackInterface::GetStats() method.
-TEST_F(StatsCollectorTest, GetStatsFromLocalAudioTrack) {
+TEST_P(StatsCollectorTrackTest, GetStatsFromLocalAudioTrack) {
StatsCollectorForTest stats(&pc_);
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
@@ -1824,8 +1853,7 @@
worker_thread_, network_thread_, nullptr, media_engine_,
rtc::WrapUnique(media_channel), "vcname", kDefaultRtcpMuxRequired,
kDefaultSrtpRequired);
- AddOutgoingAudioTrackStats();
- stats.AddStream(stream_);
+ AddOutgoingAudioTrackStats(&stats);
stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack);
cricket::VoiceSenderInfo voice_sender_info;
@@ -1846,7 +1874,7 @@
// This test verifies that audio receive streams populate stats reports
// correctly.
-TEST_F(StatsCollectorTest, GetStatsFromRemoteStream) {
+TEST_P(StatsCollectorTrackTest, GetStatsFromRemoteStream) {
StatsCollectorForTest stats(&pc_);
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
@@ -1858,8 +1886,7 @@
worker_thread_, network_thread_, nullptr, media_engine_,
rtc::WrapUnique(media_channel), "vcname", kDefaultRtcpMuxRequired,
kDefaultSrtpRequired);
- AddIncomingAudioTrackStats();
- stats.AddStream(stream_);
+ AddIncomingAudioTrackStats(&stats);
cricket::VoiceReceiverInfo voice_receiver_info;
InitVoiceReceiverInfo(&voice_receiver_info);
@@ -1874,7 +1901,7 @@
// This test verifies that a local stats object won't update its statistics
// after a RemoveLocalAudioTrack() call.
-TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) {
+TEST_P(StatsCollectorTrackTest, GetStatsAfterRemoveAudioStream) {
StatsCollectorForTest stats(&pc_);
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
@@ -1886,8 +1913,7 @@
worker_thread_, network_thread_, nullptr, media_engine_,
rtc::WrapUnique(media_channel), "vcname", kDefaultRtcpMuxRequired,
kDefaultSrtpRequired);
- AddOutgoingAudioTrackStats();
- stats.AddStream(stream_);
+ AddOutgoingAudioTrackStats(&stats);
stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack);
InitSessionStats(&voice_channel);
@@ -1935,7 +1961,7 @@
// This test verifies that when ongoing and incoming audio tracks are using
// the same ssrc, they populate stats reports correctly.
-TEST_F(StatsCollectorTest, LocalAndRemoteTracksWithSameSsrc) {
+TEST_P(StatsCollectorTrackTest, LocalAndRemoteTracksWithSameSsrc) {
StatsCollectorForTest stats(&pc_);
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
@@ -1949,8 +1975,7 @@
kDefaultSrtpRequired);
// Create a local stream with a local audio track and adds it to the stats.
- AddOutgoingAudioTrackStats();
- stats.AddStream(stream_);
+ AddOutgoingAudioTrackStats(&stats);
stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack);
// Create a remote stream with a remote audio track and adds it to the stats.
@@ -2000,7 +2025,7 @@
stats.GetStats(audio_track_.get(), &reports);
const StatsReport* track_report = FindNthReportByType(
reports, StatsReport::kStatsReportTypeSsrc, 1);
- EXPECT_TRUE(track_report);
+ ASSERT_TRUE(track_report);
EXPECT_EQ(stats.GetTimeNow(), track_report->timestamp());
std::string track_id = ExtractSsrcStatsValue(
reports, StatsReport::kStatsValueNameTrackId);
@@ -2012,7 +2037,7 @@
stats.GetStats(remote_track.get(), &reports);
track_report = FindNthReportByType(reports,
StatsReport::kStatsReportTypeSsrc, 1);
- EXPECT_TRUE(track_report);
+ ASSERT_TRUE(track_report);
EXPECT_EQ(stats.GetTimeNow(), track_report->timestamp());
track_id = ExtractSsrcStatsValue(reports,
StatsReport::kStatsValueNameTrackId);
@@ -2024,9 +2049,13 @@
// ssrc at different times, they populate stats reports correctly.
// TODO(xians): Figure out if it is possible to encapsulate the setup and
// avoid duplication of code in test cases.
-TEST_F(StatsCollectorTest, TwoLocalTracksWithSameSsrc) {
+TEST_P(StatsCollectorTrackTest, TwoLocalTracksWithSameSsrc) {
StatsCollectorForTest stats(&pc_);
+ // This test only makes sense when we're using streams.
+ if (!GetParam())
+ return;
+
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
EXPECT_CALL(pc_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
.WillRepeatedly(Return(nullptr));
@@ -2038,8 +2067,7 @@
kDefaultSrtpRequired);
// Create a local stream with a local audio track and adds it to the stats.
- AddOutgoingAudioTrackStats();
- stats.AddStream(stream_);
+ AddOutgoingAudioTrackStats(&stats);
stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack);
cricket::VoiceSenderInfo voice_sender_info;
@@ -2076,7 +2104,7 @@
}
// This test verifies that stats are correctly set in video send ssrc stats.
-TEST_F(StatsCollectorTest, VerifyVideoSendSsrcStats) {
+TEST_P(StatsCollectorTrackTest, VerifyVideoSendSsrcStats) {
StatsCollectorForTest stats(&pc_);
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
@@ -2099,8 +2127,7 @@
cricket::VideoSenderInfo video_sender_info;
cricket::VideoMediaInfo stats_read;
- AddOutgoingVideoTrackStats();
- stats.AddStream(stream_);
+ AddOutgoingVideoTrackStats(&stats);
// Construct a stats value to read.
video_sender_info.add_ssrc(1234);
@@ -2122,7 +2149,7 @@
}
// This test verifies that stats are correctly set in video receive ssrc stats.
-TEST_F(StatsCollectorTest, VerifyVideoReceiveSsrcStats) {
+TEST_P(StatsCollectorTrackTest, VerifyVideoReceiveSsrcStats) {
StatsCollectorForTest stats(&pc_);
EXPECT_CALL(pc_, GetLocalCertificate(_, _)).WillRepeatedly(Return(false));
@@ -2145,8 +2172,7 @@
cricket::VideoReceiverInfo video_receiver_info;
cricket::VideoMediaInfo stats_read;
- AddIncomingVideoTrackStats();
- stats.AddStream(stream_);
+ AddIncomingVideoTrackStats(&stats);
// Construct a stats value to read.
video_receiver_info.add_ssrc(1234);
@@ -2167,4 +2193,6 @@
ExtractSsrcStatsValue(reports, StatsReport::kStatsValueNameQpSum));
}
+INSTANTIATE_TEST_CASE_P(HasStream, StatsCollectorTrackTest, ::testing::Bool());
+
} // namespace webrtc