OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2009 Google Inc. | 3 * Copyright 2009 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 // Calling "_w" method here is ok since we only use one thread for this test | 287 // Calling "_w" method here is ok since we only use one thread for this test |
288 cricket::FakeTransport* GetTransport1() { | 288 cricket::FakeTransport* GetTransport1() { |
289 return transport_controller1_.GetTransport_w(channel1_->content_name()); | 289 return transport_controller1_.GetTransport_w(channel1_->content_name()); |
290 } | 290 } |
291 cricket::FakeTransport* GetTransport2() { | 291 cricket::FakeTransport* GetTransport2() { |
292 return transport_controller2_.GetTransport_w(channel2_->content_name()); | 292 return transport_controller2_.GetTransport_w(channel2_->content_name()); |
293 } | 293 } |
294 | 294 |
295 bool SendRtp1() { | 295 bool SendRtp1() { |
296 return media_channel1_->SendRtp(rtp_packet_.c_str(), | 296 return media_channel1_->SendRtp(rtp_packet_.c_str(), |
297 static_cast<int>(rtp_packet_.size())); | 297 static_cast<int>(rtp_packet_.size()), |
| 298 rtc::PacketOptions()); |
298 } | 299 } |
299 bool SendRtp2() { | 300 bool SendRtp2() { |
300 return media_channel2_->SendRtp(rtp_packet_.c_str(), | 301 return media_channel2_->SendRtp(rtp_packet_.c_str(), |
301 static_cast<int>(rtp_packet_.size())); | 302 static_cast<int>(rtp_packet_.size()), |
| 303 rtc::PacketOptions()); |
302 } | 304 } |
303 bool SendRtcp1() { | 305 bool SendRtcp1() { |
304 return media_channel1_->SendRtcp(rtcp_packet_.c_str(), | 306 return media_channel1_->SendRtcp(rtcp_packet_.c_str(), |
305 static_cast<int>(rtcp_packet_.size())); | 307 static_cast<int>(rtcp_packet_.size())); |
306 } | 308 } |
307 bool SendRtcp2() { | 309 bool SendRtcp2() { |
308 return media_channel2_->SendRtcp(rtcp_packet_.c_str(), | 310 return media_channel2_->SendRtcp(rtcp_packet_.c_str(), |
309 static_cast<int>(rtcp_packet_.size())); | 311 static_cast<int>(rtcp_packet_.size())); |
310 } | 312 } |
311 // Methods to send custom data. | 313 // Methods to send custom data. |
312 bool SendCustomRtp1(uint32_t ssrc, int sequence_number, int pl_type = -1) { | 314 bool SendCustomRtp1(uint32_t ssrc, int sequence_number, int pl_type = -1) { |
313 std::string data(CreateRtpData(ssrc, sequence_number, pl_type)); | 315 std::string data(CreateRtpData(ssrc, sequence_number, pl_type)); |
314 return media_channel1_->SendRtp(data.c_str(), | 316 return media_channel1_->SendRtp(data.c_str(), static_cast<int>(data.size()), |
315 static_cast<int>(data.size())); | 317 rtc::PacketOptions()); |
316 } | 318 } |
317 bool SendCustomRtp2(uint32_t ssrc, int sequence_number, int pl_type = -1) { | 319 bool SendCustomRtp2(uint32_t ssrc, int sequence_number, int pl_type = -1) { |
318 std::string data(CreateRtpData(ssrc, sequence_number, pl_type)); | 320 std::string data(CreateRtpData(ssrc, sequence_number, pl_type)); |
319 return media_channel2_->SendRtp(data.c_str(), | 321 return media_channel2_->SendRtp(data.c_str(), static_cast<int>(data.size()), |
320 static_cast<int>(data.size())); | 322 rtc::PacketOptions()); |
321 } | 323 } |
322 bool SendCustomRtcp1(uint32_t ssrc) { | 324 bool SendCustomRtcp1(uint32_t ssrc) { |
323 std::string data(CreateRtcpData(ssrc)); | 325 std::string data(CreateRtcpData(ssrc)); |
324 return media_channel1_->SendRtcp(data.c_str(), | 326 return media_channel1_->SendRtcp(data.c_str(), |
325 static_cast<int>(data.size())); | 327 static_cast<int>(data.size())); |
326 } | 328 } |
327 bool SendCustomRtcp2(uint32_t ssrc) { | 329 bool SendCustomRtcp2(uint32_t ssrc) { |
328 std::string data(CreateRtcpData(ssrc)); | 330 std::string data(CreateRtcpData(ssrc)); |
329 return media_channel2_->SendRtcp(data.c_str(), | 331 return media_channel2_->SendRtcp(data.c_str(), |
330 static_cast<int>(data.size())); | 332 static_cast<int>(data.size())); |
(...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
950 | 952 |
951 // Test that we don't crash if packets are sent during call teardown | 953 // Test that we don't crash if packets are sent during call teardown |
952 // when RTCP mux is enabled. This is a regression test against a specific | 954 // when RTCP mux is enabled. This is a regression test against a specific |
953 // race condition that would only occur when a RTCP packet was sent during | 955 // race condition that would only occur when a RTCP packet was sent during |
954 // teardown of a channel on which RTCP mux was enabled. | 956 // teardown of a channel on which RTCP mux was enabled. |
955 void TestCallTeardownRtcpMux() { | 957 void TestCallTeardownRtcpMux() { |
956 class LastWordMediaChannel : public T::MediaChannel { | 958 class LastWordMediaChannel : public T::MediaChannel { |
957 public: | 959 public: |
958 LastWordMediaChannel() : T::MediaChannel(NULL, typename T::Options()) {} | 960 LastWordMediaChannel() : T::MediaChannel(NULL, typename T::Options()) {} |
959 ~LastWordMediaChannel() { | 961 ~LastWordMediaChannel() { |
960 T::MediaChannel::SendRtp(kPcmuFrame, sizeof(kPcmuFrame)); | 962 T::MediaChannel::SendRtp(kPcmuFrame, sizeof(kPcmuFrame), |
| 963 rtc::PacketOptions()); |
961 T::MediaChannel::SendRtcp(kRtcpReport, sizeof(kRtcpReport)); | 964 T::MediaChannel::SendRtcp(kRtcpReport, sizeof(kRtcpReport)); |
962 } | 965 } |
963 }; | 966 }; |
964 CreateChannels(new LastWordMediaChannel(), new LastWordMediaChannel(), | 967 CreateChannels(new LastWordMediaChannel(), new LastWordMediaChannel(), |
965 RTCP | RTCP_MUX, RTCP | RTCP_MUX, | 968 RTCP | RTCP_MUX, RTCP | RTCP_MUX, |
966 rtc::Thread::Current()); | 969 rtc::Thread::Current()); |
967 EXPECT_TRUE(SendInitiate()); | 970 EXPECT_TRUE(SendInitiate()); |
968 EXPECT_TRUE(SendAccept()); | 971 EXPECT_TRUE(SendAccept()); |
969 EXPECT_TRUE(SendTerminate()); | 972 EXPECT_TRUE(SendTerminate()); |
970 } | 973 } |
(...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1702 EXPECT_FALSE(channel2_->secure()); | 1705 EXPECT_FALSE(channel2_->secure()); |
1703 EXPECT_TRUE(SendInitiate()); | 1706 EXPECT_TRUE(SendInitiate()); |
1704 EXPECT_TRUE(SendAccept()); | 1707 EXPECT_TRUE(SendAccept()); |
1705 EXPECT_TRUE(channel1_->secure()); | 1708 EXPECT_TRUE(channel1_->secure()); |
1706 EXPECT_TRUE(channel2_->secure()); | 1709 EXPECT_TRUE(channel2_->secure()); |
1707 channel2_->srtp_filter()->set_signal_silent_time(250); | 1710 channel2_->srtp_filter()->set_signal_silent_time(250); |
1708 channel2_->srtp_filter()->SignalSrtpError.connect( | 1711 channel2_->srtp_filter()->SignalSrtpError.connect( |
1709 &error_handler, &SrtpErrorHandler::OnSrtpError); | 1712 &error_handler, &SrtpErrorHandler::OnSrtpError); |
1710 | 1713 |
1711 // Testing failures in sending packets. | 1714 // Testing failures in sending packets. |
1712 EXPECT_FALSE(media_channel2_->SendRtp(kBadPacket, sizeof(kBadPacket))); | 1715 EXPECT_FALSE(media_channel2_->SendRtp(kBadPacket, sizeof(kBadPacket), |
| 1716 rtc::PacketOptions())); |
1713 // The first failure will trigger an error. | 1717 // The first failure will trigger an error. |
1714 EXPECT_EQ_WAIT(cricket::SrtpFilter::ERROR_FAIL, error_handler.error_, 500); | 1718 EXPECT_EQ_WAIT(cricket::SrtpFilter::ERROR_FAIL, error_handler.error_, 500); |
1715 EXPECT_EQ(cricket::SrtpFilter::PROTECT, error_handler.mode_); | 1719 EXPECT_EQ(cricket::SrtpFilter::PROTECT, error_handler.mode_); |
1716 error_handler.error_ = cricket::SrtpFilter::ERROR_NONE; | 1720 error_handler.error_ = cricket::SrtpFilter::ERROR_NONE; |
1717 error_handler.mode_ = cricket::SrtpFilter::UNPROTECT; | 1721 error_handler.mode_ = cricket::SrtpFilter::UNPROTECT; |
1718 // The next 250 ms failures will not trigger an error. | 1722 // The next 250 ms failures will not trigger an error. |
1719 EXPECT_FALSE(media_channel2_->SendRtp(kBadPacket, sizeof(kBadPacket))); | 1723 EXPECT_FALSE(media_channel2_->SendRtp(kBadPacket, sizeof(kBadPacket), |
| 1724 rtc::PacketOptions())); |
1720 // Wait for a while to ensure no message comes in. | 1725 // Wait for a while to ensure no message comes in. |
1721 rtc::Thread::Current()->ProcessMessages(200); | 1726 rtc::Thread::Current()->ProcessMessages(200); |
1722 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_handler.error_); | 1727 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_handler.error_); |
1723 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, error_handler.mode_); | 1728 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, error_handler.mode_); |
1724 // Wait for a little more - the error will be triggered again. | 1729 // Wait for a little more - the error will be triggered again. |
1725 rtc::Thread::Current()->ProcessMessages(200); | 1730 rtc::Thread::Current()->ProcessMessages(200); |
1726 EXPECT_FALSE(media_channel2_->SendRtp(kBadPacket, sizeof(kBadPacket))); | 1731 EXPECT_FALSE(media_channel2_->SendRtp(kBadPacket, sizeof(kBadPacket), |
| 1732 rtc::PacketOptions())); |
1727 EXPECT_EQ_WAIT(cricket::SrtpFilter::ERROR_FAIL, error_handler.error_, 500); | 1733 EXPECT_EQ_WAIT(cricket::SrtpFilter::ERROR_FAIL, error_handler.error_, 500); |
1728 EXPECT_EQ(cricket::SrtpFilter::PROTECT, error_handler.mode_); | 1734 EXPECT_EQ(cricket::SrtpFilter::PROTECT, error_handler.mode_); |
1729 | 1735 |
1730 // Testing failures in receiving packets. | 1736 // Testing failures in receiving packets. |
1731 error_handler.error_ = cricket::SrtpFilter::ERROR_NONE; | 1737 error_handler.error_ = cricket::SrtpFilter::ERROR_NONE; |
1732 error_handler.mode_ = cricket::SrtpFilter::UNPROTECT; | 1738 error_handler.mode_ = cricket::SrtpFilter::UNPROTECT; |
1733 | 1739 |
1734 cricket::TransportChannel* transport_channel = | 1740 cricket::TransportChannel* transport_channel = |
1735 channel2_->transport_channel(); | 1741 channel2_->transport_channel(); |
1736 transport_channel->SignalReadPacket( | 1742 transport_channel->SignalReadPacket( |
(...skipping 1053 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2790 }; | 2796 }; |
2791 rtc::Buffer payload(data, 3); | 2797 rtc::Buffer payload(data, 3); |
2792 cricket::SendDataResult result; | 2798 cricket::SendDataResult result; |
2793 ASSERT_TRUE(media_channel1_->SendData(params, payload, &result)); | 2799 ASSERT_TRUE(media_channel1_->SendData(params, payload, &result)); |
2794 EXPECT_EQ(params.ssrc, | 2800 EXPECT_EQ(params.ssrc, |
2795 media_channel1_->last_sent_data_params().ssrc); | 2801 media_channel1_->last_sent_data_params().ssrc); |
2796 EXPECT_EQ("foo", media_channel1_->last_sent_data()); | 2802 EXPECT_EQ("foo", media_channel1_->last_sent_data()); |
2797 } | 2803 } |
2798 | 2804 |
2799 // TODO(pthatcher): TestSetReceiver? | 2805 // TODO(pthatcher): TestSetReceiver? |
OLD | NEW |