Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(478)

Side by Side Diff: components/cronet/ios/test/quic_test_server.cc

Issue 2146643002: [Cronet] Integrate CrNet functionality into Cronet on iOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove cronet_test_bundle_data target and use data bundled with net_test_support. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "components/cronet/ios/test/quic_test_server.h" 5 #include "components/cronet/ios/test/quic_test_server.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 43
44 base::Thread* g_quic_server_thread = nullptr; 44 base::Thread* g_quic_server_thread = nullptr;
45 net::QuicSimpleServer* g_quic_server = nullptr; 45 net::QuicSimpleServer* g_quic_server = nullptr;
46 46
47 void SetupQuicInMemoryCache() { 47 void SetupQuicInMemoryCache() {
48 static bool setup_done = false; 48 static bool setup_done = false;
49 if (setup_done) 49 if (setup_done)
50 return; 50 return;
51 setup_done = true; 51 setup_done = true;
52 net::SpdyHeaderBlock headers; 52 net::SpdyHeaderBlock headers;
53 headers.ReplaceOrAppendHeader(kHelloHeaderName, kHelloHeaderValue); 53 headers.AppendValueOrAddHeader(kHelloHeaderName, kHelloHeaderValue);
54 headers.ReplaceOrAppendHeader(kStatusHeader, kHelloStatus); 54 headers.AppendValueOrAddHeader(kStatusHeader, kHelloStatus);
55 net::SpdyHeaderBlock trailers; 55 net::SpdyHeaderBlock trailers;
56 trailers.ReplaceOrAppendHeader(kHelloTrailerName, kHelloTrailerValue); 56 trailers.AppendValueOrAddHeader(kHelloTrailerName, kHelloTrailerValue);
57 net::QuicInMemoryCache::GetInstance()->AddResponse( 57 net::QuicInMemoryCache::GetInstance()->AddResponse(
58 kTestServerHost, kHelloPath, std::move(headers), kHelloBodyValue, 58 kTestServerHost, kHelloPath, std::move(headers), kHelloBodyValue,
59 std::move(trailers)); 59 std::move(trailers));
60 } 60 }
61 61
62 void StartQuicServerOnServerThread(const base::FilePath& test_files_root, 62 void StartQuicServerOnServerThread(const base::FilePath& test_files_root,
63 base::WaitableEvent* server_started_event) { 63 base::WaitableEvent* server_started_event) {
64 DCHECK(g_quic_server_thread->task_runner()->BelongsToCurrentThread()); 64 DCHECK(g_quic_server_thread->task_runner()->BelongsToCurrentThread());
65 DCHECK(!g_quic_server); 65 DCHECK(!g_quic_server);
66 66
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 bool StartQuicTestServer() { 101 bool StartQuicTestServer() {
102 DCHECK(!g_quic_server_thread); 102 DCHECK(!g_quic_server_thread);
103 g_quic_server_thread = new base::Thread("quic server thread"); 103 g_quic_server_thread = new base::Thread("quic server thread");
104 base::Thread::Options thread_options; 104 base::Thread::Options thread_options;
105 thread_options.message_loop_type = base::MessageLoop::TYPE_IO; 105 thread_options.message_loop_type = base::MessageLoop::TYPE_IO;
106 bool started = g_quic_server_thread->StartWithOptions(thread_options); 106 bool started = g_quic_server_thread->StartWithOptions(thread_options);
107 DCHECK(started); 107 DCHECK(started);
108 base::FilePath test_files_root; 108 base::FilePath test_files_root;
109 if (!PathService::Get(base::DIR_EXE, &test_files_root)) 109 if (!PathService::Get(base::DIR_EXE, &test_files_root))
110 return false; 110 return false;
111
112 base::WaitableEvent server_started_event( 111 base::WaitableEvent server_started_event(
113 base::WaitableEvent::ResetPolicy::MANUAL, 112 base::WaitableEvent::ResetPolicy::MANUAL,
114 base::WaitableEvent::InitialState::NOT_SIGNALED); 113 base::WaitableEvent::InitialState::NOT_SIGNALED);
115 g_quic_server_thread->task_runner()->PostTask( 114 g_quic_server_thread->task_runner()->PostTask(
116 FROM_HERE, base::Bind(&StartQuicServerOnServerThread, test_files_root, 115 FROM_HERE, base::Bind(&StartQuicServerOnServerThread,
116 test_files_root.Append("net/data/ssl/certificates"),
117 &server_started_event)); 117 &server_started_event));
118 server_started_event.Wait(); 118 server_started_event.Wait();
119 return true; 119 return true;
120 } 120 }
121 121
122 void ShutdownQuicTestServer() { 122 void ShutdownQuicTestServer() {
123 if (!g_quic_server_thread) 123 if (!g_quic_server_thread)
124 return; 124 return;
125 DCHECK(!g_quic_server_thread->task_runner()->BelongsToCurrentThread()); 125 DCHECK(!g_quic_server_thread->task_runner()->BelongsToCurrentThread());
126 base::WaitableEvent server_stopped_event( 126 base::WaitableEvent server_stopped_event(
127 base::WaitableEvent::ResetPolicy::MANUAL, 127 base::WaitableEvent::ResetPolicy::MANUAL,
128 base::WaitableEvent::InitialState::NOT_SIGNALED); 128 base::WaitableEvent::InitialState::NOT_SIGNALED);
129 g_quic_server_thread->task_runner()->PostTask( 129 g_quic_server_thread->task_runner()->PostTask(
130 FROM_HERE, base::Bind(&ShutdownOnServerThread, &server_stopped_event)); 130 FROM_HERE, base::Bind(&ShutdownOnServerThread, &server_stopped_event));
131 server_stopped_event.Wait(); 131 server_stopped_event.Wait();
132 delete g_quic_server_thread; 132 delete g_quic_server_thread;
133 g_quic_server_thread = nullptr; 133 g_quic_server_thread = nullptr;
134 } 134 }
135 135
136 } // namespace cronet 136 } // namespace cronet
OLDNEW
« no previous file with comments | « components/cronet/ios/test/cronet_http_test.mm ('k') | components/cronet/ios/test/test_server.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698