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

Side by Side Diff: talk/app/webrtc/peerconnection_unittest.cc

Issue 1462933002: Disable all JsepPeerConnectionP2PTestClient tests on Mac due to flakiness on Mac Debug bots. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 1 month 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 | « no previous file | 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 * libjingle 2 * libjingle
3 * Copyright 2012 Google Inc. 3 * Copyright 2012 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 874 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 bool remove_msid_ = false; // True if MSID should be removed in received SDP. 885 bool remove_msid_ = false; // True if MSID should be removed in received SDP.
886 bool remove_bundle_ = 886 bool remove_bundle_ =
887 false; // True if bundle should be removed in received SDP. 887 false; // True if bundle should be removed in received SDP.
888 bool remove_sdes_ = 888 bool remove_sdes_ =
889 false; // True if a=crypto should be removed in received SDP. 889 false; // True if a=crypto should be removed in received SDP.
890 890
891 rtc::scoped_refptr<DataChannelInterface> data_channel_; 891 rtc::scoped_refptr<DataChannelInterface> data_channel_;
892 rtc::scoped_ptr<MockDataChannelObserver> data_observer_; 892 rtc::scoped_ptr<MockDataChannelObserver> data_observer_;
893 }; 893 };
894 894
895 // Flaky on Mac Debug bots. See webrtc:5231
896 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
897 #define MAYBE_JsepPeerConnectionP2PTestClient \
898 DISABLED_JsepPeerConnectionP2PTestClient
899 #else
900 #define MAYBE_JsepPeerConnectionP2PTestClient JsepPeerConnectionP2PTestClient
901 #endif
902
895 // TODO(deadbeef): Rename this to P2PTestConductor once the Linux memcheck and 903 // TODO(deadbeef): Rename this to P2PTestConductor once the Linux memcheck and
896 // Windows DrMemory Full bots' blacklists are updated. 904 // Windows DrMemory Full bots' blacklists are updated.
897 class JsepPeerConnectionP2PTestClient : public testing::Test { 905 class MAYBE_JsepPeerConnectionP2PTestClient : public testing::Test {
898 public: 906 public:
899 JsepPeerConnectionP2PTestClient() 907 MAYBE_JsepPeerConnectionP2PTestClient()
900 : pss_(new rtc::PhysicalSocketServer), 908 : pss_(new rtc::PhysicalSocketServer),
901 ss_(new rtc::VirtualSocketServer(pss_.get())), 909 ss_(new rtc::VirtualSocketServer(pss_.get())),
902 ss_scope_(ss_.get()) {} 910 ss_scope_(ss_.get()) {}
903 911
904 bool SessionActive() { 912 bool SessionActive() {
905 return initiating_client_->SessionActive() && 913 return initiating_client_->SessionActive() &&
906 receiving_client_->SessionActive(); 914 receiving_client_->SessionActive();
907 } 915 }
908 916
909 // Return true if the number of frames provided have been received or it is 917 // Return true if the number of frames provided have been received or it is
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
944 EXPECT_EQ(height, initializing_client()->rendered_height()); 952 EXPECT_EQ(height, initializing_client()->rendered_height());
945 } 953 }
946 954
947 void VerifySessionDescriptions() { 955 void VerifySessionDescriptions() {
948 initiating_client_->VerifyRejectedMediaInSessionDescription(); 956 initiating_client_->VerifyRejectedMediaInSessionDescription();
949 receiving_client_->VerifyRejectedMediaInSessionDescription(); 957 receiving_client_->VerifyRejectedMediaInSessionDescription();
950 initiating_client_->VerifyLocalIceUfragAndPassword(); 958 initiating_client_->VerifyLocalIceUfragAndPassword();
951 receiving_client_->VerifyLocalIceUfragAndPassword(); 959 receiving_client_->VerifyLocalIceUfragAndPassword();
952 } 960 }
953 961
954 ~JsepPeerConnectionP2PTestClient() { 962 ~MAYBE_JsepPeerConnectionP2PTestClient() {
955 if (initiating_client_) { 963 if (initiating_client_) {
956 initiating_client_->set_signaling_message_receiver(nullptr); 964 initiating_client_->set_signaling_message_receiver(nullptr);
957 } 965 }
958 if (receiving_client_) { 966 if (receiving_client_) {
959 receiving_client_->set_signaling_message_receiver(nullptr); 967 receiving_client_->set_signaling_message_receiver(nullptr);
960 } 968 }
961 } 969 }
962 970
963 bool CreateTestClients() { return CreateTestClients(nullptr, nullptr); } 971 bool CreateTestClients() { return CreateTestClients(nullptr, nullptr); }
964 972
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
1083 rtc::scoped_ptr<PeerConnectionTestClient> receiving_client_; 1091 rtc::scoped_ptr<PeerConnectionTestClient> receiving_client_;
1084 }; 1092 };
1085 1093
1086 // Disable for TSan v2, see 1094 // Disable for TSan v2, see
1087 // https://code.google.com/p/webrtc/issues/detail?id=1205 for details. 1095 // https://code.google.com/p/webrtc/issues/detail?id=1205 for details.
1088 #if !defined(THREAD_SANITIZER) 1096 #if !defined(THREAD_SANITIZER)
1089 1097
1090 // This test sets up a Jsep call between two parties and test Dtmf. 1098 // This test sets up a Jsep call between two parties and test Dtmf.
1091 // TODO(holmer): Disabled due to sometimes crashing on buildbots. 1099 // TODO(holmer): Disabled due to sometimes crashing on buildbots.
1092 // See issue webrtc/2378. 1100 // See issue webrtc/2378.
1093 TEST_F(JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTestDtmf) { 1101 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTestDtmf) {
1094 ASSERT_TRUE(CreateTestClients()); 1102 ASSERT_TRUE(CreateTestClients());
1095 LocalP2PTest(); 1103 LocalP2PTest();
1096 VerifyDtmf(); 1104 VerifyDtmf();
1097 } 1105 }
1098 1106
1099 // This test sets up a Jsep call between two parties and test that we can get a 1107 // This test sets up a Jsep call between two parties and test that we can get a
1100 // video aspect ratio of 16:9. 1108 // video aspect ratio of 16:9.
1101 TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTest16To9) { 1109 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTest16To9) {
1102 ASSERT_TRUE(CreateTestClients()); 1110 ASSERT_TRUE(CreateTestClients());
1103 FakeConstraints constraint; 1111 FakeConstraints constraint;
1104 double requested_ratio = 640.0/360; 1112 double requested_ratio = 640.0/360;
1105 constraint.SetMandatoryMinAspectRatio(requested_ratio); 1113 constraint.SetMandatoryMinAspectRatio(requested_ratio);
1106 SetVideoConstraints(constraint, constraint); 1114 SetVideoConstraints(constraint, constraint);
1107 LocalP2PTest(); 1115 LocalP2PTest();
1108 1116
1109 ASSERT_LE(0, initializing_client()->rendered_height()); 1117 ASSERT_LE(0, initializing_client()->rendered_height());
1110 double initiating_video_ratio = 1118 double initiating_video_ratio =
1111 static_cast<double>(initializing_client()->rendered_width()) / 1119 static_cast<double>(initializing_client()->rendered_width()) /
1112 initializing_client()->rendered_height(); 1120 initializing_client()->rendered_height();
1113 EXPECT_LE(requested_ratio, initiating_video_ratio); 1121 EXPECT_LE(requested_ratio, initiating_video_ratio);
1114 1122
1115 ASSERT_LE(0, receiving_client()->rendered_height()); 1123 ASSERT_LE(0, receiving_client()->rendered_height());
1116 double receiving_video_ratio = 1124 double receiving_video_ratio =
1117 static_cast<double>(receiving_client()->rendered_width()) / 1125 static_cast<double>(receiving_client()->rendered_width()) /
1118 receiving_client()->rendered_height(); 1126 receiving_client()->rendered_height();
1119 EXPECT_LE(requested_ratio, receiving_video_ratio); 1127 EXPECT_LE(requested_ratio, receiving_video_ratio);
1120 } 1128 }
1121 1129
1122 // This test sets up a Jsep call between two parties and test that the 1130 // This test sets up a Jsep call between two parties and test that the
1123 // received video has a resolution of 1280*720. 1131 // received video has a resolution of 1280*720.
1124 // TODO(mallinath): Enable when 1132 // TODO(mallinath): Enable when
1125 // http://code.google.com/p/webrtc/issues/detail?id=981 is fixed. 1133 // http://code.google.com/p/webrtc/issues/detail?id=981 is fixed.
1126 TEST_F(JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTest1280By720) { 1134 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTest1280By720) {
1127 ASSERT_TRUE(CreateTestClients()); 1135 ASSERT_TRUE(CreateTestClients());
1128 FakeConstraints constraint; 1136 FakeConstraints constraint;
1129 constraint.SetMandatoryMinWidth(1280); 1137 constraint.SetMandatoryMinWidth(1280);
1130 constraint.SetMandatoryMinHeight(720); 1138 constraint.SetMandatoryMinHeight(720);
1131 SetVideoConstraints(constraint, constraint); 1139 SetVideoConstraints(constraint, constraint);
1132 LocalP2PTest(); 1140 LocalP2PTest();
1133 VerifyRenderedSize(1280, 720); 1141 VerifyRenderedSize(1280, 720);
1134 } 1142 }
1135 1143
1136 // This test sets up a call between two endpoints that are configured to use 1144 // This test sets up a call between two endpoints that are configured to use
1137 // DTLS key agreement. As a result, DTLS is negotiated and used for transport. 1145 // DTLS key agreement. As a result, DTLS is negotiated and used for transport.
1138 TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestDtls) { 1146 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestDtls) {
1139 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); 1147 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
1140 FakeConstraints setup_constraints; 1148 FakeConstraints setup_constraints;
1141 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, 1149 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp,
1142 true); 1150 true);
1143 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); 1151 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
1144 LocalP2PTest(); 1152 LocalP2PTest();
1145 VerifyRenderedSize(640, 480); 1153 VerifyRenderedSize(640, 480);
1146 } 1154 }
1147 1155
1148 // This test sets up a audio call initially and then upgrades to audio/video, 1156 // This test sets up a audio call initially and then upgrades to audio/video,
1149 // using DTLS. 1157 // using DTLS.
1150 TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestDtlsRenegotiate) { 1158 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestDtlsRenegotiate) {
1151 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); 1159 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
1152 FakeConstraints setup_constraints; 1160 FakeConstraints setup_constraints;
1153 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, 1161 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp,
1154 true); 1162 true);
1155 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); 1163 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
1156 receiving_client()->SetReceiveAudioVideo(true, false); 1164 receiving_client()->SetReceiveAudioVideo(true, false);
1157 LocalP2PTest(); 1165 LocalP2PTest();
1158 receiving_client()->SetReceiveAudioVideo(true, true); 1166 receiving_client()->SetReceiveAudioVideo(true, true);
1159 receiving_client()->Negotiate(); 1167 receiving_client()->Negotiate();
1160 } 1168 }
1161 1169
1162 // Flaky on Mac Debug bots. See webrtc:5231
1163 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
1164 #define MAYBE_LocalP2PTestOfferDtlsButNotSdes \
1165 DISABLED_LocalP2PTestOfferDtlsButNotSdes
1166 #else
1167 #define MAYBE_LocalP2PTestOfferDtlsButNotSdes LocalP2PTestOfferDtlsButNotSdes
1168 #endif
1169
1170 // This test sets up a call between two endpoints that are configured to use 1170 // This test sets up a call between two endpoints that are configured to use
1171 // DTLS key agreement. The offerer don't support SDES. As a result, DTLS is 1171 // DTLS key agreement. The offerer don't support SDES. As a result, DTLS is
1172 // negotiated and used for transport. 1172 // negotiated and used for transport.
1173 TEST_F(JsepPeerConnectionP2PTestClient, MAYBE_LocalP2PTestOfferDtlsButNotSdes) { 1173 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient,
1174 MAYBE_LocalP2PTestOfferDtlsButNotSdes) {
kjellander_webrtc 2015/12/02 12:16:38 Please remove MAYBE_ from the test case name in a
1174 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); 1175 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
1175 FakeConstraints setup_constraints; 1176 FakeConstraints setup_constraints;
1176 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, 1177 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp,
1177 true); 1178 true);
1178 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); 1179 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
1179 receiving_client()->RemoveSdesCryptoFromReceivedSdp(true); 1180 receiving_client()->RemoveSdesCryptoFromReceivedSdp(true);
1180 LocalP2PTest(); 1181 LocalP2PTest();
1181 VerifyRenderedSize(640, 480); 1182 VerifyRenderedSize(640, 480);
1182 } 1183 }
1183 1184
1184 // This test sets up a Jsep call between two parties, and the callee only 1185 // This test sets up a Jsep call between two parties, and the callee only
1185 // accept to receive video. 1186 // accept to receive video.
1186 TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestAnswerVideo) { 1187 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestAnswerVideo) {
1187 ASSERT_TRUE(CreateTestClients()); 1188 ASSERT_TRUE(CreateTestClients());
1188 receiving_client()->SetReceiveAudioVideo(false, true); 1189 receiving_client()->SetReceiveAudioVideo(false, true);
1189 LocalP2PTest(); 1190 LocalP2PTest();
1190 } 1191 }
1191 1192
1192 // This test sets up a Jsep call between two parties, and the callee only 1193 // This test sets up a Jsep call between two parties, and the callee only
1193 // accept to receive audio. 1194 // accept to receive audio.
1194 TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestAnswerAudio) { 1195 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestAnswerAudio) {
1195 ASSERT_TRUE(CreateTestClients()); 1196 ASSERT_TRUE(CreateTestClients());
1196 receiving_client()->SetReceiveAudioVideo(true, false); 1197 receiving_client()->SetReceiveAudioVideo(true, false);
1197 LocalP2PTest(); 1198 LocalP2PTest();
1198 } 1199 }
1199 1200
1200 // This test sets up a Jsep call between two parties, and the callee reject both 1201 // This test sets up a Jsep call between two parties, and the callee reject both
1201 // audio and video. 1202 // audio and video.
1202 TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestAnswerNone) { 1203 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestAnswerNone) {
1203 ASSERT_TRUE(CreateTestClients()); 1204 ASSERT_TRUE(CreateTestClients());
1204 receiving_client()->SetReceiveAudioVideo(false, false); 1205 receiving_client()->SetReceiveAudioVideo(false, false);
1205 LocalP2PTest(); 1206 LocalP2PTest();
1206 } 1207 }
1207 1208
1208 // This test sets up an audio and video call between two parties. After the call 1209 // This test sets up an audio and video call between two parties. After the call
1209 // runs for a while (10 frames), the caller sends an update offer with video 1210 // runs for a while (10 frames), the caller sends an update offer with video
1210 // being rejected. Once the re-negotiation is done, the video flow should stop 1211 // being rejected. Once the re-negotiation is done, the video flow should stop
1211 // and the audio flow should continue. 1212 // and the audio flow should continue.
1212 // Disabled due to b/14955157. 1213 // Disabled due to b/14955157.
1213 TEST_F(JsepPeerConnectionP2PTestClient, 1214 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient,
1214 DISABLED_UpdateOfferWithRejectedContent) { 1215 DISABLED_UpdateOfferWithRejectedContent) {
1215 ASSERT_TRUE(CreateTestClients()); 1216 ASSERT_TRUE(CreateTestClients());
1216 LocalP2PTest(); 1217 LocalP2PTest();
1217 TestUpdateOfferWithRejectedContent(); 1218 TestUpdateOfferWithRejectedContent();
1218 } 1219 }
1219 1220
1220 // This test sets up a Jsep call between two parties. The MSID is removed from 1221 // This test sets up a Jsep call between two parties. The MSID is removed from
1221 // the SDP strings from the caller. 1222 // the SDP strings from the caller.
1222 // Disabled due to b/14955157. 1223 // Disabled due to b/14955157.
1223 TEST_F(JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTestWithoutMsid) { 1224 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient,
1225 DISABLED_LocalP2PTestWithoutMsid) {
1224 ASSERT_TRUE(CreateTestClients()); 1226 ASSERT_TRUE(CreateTestClients());
1225 receiving_client()->RemoveMsidFromReceivedSdp(true); 1227 receiving_client()->RemoveMsidFromReceivedSdp(true);
1226 // TODO(perkj): Currently there is a bug that cause audio to stop playing if 1228 // TODO(perkj): Currently there is a bug that cause audio to stop playing if
1227 // audio and video is muxed when MSID is disabled. Remove 1229 // audio and video is muxed when MSID is disabled. Remove
1228 // SetRemoveBundleFromSdp once 1230 // SetRemoveBundleFromSdp once
1229 // https://code.google.com/p/webrtc/issues/detail?id=1193 is fixed. 1231 // https://code.google.com/p/webrtc/issues/detail?id=1193 is fixed.
1230 receiving_client()->RemoveBundleFromReceivedSdp(true); 1232 receiving_client()->RemoveBundleFromReceivedSdp(true);
1231 LocalP2PTest(); 1233 LocalP2PTest();
1232 } 1234 }
1233 1235
1234 // This test sets up a Jsep call between two parties and the initiating peer 1236 // This test sets up a Jsep call between two parties and the initiating peer
1235 // sends two steams. 1237 // sends two steams.
1236 // TODO(perkj): Disabled due to 1238 // TODO(perkj): Disabled due to
1237 // https://code.google.com/p/webrtc/issues/detail?id=1454 1239 // https://code.google.com/p/webrtc/issues/detail?id=1454
1238 TEST_F(JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTestTwoStreams) { 1240 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTestTwoStreams) {
1239 ASSERT_TRUE(CreateTestClients()); 1241 ASSERT_TRUE(CreateTestClients());
1240 // Set optional video constraint to max 320pixels to decrease CPU usage. 1242 // Set optional video constraint to max 320pixels to decrease CPU usage.
1241 FakeConstraints constraint; 1243 FakeConstraints constraint;
1242 constraint.SetOptionalMaxWidth(320); 1244 constraint.SetOptionalMaxWidth(320);
1243 SetVideoConstraints(constraint, constraint); 1245 SetVideoConstraints(constraint, constraint);
1244 initializing_client()->AddMediaStream(true, true); 1246 initializing_client()->AddMediaStream(true, true);
1245 initializing_client()->AddMediaStream(false, true); 1247 initializing_client()->AddMediaStream(false, true);
1246 ASSERT_EQ(2u, initializing_client()->NumberOfLocalMediaStreams()); 1248 ASSERT_EQ(2u, initializing_client()->NumberOfLocalMediaStreams());
1247 LocalP2PTest(); 1249 LocalP2PTest();
1248 EXPECT_EQ(2u, receiving_client()->number_of_remote_streams()); 1250 EXPECT_EQ(2u, receiving_client()->number_of_remote_streams());
1249 } 1251 }
1250 1252
1251 // Flaky on Mac Debug bots. See webrtc:5231
1252 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
1253 #define MAYBE_GetAudioOutputLevelStats DISABLED_GetAudioOutputLevelStats
1254 #else
1255 #define MAYBE_GetAudioOutputLevelStats GetAudioOutputLevelStats
1256 #endif
1257
1258 // Test that we can receive the audio output level from a remote audio track. 1253 // Test that we can receive the audio output level from a remote audio track.
1259 TEST_F(JsepPeerConnectionP2PTestClient, MAYBE_GetAudioOutputLevelStats) { 1254 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, MAYBE_GetAudioOutputLevelStats) {
kjellander_webrtc 2015/12/02 12:16:38 Please remove MAYBE_ from the test case name in a
1260 ASSERT_TRUE(CreateTestClients()); 1255 ASSERT_TRUE(CreateTestClients());
1261 LocalP2PTest(); 1256 LocalP2PTest();
1262 1257
1263 StreamCollectionInterface* remote_streams = 1258 StreamCollectionInterface* remote_streams =
1264 initializing_client()->remote_streams(); 1259 initializing_client()->remote_streams();
1265 ASSERT_GT(remote_streams->count(), 0u); 1260 ASSERT_GT(remote_streams->count(), 0u);
1266 ASSERT_GT(remote_streams->at(0)->GetAudioTracks().size(), 0u); 1261 ASSERT_GT(remote_streams->at(0)->GetAudioTracks().size(), 0u);
1267 MediaStreamTrackInterface* remote_audio_track = 1262 MediaStreamTrackInterface* remote_audio_track =
1268 remote_streams->at(0)->GetAudioTracks()[0]; 1263 remote_streams->at(0)->GetAudioTracks()[0];
1269 1264
1270 // Get the audio output level stats. Note that the level is not available 1265 // Get the audio output level stats. Note that the level is not available
1271 // until a RTCP packet has been received. 1266 // until a RTCP packet has been received.
1272 EXPECT_TRUE_WAIT( 1267 EXPECT_TRUE_WAIT(
1273 initializing_client()->GetAudioOutputLevelStats(remote_audio_track) > 0, 1268 initializing_client()->GetAudioOutputLevelStats(remote_audio_track) > 0,
1274 kMaxWaitForStatsMs); 1269 kMaxWaitForStatsMs);
1275 } 1270 }
1276 1271
1277 // Flaky on Mac Debug bots. See webrtc:5231
1278 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
1279 #define MAYBE_GetAudioInputLevelStats DISABLED_GetAudioInputLevelStats
1280 #else
1281 #define MAYBE_GetAudioInputLevelStats GetAudioInputLevelStats
1282 #endif
1283
1284 // Test that an audio input level is reported. 1272 // Test that an audio input level is reported.
1285 TEST_F(JsepPeerConnectionP2PTestClient, MAYBE_GetAudioInputLevelStats) { 1273 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, MAYBE_GetAudioInputLevelStats) {
kjellander_webrtc 2015/12/02 12:16:38 Please remove MAYBE_ from the test case name in a
1286 ASSERT_TRUE(CreateTestClients()); 1274 ASSERT_TRUE(CreateTestClients());
1287 LocalP2PTest(); 1275 LocalP2PTest();
1288 1276
1289 // Get the audio input level stats. The level should be available very 1277 // Get the audio input level stats. The level should be available very
1290 // soon after the test starts. 1278 // soon after the test starts.
1291 EXPECT_TRUE_WAIT(initializing_client()->GetAudioInputLevelStats() > 0, 1279 EXPECT_TRUE_WAIT(initializing_client()->GetAudioInputLevelStats() > 0,
1292 kMaxWaitForStatsMs); 1280 kMaxWaitForStatsMs);
1293 } 1281 }
1294 1282
1295 // Flaky on Mac Debug bots. See webrtc:5231
1296 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
1297 #define MAYBE_GetBytesReceivedStats DISABLED_GetBytesReceivedStats
1298 #else
1299 #define MAYBE_GetBytesReceivedStats GetBytesReceivedStats
1300 #endif
1301
1302 // Test that we can get incoming byte counts from both audio and video tracks. 1283 // Test that we can get incoming byte counts from both audio and video tracks.
1303 TEST_F(JsepPeerConnectionP2PTestClient, MAYBE_GetBytesReceivedStats) { 1284 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, MAYBE_GetBytesReceivedStats) {
kjellander_webrtc 2015/12/02 12:16:38 Please remove MAYBE_ from the test case name in a
1304 ASSERT_TRUE(CreateTestClients()); 1285 ASSERT_TRUE(CreateTestClients());
1305 LocalP2PTest(); 1286 LocalP2PTest();
1306 1287
1307 StreamCollectionInterface* remote_streams = 1288 StreamCollectionInterface* remote_streams =
1308 initializing_client()->remote_streams(); 1289 initializing_client()->remote_streams();
1309 ASSERT_GT(remote_streams->count(), 0u); 1290 ASSERT_GT(remote_streams->count(), 0u);
1310 ASSERT_GT(remote_streams->at(0)->GetAudioTracks().size(), 0u); 1291 ASSERT_GT(remote_streams->at(0)->GetAudioTracks().size(), 0u);
1311 MediaStreamTrackInterface* remote_audio_track = 1292 MediaStreamTrackInterface* remote_audio_track =
1312 remote_streams->at(0)->GetAudioTracks()[0]; 1293 remote_streams->at(0)->GetAudioTracks()[0];
1313 EXPECT_TRUE_WAIT( 1294 EXPECT_TRUE_WAIT(
1314 initializing_client()->GetBytesReceivedStats(remote_audio_track) > 0, 1295 initializing_client()->GetBytesReceivedStats(remote_audio_track) > 0,
1315 kMaxWaitForStatsMs); 1296 kMaxWaitForStatsMs);
1316 1297
1317 MediaStreamTrackInterface* remote_video_track = 1298 MediaStreamTrackInterface* remote_video_track =
1318 remote_streams->at(0)->GetVideoTracks()[0]; 1299 remote_streams->at(0)->GetVideoTracks()[0];
1319 EXPECT_TRUE_WAIT( 1300 EXPECT_TRUE_WAIT(
1320 initializing_client()->GetBytesReceivedStats(remote_video_track) > 0, 1301 initializing_client()->GetBytesReceivedStats(remote_video_track) > 0,
1321 kMaxWaitForStatsMs); 1302 kMaxWaitForStatsMs);
1322 } 1303 }
1323 1304
1324 // Flaky on Mac Debug bots. See webrtc:5231
1325 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
1326 #define MAYBE_GetBytesSentStats DISABLED_GetBytesSentStats
1327 #else
1328 #define MAYBE_GetBytesSentStats GetBytesSentStats
1329 #endif
1330
1331 // Test that we can get outgoing byte counts from both audio and video tracks. 1305 // Test that we can get outgoing byte counts from both audio and video tracks.
1332 TEST_F(JsepPeerConnectionP2PTestClient, MAYBE_GetBytesSentStats) { 1306 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, MAYBE_GetBytesSentStats) {
kjellander_webrtc 2015/12/02 12:16:38 Please remove MAYBE_ from the test case name in a
1333 ASSERT_TRUE(CreateTestClients()); 1307 ASSERT_TRUE(CreateTestClients());
1334 LocalP2PTest(); 1308 LocalP2PTest();
1335 1309
1336 StreamCollectionInterface* local_streams = 1310 StreamCollectionInterface* local_streams =
1337 initializing_client()->local_streams(); 1311 initializing_client()->local_streams();
1338 ASSERT_GT(local_streams->count(), 0u); 1312 ASSERT_GT(local_streams->count(), 0u);
1339 ASSERT_GT(local_streams->at(0)->GetAudioTracks().size(), 0u); 1313 ASSERT_GT(local_streams->at(0)->GetAudioTracks().size(), 0u);
1340 MediaStreamTrackInterface* local_audio_track = 1314 MediaStreamTrackInterface* local_audio_track =
1341 local_streams->at(0)->GetAudioTracks()[0]; 1315 local_streams->at(0)->GetAudioTracks()[0];
1342 EXPECT_TRUE_WAIT( 1316 EXPECT_TRUE_WAIT(
1343 initializing_client()->GetBytesSentStats(local_audio_track) > 0, 1317 initializing_client()->GetBytesSentStats(local_audio_track) > 0,
1344 kMaxWaitForStatsMs); 1318 kMaxWaitForStatsMs);
1345 1319
1346 MediaStreamTrackInterface* local_video_track = 1320 MediaStreamTrackInterface* local_video_track =
1347 local_streams->at(0)->GetVideoTracks()[0]; 1321 local_streams->at(0)->GetVideoTracks()[0];
1348 EXPECT_TRUE_WAIT( 1322 EXPECT_TRUE_WAIT(
1349 initializing_client()->GetBytesSentStats(local_video_track) > 0, 1323 initializing_client()->GetBytesSentStats(local_video_track) > 0,
1350 kMaxWaitForStatsMs); 1324 kMaxWaitForStatsMs);
1351 } 1325 }
1352 1326
1353 // Test that DTLS 1.0 is used if both sides only support DTLS 1.0. 1327 // Test that DTLS 1.0 is used if both sides only support DTLS 1.0.
1354 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12None) { 1328 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, GetDtls12None) {
1355 PeerConnectionFactory::Options init_options; 1329 PeerConnectionFactory::Options init_options;
1356 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10; 1330 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10;
1357 PeerConnectionFactory::Options recv_options; 1331 PeerConnectionFactory::Options recv_options;
1358 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10; 1332 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10;
1359 ASSERT_TRUE( 1333 ASSERT_TRUE(
1360 CreateTestClients(nullptr, &init_options, nullptr, &recv_options)); 1334 CreateTestClients(nullptr, &init_options, nullptr, &recv_options));
1361 rtc::scoped_refptr<webrtc::FakeMetricsObserver> 1335 rtc::scoped_refptr<webrtc::FakeMetricsObserver>
1362 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); 1336 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>();
1363 initializing_client()->pc()->RegisterUMAObserver(init_observer); 1337 initializing_client()->pc()->RegisterUMAObserver(init_observer);
1364 LocalP2PTest(); 1338 LocalP2PTest();
1365 1339
1366 EXPECT_EQ_WAIT(rtc::SSLStreamAdapter::SslCipherSuiteToName( 1340 EXPECT_EQ_WAIT(rtc::SSLStreamAdapter::SslCipherSuiteToName(
1367 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( 1341 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest(
1368 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT)), 1342 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT)),
1369 initializing_client()->GetDtlsCipherStats(), 1343 initializing_client()->GetDtlsCipherStats(),
1370 kMaxWaitForStatsMs); 1344 kMaxWaitForStatsMs);
1371 EXPECT_EQ(1, init_observer->GetEnumCounter( 1345 EXPECT_EQ(1, init_observer->GetEnumCounter(
1372 webrtc::kEnumCounterAudioSslCipher, 1346 webrtc::kEnumCounterAudioSslCipher,
1373 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( 1347 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest(
1374 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT))); 1348 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT)));
1375 1349
1376 EXPECT_EQ_WAIT(rtc::SrtpCryptoSuiteToName(kDefaultSrtpCryptoSuite), 1350 EXPECT_EQ_WAIT(rtc::SrtpCryptoSuiteToName(kDefaultSrtpCryptoSuite),
1377 initializing_client()->GetSrtpCipherStats(), 1351 initializing_client()->GetSrtpCipherStats(),
1378 kMaxWaitForStatsMs); 1352 kMaxWaitForStatsMs);
1379 EXPECT_EQ(1, 1353 EXPECT_EQ(1,
1380 init_observer->GetEnumCounter(webrtc::kEnumCounterAudioSrtpCipher, 1354 init_observer->GetEnumCounter(webrtc::kEnumCounterAudioSrtpCipher,
1381 kDefaultSrtpCryptoSuite)); 1355 kDefaultSrtpCryptoSuite));
1382 } 1356 }
1383 1357
1384 // Flaky on Mac Debug bots. See webrtc:5231
1385 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
1386 #define MAYBE_GetDtls12Both DISABLED_GetDtls12Both
1387 #else
1388 #define MAYBE_GetDtls12Both GetDtls12Both
1389 #endif
1390
1391 // Test that DTLS 1.2 is used if both ends support it. 1358 // Test that DTLS 1.2 is used if both ends support it.
1392 TEST_F(JsepPeerConnectionP2PTestClient, MAYBE_GetDtls12Both) { 1359 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, MAYBE_GetDtls12Both) {
kjellander_webrtc 2015/12/02 12:16:38 Please remove MAYBE_ from the test case name in a
1393 PeerConnectionFactory::Options init_options; 1360 PeerConnectionFactory::Options init_options;
1394 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; 1361 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12;
1395 PeerConnectionFactory::Options recv_options; 1362 PeerConnectionFactory::Options recv_options;
1396 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; 1363 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12;
1397 ASSERT_TRUE( 1364 ASSERT_TRUE(
1398 CreateTestClients(nullptr, &init_options, nullptr, &recv_options)); 1365 CreateTestClients(nullptr, &init_options, nullptr, &recv_options));
1399 rtc::scoped_refptr<webrtc::FakeMetricsObserver> 1366 rtc::scoped_refptr<webrtc::FakeMetricsObserver>
1400 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); 1367 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>();
1401 initializing_client()->pc()->RegisterUMAObserver(init_observer); 1368 initializing_client()->pc()->RegisterUMAObserver(init_observer);
1402 LocalP2PTest(); 1369 LocalP2PTest();
(...skipping 11 matching lines...) Expand all
1414 EXPECT_EQ_WAIT(rtc::SrtpCryptoSuiteToName(kDefaultSrtpCryptoSuite), 1381 EXPECT_EQ_WAIT(rtc::SrtpCryptoSuiteToName(kDefaultSrtpCryptoSuite),
1415 initializing_client()->GetSrtpCipherStats(), 1382 initializing_client()->GetSrtpCipherStats(),
1416 kMaxWaitForStatsMs); 1383 kMaxWaitForStatsMs);
1417 EXPECT_EQ(1, 1384 EXPECT_EQ(1,
1418 init_observer->GetEnumCounter(webrtc::kEnumCounterAudioSrtpCipher, 1385 init_observer->GetEnumCounter(webrtc::kEnumCounterAudioSrtpCipher,
1419 kDefaultSrtpCryptoSuite)); 1386 kDefaultSrtpCryptoSuite));
1420 } 1387 }
1421 1388
1422 // Test that DTLS 1.0 is used if the initator supports DTLS 1.2 and the 1389 // Test that DTLS 1.0 is used if the initator supports DTLS 1.2 and the
1423 // received supports 1.0. 1390 // received supports 1.0.
1424 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Init) { 1391 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, GetDtls12Init) {
1425 PeerConnectionFactory::Options init_options; 1392 PeerConnectionFactory::Options init_options;
1426 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; 1393 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12;
1427 PeerConnectionFactory::Options recv_options; 1394 PeerConnectionFactory::Options recv_options;
1428 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10; 1395 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10;
1429 ASSERT_TRUE( 1396 ASSERT_TRUE(
1430 CreateTestClients(nullptr, &init_options, nullptr, &recv_options)); 1397 CreateTestClients(nullptr, &init_options, nullptr, &recv_options));
1431 rtc::scoped_refptr<webrtc::FakeMetricsObserver> 1398 rtc::scoped_refptr<webrtc::FakeMetricsObserver>
1432 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); 1399 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>();
1433 initializing_client()->pc()->RegisterUMAObserver(init_observer); 1400 initializing_client()->pc()->RegisterUMAObserver(init_observer);
1434 LocalP2PTest(); 1401 LocalP2PTest();
(...skipping 11 matching lines...) Expand all
1446 EXPECT_EQ_WAIT(rtc::SrtpCryptoSuiteToName(kDefaultSrtpCryptoSuite), 1413 EXPECT_EQ_WAIT(rtc::SrtpCryptoSuiteToName(kDefaultSrtpCryptoSuite),
1447 initializing_client()->GetSrtpCipherStats(), 1414 initializing_client()->GetSrtpCipherStats(),
1448 kMaxWaitForStatsMs); 1415 kMaxWaitForStatsMs);
1449 EXPECT_EQ(1, 1416 EXPECT_EQ(1,
1450 init_observer->GetEnumCounter(webrtc::kEnumCounterAudioSrtpCipher, 1417 init_observer->GetEnumCounter(webrtc::kEnumCounterAudioSrtpCipher,
1451 kDefaultSrtpCryptoSuite)); 1418 kDefaultSrtpCryptoSuite));
1452 } 1419 }
1453 1420
1454 // Test that DTLS 1.0 is used if the initator supports DTLS 1.0 and the 1421 // Test that DTLS 1.0 is used if the initator supports DTLS 1.0 and the
1455 // received supports 1.2. 1422 // received supports 1.2.
1456 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Recv) { 1423 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, GetDtls12Recv) {
1457 PeerConnectionFactory::Options init_options; 1424 PeerConnectionFactory::Options init_options;
1458 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10; 1425 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10;
1459 PeerConnectionFactory::Options recv_options; 1426 PeerConnectionFactory::Options recv_options;
1460 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; 1427 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12;
1461 ASSERT_TRUE( 1428 ASSERT_TRUE(
1462 CreateTestClients(nullptr, &init_options, nullptr, &recv_options)); 1429 CreateTestClients(nullptr, &init_options, nullptr, &recv_options));
1463 rtc::scoped_refptr<webrtc::FakeMetricsObserver> 1430 rtc::scoped_refptr<webrtc::FakeMetricsObserver>
1464 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); 1431 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>();
1465 initializing_client()->pc()->RegisterUMAObserver(init_observer); 1432 initializing_client()->pc()->RegisterUMAObserver(init_observer);
1466 LocalP2PTest(); 1433 LocalP2PTest();
(...skipping 10 matching lines...) Expand all
1477 1444
1478 EXPECT_EQ_WAIT(rtc::SrtpCryptoSuiteToName(kDefaultSrtpCryptoSuite), 1445 EXPECT_EQ_WAIT(rtc::SrtpCryptoSuiteToName(kDefaultSrtpCryptoSuite),
1479 initializing_client()->GetSrtpCipherStats(), 1446 initializing_client()->GetSrtpCipherStats(),
1480 kMaxWaitForStatsMs); 1447 kMaxWaitForStatsMs);
1481 EXPECT_EQ(1, 1448 EXPECT_EQ(1,
1482 init_observer->GetEnumCounter(webrtc::kEnumCounterAudioSrtpCipher, 1449 init_observer->GetEnumCounter(webrtc::kEnumCounterAudioSrtpCipher,
1483 kDefaultSrtpCryptoSuite)); 1450 kDefaultSrtpCryptoSuite));
1484 } 1451 }
1485 1452
1486 // This test sets up a call between two parties with audio, video and data. 1453 // This test sets up a call between two parties with audio, video and data.
1487 TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestDataChannel) { 1454 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestDataChannel) {
1488 FakeConstraints setup_constraints; 1455 FakeConstraints setup_constraints;
1489 setup_constraints.SetAllowRtpDataChannels(); 1456 setup_constraints.SetAllowRtpDataChannels();
1490 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); 1457 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
1491 initializing_client()->CreateDataChannel(); 1458 initializing_client()->CreateDataChannel();
1492 LocalP2PTest(); 1459 LocalP2PTest();
1493 ASSERT_TRUE(initializing_client()->data_channel() != nullptr); 1460 ASSERT_TRUE(initializing_client()->data_channel() != nullptr);
1494 ASSERT_TRUE(receiving_client()->data_channel() != nullptr); 1461 ASSERT_TRUE(receiving_client()->data_channel() != nullptr);
1495 EXPECT_TRUE_WAIT(initializing_client()->data_observer()->IsOpen(), 1462 EXPECT_TRUE_WAIT(initializing_client()->data_observer()->IsOpen(),
1496 kMaxWaitMs); 1463 kMaxWaitMs);
1497 EXPECT_TRUE_WAIT(receiving_client()->data_observer()->IsOpen(), 1464 EXPECT_TRUE_WAIT(receiving_client()->data_observer()->IsOpen(),
(...skipping 16 matching lines...) Expand all
1514 EXPECT_FALSE(receiving_client()->data_observer()->IsOpen()); 1481 EXPECT_FALSE(receiving_client()->data_observer()->IsOpen());
1515 } 1482 }
1516 1483
1517 // This test sets up a call between two parties and creates a data channel. 1484 // This test sets up a call between two parties and creates a data channel.
1518 // The test tests that received data is buffered unless an observer has been 1485 // The test tests that received data is buffered unless an observer has been
1519 // registered. 1486 // registered.
1520 // Rtp data channels can receive data before the underlying 1487 // Rtp data channels can receive data before the underlying
1521 // transport has detected that a channel is writable and thus data can be 1488 // transport has detected that a channel is writable and thus data can be
1522 // received before the data channel state changes to open. That is hard to test 1489 // received before the data channel state changes to open. That is hard to test
1523 // but the same buffering is used in that case. 1490 // but the same buffering is used in that case.
1524 TEST_F(JsepPeerConnectionP2PTestClient, RegisterDataChannelObserver) { 1491 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, RegisterDataChannelObserver) {
1525 FakeConstraints setup_constraints; 1492 FakeConstraints setup_constraints;
1526 setup_constraints.SetAllowRtpDataChannels(); 1493 setup_constraints.SetAllowRtpDataChannels();
1527 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); 1494 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
1528 initializing_client()->CreateDataChannel(); 1495 initializing_client()->CreateDataChannel();
1529 initializing_client()->Negotiate(); 1496 initializing_client()->Negotiate();
1530 1497
1531 ASSERT_TRUE(initializing_client()->data_channel() != nullptr); 1498 ASSERT_TRUE(initializing_client()->data_channel() != nullptr);
1532 ASSERT_TRUE(receiving_client()->data_channel() != nullptr); 1499 ASSERT_TRUE(receiving_client()->data_channel() != nullptr);
1533 EXPECT_TRUE_WAIT(initializing_client()->data_observer()->IsOpen(), 1500 EXPECT_TRUE_WAIT(initializing_client()->data_observer()->IsOpen(),
1534 kMaxWaitMs); 1501 kMaxWaitMs);
1535 EXPECT_EQ_WAIT(DataChannelInterface::kOpen, 1502 EXPECT_EQ_WAIT(DataChannelInterface::kOpen,
1536 receiving_client()->data_channel()->state(), kMaxWaitMs); 1503 receiving_client()->data_channel()->state(), kMaxWaitMs);
1537 1504
1538 // Unregister the existing observer. 1505 // Unregister the existing observer.
1539 receiving_client()->data_channel()->UnregisterObserver(); 1506 receiving_client()->data_channel()->UnregisterObserver();
1540 1507
1541 std::string data = "hello world"; 1508 std::string data = "hello world";
1542 SendRtpData(initializing_client()->data_channel(), data); 1509 SendRtpData(initializing_client()->data_channel(), data);
1543 1510
1544 // Wait a while to allow the sent data to arrive before an observer is 1511 // Wait a while to allow the sent data to arrive before an observer is
1545 // registered.. 1512 // registered..
1546 rtc::Thread::Current()->ProcessMessages(100); 1513 rtc::Thread::Current()->ProcessMessages(100);
1547 1514
1548 MockDataChannelObserver new_observer(receiving_client()->data_channel()); 1515 MockDataChannelObserver new_observer(receiving_client()->data_channel());
1549 EXPECT_EQ_WAIT(data, new_observer.last_message(), kMaxWaitMs); 1516 EXPECT_EQ_WAIT(data, new_observer.last_message(), kMaxWaitMs);
1550 } 1517 }
1551 1518
1552 // This test sets up a call between two parties with audio, video and but only 1519 // This test sets up a call between two parties with audio, video and but only
1553 // the initiating client support data. 1520 // the initiating client support data.
1554 TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestReceiverDoesntSupportData) { 1521 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient,
1522 LocalP2PTestReceiverDoesntSupportData) {
1555 FakeConstraints setup_constraints_1; 1523 FakeConstraints setup_constraints_1;
1556 setup_constraints_1.SetAllowRtpDataChannels(); 1524 setup_constraints_1.SetAllowRtpDataChannels();
1557 // Must disable DTLS to make negotiation succeed. 1525 // Must disable DTLS to make negotiation succeed.
1558 setup_constraints_1.SetMandatory( 1526 setup_constraints_1.SetMandatory(
1559 MediaConstraintsInterface::kEnableDtlsSrtp, false); 1527 MediaConstraintsInterface::kEnableDtlsSrtp, false);
1560 FakeConstraints setup_constraints_2; 1528 FakeConstraints setup_constraints_2;
1561 setup_constraints_2.SetMandatory( 1529 setup_constraints_2.SetMandatory(
1562 MediaConstraintsInterface::kEnableDtlsSrtp, false); 1530 MediaConstraintsInterface::kEnableDtlsSrtp, false);
1563 ASSERT_TRUE(CreateTestClients(&setup_constraints_1, &setup_constraints_2)); 1531 ASSERT_TRUE(CreateTestClients(&setup_constraints_1, &setup_constraints_2));
1564 initializing_client()->CreateDataChannel(); 1532 initializing_client()->CreateDataChannel();
1565 LocalP2PTest(); 1533 LocalP2PTest();
1566 EXPECT_TRUE(initializing_client()->data_channel() != nullptr); 1534 EXPECT_TRUE(initializing_client()->data_channel() != nullptr);
1567 EXPECT_FALSE(receiving_client()->data_channel()); 1535 EXPECT_FALSE(receiving_client()->data_channel());
1568 EXPECT_FALSE(initializing_client()->data_observer()->IsOpen()); 1536 EXPECT_FALSE(initializing_client()->data_observer()->IsOpen());
1569 } 1537 }
1570 1538
1571 // This test sets up a call between two parties with audio, video. When audio 1539 // This test sets up a call between two parties with audio, video. When audio
1572 // and video is setup and flowing and data channel is negotiated. 1540 // and video is setup and flowing and data channel is negotiated.
1573 TEST_F(JsepPeerConnectionP2PTestClient, AddDataChannelAfterRenegotiation) { 1541 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient,
1542 AddDataChannelAfterRenegotiation) {
1574 FakeConstraints setup_constraints; 1543 FakeConstraints setup_constraints;
1575 setup_constraints.SetAllowRtpDataChannels(); 1544 setup_constraints.SetAllowRtpDataChannels();
1576 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); 1545 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
1577 LocalP2PTest(); 1546 LocalP2PTest();
1578 initializing_client()->CreateDataChannel(); 1547 initializing_client()->CreateDataChannel();
1579 // Send new offer and answer. 1548 // Send new offer and answer.
1580 initializing_client()->Negotiate(); 1549 initializing_client()->Negotiate();
1581 ASSERT_TRUE(initializing_client()->data_channel() != nullptr); 1550 ASSERT_TRUE(initializing_client()->data_channel() != nullptr);
1582 ASSERT_TRUE(receiving_client()->data_channel() != nullptr); 1551 ASSERT_TRUE(receiving_client()->data_channel() != nullptr);
1583 EXPECT_TRUE_WAIT(initializing_client()->data_observer()->IsOpen(), 1552 EXPECT_TRUE_WAIT(initializing_client()->data_observer()->IsOpen(),
1584 kMaxWaitMs); 1553 kMaxWaitMs);
1585 EXPECT_TRUE_WAIT(receiving_client()->data_observer()->IsOpen(), 1554 EXPECT_TRUE_WAIT(receiving_client()->data_observer()->IsOpen(),
1586 kMaxWaitMs); 1555 kMaxWaitMs);
1587 } 1556 }
1588 1557
1589 // This test sets up a Jsep call with SCTP DataChannel and verifies the 1558 // This test sets up a Jsep call with SCTP DataChannel and verifies the
1590 // negotiation is completed without error. 1559 // negotiation is completed without error.
1591 #ifdef HAVE_SCTP 1560 #ifdef HAVE_SCTP
1592 TEST_F(JsepPeerConnectionP2PTestClient, CreateOfferWithSctpDataChannel) { 1561 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, CreateOfferWithSctpDataChannel) {
1593 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); 1562 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
1594 FakeConstraints constraints; 1563 FakeConstraints constraints;
1595 constraints.SetMandatory( 1564 constraints.SetMandatory(
1596 MediaConstraintsInterface::kEnableDtlsSrtp, true); 1565 MediaConstraintsInterface::kEnableDtlsSrtp, true);
1597 ASSERT_TRUE(CreateTestClients(&constraints, &constraints)); 1566 ASSERT_TRUE(CreateTestClients(&constraints, &constraints));
1598 initializing_client()->CreateDataChannel(); 1567 initializing_client()->CreateDataChannel();
1599 initializing_client()->Negotiate(false, false); 1568 initializing_client()->Negotiate(false, false);
1600 } 1569 }
1601 #endif 1570 #endif
1602 1571
1603 // Flaky on Mac Debug bots. See webrtc:5231
1604 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
1605 #define MAYBE_IceRestart DISABLED_IceRestart
1606 #else
1607 #define MAYBE_IceRestart IceRestart
1608 #endif
1609
1610 // This test sets up a call between two parties with audio, and video. 1572 // This test sets up a call between two parties with audio, and video.
1611 // During the call, the initializing side restart ice and the test verifies that 1573 // During the call, the initializing side restart ice and the test verifies that
1612 // new ice candidates are generated and audio and video still can flow. 1574 // new ice candidates are generated and audio and video still can flow.
1613 TEST_F(JsepPeerConnectionP2PTestClient, MAYBE_IceRestart) { 1575 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, MAYBE_IceRestart) {
kjellander_webrtc 2015/12/02 12:16:38 Please remove MAYBE_ from the test case name in a
1614 ASSERT_TRUE(CreateTestClients()); 1576 ASSERT_TRUE(CreateTestClients());
1615 1577
1616 // Negotiate and wait for ice completion and make sure audio and video plays. 1578 // Negotiate and wait for ice completion and make sure audio and video plays.
1617 LocalP2PTest(); 1579 LocalP2PTest();
1618 1580
1619 // Create a SDP string of the first audio candidate for both clients. 1581 // Create a SDP string of the first audio candidate for both clients.
1620 const webrtc::IceCandidateCollection* audio_candidates_initiator = 1582 const webrtc::IceCandidateCollection* audio_candidates_initiator =
1621 initializing_client()->pc()->local_description()->candidates(0); 1583 initializing_client()->pc()->local_description()->candidates(0);
1622 const webrtc::IceCandidateCollection* audio_candidates_receiver = 1584 const webrtc::IceCandidateCollection* audio_candidates_receiver =
1623 receiving_client()->pc()->local_description()->candidates(0); 1585 receiving_client()->pc()->local_description()->candidates(0);
(...skipping 29 matching lines...) Expand all
1653 1615
1654 // Verify that the first candidates in the local session descriptions has 1616 // Verify that the first candidates in the local session descriptions has
1655 // changed. 1617 // changed.
1656 EXPECT_NE(initiator_candidate, initiator_candidate_restart); 1618 EXPECT_NE(initiator_candidate, initiator_candidate_restart);
1657 EXPECT_NE(receiver_candidate, receiver_candidate_restart); 1619 EXPECT_NE(receiver_candidate, receiver_candidate_restart);
1658 } 1620 }
1659 1621
1660 // This test sets up a call between two parties with audio, and video. 1622 // This test sets up a call between two parties with audio, and video.
1661 // It then renegotiates setting the video m-line to "port 0", then later 1623 // It then renegotiates setting the video m-line to "port 0", then later
1662 // renegotiates again, enabling video. 1624 // renegotiates again, enabling video.
1663 TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestVideoDisableEnable) { 1625 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestVideoDisableEnable) {
1664 ASSERT_TRUE(CreateTestClients()); 1626 ASSERT_TRUE(CreateTestClients());
1665 1627
1666 // Do initial negotiation. Will result in video and audio sendonly m-lines. 1628 // Do initial negotiation. Will result in video and audio sendonly m-lines.
1667 receiving_client()->set_auto_add_stream(false); 1629 receiving_client()->set_auto_add_stream(false);
1668 initializing_client()->AddMediaStream(true, true); 1630 initializing_client()->AddMediaStream(true, true);
1669 initializing_client()->Negotiate(); 1631 initializing_client()->Negotiate();
1670 1632
1671 // Negotiate again, disabling the video m-line (receiving client will 1633 // Negotiate again, disabling the video m-line (receiving client will
1672 // set port to 0 due to mandatory "OfferToReceiveVideo: false" constraint). 1634 // set port to 0 due to mandatory "OfferToReceiveVideo: false" constraint).
1673 receiving_client()->SetReceiveVideo(false); 1635 receiving_client()->SetReceiveVideo(false);
1674 initializing_client()->Negotiate(); 1636 initializing_client()->Negotiate();
1675 1637
1676 // Enable video and do negotiation again, making sure video is received 1638 // Enable video and do negotiation again, making sure video is received
1677 // end-to-end. 1639 // end-to-end.
1678 receiving_client()->SetReceiveVideo(true); 1640 receiving_client()->SetReceiveVideo(true);
1679 receiving_client()->AddMediaStream(true, true); 1641 receiving_client()->AddMediaStream(true, true);
1680 LocalP2PTest(); 1642 LocalP2PTest();
1681 } 1643 }
1682 1644
1683 // This test sets up a Jsep call between two parties with external 1645 // This test sets up a Jsep call between two parties with external
1684 // VideoDecoderFactory. 1646 // VideoDecoderFactory.
1685 // TODO(holmer): Disabled due to sometimes crashing on buildbots. 1647 // TODO(holmer): Disabled due to sometimes crashing on buildbots.
1686 // See issue webrtc/2378. 1648 // See issue webrtc/2378.
1687 TEST_F(JsepPeerConnectionP2PTestClient, 1649 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient,
1688 DISABLED_LocalP2PTestWithVideoDecoderFactory) { 1650 DISABLED_LocalP2PTestWithVideoDecoderFactory) {
1689 ASSERT_TRUE(CreateTestClients()); 1651 ASSERT_TRUE(CreateTestClients());
1690 EnableVideoDecoderFactory(); 1652 EnableVideoDecoderFactory();
1691 LocalP2PTest(); 1653 LocalP2PTest();
1692 } 1654 }
1693 1655
1694 class IceServerParsingTest : public testing::Test { 1656 class IceServerParsingTest : public testing::Test {
1695 public: 1657 public:
1696 // Convenience for parsing a single URL. 1658 // Convenience for parsing a single URL.
1697 bool ParseUrl(const std::string& url) { 1659 bool ParseUrl(const std::string& url) {
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
1861 server.urls.push_back("stun:hostname"); 1823 server.urls.push_back("stun:hostname");
1862 server.urls.push_back("turn:hostname"); 1824 server.urls.push_back("turn:hostname");
1863 servers.push_back(server); 1825 servers.push_back(server);
1864 EXPECT_TRUE(webrtc::ParseIceServers(servers, &stun_configurations_, 1826 EXPECT_TRUE(webrtc::ParseIceServers(servers, &stun_configurations_,
1865 &turn_configurations_)); 1827 &turn_configurations_));
1866 EXPECT_EQ(1U, stun_configurations_.size()); 1828 EXPECT_EQ(1U, stun_configurations_.size());
1867 EXPECT_EQ(1U, turn_configurations_.size()); 1829 EXPECT_EQ(1U, turn_configurations_.size());
1868 } 1830 }
1869 1831
1870 #endif // if !defined(THREAD_SANITIZER) 1832 #endif // if !defined(THREAD_SANITIZER)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698