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

Side by Side Diff: webrtc/pc/trackmediainfomap_unittest.cc

Issue 2703783002: TrackMediaInfoMap: Allow same SSRC for send and receive side. (Closed)
Patch Set: Created 3 years, 10 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/pc/trackmediainfomap.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 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 EXPECT_EQ( 338 EXPECT_EQ(
339 *map_->GetVideoSenderInfos(*local_video_track_), 339 *map_->GetVideoSenderInfos(*local_video_track_),
340 std::vector<cricket::VideoSenderInfo*>( 340 std::vector<cricket::VideoSenderInfo*>(
341 {&video_media_info_->senders[0], &video_media_info_->senders[1]})); 341 {&video_media_info_->senders[0], &video_media_info_->senders[1]}));
342 EXPECT_EQ(map_->GetVideoTrack(video_media_info_->senders[0]), 342 EXPECT_EQ(map_->GetVideoTrack(video_media_info_->senders[0]),
343 local_video_track_.get()); 343 local_video_track_.get());
344 EXPECT_EQ(map_->GetVideoTrack(video_media_info_->senders[1]), 344 EXPECT_EQ(map_->GetVideoTrack(video_media_info_->senders[1]),
345 local_video_track_.get()); 345 local_video_track_.get());
346 } 346 }
347 347
348 // SSRCs can be reused for send and receive in loopback.
349 TEST_F(TrackMediaInfoMapTest, SingleSenderReceiverPerTrackWithSsrcNotUnique) {
350 AddRtpSenderWithSsrcs({1}, local_audio_track_);
351 AddRtpReceiverWithSsrcs({1}, remote_audio_track_);
352 AddRtpSenderWithSsrcs({2}, local_video_track_);
353 AddRtpReceiverWithSsrcs({2}, remote_video_track_);
354 CreateMap();
355
356 // Local audio track <-> RTP audio senders
357 ASSERT_TRUE(map_->GetVoiceSenderInfos(*local_audio_track_));
358 EXPECT_EQ(
359 *map_->GetVoiceSenderInfos(*local_audio_track_),
360 std::vector<cricket::VoiceSenderInfo*>({&voice_media_info_->senders[0]}));
361 EXPECT_EQ(map_->GetAudioTrack(voice_media_info_->senders[0]),
362 local_audio_track_.get());
363
364 // Remote audio track <-> RTP audio receiver
365 EXPECT_EQ(map_->GetVoiceReceiverInfo(*remote_audio_track_),
366 &voice_media_info_->receivers[0]);
367 EXPECT_EQ(map_->GetAudioTrack(voice_media_info_->receivers[0]),
368 remote_audio_track_.get());
369
370 // Local video track <-> RTP video senders
371 ASSERT_TRUE(map_->GetVideoSenderInfos(*local_video_track_));
372 EXPECT_EQ(
373 *map_->GetVideoSenderInfos(*local_video_track_),
374 std::vector<cricket::VideoSenderInfo*>({&video_media_info_->senders[0]}));
375 EXPECT_EQ(map_->GetVideoTrack(video_media_info_->senders[0]),
376 local_video_track_.get());
377
378 // Remote video track <-> RTP video receiver
379 EXPECT_EQ(map_->GetVideoReceiverInfo(*remote_video_track_),
380 &video_media_info_->receivers[0]);
381 EXPECT_EQ(map_->GetVideoTrack(video_media_info_->receivers[0]),
382 remote_video_track_.get());
383 }
384
348 // Death tests. 385 // Death tests.
349 // Disabled on Android because death tests misbehave on Android, see 386 // Disabled on Android because death tests misbehave on Android, see
350 // base/test/gtest_util.h. 387 // base/test/gtest_util.h.
351 #if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) 388 #if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
352 389
353 class TrackMediaInfoMapDeathTest : public TrackMediaInfoMapTest {}; 390 class TrackMediaInfoMapDeathTest : public TrackMediaInfoMapTest {};
354 391
355 TEST_F(TrackMediaInfoMapDeathTest, MultipleOneSsrcReceiversPerTrack) { 392 TEST_F(TrackMediaInfoMapDeathTest, MultipleOneSsrcReceiversPerTrack) {
356 AddRtpReceiverWithSsrcs({1}, remote_audio_track_); 393 AddRtpReceiverWithSsrcs({1}, remote_audio_track_);
357 AddRtpReceiverWithSsrcs({2}, remote_audio_track_); 394 AddRtpReceiverWithSsrcs({2}, remote_audio_track_);
358 AddRtpReceiverWithSsrcs({3}, remote_video_track_); 395 AddRtpReceiverWithSsrcs({3}, remote_video_track_);
359 AddRtpReceiverWithSsrcs({4}, remote_video_track_); 396 AddRtpReceiverWithSsrcs({4}, remote_video_track_);
360 EXPECT_DEATH(CreateMap(), ""); 397 EXPECT_DEATH(CreateMap(), "");
361 } 398 }
362 399
363 TEST_F(TrackMediaInfoMapDeathTest, MultipleMultiSsrcReceiversPerTrack) { 400 TEST_F(TrackMediaInfoMapDeathTest, MultipleMultiSsrcReceiversPerTrack) {
364 AddRtpReceiverWithSsrcs({1, 2}, remote_audio_track_); 401 AddRtpReceiverWithSsrcs({1, 2}, remote_audio_track_);
365 AddRtpReceiverWithSsrcs({3, 4}, remote_audio_track_); 402 AddRtpReceiverWithSsrcs({3, 4}, remote_audio_track_);
366 AddRtpReceiverWithSsrcs({5, 6}, remote_video_track_); 403 AddRtpReceiverWithSsrcs({5, 6}, remote_video_track_);
367 AddRtpReceiverWithSsrcs({7, 8}, remote_video_track_); 404 AddRtpReceiverWithSsrcs({7, 8}, remote_video_track_);
368 EXPECT_DEATH(CreateMap(), ""); 405 EXPECT_DEATH(CreateMap(), "");
369 } 406 }
370 407
371 TEST_F(TrackMediaInfoMapDeathTest,
372 SingleSenderReceiverPerTrackWithSsrcNotUnique) {
373 AddRtpSenderWithSsrcs({1}, local_audio_track_);
374 AddRtpReceiverWithSsrcs({1}, remote_audio_track_);
375 AddRtpSenderWithSsrcs({2}, local_video_track_);
376 AddRtpReceiverWithSsrcs({2}, remote_video_track_);
377 EXPECT_DEATH(CreateMap(), "");
378 }
379
380 #endif // RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) 408 #endif // RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
381 409
382 } // namespace webrtc 410 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/pc/trackmediainfomap.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698