OLD | NEW |
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 1329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1340 rtc::scoped_refptr<webrtc::FakeMetricsObserver> | 1340 rtc::scoped_refptr<webrtc::FakeMetricsObserver> |
1341 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); | 1341 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); |
1342 initializing_client()->pc()->RegisterUMAObserver(init_observer); | 1342 initializing_client()->pc()->RegisterUMAObserver(init_observer); |
1343 LocalP2PTest(); | 1343 LocalP2PTest(); |
1344 | 1344 |
1345 EXPECT_EQ_WAIT( | 1345 EXPECT_EQ_WAIT( |
1346 rtc::SSLStreamAdapter::GetDefaultSslCipher(rtc::SSL_PROTOCOL_DTLS_10), | 1346 rtc::SSLStreamAdapter::GetDefaultSslCipher(rtc::SSL_PROTOCOL_DTLS_10), |
1347 initializing_client()->GetDtlsCipherStats(), | 1347 initializing_client()->GetDtlsCipherStats(), |
1348 kMaxWaitForStatsMs); | 1348 kMaxWaitForStatsMs); |
1349 EXPECT_EQ( | 1349 EXPECT_EQ( |
1350 rtc::SSLStreamAdapter::GetDefaultSslCipher(rtc::SSL_PROTOCOL_DTLS_10), | 1350 1, |
1351 init_observer->GetStringHistogramSample(webrtc::kAudioSslCipher)); | 1351 init_observer->GetEnumCounter( |
| 1352 webrtc::kEnumCounterAudioSslCipher, |
| 1353 webrtc::GetSslCipherType(rtc::SSLStreamAdapter::GetDefaultSslCipher( |
| 1354 rtc::SSL_PROTOCOL_DTLS_10)))); |
1352 | 1355 |
1353 EXPECT_EQ_WAIT( | 1356 EXPECT_EQ_WAIT( |
1354 kDefaultSrtpCipher, | 1357 kDefaultSrtpCipher, |
1355 initializing_client()->GetSrtpCipherStats(), | 1358 initializing_client()->GetSrtpCipherStats(), |
1356 kMaxWaitForStatsMs); | 1359 kMaxWaitForStatsMs); |
1357 EXPECT_EQ( | 1360 EXPECT_EQ(1, init_observer->GetEnumCounter( |
1358 kDefaultSrtpCipher, | 1361 webrtc::kEnumCounterAudioSrtpCipher, |
1359 init_observer->GetStringHistogramSample(webrtc::kAudioSrtpCipher)); | 1362 webrtc::GetSrtpCipherType(kDefaultSrtpCipher))); |
1360 } | 1363 } |
1361 | 1364 |
1362 // Test that DTLS 1.2 is used if both ends support it. | 1365 // Test that DTLS 1.2 is used if both ends support it. |
1363 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Both) { | 1366 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Both) { |
1364 PeerConnectionFactory::Options init_options; | 1367 PeerConnectionFactory::Options init_options; |
1365 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; | 1368 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; |
1366 PeerConnectionFactory::Options recv_options; | 1369 PeerConnectionFactory::Options recv_options; |
1367 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; | 1370 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; |
1368 ASSERT_TRUE(CreateTestClients(NULL, &init_options, NULL, &recv_options)); | 1371 ASSERT_TRUE(CreateTestClients(NULL, &init_options, NULL, &recv_options)); |
1369 rtc::scoped_refptr<webrtc::FakeMetricsObserver> | 1372 rtc::scoped_refptr<webrtc::FakeMetricsObserver> |
1370 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); | 1373 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); |
1371 initializing_client()->pc()->RegisterUMAObserver(init_observer); | 1374 initializing_client()->pc()->RegisterUMAObserver(init_observer); |
1372 LocalP2PTest(); | 1375 LocalP2PTest(); |
1373 | 1376 |
1374 EXPECT_EQ_WAIT( | 1377 EXPECT_EQ_WAIT( |
1375 rtc::SSLStreamAdapter::GetDefaultSslCipher(rtc::SSL_PROTOCOL_DTLS_12), | 1378 rtc::SSLStreamAdapter::GetDefaultSslCipher(rtc::SSL_PROTOCOL_DTLS_12), |
1376 initializing_client()->GetDtlsCipherStats(), | 1379 initializing_client()->GetDtlsCipherStats(), |
1377 kMaxWaitForStatsMs); | 1380 kMaxWaitForStatsMs); |
1378 EXPECT_EQ( | 1381 EXPECT_EQ( |
1379 rtc::SSLStreamAdapter::GetDefaultSslCipher(rtc::SSL_PROTOCOL_DTLS_12), | 1382 1, |
1380 init_observer->GetStringHistogramSample(webrtc::kAudioSslCipher)); | 1383 init_observer->GetEnumCounter( |
| 1384 webrtc::kEnumCounterAudioSslCipher, |
| 1385 webrtc::GetSslCipherType(rtc::SSLStreamAdapter::GetDefaultSslCipher( |
| 1386 rtc::SSL_PROTOCOL_DTLS_12)))); |
1381 | 1387 |
1382 EXPECT_EQ_WAIT( | 1388 EXPECT_EQ_WAIT( |
1383 kDefaultSrtpCipher, | 1389 kDefaultSrtpCipher, |
1384 initializing_client()->GetSrtpCipherStats(), | 1390 initializing_client()->GetSrtpCipherStats(), |
1385 kMaxWaitForStatsMs); | 1391 kMaxWaitForStatsMs); |
1386 EXPECT_EQ( | 1392 EXPECT_EQ(1, init_observer->GetEnumCounter( |
1387 kDefaultSrtpCipher, | 1393 webrtc::kEnumCounterAudioSrtpCipher, |
1388 init_observer->GetStringHistogramSample(webrtc::kAudioSrtpCipher)); | 1394 webrtc::GetSrtpCipherType(kDefaultSrtpCipher))); |
1389 } | 1395 } |
1390 | 1396 |
1391 // Test that DTLS 1.0 is used if the initator supports DTLS 1.2 and the | 1397 // Test that DTLS 1.0 is used if the initator supports DTLS 1.2 and the |
1392 // received supports 1.0. | 1398 // received supports 1.0. |
1393 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Init) { | 1399 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Init) { |
1394 PeerConnectionFactory::Options init_options; | 1400 PeerConnectionFactory::Options init_options; |
1395 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; | 1401 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; |
1396 PeerConnectionFactory::Options recv_options; | 1402 PeerConnectionFactory::Options recv_options; |
1397 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10; | 1403 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10; |
1398 ASSERT_TRUE(CreateTestClients(NULL, &init_options, NULL, &recv_options)); | 1404 ASSERT_TRUE(CreateTestClients(NULL, &init_options, NULL, &recv_options)); |
1399 rtc::scoped_refptr<webrtc::FakeMetricsObserver> | 1405 rtc::scoped_refptr<webrtc::FakeMetricsObserver> |
1400 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); | 1406 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); |
1401 initializing_client()->pc()->RegisterUMAObserver(init_observer); | 1407 initializing_client()->pc()->RegisterUMAObserver(init_observer); |
1402 LocalP2PTest(); | 1408 LocalP2PTest(); |
1403 | 1409 |
1404 EXPECT_EQ_WAIT( | 1410 EXPECT_EQ_WAIT( |
1405 rtc::SSLStreamAdapter::GetDefaultSslCipher(rtc::SSL_PROTOCOL_DTLS_10), | 1411 rtc::SSLStreamAdapter::GetDefaultSslCipher(rtc::SSL_PROTOCOL_DTLS_10), |
1406 initializing_client()->GetDtlsCipherStats(), | 1412 initializing_client()->GetDtlsCipherStats(), |
1407 kMaxWaitForStatsMs); | 1413 kMaxWaitForStatsMs); |
1408 EXPECT_EQ( | 1414 EXPECT_EQ( |
1409 rtc::SSLStreamAdapter::GetDefaultSslCipher(rtc::SSL_PROTOCOL_DTLS_10), | 1415 1, |
1410 init_observer->GetStringHistogramSample(webrtc::kAudioSslCipher)); | 1416 init_observer->GetEnumCounter( |
| 1417 webrtc::kEnumCounterAudioSslCipher, |
| 1418 webrtc::GetSslCipherType(rtc::SSLStreamAdapter::GetDefaultSslCipher( |
| 1419 rtc::SSL_PROTOCOL_DTLS_10)))); |
1411 | 1420 |
1412 EXPECT_EQ_WAIT( | 1421 EXPECT_EQ_WAIT( |
1413 kDefaultSrtpCipher, | 1422 kDefaultSrtpCipher, |
1414 initializing_client()->GetSrtpCipherStats(), | 1423 initializing_client()->GetSrtpCipherStats(), |
1415 kMaxWaitForStatsMs); | 1424 kMaxWaitForStatsMs); |
1416 EXPECT_EQ( | 1425 EXPECT_EQ(1, init_observer->GetEnumCounter( |
1417 kDefaultSrtpCipher, | 1426 webrtc::kEnumCounterAudioSrtpCipher, |
1418 init_observer->GetStringHistogramSample(webrtc::kAudioSrtpCipher)); | 1427 webrtc::GetSrtpCipherType(kDefaultSrtpCipher))); |
1419 } | 1428 } |
1420 | 1429 |
1421 // Test that DTLS 1.0 is used if the initator supports DTLS 1.0 and the | 1430 // Test that DTLS 1.0 is used if the initator supports DTLS 1.0 and the |
1422 // received supports 1.2. | 1431 // received supports 1.2. |
1423 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Recv) { | 1432 TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Recv) { |
1424 PeerConnectionFactory::Options init_options; | 1433 PeerConnectionFactory::Options init_options; |
1425 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10; | 1434 init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10; |
1426 PeerConnectionFactory::Options recv_options; | 1435 PeerConnectionFactory::Options recv_options; |
1427 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; | 1436 recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12; |
1428 ASSERT_TRUE(CreateTestClients(NULL, &init_options, NULL, &recv_options)); | 1437 ASSERT_TRUE(CreateTestClients(NULL, &init_options, NULL, &recv_options)); |
1429 rtc::scoped_refptr<webrtc::FakeMetricsObserver> | 1438 rtc::scoped_refptr<webrtc::FakeMetricsObserver> |
1430 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); | 1439 init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>(); |
1431 initializing_client()->pc()->RegisterUMAObserver(init_observer); | 1440 initializing_client()->pc()->RegisterUMAObserver(init_observer); |
1432 LocalP2PTest(); | 1441 LocalP2PTest(); |
1433 | 1442 |
1434 EXPECT_EQ_WAIT( | 1443 EXPECT_EQ_WAIT( |
1435 rtc::SSLStreamAdapter::GetDefaultSslCipher(rtc::SSL_PROTOCOL_DTLS_10), | 1444 rtc::SSLStreamAdapter::GetDefaultSslCipher(rtc::SSL_PROTOCOL_DTLS_10), |
1436 initializing_client()->GetDtlsCipherStats(), | 1445 initializing_client()->GetDtlsCipherStats(), |
1437 kMaxWaitForStatsMs); | 1446 kMaxWaitForStatsMs); |
1438 EXPECT_EQ( | 1447 EXPECT_EQ( |
1439 rtc::SSLStreamAdapter::GetDefaultSslCipher(rtc::SSL_PROTOCOL_DTLS_10), | 1448 1, |
1440 init_observer->GetStringHistogramSample(webrtc::kAudioSslCipher)); | 1449 init_observer->GetEnumCounter( |
| 1450 webrtc::kEnumCounterAudioSslCipher, |
| 1451 webrtc::GetSslCipherType(rtc::SSLStreamAdapter::GetDefaultSslCipher( |
| 1452 rtc::SSL_PROTOCOL_DTLS_10)))); |
1441 | 1453 |
1442 EXPECT_EQ_WAIT( | 1454 EXPECT_EQ_WAIT( |
1443 kDefaultSrtpCipher, | 1455 kDefaultSrtpCipher, |
1444 initializing_client()->GetSrtpCipherStats(), | 1456 initializing_client()->GetSrtpCipherStats(), |
1445 kMaxWaitForStatsMs); | 1457 kMaxWaitForStatsMs); |
1446 EXPECT_EQ( | 1458 EXPECT_EQ(1, init_observer->GetEnumCounter( |
1447 kDefaultSrtpCipher, | 1459 webrtc::kEnumCounterAudioSrtpCipher, |
1448 init_observer->GetStringHistogramSample(webrtc::kAudioSrtpCipher)); | 1460 webrtc::GetSrtpCipherType(kDefaultSrtpCipher))); |
1449 } | 1461 } |
1450 | 1462 |
1451 // This test sets up a call between two parties with audio, video and data. | 1463 // This test sets up a call between two parties with audio, video and data. |
1452 TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestDataChannel) { | 1464 TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestDataChannel) { |
1453 FakeConstraints setup_constraints; | 1465 FakeConstraints setup_constraints; |
1454 setup_constraints.SetAllowRtpDataChannels(); | 1466 setup_constraints.SetAllowRtpDataChannels(); |
1455 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); | 1467 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); |
1456 initializing_client()->CreateDataChannel(); | 1468 initializing_client()->CreateDataChannel(); |
1457 LocalP2PTest(); | 1469 LocalP2PTest(); |
1458 ASSERT_TRUE(initializing_client()->data_channel() != NULL); | 1470 ASSERT_TRUE(initializing_client()->data_channel() != NULL); |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1620 // TODO(holmer): Disabled due to sometimes crashing on buildbots. | 1632 // TODO(holmer): Disabled due to sometimes crashing on buildbots. |
1621 // See issue webrtc/2378. | 1633 // See issue webrtc/2378. |
1622 TEST_F(JsepPeerConnectionP2PTestClient, | 1634 TEST_F(JsepPeerConnectionP2PTestClient, |
1623 DISABLED_LocalP2PTestWithVideoDecoderFactory) { | 1635 DISABLED_LocalP2PTestWithVideoDecoderFactory) { |
1624 ASSERT_TRUE(CreateTestClients()); | 1636 ASSERT_TRUE(CreateTestClients()); |
1625 EnableVideoDecoderFactory(); | 1637 EnableVideoDecoderFactory(); |
1626 LocalP2PTest(); | 1638 LocalP2PTest(); |
1627 } | 1639 } |
1628 | 1640 |
1629 #endif // if !defined(THREAD_SANITIZER) | 1641 #endif // if !defined(THREAD_SANITIZER) |
OLD | NEW |