diff options
author | David Benjamin <davidben@chromium.org> | 2015-11-21 11:00:50 +0300 |
---|---|---|
committer | Adam Langley <alangley@gmail.com> | 2016-01-28 03:52:37 +0300 |
commit | 4f6acaf0da359e2c00d20d3553ad8ddd020368a1 (patch) | |
tree | 55d77973777f06f9c112842854cb265e545f7b62 /ssl | |
parent | c3774c11876d4abc98651dd036a1c3301960b10b (diff) |
Use more C++11 features.
Finally, we can stick ScopedFOO in containers.
Change-Id: I3ed166575822af9f182e8be8f4db723e1f08ea31
Reviewed-on: https://boringssl-review.googlesource.com/6553
Reviewed-by: Adam Langley <alangley@gmail.com>
Diffstat (limited to 'ssl')
-rw-r--r-- | ssl/ssl_test.cc | 72 |
1 files changed, 29 insertions, 43 deletions
diff --git a/ssl/ssl_test.cc b/ssl/ssl_test.cc index 9558f1c3..bef88fb5 100644 --- a/ssl/ssl_test.cc +++ b/ssl/ssl_test.cc @@ -18,6 +18,7 @@ #include <algorithm> #include <string> +#include <utility> #include <vector> #include <openssl/base64.h> @@ -932,23 +933,6 @@ static ScopedSSL_SESSION CreateTestSession(uint32_t number) { return ret; } -// TODO(davidben): Switch this to a |std::vector<ScopedSSL_SESSION>| once we can -// rely on a move-aware |std::vector|. -class ScopedSessionVector { - public: - explicit ScopedSessionVector(std::vector<SSL_SESSION*> *sessions) - : sessions_(sessions) {} - - ~ScopedSessionVector() { - for (SSL_SESSION *session : *sessions_) { - SSL_SESSION_free(session); - } - } - - private: - std::vector<SSL_SESSION*> *const sessions_; -}; - // Test that the internal session cache behaves as expected. static bool TestInternalSessionCache() { ScopedSSL_CTX ctx(SSL_CTX_new(TLS_method())); @@ -957,38 +941,38 @@ static bool TestInternalSessionCache() { } // Prepare 10 test sessions. - std::vector<SSL_SESSION*> sessions; - ScopedSessionVector cleanup(&sessions); + std::vector<ScopedSSL_SESSION> sessions; for (int i = 0; i < 10; i++) { ScopedSSL_SESSION session = CreateTestSession(i); if (!session) { return false; } - sessions.push_back(session.release()); + sessions.push_back(std::move(session)); } SSL_CTX_sess_set_cache_size(ctx.get(), 5); // Insert all the test sessions. - for (SSL_SESSION *session : sessions) { - if (!SSL_CTX_add_session(ctx.get(), session)) { + for (const auto &session : sessions) { + if (!SSL_CTX_add_session(ctx.get(), session.get())) { return false; } } // Only the last five should be in the list. - std::vector<SSL_SESSION*> expected; - expected.push_back(sessions[9]); - expected.push_back(sessions[8]); - expected.push_back(sessions[7]); - expected.push_back(sessions[6]); - expected.push_back(sessions[5]); + std::vector<SSL_SESSION*> expected = { + sessions[9].get(), + sessions[8].get(), + sessions[7].get(), + sessions[6].get(), + sessions[5].get(), + }; if (!ExpectCache(ctx.get(), expected)) { return false; } // Inserting an element already in the cache should fail. - if (SSL_CTX_add_session(ctx.get(), sessions[7]) || + if (SSL_CTX_add_session(ctx.get(), sessions[7].get()) || !ExpectCache(ctx.get(), expected)) { return false; } @@ -999,32 +983,34 @@ static bool TestInternalSessionCache() { if (!collision || !SSL_CTX_add_session(ctx.get(), collision.get())) { return false; } - expected.clear(); - expected.push_back(collision.get()); - expected.push_back(sessions[9]); - expected.push_back(sessions[8]); - expected.push_back(sessions[6]); - expected.push_back(sessions[5]); + expected = { + collision.get(), + sessions[9].get(), + sessions[8].get(), + sessions[6].get(), + sessions[5].get(), + }; if (!ExpectCache(ctx.get(), expected)) { return false; } // Removing sessions behaves correctly. - if (!SSL_CTX_remove_session(ctx.get(), sessions[6])) { + if (!SSL_CTX_remove_session(ctx.get(), sessions[6].get())) { return false; } - expected.clear(); - expected.push_back(collision.get()); - expected.push_back(sessions[9]); - expected.push_back(sessions[8]); - expected.push_back(sessions[5]); + expected = { + collision.get(), + sessions[9].get(), + sessions[8].get(), + sessions[5].get(), + }; if (!ExpectCache(ctx.get(), expected)) { return false; } // Removing sessions requires an exact match. - if (SSL_CTX_remove_session(ctx.get(), sessions[0]) || - SSL_CTX_remove_session(ctx.get(), sessions[7]) || + if (SSL_CTX_remove_session(ctx.get(), sessions[0].get()) || + SSL_CTX_remove_session(ctx.get(), sessions[7].get()) || !ExpectCache(ctx.get(), expected)) { return false; } |