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

Side by Side Diff: webrtc/p2p/base/dtlstransportchannel_unittest.cc

Issue 1548733002: Change DTLS default from 1.0 to 1.2 for webrtc. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: disable tests which fail under msan build. See webrtc bug 5381 Created 4 years, 11 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/p2p/base/dtlstransportchannel.cc ('k') | webrtc/p2p/base/faketransportcontroller.h » ('j') | 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 2011 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2011 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 30 matching lines...) Expand all
41 using cricket::ConnectionRole; 41 using cricket::ConnectionRole;
42 42
43 enum Flags { NF_REOFFER = 0x1, NF_EXPECT_FAILURE = 0x2 }; 43 enum Flags { NF_REOFFER = 0x1, NF_EXPECT_FAILURE = 0x2 };
44 44
45 class DtlsTestClient : public sigslot::has_slots<> { 45 class DtlsTestClient : public sigslot::has_slots<> {
46 public: 46 public:
47 DtlsTestClient(const std::string& name) 47 DtlsTestClient(const std::string& name)
48 : name_(name), 48 : name_(name),
49 packet_size_(0), 49 packet_size_(0),
50 use_dtls_srtp_(false), 50 use_dtls_srtp_(false),
51 ssl_max_version_(rtc::SSL_PROTOCOL_DTLS_10), 51 ssl_max_version_(rtc::SSL_PROTOCOL_DTLS_12),
52 negotiated_dtls_(false), 52 negotiated_dtls_(false),
53 received_dtls_client_hello_(false), 53 received_dtls_client_hello_(false),
54 received_dtls_server_hello_(false) {} 54 received_dtls_server_hello_(false) {}
55 void CreateCertificate(rtc::KeyType key_type) { 55 void CreateCertificate(rtc::KeyType key_type) {
56 certificate_ = 56 certificate_ =
57 rtc::RTCCertificate::Create(rtc::scoped_ptr<rtc::SSLIdentity>( 57 rtc::RTCCertificate::Create(rtc::scoped_ptr<rtc::SSLIdentity>(
58 rtc::SSLIdentity::Generate(name_, key_type))); 58 rtc::SSLIdentity::Generate(name_, key_type)));
59 } 59 }
60 const rtc::scoped_refptr<rtc::RTCCertificate>& certificate() { 60 const rtc::scoped_refptr<rtc::RTCCertificate>& certificate() {
61 return certificate_; 61 return certificate_;
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 393
394 394
395 class DtlsTransportChannelTest : public testing::Test { 395 class DtlsTransportChannelTest : public testing::Test {
396 public: 396 public:
397 DtlsTransportChannelTest() 397 DtlsTransportChannelTest()
398 : client1_("P1"), 398 : client1_("P1"),
399 client2_("P2"), 399 client2_("P2"),
400 channel_ct_(1), 400 channel_ct_(1),
401 use_dtls_(false), 401 use_dtls_(false),
402 use_dtls_srtp_(false), 402 use_dtls_srtp_(false),
403 ssl_expected_version_(rtc::SSL_PROTOCOL_DTLS_10) {} 403 ssl_expected_version_(rtc::SSL_PROTOCOL_DTLS_12) {}
404 404
405 void SetChannelCount(size_t channel_ct) { 405 void SetChannelCount(size_t channel_ct) {
406 channel_ct_ = static_cast<int>(channel_ct); 406 channel_ct_ = static_cast<int>(channel_ct);
407 } 407 }
408 void SetMaxProtocolVersions(rtc::SSLProtocolVersion c1, 408 void SetMaxProtocolVersions(rtc::SSLProtocolVersion c1,
409 rtc::SSLProtocolVersion c2) { 409 rtc::SSLProtocolVersion c2) {
410 client1_.SetupMaxProtocolVersion(c1); 410 client1_.SetupMaxProtocolVersion(c1);
411 client2_.SetupMaxProtocolVersion(c2); 411 client2_.SetupMaxProtocolVersion(c2);
412 ssl_expected_version_ = std::min(c1, c2); 412 ssl_expected_version_ = std::min(c1, c2);
413 } 413 }
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 } 593 }
594 594
595 // Create two channels without DTLS, and transfer SRTP data. 595 // Create two channels without DTLS, and transfer SRTP data.
596 TEST_F(DtlsTransportChannelTest, TestTransferSrtpTwoChannels) { 596 TEST_F(DtlsTransportChannelTest, TestTransferSrtpTwoChannels) {
597 SetChannelCount(2); 597 SetChannelCount(2);
598 ASSERT_TRUE(Connect()); 598 ASSERT_TRUE(Connect());
599 TestTransfer(0, 1000, 100, true); 599 TestTransfer(0, 1000, 100, true);
600 TestTransfer(1, 1000, 100, true); 600 TestTransfer(1, 1000, 100, true);
601 } 601 }
602 602
603 #if defined(MEMORY_SANITIZER)
604 // Fails under MemorySanitizer:
605 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
606 #define MAYBE_TestTransferDtls DISABLED_TestTransferDtls
607 #else
608 #define MAYBE_TestTransferDtls TestTransferDtls
609 #endif
603 // Connect with DTLS, and transfer some data. 610 // Connect with DTLS, and transfer some data.
604 TEST_F(DtlsTransportChannelTest, TestTransferDtls) { 611 TEST_F(DtlsTransportChannelTest, MAYBE_TestTransferDtls) {
605 MAYBE_SKIP_TEST(HaveDtls); 612 MAYBE_SKIP_TEST(HaveDtls);
606 PrepareDtls(true, true, rtc::KT_DEFAULT); 613 PrepareDtls(true, true, rtc::KT_DEFAULT);
607 ASSERT_TRUE(Connect()); 614 ASSERT_TRUE(Connect());
608 TestTransfer(0, 1000, 100, false); 615 TestTransfer(0, 1000, 100, false);
609 } 616 }
610 617
618 #if defined(MEMORY_SANITIZER)
619 // Fails under MemorySanitizer:
620 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
621 #define MAYBE_TestTransferDtlsTwoChannels DISABLED_TestTransferDtlsTwoChannels
622 #else
623 #define MAYBE_TestTransferDtlsTwoChannels TestTransferDtlsTwoChannels
624 #endif
611 // Create two channels with DTLS, and transfer some data. 625 // Create two channels with DTLS, and transfer some data.
612 TEST_F(DtlsTransportChannelTest, TestTransferDtlsTwoChannels) { 626 TEST_F(DtlsTransportChannelTest, MAYBE_TestTransferDtlsTwoChannels) {
613 MAYBE_SKIP_TEST(HaveDtls); 627 MAYBE_SKIP_TEST(HaveDtls);
614 SetChannelCount(2); 628 SetChannelCount(2);
615 PrepareDtls(true, true, rtc::KT_DEFAULT); 629 PrepareDtls(true, true, rtc::KT_DEFAULT);
616 ASSERT_TRUE(Connect()); 630 ASSERT_TRUE(Connect());
617 TestTransfer(0, 1000, 100, false); 631 TestTransfer(0, 1000, 100, false);
618 TestTransfer(1, 1000, 100, false); 632 TestTransfer(1, 1000, 100, false);
619 } 633 }
620 634
621 // Connect with A doing DTLS and B not, and transfer some data. 635 // Connect with A doing DTLS and B not, and transfer some data.
622 TEST_F(DtlsTransportChannelTest, TestTransferDtlsRejected) { 636 TEST_F(DtlsTransportChannelTest, TestTransferDtlsRejected) {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 682
669 // Create two channels with DTLS 1.2 / DTLS 1.0 and check ciphers. 683 // Create two channels with DTLS 1.2 / DTLS 1.0 and check ciphers.
670 TEST_F(DtlsTransportChannelTest, TestDtls12Client2) { 684 TEST_F(DtlsTransportChannelTest, TestDtls12Client2) {
671 MAYBE_SKIP_TEST(HaveDtls); 685 MAYBE_SKIP_TEST(HaveDtls);
672 SetChannelCount(2); 686 SetChannelCount(2);
673 PrepareDtls(true, true, rtc::KT_DEFAULT); 687 PrepareDtls(true, true, rtc::KT_DEFAULT);
674 SetMaxProtocolVersions(rtc::SSL_PROTOCOL_DTLS_10, rtc::SSL_PROTOCOL_DTLS_12); 688 SetMaxProtocolVersions(rtc::SSL_PROTOCOL_DTLS_10, rtc::SSL_PROTOCOL_DTLS_12);
675 ASSERT_TRUE(Connect()); 689 ASSERT_TRUE(Connect());
676 } 690 }
677 691
692 #if defined(MEMORY_SANITIZER)
693 // Fails under MemorySanitizer:
694 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
695 #define MAYBE_TestTransferDtlsSrtp DISABLED_TestTransferDtlsSrtp
696 #else
697 #define MAYBE_TestTransferDtlsSrtp TestTransferDtlsSrtp
698 #endif
678 // Connect with DTLS, negotiate DTLS-SRTP, and transfer SRTP using bypass. 699 // Connect with DTLS, negotiate DTLS-SRTP, and transfer SRTP using bypass.
679 TEST_F(DtlsTransportChannelTest, TestTransferDtlsSrtp) { 700 TEST_F(DtlsTransportChannelTest, MAYBE_TestTransferDtlsSrtp) {
680 MAYBE_SKIP_TEST(HaveDtlsSrtp); 701 MAYBE_SKIP_TEST(HaveDtlsSrtp);
681 PrepareDtls(true, true, rtc::KT_DEFAULT); 702 PrepareDtls(true, true, rtc::KT_DEFAULT);
682 PrepareDtlsSrtp(true, true); 703 PrepareDtlsSrtp(true, true);
683 ASSERT_TRUE(Connect()); 704 ASSERT_TRUE(Connect());
684 TestTransfer(0, 1000, 100, true); 705 TestTransfer(0, 1000, 100, true);
685 } 706 }
686 707
708 #if defined(MEMORY_SANITIZER)
709 // Fails under MemorySanitizer:
710 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
711 #define MAYBE_TestTransferDtlsInvalidSrtpPacket \
712 DISABLED_TestTransferDtlsInvalidSrtpPacket
713 #else
714 #define MAYBE_TestTransferDtlsInvalidSrtpPacket \
715 TestTransferDtlsInvalidSrtpPacket
716 #endif
687 // Connect with DTLS-SRTP, transfer an invalid SRTP packet, and expects -1 717 // Connect with DTLS-SRTP, transfer an invalid SRTP packet, and expects -1
688 // returned. 718 // returned.
689 TEST_F(DtlsTransportChannelTest, TestTransferDtlsInvalidSrtpPacket) { 719 TEST_F(DtlsTransportChannelTest, MAYBE_TestTransferDtlsInvalidSrtpPacket) {
690 MAYBE_SKIP_TEST(HaveDtls); 720 MAYBE_SKIP_TEST(HaveDtls);
691 PrepareDtls(true, true, rtc::KT_DEFAULT); 721 PrepareDtls(true, true, rtc::KT_DEFAULT);
692 PrepareDtlsSrtp(true, true); 722 PrepareDtlsSrtp(true, true);
693 ASSERT_TRUE(Connect()); 723 ASSERT_TRUE(Connect());
694 int result = client1_.SendInvalidSrtpPacket(0, 100); 724 int result = client1_.SendInvalidSrtpPacket(0, 100);
695 ASSERT_EQ(-1, result); 725 ASSERT_EQ(-1, result);
696 } 726 }
697 727
728 #if defined(MEMORY_SANITIZER)
729 // Fails under MemorySanitizer:
730 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
731 #define MAYBE_TestTransferDtlsSrtpRejected DISABLED_TestTransferDtlsSrtpRejected
732 #else
733 #define MAYBE_TestTransferDtlsSrtpRejected TestTransferDtlsSrtpRejected
734 #endif
698 // Connect with DTLS. A does DTLS-SRTP but B does not. 735 // Connect with DTLS. A does DTLS-SRTP but B does not.
699 TEST_F(DtlsTransportChannelTest, TestTransferDtlsSrtpRejected) { 736 TEST_F(DtlsTransportChannelTest, MAYBE_TestTransferDtlsSrtpRejected) {
700 MAYBE_SKIP_TEST(HaveDtlsSrtp); 737 MAYBE_SKIP_TEST(HaveDtlsSrtp);
701 PrepareDtls(true, true, rtc::KT_DEFAULT); 738 PrepareDtls(true, true, rtc::KT_DEFAULT);
702 PrepareDtlsSrtp(true, false); 739 PrepareDtlsSrtp(true, false);
703 ASSERT_TRUE(Connect()); 740 ASSERT_TRUE(Connect());
704 } 741 }
705 742
743 #if defined(MEMORY_SANITIZER)
744 // Fails under MemorySanitizer:
745 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
746 #define MAYBE_TestTransferDtlsSrtpNotOffered \
747 DISABLED_TestTransferDtlsSrtpNotOffered
748 #else
749 #define MAYBE_TestTransferDtlsSrtpNotOffered TestTransferDtlsSrtpNotOffered
750 #endif
706 // Connect with DTLS. B does DTLS-SRTP but A does not. 751 // Connect with DTLS. B does DTLS-SRTP but A does not.
707 TEST_F(DtlsTransportChannelTest, TestTransferDtlsSrtpNotOffered) { 752 TEST_F(DtlsTransportChannelTest, MAYBE_TestTransferDtlsSrtpNotOffered) {
708 MAYBE_SKIP_TEST(HaveDtlsSrtp); 753 MAYBE_SKIP_TEST(HaveDtlsSrtp);
709 PrepareDtls(true, true, rtc::KT_DEFAULT); 754 PrepareDtls(true, true, rtc::KT_DEFAULT);
710 PrepareDtlsSrtp(false, true); 755 PrepareDtlsSrtp(false, true);
711 ASSERT_TRUE(Connect()); 756 ASSERT_TRUE(Connect());
712 } 757 }
713 758
759 #if defined(MEMORY_SANITIZER)
760 // Fails under MemorySanitizer:
761 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
762 #define MAYBE_TestTransferDtlsSrtpTwoChannels \
763 DISABLED_TestTransferDtlsSrtpTwoChannels
764 #else
765 #define MAYBE_TestTransferDtlsSrtpTwoChannels TestTransferDtlsSrtpTwoChannels
766 #endif
714 // Create two channels with DTLS, negotiate DTLS-SRTP, and transfer bypass SRTP. 767 // Create two channels with DTLS, negotiate DTLS-SRTP, and transfer bypass SRTP.
715 TEST_F(DtlsTransportChannelTest, TestTransferDtlsSrtpTwoChannels) { 768 TEST_F(DtlsTransportChannelTest, MAYBE_TestTransferDtlsSrtpTwoChannels) {
716 MAYBE_SKIP_TEST(HaveDtlsSrtp); 769 MAYBE_SKIP_TEST(HaveDtlsSrtp);
717 SetChannelCount(2); 770 SetChannelCount(2);
718 PrepareDtls(true, true, rtc::KT_DEFAULT); 771 PrepareDtls(true, true, rtc::KT_DEFAULT);
719 PrepareDtlsSrtp(true, true); 772 PrepareDtlsSrtp(true, true);
720 ASSERT_TRUE(Connect()); 773 ASSERT_TRUE(Connect());
721 TestTransfer(0, 1000, 100, true); 774 TestTransfer(0, 1000, 100, true);
722 TestTransfer(1, 1000, 100, true); 775 TestTransfer(1, 1000, 100, true);
723 } 776 }
724 777
778 #if defined(MEMORY_SANITIZER)
779 // Fails under MemorySanitizer:
780 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
781 #define MAYBE_TestTransferDtlsSrtpDemux DISABLED_TestTransferDtlsSrtpDemux
782 #else
783 #define MAYBE_TestTransferDtlsSrtpDemux TestTransferDtlsSrtpDemux
784 #endif
725 // Create a single channel with DTLS, and send normal data and SRTP data on it. 785 // Create a single channel with DTLS, and send normal data and SRTP data on it.
726 TEST_F(DtlsTransportChannelTest, TestTransferDtlsSrtpDemux) { 786 TEST_F(DtlsTransportChannelTest, MAYBE_TestTransferDtlsSrtpDemux) {
727 MAYBE_SKIP_TEST(HaveDtlsSrtp); 787 MAYBE_SKIP_TEST(HaveDtlsSrtp);
728 PrepareDtls(true, true, rtc::KT_DEFAULT); 788 PrepareDtls(true, true, rtc::KT_DEFAULT);
729 PrepareDtlsSrtp(true, true); 789 PrepareDtlsSrtp(true, true);
730 ASSERT_TRUE(Connect()); 790 ASSERT_TRUE(Connect());
731 TestTransfer(0, 1000, 100, false); 791 TestTransfer(0, 1000, 100, false);
732 TestTransfer(0, 1000, 100, true); 792 TestTransfer(0, 1000, 100, true);
733 } 793 }
734 794
795 #if defined(MEMORY_SANITIZER)
796 // Fails under MemorySanitizer:
797 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
798 #define MAYBE_TestTransferDtlsAnswererIsPassive \
799 DISABLED_TestTransferDtlsAnswererIsPassive
800 #else
801 #define MAYBE_TestTransferDtlsAnswererIsPassive \
802 TestTransferDtlsAnswererIsPassive
803 #endif
735 // Testing when the remote is passive. 804 // Testing when the remote is passive.
736 TEST_F(DtlsTransportChannelTest, TestTransferDtlsAnswererIsPassive) { 805 TEST_F(DtlsTransportChannelTest, MAYBE_TestTransferDtlsAnswererIsPassive) {
737 MAYBE_SKIP_TEST(HaveDtlsSrtp); 806 MAYBE_SKIP_TEST(HaveDtlsSrtp);
738 SetChannelCount(2); 807 SetChannelCount(2);
739 PrepareDtls(true, true, rtc::KT_DEFAULT); 808 PrepareDtls(true, true, rtc::KT_DEFAULT);
740 PrepareDtlsSrtp(true, true); 809 PrepareDtlsSrtp(true, true);
741 ASSERT_TRUE(Connect(cricket::CONNECTIONROLE_ACTPASS, 810 ASSERT_TRUE(Connect(cricket::CONNECTIONROLE_ACTPASS,
742 cricket::CONNECTIONROLE_PASSIVE)); 811 cricket::CONNECTIONROLE_PASSIVE));
743 TestTransfer(0, 1000, 100, true); 812 TestTransfer(0, 1000, 100, true);
744 TestTransfer(1, 1000, 100, true); 813 TestTransfer(1, 1000, 100, true);
745 } 814 }
746 815
747 // Testing with the legacy DTLS client which doesn't use setup attribute. 816 // Testing with the legacy DTLS client which doesn't use setup attribute.
748 // In this case legacy is the answerer. 817 // In this case legacy is the answerer.
749 TEST_F(DtlsTransportChannelTest, TestDtlsSetupWithLegacyAsAnswerer) { 818 TEST_F(DtlsTransportChannelTest, TestDtlsSetupWithLegacyAsAnswerer) {
750 MAYBE_SKIP_TEST(HaveDtlsSrtp); 819 MAYBE_SKIP_TEST(HaveDtlsSrtp);
751 PrepareDtls(true, true, rtc::KT_DEFAULT); 820 PrepareDtls(true, true, rtc::KT_DEFAULT);
752 NegotiateWithLegacy(); 821 NegotiateWithLegacy();
753 rtc::SSLRole channel1_role; 822 rtc::SSLRole channel1_role;
754 rtc::SSLRole channel2_role; 823 rtc::SSLRole channel2_role;
755 EXPECT_TRUE(client1_.transport()->GetSslRole(&channel1_role)); 824 EXPECT_TRUE(client1_.transport()->GetSslRole(&channel1_role));
756 EXPECT_TRUE(client2_.transport()->GetSslRole(&channel2_role)); 825 EXPECT_TRUE(client2_.transport()->GetSslRole(&channel2_role));
757 EXPECT_EQ(rtc::SSL_SERVER, channel1_role); 826 EXPECT_EQ(rtc::SSL_SERVER, channel1_role);
758 EXPECT_EQ(rtc::SSL_CLIENT, channel2_role); 827 EXPECT_EQ(rtc::SSL_CLIENT, channel2_role);
759 } 828 }
760 829
830 #if defined(MEMORY_SANITIZER)
831 // Fails under MemorySanitizer:
832 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
833 #define MAYBE_TestDtlsReOfferFromOfferer DISABLED_TestDtlsReOfferFromOfferer
834 #else
835 #define MAYBE_TestDtlsReOfferFromOfferer TestDtlsReOfferFromOfferer
836 #endif
761 // Testing re offer/answer after the session is estbalished. Roles will be 837 // Testing re offer/answer after the session is estbalished. Roles will be
762 // kept same as of the previous negotiation. 838 // kept same as of the previous negotiation.
763 TEST_F(DtlsTransportChannelTest, TestDtlsReOfferFromOfferer) { 839 TEST_F(DtlsTransportChannelTest, MAYBE_TestDtlsReOfferFromOfferer) {
764 MAYBE_SKIP_TEST(HaveDtlsSrtp); 840 MAYBE_SKIP_TEST(HaveDtlsSrtp);
765 SetChannelCount(2); 841 SetChannelCount(2);
766 PrepareDtls(true, true, rtc::KT_DEFAULT); 842 PrepareDtls(true, true, rtc::KT_DEFAULT);
767 PrepareDtlsSrtp(true, true); 843 PrepareDtlsSrtp(true, true);
768 // Initial role for client1 is ACTPASS and client2 is ACTIVE. 844 // Initial role for client1 is ACTPASS and client2 is ACTIVE.
769 ASSERT_TRUE(Connect(cricket::CONNECTIONROLE_ACTPASS, 845 ASSERT_TRUE(Connect(cricket::CONNECTIONROLE_ACTPASS,
770 cricket::CONNECTIONROLE_ACTIVE)); 846 cricket::CONNECTIONROLE_ACTIVE));
771 TestTransfer(0, 1000, 100, true); 847 TestTransfer(0, 1000, 100, true);
772 TestTransfer(1, 1000, 100, true); 848 TestTransfer(1, 1000, 100, true);
773 // Using input roles for the re-offer. 849 // Using input roles for the re-offer.
774 Renegotiate(&client1_, cricket::CONNECTIONROLE_ACTPASS, 850 Renegotiate(&client1_, cricket::CONNECTIONROLE_ACTPASS,
775 cricket::CONNECTIONROLE_ACTIVE, NF_REOFFER); 851 cricket::CONNECTIONROLE_ACTIVE, NF_REOFFER);
776 TestTransfer(0, 1000, 100, true); 852 TestTransfer(0, 1000, 100, true);
777 TestTransfer(1, 1000, 100, true); 853 TestTransfer(1, 1000, 100, true);
778 } 854 }
779 855
780 TEST_F(DtlsTransportChannelTest, TestDtlsReOfferFromAnswerer) { 856 #if defined(MEMORY_SANITIZER)
857 // Fails under MemorySanitizer:
858 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
859 #define MAYBE_TestDtlsReOfferFromAnswerer DISABLED_TestDtlsReOfferFromAnswerer
860 #else
861 #define MAYBE_TestDtlsReOfferFromAnswerer TestDtlsReOfferFromAnswerer
862 #endif
863 TEST_F(DtlsTransportChannelTest, MAYBE_TestDtlsReOfferFromAnswerer) {
781 MAYBE_SKIP_TEST(HaveDtlsSrtp); 864 MAYBE_SKIP_TEST(HaveDtlsSrtp);
782 SetChannelCount(2); 865 SetChannelCount(2);
783 PrepareDtls(true, true, rtc::KT_DEFAULT); 866 PrepareDtls(true, true, rtc::KT_DEFAULT);
784 PrepareDtlsSrtp(true, true); 867 PrepareDtlsSrtp(true, true);
785 // Initial role for client1 is ACTPASS and client2 is ACTIVE. 868 // Initial role for client1 is ACTPASS and client2 is ACTIVE.
786 ASSERT_TRUE(Connect(cricket::CONNECTIONROLE_ACTPASS, 869 ASSERT_TRUE(Connect(cricket::CONNECTIONROLE_ACTPASS,
787 cricket::CONNECTIONROLE_ACTIVE)); 870 cricket::CONNECTIONROLE_ACTIVE));
788 TestTransfer(0, 1000, 100, true); 871 TestTransfer(0, 1000, 100, true);
789 TestTransfer(1, 1000, 100, true); 872 TestTransfer(1, 1000, 100, true);
790 // Using input roles for the re-offer. 873 // Using input roles for the re-offer.
791 Renegotiate(&client2_, cricket::CONNECTIONROLE_PASSIVE, 874 Renegotiate(&client2_, cricket::CONNECTIONROLE_PASSIVE,
792 cricket::CONNECTIONROLE_ACTPASS, NF_REOFFER); 875 cricket::CONNECTIONROLE_ACTPASS, NF_REOFFER);
793 TestTransfer(0, 1000, 100, true); 876 TestTransfer(0, 1000, 100, true);
794 TestTransfer(1, 1000, 100, true); 877 TestTransfer(1, 1000, 100, true);
795 } 878 }
796 879
880 #if defined(MEMORY_SANITIZER)
881 // Fails under MemorySanitizer:
882 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
883 #define MAYBE_TestDtlsRoleReversal DISABLED_TestDtlsRoleReversal
884 #else
885 #define MAYBE_TestDtlsRoleReversal TestDtlsRoleReversal
886 #endif
797 // Test that any change in role after the intial setup will result in failure. 887 // Test that any change in role after the intial setup will result in failure.
798 TEST_F(DtlsTransportChannelTest, TestDtlsRoleReversal) { 888 TEST_F(DtlsTransportChannelTest, MAYBE_TestDtlsRoleReversal) {
799 MAYBE_SKIP_TEST(HaveDtlsSrtp); 889 MAYBE_SKIP_TEST(HaveDtlsSrtp);
800 SetChannelCount(2); 890 SetChannelCount(2);
801 PrepareDtls(true, true, rtc::KT_DEFAULT); 891 PrepareDtls(true, true, rtc::KT_DEFAULT);
802 PrepareDtlsSrtp(true, true); 892 PrepareDtlsSrtp(true, true);
803 ASSERT_TRUE(Connect(cricket::CONNECTIONROLE_ACTPASS, 893 ASSERT_TRUE(Connect(cricket::CONNECTIONROLE_ACTPASS,
804 cricket::CONNECTIONROLE_PASSIVE)); 894 cricket::CONNECTIONROLE_PASSIVE));
805 895
806 // Renegotiate from client2 with actpass and client1 as active. 896 // Renegotiate from client2 with actpass and client1 as active.
807 Renegotiate(&client2_, cricket::CONNECTIONROLE_ACTPASS, 897 Renegotiate(&client2_, cricket::CONNECTIONROLE_ACTPASS,
808 cricket::CONNECTIONROLE_ACTIVE, 898 cricket::CONNECTIONROLE_ACTIVE,
809 NF_REOFFER | NF_EXPECT_FAILURE); 899 NF_REOFFER | NF_EXPECT_FAILURE);
810 } 900 }
811 901
902 #if defined(MEMORY_SANITIZER)
903 // Fails under MemorySanitizer:
904 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
905 #define MAYBE_TestDtlsReOfferWithDifferentSetupAttr \
906 DISABLED_TestDtlsReOfferWithDifferentSetupAttr
907 #else
908 #define MAYBE_TestDtlsReOfferWithDifferentSetupAttr \
909 TestDtlsReOfferWithDifferentSetupAttr
910 #endif
812 // Test that using different setup attributes which results in similar ssl 911 // Test that using different setup attributes which results in similar ssl
813 // role as the initial negotiation will result in success. 912 // role as the initial negotiation will result in success.
814 TEST_F(DtlsTransportChannelTest, TestDtlsReOfferWithDifferentSetupAttr) { 913 TEST_F(DtlsTransportChannelTest, MAYBE_TestDtlsReOfferWithDifferentSetupAttr) {
815 MAYBE_SKIP_TEST(HaveDtlsSrtp); 914 MAYBE_SKIP_TEST(HaveDtlsSrtp);
816 SetChannelCount(2); 915 SetChannelCount(2);
817 PrepareDtls(true, true, rtc::KT_DEFAULT); 916 PrepareDtls(true, true, rtc::KT_DEFAULT);
818 PrepareDtlsSrtp(true, true); 917 PrepareDtlsSrtp(true, true);
819 ASSERT_TRUE(Connect(cricket::CONNECTIONROLE_ACTPASS, 918 ASSERT_TRUE(Connect(cricket::CONNECTIONROLE_ACTPASS,
820 cricket::CONNECTIONROLE_PASSIVE)); 919 cricket::CONNECTIONROLE_PASSIVE));
821 // Renegotiate from client2 with actpass and client1 as active. 920 // Renegotiate from client2 with actpass and client1 as active.
822 Renegotiate(&client2_, cricket::CONNECTIONROLE_ACTIVE, 921 Renegotiate(&client2_, cricket::CONNECTIONROLE_ACTIVE,
823 cricket::CONNECTIONROLE_ACTPASS, NF_REOFFER); 922 cricket::CONNECTIONROLE_ACTPASS, NF_REOFFER);
824 TestTransfer(0, 1000, 100, true); 923 TestTransfer(0, 1000, 100, true);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
864 ASSERT_NE(certificate1->ssl_certificate().ToPEMString(), 963 ASSERT_NE(certificate1->ssl_certificate().ToPEMString(),
865 certificate2->ssl_certificate().ToPEMString()); 964 certificate2->ssl_certificate().ToPEMString());
866 ASSERT_FALSE( 965 ASSERT_FALSE(
867 client1_.transport()->GetRemoteSSLCertificate(remote_cert1.accept())); 966 client1_.transport()->GetRemoteSSLCertificate(remote_cert1.accept()));
868 ASSERT_FALSE(remote_cert1 != NULL); 967 ASSERT_FALSE(remote_cert1 != NULL);
869 ASSERT_FALSE( 968 ASSERT_FALSE(
870 client2_.transport()->GetRemoteSSLCertificate(remote_cert2.accept())); 969 client2_.transport()->GetRemoteSSLCertificate(remote_cert2.accept()));
871 ASSERT_FALSE(remote_cert2 != NULL); 970 ASSERT_FALSE(remote_cert2 != NULL);
872 } 971 }
873 972
973 #if defined(MEMORY_SANITIZER)
974 // Fails under MemorySanitizer:
975 // See https://code.google.com/p/webrtc/issues/detail?id=5381.
976 #define MAYBE_TestCertificatesAfterConnect DISABLED_TestCertificatesAfterConnect
977 #else
978 #define MAYBE_TestCertificatesAfterConnect TestCertificatesAfterConnect
979 #endif
874 // Test Certificates state after connection. 980 // Test Certificates state after connection.
875 TEST_F(DtlsTransportChannelTest, TestCertificatesAfterConnect) { 981 TEST_F(DtlsTransportChannelTest, MAYBE_TestCertificatesAfterConnect) {
876 MAYBE_SKIP_TEST(HaveDtls); 982 MAYBE_SKIP_TEST(HaveDtls);
877 PrepareDtls(true, true, rtc::KT_DEFAULT); 983 PrepareDtls(true, true, rtc::KT_DEFAULT);
878 ASSERT_TRUE(Connect()); 984 ASSERT_TRUE(Connect());
879 985
880 rtc::scoped_refptr<rtc::RTCCertificate> certificate1; 986 rtc::scoped_refptr<rtc::RTCCertificate> certificate1;
881 rtc::scoped_refptr<rtc::RTCCertificate> certificate2; 987 rtc::scoped_refptr<rtc::RTCCertificate> certificate2;
882 rtc::scoped_ptr<rtc::SSLCertificate> remote_cert1; 988 rtc::scoped_ptr<rtc::SSLCertificate> remote_cert1;
883 rtc::scoped_ptr<rtc::SSLCertificate> remote_cert2; 989 rtc::scoped_ptr<rtc::SSLCertificate> remote_cert2;
884 990
885 // After connection, each side has a distinct local certificate. 991 // After connection, each side has a distinct local certificate.
886 ASSERT_TRUE(client1_.transport()->GetLocalCertificate(&certificate1)); 992 ASSERT_TRUE(client1_.transport()->GetLocalCertificate(&certificate1));
887 ASSERT_TRUE(client2_.transport()->GetLocalCertificate(&certificate2)); 993 ASSERT_TRUE(client2_.transport()->GetLocalCertificate(&certificate2));
888 ASSERT_NE(certificate1->ssl_certificate().ToPEMString(), 994 ASSERT_NE(certificate1->ssl_certificate().ToPEMString(),
889 certificate2->ssl_certificate().ToPEMString()); 995 certificate2->ssl_certificate().ToPEMString());
890 996
891 // Each side's remote certificate is the other side's local certificate. 997 // Each side's remote certificate is the other side's local certificate.
892 ASSERT_TRUE( 998 ASSERT_TRUE(
893 client1_.transport()->GetRemoteSSLCertificate(remote_cert1.accept())); 999 client1_.transport()->GetRemoteSSLCertificate(remote_cert1.accept()));
894 ASSERT_EQ(remote_cert1->ToPEMString(), 1000 ASSERT_EQ(remote_cert1->ToPEMString(),
895 certificate2->ssl_certificate().ToPEMString()); 1001 certificate2->ssl_certificate().ToPEMString());
896 ASSERT_TRUE( 1002 ASSERT_TRUE(
897 client2_.transport()->GetRemoteSSLCertificate(remote_cert2.accept())); 1003 client2_.transport()->GetRemoteSSLCertificate(remote_cert2.accept()));
898 ASSERT_EQ(remote_cert2->ToPEMString(), 1004 ASSERT_EQ(remote_cert2->ToPEMString(),
899 certificate1->ssl_certificate().ToPEMString()); 1005 certificate1->ssl_certificate().ToPEMString());
900 } 1006 }
OLDNEW
« no previous file with comments | « webrtc/p2p/base/dtlstransportchannel.cc ('k') | webrtc/p2p/base/faketransportcontroller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698