Index: webrtc/pc/channel_unittest.cc |
diff --git a/webrtc/pc/channel_unittest.cc b/webrtc/pc/channel_unittest.cc |
index 3970588e833ee47172e9b6fff1c2c16f682cbe2e..f8346c9a8e87e7394e4e0978705be1ed96c14528 100644 |
--- a/webrtc/pc/channel_unittest.cc |
+++ b/webrtc/pc/channel_unittest.cc |
@@ -95,14 +95,8 @@ |
template<class T> |
class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
public: |
- enum Flags { |
- RTCP_MUX = 0x1, |
- RTCP_MUX_REQUIRED = 0x2, |
- SECURE = 0x4, |
- SSRC_MUX = 0x8, |
- DTLS = 0x10, |
- GCM_CIPHER = 0x20 |
- }; |
+ enum Flags { RTCP = 0x1, RTCP_MUX = 0x2, SECURE = 0x4, SSRC_MUX = 0x8, |
+ DTLS = 0x10, GCM_CIPHER = 0x20 }; |
ChannelTest(bool verify_playout, |
rtc::ArrayView<const uint8_t> rtp_data, |
@@ -138,9 +132,6 @@ |
typename T::MediaChannel* ch2, |
int flags1, |
int flags2) { |
- // Make sure RTCP_MUX_REQUIRED isn't set without RTCP_MUX. |
- ASSERT_NE(RTCP_MUX_REQUIRED, flags1 & (RTCP_MUX | RTCP_MUX_REQUIRED)); |
- ASSERT_NE(RTCP_MUX_REQUIRED, flags2 & (RTCP_MUX | RTCP_MUX_REQUIRED)); |
rtc::Thread* worker_thread = rtc::Thread::Current(); |
media_channel1_ = ch1; |
media_channel2_ = ch2; |
@@ -154,10 +145,10 @@ |
&ChannelTest<T>::OnMediaMonitor1); |
channel2_->SignalMediaMonitor.connect(this, |
&ChannelTest<T>::OnMediaMonitor2); |
- channel1_->SignalRtcpMuxFullyActive.connect( |
+ channel1_->SignalDestroyRtcpTransport.connect( |
transport_controller1_.get(), |
&cricket::FakeTransportController::DestroyRtcpTransport); |
- channel2_->SignalRtcpMuxFullyActive.connect( |
+ channel2_->SignalDestroyRtcpTransport.connect( |
transport_controller2_.get(), |
&cricket::FakeTransportController::DestroyRtcpTransport); |
if ((flags1 & DTLS) && (flags2 & DTLS)) { |
@@ -210,8 +201,7 @@ |
: nullptr; |
typename T::Channel* channel = new typename T::Channel( |
worker_thread, network_thread, signaling_thread, engine, ch, |
- cricket::CN_AUDIO, (flags & RTCP_MUX_REQUIRED) != 0, |
- (flags & SECURE) != 0); |
+ cricket::CN_AUDIO, (flags & RTCP) != 0, (flags & SECURE) != 0); |
rtc::CryptoOptions crypto_options; |
crypto_options.enable_gcm_crypto_suites = (flags & GCM_CIPHER) != 0; |
channel->SetCryptoOptions(crypto_options); |
@@ -539,7 +529,7 @@ |
// Test that SetLocalContent and SetRemoteContent properly set RTCP |
// mux. |
void TestSetContentsRtcpMux() { |
- CreateChannels(0, 0); |
+ CreateChannels(RTCP, RTCP); |
EXPECT_TRUE(channel1_->rtcp_transport() != NULL); |
EXPECT_TRUE(channel2_->rtcp_transport() != NULL); |
typename T::Content content; |
@@ -559,7 +549,7 @@ |
// Test that SetLocalContent and SetRemoteContent properly set RTCP |
// mux when a provisional answer is received. |
void TestSetContentsRtcpMuxWithPrAnswer() { |
- CreateChannels(0, 0); |
+ CreateChannels(RTCP, RTCP); |
EXPECT_TRUE(channel1_->rtcp_transport() != NULL); |
EXPECT_TRUE(channel2_->rtcp_transport() != NULL); |
typename T::Content content; |
@@ -583,7 +573,9 @@ |
void TestSetRemoteContentUpdate() { |
CreateChannels(0, 0); |
typename T::Content content; |
- CreateContent(RTCP_MUX | SECURE, kPcmuCodec, kH264Codec, &content); |
+ CreateContent(RTCP | RTCP_MUX | SECURE, |
+ kPcmuCodec, kH264Codec, |
+ &content); |
EXPECT_EQ(0U, media_channel1_->codecs().size()); |
EXPECT_TRUE(channel1_->SetLocalContent(&content, CA_OFFER, NULL)); |
EXPECT_TRUE(channel1_->SetRemoteContent(&content, CA_ANSWER, NULL)); |
@@ -1032,7 +1024,7 @@ |
} |
}; |
CreateChannels(new LastWordMediaChannel(), new LastWordMediaChannel(), |
- RTCP_MUX, RTCP_MUX); |
+ RTCP | RTCP_MUX, RTCP | RTCP_MUX); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
EXPECT_TRUE(SendTerminate()); |
@@ -1040,7 +1032,7 @@ |
// Send voice RTP data to the other side and ensure it gets there. |
void SendRtpToRtp() { |
- CreateChannels(RTCP_MUX | RTCP_MUX_REQUIRED, RTCP_MUX | RTCP_MUX_REQUIRED); |
+ CreateChannels(0, 0); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
EXPECT_EQ(1U, GetChannels1().size()); |
@@ -1055,7 +1047,7 @@ |
} |
void TestDeinit() { |
- CreateChannels(0, 0); |
+ CreateChannels(RTCP, RTCP); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
SendRtp1(); |
@@ -1067,9 +1059,51 @@ |
channel2_.reset(nullptr); |
} |
- // Check that RTCP can be transmitted between both sides. |
+ // Check that RTCP is not transmitted if both sides don't support RTCP. |
+ void SendNoRtcpToNoRtcp() { |
+ CreateChannels(0, 0); |
+ EXPECT_TRUE(SendInitiate()); |
+ EXPECT_TRUE(SendAccept()); |
+ EXPECT_EQ(1U, GetChannels1().size()); |
+ EXPECT_EQ(1U, GetChannels2().size()); |
+ SendRtcp1(); |
+ SendRtcp2(); |
+ WaitForThreads(); |
+ EXPECT_TRUE(CheckNoRtcp1()); |
+ EXPECT_TRUE(CheckNoRtcp2()); |
+ } |
+ |
+ // Check that RTCP is not transmitted if the callee doesn't support RTCP. |
+ void SendNoRtcpToRtcp() { |
+ CreateChannels(0, RTCP); |
+ EXPECT_TRUE(SendInitiate()); |
+ EXPECT_TRUE(SendAccept()); |
+ EXPECT_EQ(1U, GetChannels1().size()); |
+ EXPECT_EQ(2U, GetChannels2().size()); |
+ SendRtcp1(); |
+ SendRtcp2(); |
+ WaitForThreads(); |
+ EXPECT_TRUE(CheckNoRtcp1()); |
+ EXPECT_TRUE(CheckNoRtcp2()); |
+ } |
+ |
+ // Check that RTCP is not transmitted if the caller doesn't support RTCP. |
+ void SendRtcpToNoRtcp() { |
+ CreateChannels(RTCP, 0); |
+ EXPECT_TRUE(SendInitiate()); |
+ EXPECT_TRUE(SendAccept()); |
+ EXPECT_EQ(2U, GetChannels1().size()); |
+ EXPECT_EQ(1U, GetChannels2().size()); |
+ SendRtcp1(); |
+ SendRtcp2(); |
+ WaitForThreads(); |
+ EXPECT_TRUE(CheckNoRtcp1()); |
+ EXPECT_TRUE(CheckNoRtcp2()); |
+ } |
+ |
+ // Check that RTCP is transmitted if both sides support RTCP. |
void SendRtcpToRtcp() { |
- CreateChannels(0, 0); |
+ CreateChannels(RTCP, RTCP); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
EXPECT_EQ(2U, GetChannels1().size()); |
@@ -1085,7 +1119,7 @@ |
// Check that RTCP is transmitted if only the initiator supports mux. |
void SendRtcpMuxToRtcp() { |
- CreateChannels(RTCP_MUX, 0); |
+ CreateChannels(RTCP | RTCP_MUX, RTCP); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
EXPECT_EQ(2U, GetChannels1().size()); |
@@ -1101,7 +1135,7 @@ |
// Check that RTP and RTCP are transmitted ok when both sides support mux. |
void SendRtcpMuxToRtcpMux() { |
- CreateChannels(RTCP_MUX, RTCP_MUX); |
+ CreateChannels(RTCP | RTCP_MUX, RTCP | RTCP_MUX); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_EQ(2U, GetChannels1().size()); |
EXPECT_EQ(1U, GetChannels2().size()); |
@@ -1125,7 +1159,8 @@ |
// Check that RTP and RTCP are transmitted ok when both sides |
// support mux and one the offerer requires mux. |
void SendRequireRtcpMuxToRtcpMux() { |
- CreateChannels(RTCP_MUX | RTCP_MUX_REQUIRED, RTCP_MUX); |
+ CreateChannels(RTCP | RTCP_MUX, RTCP | RTCP_MUX); |
+ channel1_->ActivateRtcpMux(); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_EQ(1U, GetChannels1().size()); |
EXPECT_EQ(1U, GetChannels2().size()); |
@@ -1146,9 +1181,10 @@ |
} |
// Check that RTP and RTCP are transmitted ok when both sides |
- // support mux and only the answerer requires rtcp mux. |
+ // support mux and one the answerer requires rtcp mux. |
void SendRtcpMuxToRequireRtcpMux() { |
- CreateChannels(RTCP_MUX, RTCP_MUX | RTCP_MUX_REQUIRED); |
+ CreateChannels(RTCP | RTCP_MUX, RTCP | RTCP_MUX); |
+ channel2_->ActivateRtcpMux(); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_EQ(2U, GetChannels1().size()); |
EXPECT_EQ(1U, GetChannels2().size()); |
@@ -1172,7 +1208,9 @@ |
// Check that RTP and RTCP are transmitted ok when both sides |
// require mux. |
void SendRequireRtcpMuxToRequireRtcpMux() { |
- CreateChannels(RTCP_MUX | RTCP_MUX_REQUIRED, RTCP_MUX | RTCP_MUX_REQUIRED); |
+ CreateChannels(RTCP | RTCP_MUX, RTCP | RTCP_MUX); |
+ channel1_->ActivateRtcpMux(); |
+ channel2_->ActivateRtcpMux(); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_EQ(1U, GetChannels1().size()); |
EXPECT_EQ(1U, GetChannels2().size()); |
@@ -1196,7 +1234,8 @@ |
// Check that SendAccept fails if the answerer doesn't support mux |
// and the offerer requires it. |
void SendRequireRtcpMuxToNoRtcpMux() { |
- CreateChannels(RTCP_MUX | RTCP_MUX_REQUIRED, 0); |
+ CreateChannels(RTCP | RTCP_MUX, RTCP); |
+ channel1_->ActivateRtcpMux(); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_EQ(1U, GetChannels1().size()); |
EXPECT_EQ(2U, GetChannels2().size()); |
@@ -1205,7 +1244,7 @@ |
// Check that RTCP data sent by the initiator before the accept is not muxed. |
void SendEarlyRtcpMuxToRtcp() { |
- CreateChannels(RTCP_MUX, 0); |
+ CreateChannels(RTCP | RTCP_MUX, RTCP); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_EQ(2U, GetChannels1().size()); |
EXPECT_EQ(2U, GetChannels2().size()); |
@@ -1238,7 +1277,7 @@ |
// but that we properly demux before we get the accept message, since there |
// is a race between RTP data and the jingle accept. |
void SendEarlyRtcpMuxToRtcpMux() { |
- CreateChannels(RTCP_MUX, RTCP_MUX); |
+ CreateChannels(RTCP | RTCP_MUX, RTCP | RTCP_MUX); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_EQ(2U, GetChannels1().size()); |
EXPECT_EQ(1U, GetChannels2().size()); |
@@ -1271,8 +1310,8 @@ |
ASSERT((flags1_in & ~(RTCP_MUX | DTLS | GCM_CIPHER)) == 0); |
ASSERT((flags2_in & ~(RTCP_MUX | DTLS | GCM_CIPHER)) == 0); |
- int flags1 = SECURE | flags1_in; |
- int flags2 = SECURE | flags2_in; |
+ int flags1 = RTCP | SECURE | flags1_in; |
+ int flags2 = RTCP | SECURE | flags2_in; |
bool dtls1 = !!(flags1_in & DTLS); |
bool dtls2 = !!(flags2_in & DTLS); |
CreateChannels(flags1, flags2); |
@@ -1312,7 +1351,7 @@ |
// Test that we properly handling SRTP negotiating down to RTP. |
void SendSrtpToRtp() { |
- CreateChannels(SECURE, 0); |
+ CreateChannels(RTCP | SECURE, RTCP); |
EXPECT_FALSE(channel1_->secure()); |
EXPECT_FALSE(channel2_->secure()); |
EXPECT_TRUE(SendInitiate()); |
@@ -1339,8 +1378,8 @@ |
void SendEarlyMediaUsingRtcpMuxSrtp() { |
int sequence_number1_1 = 0, sequence_number2_2 = 0; |
- CreateChannels(SSRC_MUX | RTCP_MUX | SECURE, |
- SSRC_MUX | RTCP_MUX | SECURE); |
+ CreateChannels(SSRC_MUX | RTCP | RTCP_MUX | SECURE, |
+ SSRC_MUX | RTCP | RTCP_MUX | SECURE); |
EXPECT_TRUE(SendOffer()); |
EXPECT_TRUE(SendProvisionalAnswer()); |
EXPECT_TRUE(channel1_->secure()); |
@@ -1380,7 +1419,7 @@ |
// Test that we properly send RTP without SRTP from a thread. |
void SendRtpToRtpOnThread() { |
- CreateChannels(0, 0); |
+ CreateChannels(RTCP, RTCP); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
ScopedCallThread send_rtp1([this] { SendRtp1(); }); |
@@ -1403,7 +1442,7 @@ |
// Test that we properly send SRTP with RTCP from a thread. |
void SendSrtpToSrtpOnThread() { |
- CreateChannels(SECURE, SECURE); |
+ CreateChannels(RTCP | SECURE, RTCP | SECURE); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
ScopedCallThread send_rtp1([this] { SendRtp1(); }); |
@@ -1427,7 +1466,7 @@ |
// Test that the mediachannel retains its sending state after the transport |
// becomes non-writable. |
void SendWithWritabilityLoss() { |
- CreateChannels(RTCP_MUX | RTCP_MUX_REQUIRED, RTCP_MUX | RTCP_MUX_REQUIRED); |
+ CreateChannels(0, 0); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
EXPECT_EQ(1U, GetChannels1().size()); |
@@ -1495,7 +1534,7 @@ |
// and |channel2_|. |
int pl_type1 = pl_types[0]; |
int pl_type2 = pl_types[1]; |
- int flags = SSRC_MUX; |
+ int flags = SSRC_MUX | RTCP; |
if (secure) flags |= SECURE; |
uint32_t expected_channels = 2U; |
if (rtcp_mux) { |
@@ -1685,7 +1724,7 @@ |
} |
void TestFlushRtcp() { |
- CreateChannels(0, 0); |
+ CreateChannels(RTCP, RTCP); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
EXPECT_EQ(2U, GetChannels1().size()); |
@@ -1740,7 +1779,7 @@ |
// TODO(deadbeef): Fix this. |
fake_clock.AdvanceTime(rtc::TimeDelta::FromSeconds(1)); |
- CreateChannels(SECURE, SECURE); |
+ CreateChannels(RTCP | SECURE, RTCP | SECURE); |
EXPECT_FALSE(channel1_->secure()); |
EXPECT_FALSE(channel2_->secure()); |
EXPECT_TRUE(SendInitiate()); |
@@ -1793,7 +1832,7 @@ |
} |
void TestOnReadyToSend() { |
- CreateChannels(0, 0); |
+ CreateChannels(RTCP, RTCP); |
TransportChannel* rtp = channel1_->rtp_transport(); |
TransportChannel* rtcp = channel1_->rtcp_transport(); |
EXPECT_FALSE(media_channel1_->ready_to_send()); |
@@ -1838,7 +1877,7 @@ |
} |
void TestOnReadyToSendWithRtcpMux() { |
- CreateChannels(0, 0); |
+ CreateChannels(RTCP, RTCP); |
typename T::Content content; |
CreateContent(0, kPcmuCodec, kH264Codec, &content); |
// Both sides agree on mux. Should no longer be a separate RTCP channel. |
@@ -2021,7 +2060,7 @@ |
transport_controller ? transport_controller->signaling_thread() : nullptr; |
cricket::VideoChannel* channel = new cricket::VideoChannel( |
worker_thread, network_thread, signaling_thread, ch, cricket::CN_VIDEO, |
- (flags & RTCP_MUX_REQUIRED) != 0, (flags & SECURE) != 0); |
+ (flags & RTCP) != 0, (flags & SECURE) != 0); |
rtc::CryptoOptions crypto_options; |
crypto_options.enable_gcm_crypto_suites = (flags & GCM_CIPHER) != 0; |
channel->SetCryptoOptions(crypto_options); |
@@ -2189,6 +2228,18 @@ |
Base::SendRtpToRtp(); |
} |
+TEST_F(VoiceChannelSingleThreadTest, SendNoRtcpToNoRtcp) { |
+ Base::SendNoRtcpToNoRtcp(); |
+} |
+ |
+TEST_F(VoiceChannelSingleThreadTest, SendNoRtcpToRtcp) { |
+ Base::SendNoRtcpToRtcp(); |
+} |
+ |
+TEST_F(VoiceChannelSingleThreadTest, SendRtcpToNoRtcp) { |
+ Base::SendRtcpToNoRtcp(); |
+} |
+ |
TEST_F(VoiceChannelSingleThreadTest, SendRtcpToRtcp) { |
Base::SendRtcpToRtcp(); |
} |
@@ -2345,7 +2396,7 @@ |
// Test that we can scale the output volume properly for 1:1 calls. |
TEST_F(VoiceChannelSingleThreadTest, TestScaleVolume1to1Call) { |
- CreateChannels(0, 0); |
+ CreateChannels(RTCP, RTCP); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
double volume; |
@@ -2369,7 +2420,7 @@ |
// Test that we can scale the output volume properly for multiway calls. |
TEST_F(VoiceChannelSingleThreadTest, TestScaleVolumeMultiwayCall) { |
- CreateChannels(0, 0); |
+ CreateChannels(RTCP, RTCP); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
EXPECT_TRUE(AddStream1(1)); |
@@ -2522,6 +2573,18 @@ |
Base::SendRtpToRtp(); |
} |
+TEST_F(VoiceChannelDoubleThreadTest, SendNoRtcpToNoRtcp) { |
+ Base::SendNoRtcpToNoRtcp(); |
+} |
+ |
+TEST_F(VoiceChannelDoubleThreadTest, SendNoRtcpToRtcp) { |
+ Base::SendNoRtcpToRtcp(); |
+} |
+ |
+TEST_F(VoiceChannelDoubleThreadTest, SendRtcpToNoRtcp) { |
+ Base::SendRtcpToNoRtcp(); |
+} |
+ |
TEST_F(VoiceChannelDoubleThreadTest, SendRtcpToRtcp) { |
Base::SendRtcpToRtcp(); |
} |
@@ -2678,7 +2741,7 @@ |
// Test that we can scale the output volume properly for 1:1 calls. |
TEST_F(VoiceChannelDoubleThreadTest, TestScaleVolume1to1Call) { |
- CreateChannels(0, 0); |
+ CreateChannels(RTCP, RTCP); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
double volume; |
@@ -2702,7 +2765,7 @@ |
// Test that we can scale the output volume properly for multiway calls. |
TEST_F(VoiceChannelDoubleThreadTest, TestScaleVolumeMultiwayCall) { |
- CreateChannels(0, 0); |
+ CreateChannels(RTCP, RTCP); |
EXPECT_TRUE(SendInitiate()); |
EXPECT_TRUE(SendAccept()); |
EXPECT_TRUE(AddStream1(1)); |
@@ -2851,6 +2914,18 @@ |
Base::SendRtpToRtp(); |
} |
+TEST_F(VideoChannelSingleThreadTest, SendNoRtcpToNoRtcp) { |
+ Base::SendNoRtcpToNoRtcp(); |
+} |
+ |
+TEST_F(VideoChannelSingleThreadTest, SendNoRtcpToRtcp) { |
+ Base::SendNoRtcpToRtcp(); |
+} |
+ |
+TEST_F(VideoChannelSingleThreadTest, SendRtcpToNoRtcp) { |
+ Base::SendRtcpToNoRtcp(); |
+} |
+ |
TEST_F(VideoChannelSingleThreadTest, SendRtcpToRtcp) { |
Base::SendRtcpToRtcp(); |
} |
@@ -3083,6 +3158,18 @@ |
Base::SendRtpToRtp(); |
} |
+TEST_F(VideoChannelDoubleThreadTest, SendNoRtcpToNoRtcp) { |
+ Base::SendNoRtcpToNoRtcp(); |
+} |
+ |
+TEST_F(VideoChannelDoubleThreadTest, SendNoRtcpToRtcp) { |
+ Base::SendNoRtcpToRtcp(); |
+} |
+ |
+TEST_F(VideoChannelDoubleThreadTest, SendRtcpToNoRtcp) { |
+ Base::SendRtcpToNoRtcp(); |
+} |
+ |
TEST_F(VideoChannelDoubleThreadTest, SendRtcpToRtcp) { |
Base::SendRtcpToRtcp(); |
} |
@@ -3255,7 +3342,7 @@ |
transport_controller ? transport_controller->signaling_thread() : nullptr; |
cricket::RtpDataChannel* channel = new cricket::RtpDataChannel( |
worker_thread, network_thread, signaling_thread, ch, cricket::CN_DATA, |
- (flags & RTCP_MUX_REQUIRED) != 0, (flags & SECURE) != 0); |
+ (flags & RTCP) != 0, (flags & SECURE) != 0); |
rtc::CryptoOptions crypto_options; |
crypto_options.enable_gcm_crypto_suites = (flags & GCM_CIPHER) != 0; |
channel->SetCryptoOptions(crypto_options); |
@@ -3379,6 +3466,18 @@ |
Base::SendRtpToRtp(); |
} |
+TEST_F(RtpDataChannelSingleThreadTest, SendNoRtcpToNoRtcp) { |
+ Base::SendNoRtcpToNoRtcp(); |
+} |
+ |
+TEST_F(RtpDataChannelSingleThreadTest, SendNoRtcpToRtcp) { |
+ Base::SendNoRtcpToRtcp(); |
+} |
+ |
+TEST_F(RtpDataChannelSingleThreadTest, SendRtcpToNoRtcp) { |
+ Base::SendRtcpToNoRtcp(); |
+} |
+ |
TEST_F(RtpDataChannelSingleThreadTest, SendRtcpToRtcp) { |
Base::SendRtcpToRtcp(); |
} |
@@ -3509,6 +3608,18 @@ |
TEST_F(RtpDataChannelDoubleThreadTest, SendRtpToRtp) { |
Base::SendRtpToRtp(); |
+} |
+ |
+TEST_F(RtpDataChannelDoubleThreadTest, SendNoRtcpToNoRtcp) { |
+ Base::SendNoRtcpToNoRtcp(); |
+} |
+ |
+TEST_F(RtpDataChannelDoubleThreadTest, SendNoRtcpToRtcp) { |
+ Base::SendNoRtcpToRtcp(); |
+} |
+ |
+TEST_F(RtpDataChannelDoubleThreadTest, SendRtcpToNoRtcp) { |
+ Base::SendRtcpToNoRtcp(); |
} |
TEST_F(RtpDataChannelDoubleThreadTest, SendRtcpToRtcp) { |