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

Side by Side Diff: net/quic/test_tools/quic_test_packet_maker.cc

Issue 1540463003: Change the interface of GetAlternativeServicesFor, always return the best Alt-Svc entry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update testcases Created 4 years, 12 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/quic/test_tools/quic_test_packet_maker.h" 5 #include "net/quic/test_tools/quic_test_packet_maker.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "net/quic/quic_framer.h" 9 #include "net/quic/quic_framer.h"
10 #include "net/quic/quic_http_utils.h" 10 #include "net/quic/quic_http_utils.h"
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 close.error_code = QUIC_CRYPTO_VERSION_NOT_SUPPORTED; 167 close.error_code = QUIC_CRYPTO_VERSION_NOT_SUPPORTED;
168 close.error_details = "Time to panic!"; 168 close.error_details = "Time to panic!";
169 return scoped_ptr<QuicEncryptedPacket>(MakePacket(header, QuicFrame(&close))); 169 return scoped_ptr<QuicEncryptedPacket>(MakePacket(header, QuicFrame(&close)));
170 } 170 }
171 171
172 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckPacket( 172 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckPacket(
173 QuicPacketNumber packet_number, 173 QuicPacketNumber packet_number,
174 QuicPacketNumber largest_received, 174 QuicPacketNumber largest_received,
175 QuicPacketNumber least_unacked, 175 QuicPacketNumber least_unacked,
176 bool send_feedback) { 176 bool send_feedback) {
177 return MakeAckPacket(packet_number, largest_received, least_unacked,
178 least_unacked, send_feedback);
179 }
180
181 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckPacket(
182 QuicPacketNumber packet_number,
183 QuicPacketNumber largest_received,
184 QuicPacketNumber ack_least_unacked,
185 QuicPacketNumber stop_least_unacked,
186 bool send_feedback) {
177 QuicPacketHeader header; 187 QuicPacketHeader header;
178 header.public_header.connection_id = connection_id_; 188 header.public_header.connection_id = connection_id_;
179 header.public_header.reset_flag = false; 189 header.public_header.reset_flag = false;
180 header.public_header.version_flag = false; 190 header.public_header.version_flag = false;
181 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; 191 header.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER;
182 header.packet_number = packet_number; 192 header.packet_number = packet_number;
183 header.entropy_flag = false; 193 header.entropy_flag = false;
184 header.fec_flag = false; 194 header.fec_flag = false;
185 header.fec_group = 0; 195 header.fec_group = 0;
186 196
187 QuicAckFrame ack(MakeAckFrame(largest_received)); 197 QuicAckFrame ack(MakeAckFrame(largest_received));
188 ack.delta_time_largest_observed = QuicTime::Delta::Zero(); 198 ack.delta_time_largest_observed = QuicTime::Delta::Zero();
189 for (QuicPacketNumber i = least_unacked; i <= largest_received; ++i) { 199 for (QuicPacketNumber i = ack_least_unacked; i <= largest_received; ++i) {
190 ack.received_packet_times.push_back(make_pair(i, clock_->Now())); 200 ack.received_packet_times.push_back(make_pair(i, clock_->Now()));
191 } 201 }
192 202
193 QuicFramer framer(SupportedVersions(version_), clock_->Now(), 203 QuicFramer framer(SupportedVersions(version_), clock_->Now(),
194 Perspective::IS_CLIENT); 204 Perspective::IS_CLIENT);
195 QuicFrames frames; 205 QuicFrames frames;
196 frames.push_back(QuicFrame(&ack)); 206 frames.push_back(QuicFrame(&ack));
197 207
198 QuicStopWaitingFrame stop_waiting; 208 QuicStopWaitingFrame stop_waiting;
199 stop_waiting.least_unacked = least_unacked; 209 stop_waiting.least_unacked = stop_least_unacked;
200 frames.push_back(QuicFrame(&stop_waiting)); 210 frames.push_back(QuicFrame(&stop_waiting));
201 211
202 scoped_ptr<QuicPacket> packet( 212 scoped_ptr<QuicPacket> packet(
203 BuildUnsizedDataPacket(&framer, header, frames)); 213 BuildUnsizedDataPacket(&framer, header, frames));
204 char buffer[kMaxPacketSize]; 214 char buffer[kMaxPacketSize];
205 size_t encrypted_size = framer.EncryptPayload( 215 size_t encrypted_size = framer.EncryptPayload(
206 ENCRYPTION_NONE, header.packet_number, *packet, buffer, kMaxPacketSize); 216 ENCRYPTION_NONE, header.packet_number, *packet, buffer, kMaxPacketSize);
207 EXPECT_NE(0u, encrypted_size); 217 EXPECT_NE(0u, encrypted_size);
208 QuicEncryptedPacket encrypted(buffer, encrypted_size, false); 218 QuicEncryptedPacket encrypted(buffer, encrypted_size, false);
209 return scoped_ptr<QuicEncryptedPacket>(encrypted.Clone()); 219 return scoped_ptr<QuicEncryptedPacket>(encrypted.Clone());
(...skipping 13 matching lines...) Expand all
223 } 233 }
224 234
225 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRequestHeadersPacket( 235 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRequestHeadersPacket(
226 QuicPacketNumber packet_number, 236 QuicPacketNumber packet_number,
227 QuicStreamId stream_id, 237 QuicStreamId stream_id,
228 bool should_include_version, 238 bool should_include_version,
229 bool fin, 239 bool fin,
230 SpdyPriority priority, 240 SpdyPriority priority,
231 const SpdyHeaderBlock& headers, 241 const SpdyHeaderBlock& headers,
232 size_t* spdy_headers_frame_length) { 242 size_t* spdy_headers_frame_length) {
243 return MakeRequestHeadersPacket(packet_number, stream_id,
244 should_include_version, fin, priority,
245 headers, spdy_headers_frame_length, 0);
246 }
247
248 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRequestHeadersPacket(
249 QuicPacketNumber packet_number,
250 QuicStreamId stream_id,
251 bool should_include_version,
252 bool fin,
253 SpdyPriority priority,
254 const SpdyHeaderBlock& headers,
255 size_t* spdy_headers_frame_length,
256 QuicStreamOffset offset) {
233 InitializeHeader(packet_number, should_include_version); 257 InitializeHeader(packet_number, should_include_version);
234 scoped_ptr<SpdySerializedFrame> spdy_frame; 258 scoped_ptr<SpdySerializedFrame> spdy_frame;
235 if (spdy_request_framer_.protocol_version() == SPDY3) { 259 if (spdy_request_framer_.protocol_version() == SPDY3) {
236 SpdySynStreamIR syn_stream(stream_id); 260 SpdySynStreamIR syn_stream(stream_id);
237 syn_stream.set_header_block(headers); 261 syn_stream.set_header_block(headers);
238 syn_stream.set_fin(fin); 262 syn_stream.set_fin(fin);
239 syn_stream.set_priority(priority); 263 syn_stream.set_priority(priority);
240 spdy_frame.reset(spdy_request_framer_.SerializeSynStream(syn_stream)); 264 spdy_frame.reset(spdy_request_framer_.SerializeSynStream(syn_stream));
241 } else { 265 } else {
242 SpdyHeadersIR headers_frame(stream_id); 266 SpdyHeadersIR headers_frame(stream_id);
243 headers_frame.set_header_block(headers); 267 headers_frame.set_header_block(headers);
244 headers_frame.set_fin(fin); 268 headers_frame.set_fin(fin);
245 headers_frame.set_priority(priority); 269 headers_frame.set_priority(priority);
246 headers_frame.set_has_priority(true); 270 headers_frame.set_has_priority(true);
247 spdy_frame.reset(spdy_request_framer_.SerializeFrame(headers_frame)); 271 spdy_frame.reset(spdy_request_framer_.SerializeFrame(headers_frame));
248 } 272 }
249 if (spdy_headers_frame_length) { 273 if (spdy_headers_frame_length) {
250 *spdy_headers_frame_length = spdy_frame->size(); 274 *spdy_headers_frame_length = spdy_frame->size();
251 } 275 }
252 QuicStreamFrame frame( 276 QuicStreamFrame frame(
253 kHeadersStreamId, false, 0, 277 kHeadersStreamId, false, offset,
254 base::StringPiece(spdy_frame->data(), spdy_frame->size())); 278 base::StringPiece(spdy_frame->data(), spdy_frame->size()));
279
255 return MakePacket(header_, QuicFrame(&frame)); 280 return MakePacket(header_, QuicFrame(&frame));
256 } 281 }
257 282
258 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRequestHeadersPacket( 283 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRequestHeadersPacket(
259 QuicPacketNumber packet_number, 284 QuicPacketNumber packet_number,
260 QuicStreamId stream_id, 285 QuicStreamId stream_id,
261 bool should_include_version, 286 bool should_include_version,
262 bool fin, 287 bool fin,
263 SpdyPriority priority, 288 SpdyPriority priority,
264 const SpdyHeaderBlock& headers) { 289 const SpdyHeaderBlock& headers,
290 QuicStreamOffset offset) {
265 return MakeRequestHeadersPacket(packet_number, stream_id, 291 return MakeRequestHeadersPacket(packet_number, stream_id,
266 should_include_version, fin, priority, 292 should_include_version, fin, priority,
267 headers, nullptr); 293 headers, nullptr, offset);
268 } 294 }
269 295
270 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeResponseHeadersPacket( 296 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeResponseHeadersPacket(
271 QuicPacketNumber packet_number, 297 QuicPacketNumber packet_number,
272 QuicStreamId stream_id, 298 QuicStreamId stream_id,
273 bool should_include_version, 299 bool should_include_version,
274 bool fin, 300 bool fin,
275 const SpdyHeaderBlock& headers, 301 const SpdyHeaderBlock& headers,
276 size_t* spdy_headers_frame_length) { 302 size_t* spdy_headers_frame_length,
303 QuicStreamOffset offset) {
277 InitializeHeader(packet_number, should_include_version); 304 InitializeHeader(packet_number, should_include_version);
278 scoped_ptr<SpdySerializedFrame> spdy_frame; 305 scoped_ptr<SpdySerializedFrame> spdy_frame;
279 if (spdy_request_framer_.protocol_version() == SPDY3) { 306 if (spdy_response_framer_.protocol_version() == SPDY3) {
280 SpdySynReplyIR syn_reply(stream_id); 307 SpdySynReplyIR syn_reply(stream_id);
281 syn_reply.set_header_block(headers); 308 syn_reply.set_header_block(headers);
282 syn_reply.set_fin(fin); 309 syn_reply.set_fin(fin);
283 spdy_frame.reset(spdy_response_framer_.SerializeSynReply(syn_reply)); 310 spdy_frame.reset(spdy_response_framer_.SerializeSynReply(syn_reply));
284 } else { 311 } else {
285 SpdyHeadersIR headers_frame(stream_id); 312 SpdyHeadersIR headers_frame(stream_id);
286 headers_frame.set_header_block(headers); 313 headers_frame.set_header_block(headers);
287 headers_frame.set_fin(fin); 314 headers_frame.set_fin(fin);
288 spdy_frame.reset(spdy_request_framer_.SerializeFrame(headers_frame)); 315 spdy_frame.reset(spdy_response_framer_.SerializeFrame(headers_frame));
289 } 316 }
290 if (spdy_headers_frame_length) { 317 if (spdy_headers_frame_length) {
291 *spdy_headers_frame_length = spdy_frame->size(); 318 *spdy_headers_frame_length = spdy_frame->size();
292 } 319 }
293 QuicStreamFrame frame( 320 QuicStreamFrame frame(
294 kHeadersStreamId, false, 0, 321 kHeadersStreamId, false, offset,
295 base::StringPiece(spdy_frame->data(), spdy_frame->size())); 322 base::StringPiece(spdy_frame->data(), spdy_frame->size()));
296 return MakePacket(header_, QuicFrame(&frame)); 323 return MakePacket(header_, QuicFrame(&frame));
297 } 324 }
298 325
299 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeResponseHeadersPacket( 326 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeResponseHeadersPacket(
300 QuicPacketNumber packet_number, 327 QuicPacketNumber packet_number,
301 QuicStreamId stream_id, 328 QuicStreamId stream_id,
302 bool should_include_version, 329 bool should_include_version,
303 bool fin, 330 bool fin,
304 const SpdyHeaderBlock& headers) { 331 const SpdyHeaderBlock& headers,
305 return MakeResponseHeadersPacket( 332 size_t* spdy_headers_frame_length) {
306 packet_number, stream_id, should_include_version, fin, headers, nullptr); 333 return MakeResponseHeadersPacket(packet_number, stream_id,
334 should_include_version, fin, headers,
335 spdy_headers_frame_length, 0);
336 }
337
338 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeResponseHeadersPacket(
339 QuicPacketNumber packet_number,
340 QuicStreamId stream_id,
341 bool should_include_version,
342 bool fin,
343 const SpdyHeaderBlock& headers,
344 QuicStreamOffset offset) {
345 return MakeResponseHeadersPacket(packet_number, stream_id,
346 should_include_version, fin, headers,
347 nullptr, offset);
307 } 348 }
308 349
309 SpdyHeaderBlock QuicTestPacketMaker::GetRequestHeaders( 350 SpdyHeaderBlock QuicTestPacketMaker::GetRequestHeaders(
310 const std::string& method, 351 const std::string& method,
311 const std::string& scheme, 352 const std::string& scheme,
312 const std::string& path) { 353 const std::string& path) {
313 SpdyHeaderBlock headers; 354 SpdyHeaderBlock headers;
314 headers[":method"] = method; 355 headers[":method"] = method;
315 headers[":authority"] = host_; 356 headers[":authority"] = host_;
316 headers[":scheme"] = scheme; 357 headers[":scheme"] = scheme;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 header_.public_header.version_flag = should_include_version; 391 header_.public_header.version_flag = should_include_version;
351 header_.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; 392 header_.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER;
352 header_.packet_number = packet_number; 393 header_.packet_number = packet_number;
353 header_.fec_group = 0; 394 header_.fec_group = 0;
354 header_.entropy_flag = false; 395 header_.entropy_flag = false;
355 header_.fec_flag = false; 396 header_.fec_flag = false;
356 } 397 }
357 398
358 } // namespace test 399 } // namespace test
359 } // namespace net 400 } // namespace net
OLDNEW
« net/quic/test_tools/quic_test_packet_maker.h ('K') | « net/quic/test_tools/quic_test_packet_maker.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698