Index: webrtc/pc/trackmediainfomap_unittest.cc |
diff --git a/webrtc/pc/trackmediainfomap_unittest.cc b/webrtc/pc/trackmediainfomap_unittest.cc |
index 2786214d954970cfaa073b183274b239dadd19a3..07436800f85f8f8a9c34072921a0dbdb38be8872 100644 |
--- a/webrtc/pc/trackmediainfomap_unittest.cc |
+++ b/webrtc/pc/trackmediainfomap_unittest.cc |
@@ -345,6 +345,43 @@ TEST_F(TrackMediaInfoMapTest, MultipleMultiSsrcSendersPerTrack) { |
local_video_track_.get()); |
} |
+// SSRCs can be reused for send and receive in loopback. |
+TEST_F(TrackMediaInfoMapTest, SingleSenderReceiverPerTrackWithSsrcNotUnique) { |
+ AddRtpSenderWithSsrcs({1}, local_audio_track_); |
+ AddRtpReceiverWithSsrcs({1}, remote_audio_track_); |
+ AddRtpSenderWithSsrcs({2}, local_video_track_); |
+ AddRtpReceiverWithSsrcs({2}, remote_video_track_); |
+ CreateMap(); |
+ |
+ // Local audio track <-> RTP audio senders |
+ ASSERT_TRUE(map_->GetVoiceSenderInfos(*local_audio_track_)); |
+ EXPECT_EQ( |
+ *map_->GetVoiceSenderInfos(*local_audio_track_), |
+ std::vector<cricket::VoiceSenderInfo*>({&voice_media_info_->senders[0]})); |
+ EXPECT_EQ(map_->GetAudioTrack(voice_media_info_->senders[0]), |
+ local_audio_track_.get()); |
+ |
+ // Remote audio track <-> RTP audio receiver |
+ EXPECT_EQ(map_->GetVoiceReceiverInfo(*remote_audio_track_), |
+ &voice_media_info_->receivers[0]); |
+ EXPECT_EQ(map_->GetAudioTrack(voice_media_info_->receivers[0]), |
+ remote_audio_track_.get()); |
+ |
+ // Local video track <-> RTP video senders |
+ ASSERT_TRUE(map_->GetVideoSenderInfos(*local_video_track_)); |
+ EXPECT_EQ( |
+ *map_->GetVideoSenderInfos(*local_video_track_), |
+ std::vector<cricket::VideoSenderInfo*>({&video_media_info_->senders[0]})); |
+ EXPECT_EQ(map_->GetVideoTrack(video_media_info_->senders[0]), |
+ local_video_track_.get()); |
+ |
+ // Remote video track <-> RTP video receiver |
+ EXPECT_EQ(map_->GetVideoReceiverInfo(*remote_video_track_), |
+ &video_media_info_->receivers[0]); |
+ EXPECT_EQ(map_->GetVideoTrack(video_media_info_->receivers[0]), |
+ remote_video_track_.get()); |
+} |
+ |
// Death tests. |
// Disabled on Android because death tests misbehave on Android, see |
// base/test/gtest_util.h. |
@@ -368,15 +405,6 @@ TEST_F(TrackMediaInfoMapDeathTest, MultipleMultiSsrcReceiversPerTrack) { |
EXPECT_DEATH(CreateMap(), ""); |
} |
-TEST_F(TrackMediaInfoMapDeathTest, |
- SingleSenderReceiverPerTrackWithSsrcNotUnique) { |
- AddRtpSenderWithSsrcs({1}, local_audio_track_); |
- AddRtpReceiverWithSsrcs({1}, remote_audio_track_); |
- AddRtpSenderWithSsrcs({2}, local_video_track_); |
- AddRtpReceiverWithSsrcs({2}, remote_video_track_); |
- EXPECT_DEATH(CreateMap(), ""); |
-} |
- |
#endif // RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) |
} // namespace webrtc |