OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <string> | 5 #include <string> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/bind_helpers.h" | 9 #include "base/bind_helpers.h" |
10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
261 void FinishDefaultTestWithoutVerification() { | 261 void FinishDefaultTestWithoutVerification() { |
262 output_.rv = callback_.WaitForResult(); | 262 output_.rv = callback_.WaitForResult(); |
263 if (output_.rv != OK) | 263 if (output_.rv != OK) |
264 session_->spdy_session_pool()->CloseCurrentSessions(ERR_ABORTED); | 264 session_->spdy_session_pool()->CloseCurrentSessions(ERR_ABORTED); |
265 } | 265 } |
266 | 266 |
267 // Most tests will want to call this function. In particular, the MockReads | 267 // Most tests will want to call this function. In particular, the MockReads |
268 // should end with an empty read, and that read needs to be processed to | 268 // should end with an empty read, and that read needs to be processed to |
269 // ensure proper deletion of the spdy_session_pool. | 269 // ensure proper deletion of the spdy_session_pool. |
270 void VerifyDataConsumed() { | 270 void VerifyDataConsumed() { |
271 for (const SocketDataProvider* provider : data_vector_) { | 271 for (const SocketDataProvider* provider : data_vector_) { |
Bence
2015/05/19 12:08:52
This is not what you want for deterministic tests.
Ryan Hamilton
2015/05/19 14:31:22
Good point. I'm now verifying both vectors.
| |
272 EXPECT_TRUE(provider->AllReadDataConsumed()); | 272 EXPECT_TRUE(provider->AllReadDataConsumed()); |
273 EXPECT_TRUE(provider->AllWriteDataConsumed()); | 273 EXPECT_TRUE(provider->AllWriteDataConsumed()); |
274 } | 274 } |
275 } | 275 } |
276 | 276 |
277 // Occasionally a test will expect to error out before certain reads are | 277 // Occasionally a test will expect to error out before certain reads are |
278 // processed. In that case we want to explicitly ensure that the reads were | 278 // processed. In that case we want to explicitly ensure that the reads were |
279 // not processed. | 279 // not processed. |
280 void VerifyDataNotConsumed() { | 280 void VerifyDataNotConsumed() { |
281 for (const SocketDataProvider* provider : data_vector_) { | 281 for (const SocketDataProvider* provider : data_vector_) { |
Bence
2015/05/19 12:08:52
Ditto. Since this member is only called from test
Ryan Hamilton
2015/05/19 14:31:22
In for a penny, in for a pound. I'm no verifying b
| |
282 EXPECT_FALSE(provider->AllReadDataConsumed()); | 282 EXPECT_FALSE(provider->AllReadDataConsumed()); |
283 EXPECT_FALSE(provider->AllWriteDataConsumed()); | 283 EXPECT_FALSE(provider->AllWriteDataConsumed()); |
284 } | 284 } |
285 } | 285 } |
286 | 286 |
287 void RunToCompletion(SocketDataProvider* data) { | 287 void RunToCompletion(SocketDataProvider* data) { |
288 RunPreTestSetup(); | 288 RunPreTestSetup(); |
289 AddData(data); | 289 AddData(data); |
290 RunDefaultTest(); | 290 RunDefaultTest(); |
291 VerifyDataConsumed(); | 291 VerifyDataConsumed(); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
329 new StaticSocketDataProvider(NULL, 0, NULL, 0); | 329 new StaticSocketDataProvider(NULL, 0, NULL, 0); |
330 hanging_non_alt_svc_socket->set_connect_data(hanging_connect); | 330 hanging_non_alt_svc_socket->set_connect_data(hanging_connect); |
331 session_deps_->socket_factory->AddSocketDataProvider( | 331 session_deps_->socket_factory->AddSocketDataProvider( |
332 hanging_non_alt_svc_socket); | 332 hanging_non_alt_svc_socket); |
333 alternate_vector_.push_back(hanging_non_alt_svc_socket); | 333 alternate_vector_.push_back(hanging_non_alt_svc_socket); |
334 } | 334 } |
335 } | 335 } |
336 | 336 |
337 void AddDeterministicData(DeterministicSocketData* data) { | 337 void AddDeterministicData(DeterministicSocketData* data) { |
338 DCHECK(deterministic_); | 338 DCHECK(deterministic_); |
339 data_vector_.push_back(data); | 339 deterministic_data_vector_.push_back(data); |
340 SSLSocketDataProvider* ssl_provider = | 340 SSLSocketDataProvider* ssl_provider = |
341 new SSLSocketDataProvider(ASYNC, OK); | 341 new SSLSocketDataProvider(ASYNC, OK); |
342 ssl_provider->SetNextProto(test_params_.protocol); | 342 ssl_provider->SetNextProto(test_params_.protocol); |
343 ssl_provider->cert = | 343 ssl_provider->cert = |
344 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); | 344 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); |
345 ssl_vector_.push_back(ssl_provider); | 345 ssl_vector_.push_back(ssl_provider); |
346 session_deps_->deterministic_socket_factory->AddSSLSocketDataProvider( | 346 session_deps_->deterministic_socket_factory->AddSSLSocketDataProvider( |
347 ssl_provider); | 347 ssl_provider); |
348 | 348 |
349 session_deps_->deterministic_socket_factory->AddSocketDataProvider(data); | 349 session_deps_->deterministic_socket_factory->AddSocketDataProvider(data); |
350 if (test_params_.ssl_type == HTTP_SPDY_VIA_ALT_SVC) { | 350 if (test_params_.ssl_type == HTTP_SPDY_VIA_ALT_SVC) { |
351 MockConnect hanging_connect(SYNCHRONOUS, ERR_IO_PENDING); | 351 MockConnect hanging_connect(SYNCHRONOUS, ERR_IO_PENDING); |
352 DeterministicSocketData* hanging_non_alt_svc_socket = | 352 DeterministicSocketData* hanging_non_alt_svc_socket = |
353 new DeterministicSocketData(NULL, 0, NULL, 0); | 353 new DeterministicSocketData(NULL, 0, NULL, 0); |
354 hanging_non_alt_svc_socket->set_connect_data(hanging_connect); | 354 hanging_non_alt_svc_socket->set_connect_data(hanging_connect); |
355 session_deps_->deterministic_socket_factory->AddSocketDataProvider( | 355 session_deps_->deterministic_socket_factory->AddSocketDataProvider( |
356 hanging_non_alt_svc_socket); | 356 hanging_non_alt_svc_socket); |
357 alternate_vector_.push_back(hanging_non_alt_svc_socket); | 357 alternate_deterministic_vector_.push_back(hanging_non_alt_svc_socket); |
358 } | 358 } |
359 } | 359 } |
360 | 360 |
361 void SetSession(const scoped_refptr<HttpNetworkSession>& session) { | 361 void SetSession(const scoped_refptr<HttpNetworkSession>& session) { |
362 session_ = session; | 362 session_ = session; |
363 } | 363 } |
364 HttpNetworkTransaction* trans() { return trans_.get(); } | 364 HttpNetworkTransaction* trans() { return trans_.get(); } |
365 void ResetTrans() { trans_.reset(); } | 365 void ResetTrans() { trans_.reset(); } |
366 TransactionHelperResult& output() { return output_; } | 366 TransactionHelperResult& output() { return output_; } |
367 const HttpRequestInfo& request() const { return request_; } | 367 const HttpRequestInfo& request() const { return request_; } |
368 const scoped_refptr<HttpNetworkSession>& session() const { | 368 const scoped_refptr<HttpNetworkSession>& session() const { |
369 return session_; | 369 return session_; |
370 } | 370 } |
371 scoped_ptr<SpdySessionDependencies>& session_deps() { | 371 scoped_ptr<SpdySessionDependencies>& session_deps() { |
372 return session_deps_; | 372 return session_deps_; |
373 } | 373 } |
374 int port() const { return port_; } | 374 int port() const { return port_; } |
375 SpdyNetworkTransactionTestParams test_params() const { | 375 SpdyNetworkTransactionTestParams test_params() const { |
376 return test_params_; | 376 return test_params_; |
377 } | 377 } |
378 | 378 |
379 private: | 379 private: |
380 typedef std::vector<SocketDataProvider*> DataVector; | 380 typedef std::vector<SocketDataProvider*> DataVector; |
381 typedef std::vector<DeterministicSocketData*> DeterministicDataVector; | |
381 typedef ScopedVector<SSLSocketDataProvider> SSLVector; | 382 typedef ScopedVector<SSLSocketDataProvider> SSLVector; |
382 typedef ScopedVector<SocketDataProvider> AlternateVector; | 383 typedef ScopedVector<SocketDataProvider> AlternateVector; |
383 typedef ScopedVector<DeterministicSocketData> AlternateDeterministicVector; | 384 typedef ScopedVector<DeterministicSocketData> AlternateDeterministicVector; |
384 HttpRequestInfo request_; | 385 HttpRequestInfo request_; |
385 RequestPriority priority_; | 386 RequestPriority priority_; |
386 scoped_ptr<SpdySessionDependencies> session_deps_; | 387 scoped_ptr<SpdySessionDependencies> session_deps_; |
387 scoped_refptr<HttpNetworkSession> session_; | 388 scoped_refptr<HttpNetworkSession> session_; |
388 TransactionHelperResult output_; | 389 TransactionHelperResult output_; |
389 scoped_ptr<SocketDataProvider> first_transaction_; | 390 scoped_ptr<SocketDataProvider> first_transaction_; |
390 SSLVector ssl_vector_; | 391 SSLVector ssl_vector_; |
391 TestCompletionCallback callback_; | 392 TestCompletionCallback callback_; |
392 scoped_ptr<HttpNetworkTransaction> trans_; | 393 scoped_ptr<HttpNetworkTransaction> trans_; |
393 scoped_ptr<HttpNetworkTransaction> trans_http_; | 394 scoped_ptr<HttpNetworkTransaction> trans_http_; |
394 DataVector data_vector_; | 395 DataVector data_vector_; |
396 DeterministicDataVector deterministic_data_vector_; | |
395 AlternateVector alternate_vector_; | 397 AlternateVector alternate_vector_; |
396 AlternateDeterministicVector alternate_deterministic_vector_; | 398 AlternateDeterministicVector alternate_deterministic_vector_; |
397 const BoundNetLog log_; | 399 const BoundNetLog log_; |
398 SpdyNetworkTransactionTestParams test_params_; | 400 SpdyNetworkTransactionTestParams test_params_; |
399 int port_; | 401 int port_; |
400 bool deterministic_; | 402 bool deterministic_; |
401 bool spdy_enabled_; | 403 bool spdy_enabled_; |
402 }; | 404 }; |
403 | 405 |
404 void ConnectStatusHelperWithExpectedStatus(const MockRead& status, | 406 void ConnectStatusHelperWithExpectedStatus(const MockRead& status, |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
546 chunked_post_request_initialized_ = true; | 548 chunked_post_request_initialized_ = true; |
547 } | 549 } |
548 return chunked_post_request_; | 550 return chunked_post_request_; |
549 } | 551 } |
550 | 552 |
551 // Read the result of a particular transaction, knowing that we've got | 553 // Read the result of a particular transaction, knowing that we've got |
552 // multiple transactions in the read pipeline; so as we read, we may have | 554 // multiple transactions in the read pipeline; so as we read, we may have |
553 // to skip over data destined for other transactions while we consume | 555 // to skip over data destined for other transactions while we consume |
554 // the data for |trans|. | 556 // the data for |trans|. |
555 int ReadResult(HttpNetworkTransaction* trans, | 557 int ReadResult(HttpNetworkTransaction* trans, |
556 SocketDataProvider* data, | |
557 std::string* result) { | 558 std::string* result) { |
558 const int kSize = 3000; | 559 const int kSize = 3000; |
559 | 560 |
560 int bytes_read = 0; | 561 int bytes_read = 0; |
561 scoped_refptr<IOBufferWithSize> buf(new IOBufferWithSize(kSize)); | 562 scoped_refptr<IOBufferWithSize> buf(new IOBufferWithSize(kSize)); |
562 TestCompletionCallback callback; | 563 TestCompletionCallback callback; |
563 while (true) { | 564 while (true) { |
564 int rv = trans->Read(buf.get(), kSize, callback.callback()); | 565 int rv = trans->Read(buf.get(), kSize, callback.callback()); |
565 if (rv == ERR_IO_PENDING) { | 566 if (rv == ERR_IO_PENDING) { |
566 rv = callback.WaitForResult(); | 567 rv = callback.WaitForResult(); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
614 rv = trans2->Start( | 615 rv = trans2->Start( |
615 &CreateGetPushRequest(), callback.callback(), BoundNetLog()); | 616 &CreateGetPushRequest(), callback.callback(), BoundNetLog()); |
616 EXPECT_EQ(ERR_IO_PENDING, rv); | 617 EXPECT_EQ(ERR_IO_PENDING, rv); |
617 base::RunLoop().RunUntilIdle(); | 618 base::RunLoop().RunUntilIdle(); |
618 | 619 |
619 // The data for the pushed path may be coming in more than 1 frame. Compile | 620 // The data for the pushed path may be coming in more than 1 frame. Compile |
620 // the results into a single string. | 621 // the results into a single string. |
621 | 622 |
622 // Read the server push body. | 623 // Read the server push body. |
623 std::string result2; | 624 std::string result2; |
624 ReadResult(trans2.get(), data, &result2); | 625 ReadResult(trans2.get(), &result2); |
625 // Read the response body. | 626 // Read the response body. |
626 std::string result; | 627 std::string result; |
627 ReadResult(trans, data, &result); | 628 ReadResult(trans, &result); |
628 | 629 |
629 // Verify that we consumed all test data. | 630 // Verify that we consumed all test data. |
630 EXPECT_TRUE(data->AllReadDataConsumed()); | 631 EXPECT_TRUE(data->AllReadDataConsumed()); |
631 EXPECT_TRUE(data->AllWriteDataConsumed()); | 632 EXPECT_TRUE(data->AllWriteDataConsumed()); |
632 | 633 |
633 // Verify that the received push data is same as the expected push data. | 634 // Verify that the received push data is same as the expected push data. |
634 EXPECT_EQ(result2.compare(expected), 0) << "Received data: " | 635 EXPECT_EQ(result2.compare(expected), 0) << "Received data: " |
635 << result2 | 636 << result2 |
636 << "||||| Expected data: " | 637 << "||||| Expected data: " |
637 << expected; | 638 << expected; |
(...skipping 4499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5137 scoped_ptr<HttpNetworkTransaction> trans2( | 5138 scoped_ptr<HttpNetworkTransaction> trans2( |
5138 new HttpNetworkTransaction(DEFAULT_PRIORITY, helper.session().get())); | 5139 new HttpNetworkTransaction(DEFAULT_PRIORITY, helper.session().get())); |
5139 rv = trans2->Start( | 5140 rv = trans2->Start( |
5140 &CreateGetPushRequest(), callback.callback(), BoundNetLog()); | 5141 &CreateGetPushRequest(), callback.callback(), BoundNetLog()); |
5141 EXPECT_EQ(ERR_IO_PENDING, rv); | 5142 EXPECT_EQ(ERR_IO_PENDING, rv); |
5142 data.RunFor(3); | 5143 data.RunFor(3); |
5143 base::RunLoop().RunUntilIdle(); | 5144 base::RunLoop().RunUntilIdle(); |
5144 | 5145 |
5145 // Read the server push body. | 5146 // Read the server push body. |
5146 std::string result2; | 5147 std::string result2; |
5147 ReadResult(trans2.get(), &data, &result2); | 5148 ReadResult(trans2.get(), &result2); |
5148 // Read the response body. | 5149 // Read the response body. |
5149 std::string result; | 5150 std::string result; |
5150 ReadResult(trans, &data, &result); | 5151 ReadResult(trans, &result); |
5151 | 5152 |
5152 // Verify that the received push data is same as the expected push data. | 5153 // Verify that the received push data is same as the expected push data. |
5153 EXPECT_EQ(result2.compare(expected_push_result), 0) | 5154 EXPECT_EQ(result2.compare(expected_push_result), 0) |
5154 << "Received data: " | 5155 << "Received data: " |
5155 << result2 | 5156 << result2 |
5156 << "||||| Expected data: " | 5157 << "||||| Expected data: " |
5157 << expected_push_result; | 5158 << expected_push_result; |
5158 | 5159 |
5159 // Verify the SYN_REPLY. | 5160 // Verify the SYN_REPLY. |
5160 // Copy the response info, because trans goes away. | 5161 // Copy the response info, because trans goes away. |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5275 scoped_ptr<HttpNetworkTransaction> trans2( | 5276 scoped_ptr<HttpNetworkTransaction> trans2( |
5276 new HttpNetworkTransaction(DEFAULT_PRIORITY, helper.session().get())); | 5277 new HttpNetworkTransaction(DEFAULT_PRIORITY, helper.session().get())); |
5277 rv = trans2->Start( | 5278 rv = trans2->Start( |
5278 &CreateGetPushRequest(), callback.callback(), BoundNetLog()); | 5279 &CreateGetPushRequest(), callback.callback(), BoundNetLog()); |
5279 EXPECT_EQ(ERR_IO_PENDING, rv); | 5280 EXPECT_EQ(ERR_IO_PENDING, rv); |
5280 data.RunFor(3); | 5281 data.RunFor(3); |
5281 base::RunLoop().RunUntilIdle(); | 5282 base::RunLoop().RunUntilIdle(); |
5282 | 5283 |
5283 // Read the server push body. | 5284 // Read the server push body. |
5284 std::string result2; | 5285 std::string result2; |
5285 ReadResult(trans2.get(), &data, &result2); | 5286 ReadResult(trans2.get(), &result2); |
5286 // Read the response body. | 5287 // Read the response body. |
5287 std::string result; | 5288 std::string result; |
5288 ReadResult(trans, &data, &result); | 5289 ReadResult(trans, &result); |
5289 | 5290 |
5290 // Verify that the received push data is same as the expected push data. | 5291 // Verify that the received push data is same as the expected push data. |
5291 EXPECT_EQ(expected_push_result, result2); | 5292 EXPECT_EQ(expected_push_result, result2); |
5292 | 5293 |
5293 // Verify the SYN_REPLY. | 5294 // Verify the SYN_REPLY. |
5294 // Copy the response info, because trans goes away. | 5295 // Copy the response info, because trans goes away. |
5295 response = *trans->GetResponseInfo(); | 5296 response = *trans->GetResponseInfo(); |
5296 response2 = *trans2->GetResponseInfo(); | 5297 response2 = *trans2->GetResponseInfo(); |
5297 | 5298 |
5298 VerifyStreamsClosed(helper); | 5299 VerifyStreamsClosed(helper); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5391 scoped_ptr<HttpNetworkTransaction> trans2( | 5392 scoped_ptr<HttpNetworkTransaction> trans2( |
5392 new HttpNetworkTransaction(DEFAULT_PRIORITY, helper.session().get())); | 5393 new HttpNetworkTransaction(DEFAULT_PRIORITY, helper.session().get())); |
5393 rv = trans2->Start( | 5394 rv = trans2->Start( |
5394 &CreateGetPushRequest(), callback.callback(), BoundNetLog()); | 5395 &CreateGetPushRequest(), callback.callback(), BoundNetLog()); |
5395 EXPECT_EQ(ERR_IO_PENDING, rv); | 5396 EXPECT_EQ(ERR_IO_PENDING, rv); |
5396 data.RunFor(2); | 5397 data.RunFor(2); |
5397 base::RunLoop().RunUntilIdle(); | 5398 base::RunLoop().RunUntilIdle(); |
5398 | 5399 |
5399 // Read the server push body. | 5400 // Read the server push body. |
5400 std::string result2; | 5401 std::string result2; |
5401 ReadResult(trans2.get(), &data, &result2); | 5402 ReadResult(trans2.get(), &result2); |
5402 // Read the response body. | 5403 // Read the response body. |
5403 std::string result; | 5404 std::string result; |
5404 ReadResult(trans, &data, &result); | 5405 ReadResult(trans, &result); |
5405 EXPECT_EQ("hello!", result); | 5406 EXPECT_EQ("hello!", result); |
5406 | 5407 |
5407 // Verify that we haven't received any push data. | 5408 // Verify that we haven't received any push data. |
5408 EXPECT_EQ("", result2); | 5409 EXPECT_EQ("", result2); |
5409 | 5410 |
5410 // Verify the SYN_REPLY. | 5411 // Verify the SYN_REPLY. |
5411 // Copy the response info, because trans goes away. | 5412 // Copy the response info, because trans goes away. |
5412 HttpResponseInfo response = *trans->GetResponseInfo(); | 5413 HttpResponseInfo response = *trans->GetResponseInfo(); |
5413 | 5414 |
5414 VerifyStreamsClosed(helper); | 5415 VerifyStreamsClosed(helper); |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5596 | 5597 |
5597 // Start the transaction with basic parameters. | 5598 // Start the transaction with basic parameters. |
5598 TestCompletionCallback callback; | 5599 TestCompletionCallback callback; |
5599 | 5600 |
5600 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 5601 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
5601 EXPECT_EQ(ERR_IO_PENDING, rv); | 5602 EXPECT_EQ(ERR_IO_PENDING, rv); |
5602 rv = callback.WaitForResult(); | 5603 rv = callback.WaitForResult(); |
5603 | 5604 |
5604 // Read the response body. | 5605 // Read the response body. |
5605 std::string result; | 5606 std::string result; |
5606 ReadResult(trans, &data, &result); | 5607 ReadResult(trans, &result); |
5607 | 5608 |
5608 // Verify that we consumed all test data. | 5609 // Verify that we consumed all test data. |
5609 EXPECT_TRUE(data.AllReadDataConsumed()); | 5610 EXPECT_TRUE(data.AllReadDataConsumed()); |
5610 EXPECT_TRUE(data.AllWriteDataConsumed()); | 5611 EXPECT_TRUE(data.AllWriteDataConsumed()); |
5611 | 5612 |
5612 // Verify the SYN_REPLY. | 5613 // Verify the SYN_REPLY. |
5613 // Copy the response info, because trans goes away. | 5614 // Copy the response info, because trans goes away. |
5614 response = *trans->GetResponseInfo(); | 5615 response = *trans->GetResponseInfo(); |
5615 | 5616 |
5616 VerifyStreamsClosed(helper); | 5617 VerifyStreamsClosed(helper); |
(...skipping 969 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6586 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { | 6587 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { |
6587 scoped_ptr<SSLSocketDataProvider> ssl_provider( | 6588 scoped_ptr<SSLSocketDataProvider> ssl_provider( |
6588 new SSLSocketDataProvider(ASYNC, OK)); | 6589 new SSLSocketDataProvider(ASYNC, OK)); |
6589 // Set to TLS_RSA_WITH_NULL_MD5 | 6590 // Set to TLS_RSA_WITH_NULL_MD5 |
6590 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); | 6591 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); |
6591 | 6592 |
6592 RunTLSUsageCheckTest(ssl_provider.Pass()); | 6593 RunTLSUsageCheckTest(ssl_provider.Pass()); |
6593 } | 6594 } |
6594 | 6595 |
6595 } // namespace net | 6596 } // namespace net |
OLD | NEW |