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

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

Issue 2675173003: Adding "adapter" ORTC objects on top of ChannelManager/BaseChannel/etc. (Closed)
Patch Set: Move ORTC files to different subdirectories 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
OLDNEW
1 /* 1 /*
2 * Copyright 2009 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2009 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 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 template<class T> 91 template<class T>
92 class ChannelTest : public testing::Test, public sigslot::has_slots<> { 92 class ChannelTest : public testing::Test, public sigslot::has_slots<> {
93 public: 93 public:
94 enum Flags { 94 enum Flags {
95 RTCP_MUX = 0x1, 95 RTCP_MUX = 0x1,
96 RTCP_MUX_REQUIRED = 0x2, 96 RTCP_MUX_REQUIRED = 0x2,
97 SECURE = 0x4, 97 SECURE = 0x4,
98 SSRC_MUX = 0x8, 98 SSRC_MUX = 0x8,
99 DTLS = 0x10, 99 DTLS = 0x10,
100 GCM_CIPHER = 0x20, 100 GCM_CIPHER = 0x20,
101 // Use BaseChannel with PacketTransportInterface rather than 101 // Use BaseChannel with PacketTransportInternal rather than
102 // DtlsTransportInternal. 102 // DtlsTransportInternal.
103 RAW_PACKET_TRANSPORT = 0x40, 103 RAW_PACKET_TRANSPORT = 0x40,
104 }; 104 };
105 105
106 ChannelTest(bool verify_playout, 106 ChannelTest(bool verify_playout,
107 rtc::ArrayView<const uint8_t> rtp_data, 107 rtc::ArrayView<const uint8_t> rtp_data,
108 rtc::ArrayView<const uint8_t> rtcp_data, 108 rtc::ArrayView<const uint8_t> rtcp_data,
109 NetworkIsWorker network_is_worker) 109 NetworkIsWorker network_is_worker)
110 : verify_playout_(verify_playout), 110 : verify_playout_(verify_playout),
111 rtp_packet_(rtp_data.data(), rtp_data.size()), 111 rtp_packet_(rtp_data.data(), rtp_data.size()),
(...skipping 24 matching lines...) Expand all
136 } 136 }
137 // Make sure RTCP_MUX_REQUIRED isn't set without RTCP_MUX. 137 // Make sure RTCP_MUX_REQUIRED isn't set without RTCP_MUX.
138 RTC_DCHECK_NE(RTCP_MUX_REQUIRED, flags1 & (RTCP_MUX | RTCP_MUX_REQUIRED)); 138 RTC_DCHECK_NE(RTCP_MUX_REQUIRED, flags1 & (RTCP_MUX | RTCP_MUX_REQUIRED));
139 RTC_DCHECK_NE(RTCP_MUX_REQUIRED, flags2 & (RTCP_MUX | RTCP_MUX_REQUIRED)); 139 RTC_DCHECK_NE(RTCP_MUX_REQUIRED, flags2 & (RTCP_MUX | RTCP_MUX_REQUIRED));
140 // Make sure if using raw packet transports, they're used for both 140 // Make sure if using raw packet transports, they're used for both
141 // channels. 141 // channels.
142 RTC_DCHECK_EQ(flags1 & RAW_PACKET_TRANSPORT, flags2 & RAW_PACKET_TRANSPORT); 142 RTC_DCHECK_EQ(flags1 & RAW_PACKET_TRANSPORT, flags2 & RAW_PACKET_TRANSPORT);
143 rtc::Thread* worker_thread = rtc::Thread::Current(); 143 rtc::Thread* worker_thread = rtc::Thread::Current();
144 media_channel1_ = ch1; 144 media_channel1_ = ch1;
145 media_channel2_ = ch2; 145 media_channel2_ = ch2;
146 rtc::PacketTransportInterface* rtp1 = nullptr; 146 rtc::PacketTransportInternal* rtp1 = nullptr;
147 rtc::PacketTransportInterface* rtcp1 = nullptr; 147 rtc::PacketTransportInternal* rtcp1 = nullptr;
148 rtc::PacketTransportInterface* rtp2 = nullptr; 148 rtc::PacketTransportInternal* rtp2 = nullptr;
149 rtc::PacketTransportInterface* rtcp2 = nullptr; 149 rtc::PacketTransportInternal* rtcp2 = nullptr;
150 // Based on flags, create fake DTLS or raw packet transports. 150 // Based on flags, create fake DTLS or raw packet transports.
151 if (flags1 & RAW_PACKET_TRANSPORT) { 151 if (flags1 & RAW_PACKET_TRANSPORT) {
152 fake_rtp_packet_transport1_.reset( 152 fake_rtp_packet_transport1_.reset(
153 new rtc::FakePacketTransport("channel1_rtp")); 153 new rtc::FakePacketTransport("channel1_rtp"));
154 rtp1 = fake_rtp_packet_transport1_.get(); 154 rtp1 = fake_rtp_packet_transport1_.get();
155 if (!(flags1 & RTCP_MUX_REQUIRED)) { 155 if (!(flags1 & RTCP_MUX_REQUIRED)) {
156 fake_rtcp_packet_transport1_.reset( 156 fake_rtcp_packet_transport1_.reset(
157 new rtc::FakePacketTransport("channel1_rtcp")); 157 new rtc::FakePacketTransport("channel1_rtcp"));
158 rtcp1 = fake_rtcp_packet_transport1_.get(); 158 rtcp1 = fake_rtcp_packet_transport1_.get();
159 } 159 }
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 AddLegacyStreamInContent(kSsrc2, flags2, &remote_media_content2_); 248 AddLegacyStreamInContent(kSsrc2, flags2, &remote_media_content2_);
249 } 249 }
250 } 250 }
251 typename T::Channel* CreateChannel( 251 typename T::Channel* CreateChannel(
252 rtc::Thread* worker_thread, 252 rtc::Thread* worker_thread,
253 rtc::Thread* network_thread, 253 rtc::Thread* network_thread,
254 cricket::MediaEngineInterface* engine, 254 cricket::MediaEngineInterface* engine,
255 typename T::MediaChannel* ch, 255 typename T::MediaChannel* ch,
256 cricket::DtlsTransportInternal* fake_rtp_dtls_transport, 256 cricket::DtlsTransportInternal* fake_rtp_dtls_transport,
257 cricket::DtlsTransportInternal* fake_rtcp_dtls_transport, 257 cricket::DtlsTransportInternal* fake_rtcp_dtls_transport,
258 rtc::PacketTransportInterface* fake_rtp_packet_transport, 258 rtc::PacketTransportInternal* fake_rtp_packet_transport,
259 rtc::PacketTransportInterface* fake_rtcp_packet_transport, 259 rtc::PacketTransportInternal* fake_rtcp_packet_transport,
260 int flags) { 260 int flags) {
261 rtc::Thread* signaling_thread = rtc::Thread::Current(); 261 rtc::Thread* signaling_thread = rtc::Thread::Current();
262 typename T::Channel* channel = new typename T::Channel( 262 typename T::Channel* channel = new typename T::Channel(
263 worker_thread, network_thread, signaling_thread, engine, ch, 263 worker_thread, network_thread, signaling_thread, engine, ch,
264 cricket::CN_AUDIO, (flags & RTCP_MUX_REQUIRED) != 0, 264 cricket::CN_AUDIO, (flags & RTCP_MUX_REQUIRED) != 0,
265 (flags & SECURE) != 0); 265 (flags & SECURE) != 0);
266 rtc::CryptoOptions crypto_options; 266 rtc::CryptoOptions crypto_options;
267 crypto_options.enable_gcm_crypto_suites = (flags & GCM_CIPHER) != 0; 267 crypto_options.enable_gcm_crypto_suites = (flags & GCM_CIPHER) != 0;
268 channel->SetCryptoOptions(crypto_options); 268 channel->SetCryptoOptions(crypto_options);
269 if (!channel->NeedsRtcpTransport()) { 269 if (!channel->NeedsRtcpTransport()) {
(...skipping 1835 matching lines...) Expand 10 before | Expand all | Expand 10 after
2105 2105
2106 // override to add NULL parameter 2106 // override to add NULL parameter
2107 template <> 2107 template <>
2108 cricket::VideoChannel* ChannelTest<VideoTraits>::CreateChannel( 2108 cricket::VideoChannel* ChannelTest<VideoTraits>::CreateChannel(
2109 rtc::Thread* worker_thread, 2109 rtc::Thread* worker_thread,
2110 rtc::Thread* network_thread, 2110 rtc::Thread* network_thread,
2111 cricket::MediaEngineInterface* engine, 2111 cricket::MediaEngineInterface* engine,
2112 cricket::FakeVideoMediaChannel* ch, 2112 cricket::FakeVideoMediaChannel* ch,
2113 cricket::DtlsTransportInternal* fake_rtp_dtls_transport, 2113 cricket::DtlsTransportInternal* fake_rtp_dtls_transport,
2114 cricket::DtlsTransportInternal* fake_rtcp_dtls_transport, 2114 cricket::DtlsTransportInternal* fake_rtcp_dtls_transport,
2115 rtc::PacketTransportInterface* fake_rtp_packet_transport, 2115 rtc::PacketTransportInternal* fake_rtp_packet_transport,
2116 rtc::PacketTransportInterface* fake_rtcp_packet_transport, 2116 rtc::PacketTransportInternal* fake_rtcp_packet_transport,
2117 int flags) { 2117 int flags) {
2118 rtc::Thread* signaling_thread = rtc::Thread::Current(); 2118 rtc::Thread* signaling_thread = rtc::Thread::Current();
2119 cricket::VideoChannel* channel = new cricket::VideoChannel( 2119 cricket::VideoChannel* channel = new cricket::VideoChannel(
2120 worker_thread, network_thread, signaling_thread, ch, cricket::CN_VIDEO, 2120 worker_thread, network_thread, signaling_thread, ch, cricket::CN_VIDEO,
2121 (flags & RTCP_MUX_REQUIRED) != 0, (flags & SECURE) != 0); 2121 (flags & RTCP_MUX_REQUIRED) != 0, (flags & SECURE) != 0);
2122 rtc::CryptoOptions crypto_options; 2122 rtc::CryptoOptions crypto_options;
2123 crypto_options.enable_gcm_crypto_suites = (flags & GCM_CIPHER) != 0; 2123 crypto_options.enable_gcm_crypto_suites = (flags & GCM_CIPHER) != 0;
2124 channel->SetCryptoOptions(crypto_options); 2124 channel->SetCryptoOptions(crypto_options);
2125 if (!channel->NeedsRtcpTransport()) { 2125 if (!channel->NeedsRtcpTransport()) {
2126 fake_rtcp_dtls_transport = nullptr; 2126 fake_rtcp_dtls_transport = nullptr;
(...skipping 1216 matching lines...) Expand 10 before | Expand all | Expand 10 after
3343 3343
3344 // Override to avoid engine channel parameter. 3344 // Override to avoid engine channel parameter.
3345 template <> 3345 template <>
3346 cricket::RtpDataChannel* ChannelTest<DataTraits>::CreateChannel( 3346 cricket::RtpDataChannel* ChannelTest<DataTraits>::CreateChannel(
3347 rtc::Thread* worker_thread, 3347 rtc::Thread* worker_thread,
3348 rtc::Thread* network_thread, 3348 rtc::Thread* network_thread,
3349 cricket::MediaEngineInterface* engine, 3349 cricket::MediaEngineInterface* engine,
3350 cricket::FakeDataMediaChannel* ch, 3350 cricket::FakeDataMediaChannel* ch,
3351 cricket::DtlsTransportInternal* fake_rtp_dtls_transport, 3351 cricket::DtlsTransportInternal* fake_rtp_dtls_transport,
3352 cricket::DtlsTransportInternal* fake_rtcp_dtls_transport, 3352 cricket::DtlsTransportInternal* fake_rtcp_dtls_transport,
3353 rtc::PacketTransportInterface* fake_rtp_packet_transport, 3353 rtc::PacketTransportInternal* fake_rtp_packet_transport,
3354 rtc::PacketTransportInterface* fake_rtcp_packet_transport, 3354 rtc::PacketTransportInternal* fake_rtcp_packet_transport,
3355 int flags) { 3355 int flags) {
3356 rtc::Thread* signaling_thread = rtc::Thread::Current(); 3356 rtc::Thread* signaling_thread = rtc::Thread::Current();
3357 cricket::RtpDataChannel* channel = new cricket::RtpDataChannel( 3357 cricket::RtpDataChannel* channel = new cricket::RtpDataChannel(
3358 worker_thread, network_thread, signaling_thread, ch, cricket::CN_DATA, 3358 worker_thread, network_thread, signaling_thread, ch, cricket::CN_DATA,
3359 (flags & RTCP_MUX_REQUIRED) != 0, (flags & SECURE) != 0); 3359 (flags & RTCP_MUX_REQUIRED) != 0, (flags & SECURE) != 0);
3360 rtc::CryptoOptions crypto_options; 3360 rtc::CryptoOptions crypto_options;
3361 crypto_options.enable_gcm_crypto_suites = (flags & GCM_CIPHER) != 0; 3361 crypto_options.enable_gcm_crypto_suites = (flags & GCM_CIPHER) != 0;
3362 channel->SetCryptoOptions(crypto_options); 3362 channel->SetCryptoOptions(crypto_options);
3363 if (!channel->NeedsRtcpTransport()) { 3363 if (!channel->NeedsRtcpTransport()) {
3364 fake_rtcp_dtls_transport = nullptr; 3364 fake_rtcp_dtls_transport = nullptr;
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
3748 cricket::FakeDtlsTransport new_rtp_transport( 3748 cricket::FakeDtlsTransport new_rtp_transport(
3749 "bar", cricket::ICE_CANDIDATE_COMPONENT_RTP); 3749 "bar", cricket::ICE_CANDIDATE_COMPONENT_RTP);
3750 cricket::FakeDtlsTransport new_rtcp_transport( 3750 cricket::FakeDtlsTransport new_rtcp_transport(
3751 "baz", cricket::ICE_CANDIDATE_COMPONENT_RTCP); 3751 "baz", cricket::ICE_CANDIDATE_COMPONENT_RTCP);
3752 EXPECT_DEATH( 3752 EXPECT_DEATH(
3753 voice_channel_.SetTransports(&new_rtp_transport, &new_rtcp_transport), 3753 voice_channel_.SetTransports(&new_rtp_transport, &new_rtcp_transport),
3754 ""); 3754 "");
3755 } 3755 }
3756 3756
3757 // Not expected to support going from DtlsTransportInternal to 3757 // Not expected to support going from DtlsTransportInternal to
3758 // PacketTransportInterface. 3758 // PacketTransportInternal.
3759 TEST_F(BaseChannelDeathTest, SetTransportsDtlsToNonDtls) { 3759 TEST_F(BaseChannelDeathTest, SetTransportsDtlsToNonDtls) {
3760 ASSERT_TRUE(voice_channel_.Init_w( 3760 ASSERT_TRUE(voice_channel_.Init_w(
3761 &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_, 3761 &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_,
3762 &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_)); 3762 &fake_rtp_dtls_transport_, &fake_rtcp_dtls_transport_));
3763 EXPECT_DEATH( 3763 EXPECT_DEATH(
3764 voice_channel_.SetTransports(static_cast<rtc::PacketTransportInterface*>( 3764 voice_channel_.SetTransports(
3765 &fake_rtp_dtls_transport_), 3765 static_cast<rtc::PacketTransportInternal*>(&fake_rtp_dtls_transport_),
3766 static_cast<rtc::PacketTransportInterface*>( 3766 static_cast<rtc::PacketTransportInternal*>(
3767 &fake_rtp_dtls_transport_)), 3767 &fake_rtp_dtls_transport_)),
3768 ""); 3768 "");
3769 } 3769 }
3770 3770
3771 // Not expected to support going from PacketTransportInterface to 3771 // Not expected to support going from PacketTransportInternal to
3772 // DtlsTransportInternal. 3772 // DtlsTransportInternal.
3773 TEST_F(BaseChannelDeathTest, SetTransportsNonDtlsToDtls) { 3773 TEST_F(BaseChannelDeathTest, SetTransportsNonDtlsToDtls) {
3774 ASSERT_TRUE(voice_channel_.Init_w(nullptr, nullptr, &fake_rtp_dtls_transport_, 3774 ASSERT_TRUE(voice_channel_.Init_w(nullptr, nullptr, &fake_rtp_dtls_transport_,
3775 &fake_rtcp_dtls_transport_)); 3775 &fake_rtcp_dtls_transport_));
3776 EXPECT_DEATH(voice_channel_.SetTransports(&fake_rtp_dtls_transport_, 3776 EXPECT_DEATH(voice_channel_.SetTransports(&fake_rtp_dtls_transport_,
3777 &fake_rtp_dtls_transport_), 3777 &fake_rtp_dtls_transport_),
3778 ""); 3778 "");
3779 } 3779 }
3780 3780
3781 #endif // RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) 3781 #endif // RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
3782 3782
3783 // TODO(pthatcher): TestSetReceiver? 3783 // TODO(pthatcher): TestSetReceiver?
OLDNEW
« no previous file with comments | « webrtc/pc/channel.cc ('k') | webrtc/pc/channelmanager.h » ('j') | webrtc/pc/rtpreceiver.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698