diff options
author | wtc@google.com <wtc@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-21 22:03:17 +0000 |
---|---|---|
committer | wtc@google.com <wtc@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-21 22:03:17 +0000 |
commit | 382323aa919954ddf0495f032cf15bb7ff3a3285 (patch) | |
tree | 33b4396957420d8de48a71bcf3ff4ca07a64ba83 /net/base/cert_verifier_unittest.cc | |
parent | 364b557e7806239225940194878101e10d05be54 (diff) | |
download | chromium_src-382323aa919954ddf0495f032cf15bb7ff3a3285.zip chromium_src-382323aa919954ddf0495f032cf15bb7ff3a3285.tar.gz chromium_src-382323aa919954ddf0495f032cf15bb7ff3a3285.tar.bz2 |
The CertVerifierJob destructor should delete canceled requests.
Add a job to inflight_ only after the job's worker has started
successfully.
R=agl
BUG=63357,67289
TEST=net_unittests --gtest_filter=CertVerifierTest.CancelRequestThenQuit
should not leak a CertVerifierRequest object under valgrind.
Review URL: http://codereview.chromium.org/5973004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72203 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/cert_verifier_unittest.cc')
-rw-r--r-- | net/base/cert_verifier_unittest.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/net/base/cert_verifier_unittest.cc b/net/base/cert_verifier_unittest.cc index ca5e1f4..c49a5f4 100644 --- a/net/base/cert_verifier_unittest.cc +++ b/net/base/cert_verifier_unittest.cc @@ -257,4 +257,26 @@ TEST_F(CertVerifierTest, CancelRequest) { } } +// Tests that a canceled request is not leaked. +TEST_F(CertVerifierTest, CancelRequestThenQuit) { + CertVerifier verifier; + + FilePath certs_dir = GetTestCertsDirectory(); + scoped_refptr<X509Certificate> google_cert( + ImportCertFromFile(certs_dir, "google.single.der")); + ASSERT_NE(static_cast<X509Certificate*>(NULL), google_cert); + + int error; + CertVerifyResult verify_result; + TestCompletionCallback callback; + CertVerifier::RequestHandle request_handle; + + error = verifier.Verify(google_cert, "www.example.com", 0, &verify_result, + &callback, &request_handle); + ASSERT_EQ(ERR_IO_PENDING, error); + ASSERT_TRUE(request_handle != NULL); + verifier.CancelRequest(request_handle); + // Destroy |verifier| by going out of scope. +} + } // namespace net |