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 "net/test/spawned_test_server/local_test_server.h" | 5 #include "net/test/spawned_test_server/local_test_server.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 | 8 |
9 #include "base/base_paths.h" | 9 #include "base/base_paths.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 23 matching lines...) Expand all Loading... |
34 << size << " bytes"; | 34 << size << " bytes"; |
35 CHECK(WriteFile(handle, unblock_data.data(), size, &bytes_written, | 35 CHECK(WriteFile(handle, unblock_data.data(), size, &bytes_written, |
36 NULL)); | 36 NULL)); |
37 CHECK_EQ(size, bytes_written); | 37 CHECK_EQ(size, bytes_written); |
38 *unblocked = true; | 38 *unblocked = true; |
39 } | 39 } |
40 | 40 |
41 // Given a file handle, reads into |buffer| until |bytes_max| bytes | 41 // Given a file handle, reads into |buffer| until |bytes_max| bytes |
42 // has been read or an error has been encountered. Returns | 42 // has been read or an error has been encountered. Returns |
43 // true if the read was successful. | 43 // true if the read was successful. |
44 bool ReadData(HANDLE read_fd, HANDLE write_fd, | 44 bool ReadData(HANDLE read_fd, |
45 DWORD bytes_max, uint8* buffer) { | 45 HANDLE write_fd, |
| 46 DWORD bytes_max, |
| 47 uint8_t* buffer) { |
46 base::Thread thread("test_server_watcher"); | 48 base::Thread thread("test_server_watcher"); |
47 if (!thread.Start()) | 49 if (!thread.Start()) |
48 return false; | 50 return false; |
49 | 51 |
50 // Prepare a timeout in case the server fails to start. | 52 // Prepare a timeout in case the server fails to start. |
51 bool unblocked = false; | 53 bool unblocked = false; |
52 thread.message_loop()->PostDelayedTask( | 54 thread.message_loop()->PostDelayedTask( |
53 FROM_HERE, base::Bind(UnblockPipe, write_fd, bytes_max, &unblocked), | 55 FROM_HERE, base::Bind(UnblockPipe, write_fd, bytes_max, &unblocked), |
54 TestTimeouts::action_max_timeout()); | 56 TestTimeouts::action_max_timeout()); |
55 | 57 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 } | 133 } |
132 | 134 |
133 ::CloseHandle(child_write); | 135 ::CloseHandle(child_write); |
134 return true; | 136 return true; |
135 } | 137 } |
136 | 138 |
137 bool LocalTestServer::WaitToStart() { | 139 bool LocalTestServer::WaitToStart() { |
138 base::win::ScopedHandle read_fd(child_read_fd_.Take()); | 140 base::win::ScopedHandle read_fd(child_read_fd_.Take()); |
139 base::win::ScopedHandle write_fd(child_write_fd_.Take()); | 141 base::win::ScopedHandle write_fd(child_write_fd_.Take()); |
140 | 142 |
141 uint32 server_data_len = 0; | 143 uint32_t server_data_len = 0; |
142 if (!ReadData(read_fd.Get(), write_fd.Get(), sizeof(server_data_len), | 144 if (!ReadData(read_fd.Get(), write_fd.Get(), sizeof(server_data_len), |
143 reinterpret_cast<uint8*>(&server_data_len))) { | 145 reinterpret_cast<uint8_t*>(&server_data_len))) { |
144 LOG(ERROR) << "Could not read server_data_len"; | 146 LOG(ERROR) << "Could not read server_data_len"; |
145 return false; | 147 return false; |
146 } | 148 } |
147 std::string server_data(server_data_len, '\0'); | 149 std::string server_data(server_data_len, '\0'); |
148 if (!ReadData(read_fd.Get(), write_fd.Get(), server_data_len, | 150 if (!ReadData(read_fd.Get(), write_fd.Get(), server_data_len, |
149 reinterpret_cast<uint8*>(&server_data[0]))) { | 151 reinterpret_cast<uint8_t*>(&server_data[0]))) { |
150 LOG(ERROR) << "Could not read server_data (" << server_data_len | 152 LOG(ERROR) << "Could not read server_data (" << server_data_len |
151 << " bytes)"; | 153 << " bytes)"; |
152 return false; | 154 return false; |
153 } | 155 } |
154 | 156 |
155 if (!ParseServerData(server_data)) { | 157 if (!ParseServerData(server_data)) { |
156 LOG(ERROR) << "Could not parse server_data: " << server_data; | 158 LOG(ERROR) << "Could not parse server_data: " << server_data; |
157 return false; | 159 return false; |
158 } | 160 } |
159 | 161 |
160 return true; | 162 return true; |
161 } | 163 } |
162 | 164 |
163 } // namespace net | 165 } // namespace net |
164 | 166 |
OLD | NEW |