summaryrefslogtreecommitdiffstats
path: root/net/tools/quic/end_to_end_test.cc
diff options
context:
space:
mode:
authorrch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-26 03:46:44 +0000
committerrch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-26 03:46:44 +0000
commite97101867e20a3a149448e235da6d24cd5147f46 (patch)
tree8b6721b4cc3ce91d0092ce0d79473a207b5d0cd4 /net/tools/quic/end_to_end_test.cc
parent4c55f2ce9f73616c0a189bc5edc9d4a7f4913c12 (diff)
downloadchromium_src-e97101867e20a3a149448e235da6d24cd5147f46.zip
chromium_src-e97101867e20a3a149448e235da6d24cd5147f46.tar.gz
chromium_src-e97101867e20a3a149448e235da6d24cd5147f46.tar.bz2
Factor out ServerThread from the QUIC EndToEndTest in order to reuse in
a Chromium test. Merge internal change: 53205265 Review URL: https://codereview.chromium.org/24493003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225309 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/tools/quic/end_to_end_test.cc')
-rw-r--r--net/tools/quic/end_to_end_test.cc94
1 files changed, 9 insertions, 85 deletions
diff --git a/net/tools/quic/end_to_end_test.cc b/net/tools/quic/end_to_end_test.cc
index 77a6d65..e47d1d5 100644
--- a/net/tools/quic/end_to_end_test.cc
+++ b/net/tools/quic/end_to_end_test.cc
@@ -9,7 +9,6 @@
#include "base/memory/singleton.h"
#include "base/strings/string_number_conversions.h"
#include "base/synchronization/waitable_event.h"
-#include "base/threading/simple_thread.h"
#include "net/base/ip_endpoint.h"
#include "net/quic/crypto/aes_128_gcm_12_encrypter.h"
#include "net/quic/crypto/null_encrypter.h"
@@ -27,6 +26,7 @@
#include "net/tools/quic/test_tools/quic_client_peer.h"
#include "net/tools/quic/test_tools/quic_epoll_connection_helper_peer.h"
#include "net/tools/quic/test_tools/quic_test_client.h"
+#include "net/tools/quic/test_tools/server_thread.h"
#include "testing/gtest/include/gtest/gtest.h"
using base::StringPiece;
@@ -57,61 +57,6 @@ void GenerateBody(string* body, int length) {
}
}
-
-// Simple wrapper class to run server in a thread.
-class ServerThread : public base::SimpleThread {
- public:
- ServerThread(IPEndPoint address,
- const QuicConfig& config,
- bool strike_register_no_startup_period)
- : SimpleThread("server_thread"),
- listening_(true, false),
- quit_(true, false),
- server_(config),
- address_(address),
- port_(0) {
- if (strike_register_no_startup_period) {
- server_.SetStrikeRegisterNoStartupPeriod();
- }
- }
- virtual ~ServerThread() {
- }
-
- virtual void Run() OVERRIDE {
- server_.Listen(address_);
-
- port_lock_.Acquire();
- port_ = server_.port();
- port_lock_.Release();
-
- listening_.Signal();
- while (!quit_.IsSignaled()) {
- server_.WaitForEvents();
- }
- server_.Shutdown();
- }
-
- int GetPort() {
- port_lock_.Acquire();
- int rc = port_;
- port_lock_.Release();
- return rc;
- }
-
- WaitableEvent* listening() { return &listening_; }
- WaitableEvent* quit() { return &quit_; }
-
- private:
- WaitableEvent listening_;
- WaitableEvent quit_;
- base::Lock port_lock_;
- QuicServer server_;
- IPEndPoint address_;
- int port_;
-
- DISALLOW_COPY_AND_ASSIGN(ServerThread);
-};
-
class EndToEndTest : public ::testing::TestWithParam<QuicVersion> {
public:
static void SetUpTestCase() {
@@ -180,35 +125,14 @@ class EndToEndTest : public ::testing::TestWithParam<QuicVersion> {
}
}
- void AddToCache(const StringPiece& method,
- const StringPiece& path,
- const StringPiece& version,
- const StringPiece& response_code,
- const StringPiece& response_detail,
- const StringPiece& body) {
- BalsaHeaders request_headers, response_headers;
- request_headers.SetRequestFirstlineFromStringPieces(method,
- path,
- version);
- response_headers.SetRequestFirstlineFromStringPieces(version,
- response_code,
- response_detail);
- response_headers.AppendHeader("content-length",
- base::IntToString(body.length()));
-
- // Check if response already exists and matches.
- QuicInMemoryCache* cache = QuicInMemoryCache::GetInstance();
- const QuicInMemoryCache::Response* cached_response =
- cache->GetResponse(request_headers);
- if (cached_response != NULL) {
- string cached_response_headers_str, response_headers_str;
- cached_response->headers().DumpToString(&cached_response_headers_str);
- response_headers.DumpToString(&response_headers_str);
- CHECK_EQ(cached_response_headers_str, response_headers_str);
- CHECK_EQ(cached_response->body(), body);
- return;
- }
- cache->AddResponse(request_headers, response_headers, body);
+ void AddToCache(StringPiece method,
+ StringPiece path,
+ StringPiece version,
+ StringPiece response_code,
+ StringPiece response_detail,
+ StringPiece body) {
+ QuicInMemoryCache::GetInstance()->AddOrVerifyResponse(
+ method, path, version, response_code, response_detail, body);
}
IPEndPoint server_address_;