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

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

Issue 1416673006: Convert internal representation of Srtp cryptos from string to int. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Add back an old function name to prevent build break in chromium. 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 | talk/app/webrtc/statscollector.cc » ('j') | talk/app/webrtc/statscollector.cc » ('J')
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 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 static const char kVideoTrackLabelBase[] = "video_track"; 104 static const char kVideoTrackLabelBase[] = "video_track";
105 static const char kAudioTrackLabelBase[] = "audio_track"; 105 static const char kAudioTrackLabelBase[] = "audio_track";
106 static const char kDataChannelLabel[] = "data_channel"; 106 static const char kDataChannelLabel[] = "data_channel";
107 107
108 // Disable for TSan v2, see 108 // Disable for TSan v2, see
109 // https://code.google.com/p/webrtc/issues/detail?id=1205 for details. 109 // https://code.google.com/p/webrtc/issues/detail?id=1205 for details.
110 // This declaration is also #ifdef'd as it causes unused-variable errors. 110 // This declaration is also #ifdef'd as it causes unused-variable errors.
111 #if !defined(THREAD_SANITIZER) 111 #if !defined(THREAD_SANITIZER)
112 // SRTP cipher name negotiated by the tests. This must be updated if the 112 // SRTP cipher name negotiated by the tests. This must be updated if the
113 // default changes. 113 // default changes.
114 static const char kDefaultSrtpCipher[] = "AES_CM_128_HMAC_SHA1_32"; 114 static const int kDefaultSrtpCipher = rtc::SRTP_AES128_CM_SHA1_32;
pthatcher1 2015/11/11 19:59:40 Should we rename this to kDefaultSrtpCryptoSuite?
guoweis_webrtc 2015/11/17 01:21:15 Done.
115 #endif 115 #endif
116 116
117 static void RemoveLinesFromSdp(const std::string& line_start, 117 static void RemoveLinesFromSdp(const std::string& line_start,
118 std::string* sdp) { 118 std::string* sdp) {
119 const char kSdpLineEnd[] = "\r\n"; 119 const char kSdpLineEnd[] = "\r\n";
120 size_t ssrc_pos = 0; 120 size_t ssrc_pos = 0;
121 while ((ssrc_pos = sdp->find(line_start, ssrc_pos)) != 121 while ((ssrc_pos = sdp->find(line_start, ssrc_pos)) !=
122 std::string::npos) { 122 std::string::npos) {
123 size_t end_ssrc = sdp->find(kSdpLineEnd, ssrc_pos); 123 size_t end_ssrc = sdp->find(kSdpLineEnd, ssrc_pos);
124 sdp->erase(ssrc_pos, end_ssrc - ssrc_pos + strlen(kSdpLineEnd)); 124 sdp->erase(ssrc_pos, end_ssrc - ssrc_pos + strlen(kSdpLineEnd));
(...skipping 1150 matching lines...) Expand 10 before | Expand all | Expand 10 after
1275 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10; 1275 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10;
1276 PeerConnectionFactory::Options recv_options; 1276 PeerConnectionFactory::Options recv_options;
1277 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10; 1277 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10;
1278 ASSERT_TRUE( 1278 ASSERT_TRUE(
1279 CreateTestClients(nullptr, &init_options, nullptr, &recv_options)); 1279 CreateTestClients(nullptr, &init_options, nullptr, &recv_options));
1280 rtc::scoped_refptr<webrtc::FakeMetricsObserver> 1280 rtc::scoped_refptr<webrtc::FakeMetricsObserver>
1281 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); 1281 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>();
1282 initializing_client()->pc()->RegisterUMAObserver(init_observer); 1282 initializing_client()->pc()->RegisterUMAObserver(init_observer);
1283 LocalP2PTest(); 1283 LocalP2PTest();
1284 1284
1285 EXPECT_EQ_WAIT(rtc::SSLStreamAdapter::GetSslCipherSuiteName( 1285 EXPECT_EQ_WAIT(rtc::SSLStreamAdapter::SslCipherSuiteToName(
1286 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( 1286 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest(
1287 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT)), 1287 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT)),
1288 initializing_client()->GetDtlsCipherStats(), 1288 initializing_client()->GetDtlsCipherStats(),
1289 kMaxWaitForStatsMs); 1289 kMaxWaitForStatsMs);
1290 EXPECT_EQ(1, init_observer->GetEnumCounter( 1290 EXPECT_EQ(1, init_observer->GetEnumCounter(
1291 webrtc::kEnumCounterAudioSslCipher, 1291 webrtc::kEnumCounterAudioSslCipher,
1292 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( 1292 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest(
1293 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT))); 1293 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT)));
1294 1294
1295 EXPECT_EQ_WAIT(kDefaultSrtpCipher, 1295 EXPECT_EQ_WAIT(rtc::SrtpCryptoSuiteToName(kDefaultSrtpCipher),
1296 initializing_client()->GetSrtpCipherStats(), 1296 initializing_client()->GetSrtpCipherStats(),
1297 kMaxWaitForStatsMs); 1297 kMaxWaitForStatsMs);
1298 EXPECT_EQ(1, init_observer->GetEnumCounter( 1298 EXPECT_EQ(1, init_observer->GetEnumCounter(
1299 webrtc::kEnumCounterAudioSrtpCipher, 1299 webrtc::kEnumCounterAudioSrtpCipher, kDefaultSrtpCipher));
1300 rtc::GetSrtpCryptoSuiteFromName(kDefaultSrtpCipher)));
1301 } 1300 }
1302 1301
1303 // Test that DTLS 1.2 is used if both ends support it. 1302 // Test that DTLS 1.2 is used if both ends support it.
1304 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Both) { 1303 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Both) {
1305 PeerConnectionFactory::Options init_options; 1304 PeerConnectionFactory::Options init_options;
1306 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; 1305 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12;
1307 PeerConnectionFactory::Options recv_options; 1306 PeerConnectionFactory::Options recv_options;
1308 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; 1307 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12;
1309 ASSERT_TRUE( 1308 ASSERT_TRUE(
1310 CreateTestClients(nullptr, &init_options, nullptr, &recv_options)); 1309 CreateTestClients(nullptr, &init_options, nullptr, &recv_options));
1311 rtc::scoped_refptr<webrtc::FakeMetricsObserver> 1310 rtc::scoped_refptr<webrtc::FakeMetricsObserver>
1312 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); 1311 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>();
1313 initializing_client()->pc()->RegisterUMAObserver(init_observer); 1312 initializing_client()->pc()->RegisterUMAObserver(init_observer);
1314 LocalP2PTest(); 1313 LocalP2PTest();
1315 1314
1316 EXPECT_EQ_WAIT(rtc::SSLStreamAdapter::GetSslCipherSuiteName( 1315 EXPECT_EQ_WAIT(rtc::SSLStreamAdapter::SslCipherSuiteToName(
1317 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( 1316 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest(
1318 rtc::SSL_PROTOCOL_DTLS_12, rtc::KT_DEFAULT)), 1317 rtc::SSL_PROTOCOL_DTLS_12, rtc::KT_DEFAULT)),
1319 initializing_client()->GetDtlsCipherStats(), 1318 initializing_client()->GetDtlsCipherStats(),
1320 kMaxWaitForStatsMs); 1319 kMaxWaitForStatsMs);
1321 EXPECT_EQ(1, init_observer->GetEnumCounter( 1320 EXPECT_EQ(1, init_observer->GetEnumCounter(
1322 webrtc::kEnumCounterAudioSslCipher, 1321 webrtc::kEnumCounterAudioSslCipher,
1323 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( 1322 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest(
1324 rtc::SSL_PROTOCOL_DTLS_12, rtc::KT_DEFAULT))); 1323 rtc::SSL_PROTOCOL_DTLS_12, rtc::KT_DEFAULT)));
1325 1324
1326 EXPECT_EQ_WAIT(kDefaultSrtpCipher, 1325 EXPECT_EQ_WAIT(rtc::SrtpCryptoSuiteToName(kDefaultSrtpCipher),
1327 initializing_client()->GetSrtpCipherStats(), 1326 initializing_client()->GetSrtpCipherStats(),
1328 kMaxWaitForStatsMs); 1327 kMaxWaitForStatsMs);
1329 EXPECT_EQ(1, init_observer->GetEnumCounter( 1328 EXPECT_EQ(1, init_observer->GetEnumCounter(
1330 webrtc::kEnumCounterAudioSrtpCipher, 1329 webrtc::kEnumCounterAudioSrtpCipher, kDefaultSrtpCipher));
1331 rtc::GetSrtpCryptoSuiteFromName(kDefaultSrtpCipher)));
1332 } 1330 }
1333 1331
1334 // Test that DTLS 1.0 is used if the initator supports DTLS 1.2 and the 1332 // Test that DTLS 1.0 is used if the initator supports DTLS 1.2 and the
1335 // received supports 1.0. 1333 // received supports 1.0.
1336 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Init) { 1334 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Init) {
1337 PeerConnectionFactory::Options init_options; 1335 PeerConnectionFactory::Options init_options;
1338 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; 1336 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12;
1339 PeerConnectionFactory::Options recv_options; 1337 PeerConnectionFactory::Options recv_options;
1340 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10; 1338 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10;
1341 ASSERT_TRUE( 1339 ASSERT_TRUE(
1342 CreateTestClients(nullptr, &init_options, nullptr, &recv_options)); 1340 CreateTestClients(nullptr, &init_options, nullptr, &recv_options));
1343 rtc::scoped_refptr<webrtc::FakeMetricsObserver> 1341 rtc::scoped_refptr<webrtc::FakeMetricsObserver>
1344 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); 1342 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>();
1345 initializing_client()->pc()->RegisterUMAObserver(init_observer); 1343 initializing_client()->pc()->RegisterUMAObserver(init_observer);
1346 LocalP2PTest(); 1344 LocalP2PTest();
1347 1345
1348 EXPECT_EQ_WAIT(rtc::SSLStreamAdapter::GetSslCipherSuiteName( 1346 EXPECT_EQ_WAIT(rtc::SSLStreamAdapter::SslCipherSuiteToName(
1349 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( 1347 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest(
1350 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT)), 1348 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT)),
1351 initializing_client()->GetDtlsCipherStats(), 1349 initializing_client()->GetDtlsCipherStats(),
1352 kMaxWaitForStatsMs); 1350 kMaxWaitForStatsMs);
1353 EXPECT_EQ(1, init_observer->GetEnumCounter( 1351 EXPECT_EQ(1, init_observer->GetEnumCounter(
1354 webrtc::kEnumCounterAudioSslCipher, 1352 webrtc::kEnumCounterAudioSslCipher,
1355 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( 1353 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest(
1356 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT))); 1354 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT)));
1357 1355
1358 EXPECT_EQ_WAIT(kDefaultSrtpCipher, 1356 EXPECT_EQ_WAIT(rtc::SrtpCryptoSuiteToName(kDefaultSrtpCipher),
1359 initializing_client()->GetSrtpCipherStats(), 1357 initializing_client()->GetSrtpCipherStats(),
1360 kMaxWaitForStatsMs); 1358 kMaxWaitForStatsMs);
1361 EXPECT_EQ(1, init_observer->GetEnumCounter( 1359 EXPECT_EQ(1, init_observer->GetEnumCounter(
1362 webrtc::kEnumCounterAudioSrtpCipher, 1360 webrtc::kEnumCounterAudioSrtpCipher, kDefaultSrtpCipher));
1363 rtc::GetSrtpCryptoSuiteFromName(kDefaultSrtpCipher)));
1364 } 1361 }
1365 1362
1366 // Test that DTLS 1.0 is used if the initator supports DTLS 1.0 and the 1363 // Test that DTLS 1.0 is used if the initator supports DTLS 1.0 and the
1367 // received supports 1.2. 1364 // received supports 1.2.
1368 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Recv) { 1365 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Recv) {
1369 PeerConnectionFactory::Options init_options; 1366 PeerConnectionFactory::Options init_options;
1370 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10; 1367 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10;
1371 PeerConnectionFactory::Options recv_options; 1368 PeerConnectionFactory::Options recv_options;
1372 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; 1369 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12;
1373 ASSERT_TRUE( 1370 ASSERT_TRUE(
1374 CreateTestClients(nullptr, &init_options, nullptr, &recv_options)); 1371 CreateTestClients(nullptr, &init_options, nullptr, &recv_options));
1375 rtc::scoped_refptr<webrtc::FakeMetricsObserver> 1372 rtc::scoped_refptr<webrtc::FakeMetricsObserver>
1376 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); 1373 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>();
1377 initializing_client()->pc()->RegisterUMAObserver(init_observer); 1374 initializing_client()->pc()->RegisterUMAObserver(init_observer);
1378 LocalP2PTest(); 1375 LocalP2PTest();
1379 1376
1380 EXPECT_EQ_WAIT(rtc::SSLStreamAdapter::GetSslCipherSuiteName( 1377 EXPECT_EQ_WAIT(rtc::SSLStreamAdapter::SslCipherSuiteToName(
1381 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( 1378 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest(
1382 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT)), 1379 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT)),
1383 initializing_client()->GetDtlsCipherStats(), 1380 initializing_client()->GetDtlsCipherStats(),
1384 kMaxWaitForStatsMs); 1381 kMaxWaitForStatsMs);
1385 EXPECT_EQ(1, init_observer->GetEnumCounter( 1382 EXPECT_EQ(1, init_observer->GetEnumCounter(
1386 webrtc::kEnumCounterAudioSslCipher, 1383 webrtc::kEnumCounterAudioSslCipher,
1387 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest( 1384 rtc::SSLStreamAdapter::GetDefaultSslCipherForTest(
1388 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT))); 1385 rtc::SSL_PROTOCOL_DTLS_10, rtc::KT_DEFAULT)));
1389 1386
1390 EXPECT_EQ_WAIT(kDefaultSrtpCipher, 1387 EXPECT_EQ_WAIT(rtc::SrtpCryptoSuiteToName(kDefaultSrtpCipher),
1391 initializing_client()->GetSrtpCipherStats(), 1388 initializing_client()->GetSrtpCipherStats(),
1392 kMaxWaitForStatsMs); 1389 kMaxWaitForStatsMs);
1393 EXPECT_EQ(1, init_observer->GetEnumCounter( 1390 EXPECT_EQ(1, init_observer->GetEnumCounter(
1394 webrtc::kEnumCounterAudioSrtpCipher, 1391 webrtc::kEnumCounterAudioSrtpCipher, kDefaultSrtpCipher));
1395 rtc::GetSrtpCryptoSuiteFromName(kDefaultSrtpCipher)));
1396 } 1392 }
1397 1393
1398 // This test sets up a call between two parties with audio, video and data. 1394 // This test sets up a call between two parties with audio, video and data.
1399 TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestDataChannel) { 1395 TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestDataChannel) {
1400 FakeConstraints setup_constraints; 1396 FakeConstraints setup_constraints;
1401 setup_constraints.SetAllowRtpDataChannels(); 1397 setup_constraints.SetAllowRtpDataChannels();
1402 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); 1398 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
1403 initializing_client()->CreateDataChannel(); 1399 initializing_client()->CreateDataChannel();
1404 LocalP2PTest(); 1400 LocalP2PTest();
1405 ASSERT_TRUE(initializing_client()->data_channel() != nullptr); 1401 ASSERT_TRUE(initializing_client()->data_channel() != nullptr);
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
1743 server.urls.push_back("stun:hostname"); 1739 server.urls.push_back("stun:hostname");
1744 server.urls.push_back("turn:hostname"); 1740 server.urls.push_back("turn:hostname");
1745 servers.push_back(server); 1741 servers.push_back(server);
1746 EXPECT_TRUE(webrtc::ParseIceServers(servers, &stun_configurations_, 1742 EXPECT_TRUE(webrtc::ParseIceServers(servers, &stun_configurations_,
1747 &turn_configurations_)); 1743 &turn_configurations_));
1748 EXPECT_EQ(1U, stun_configurations_.size()); 1744 EXPECT_EQ(1U, stun_configurations_.size());
1749 EXPECT_EQ(1U, turn_configurations_.size()); 1745 EXPECT_EQ(1U, turn_configurations_.size());
1750 } 1746 }
1751 1747
1752 #endif // if !defined(THREAD_SANITIZER) 1748 #endif // if !defined(THREAD_SANITIZER)
OLDNEW
« no previous file with comments | « no previous file | talk/app/webrtc/statscollector.cc » ('j') | talk/app/webrtc/statscollector.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698