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

Side by Side Diff: net/quic/quic_framer_test.cc

Issue 125403006: Various QUIC cleanups to sync with internal code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix comments Created 6 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « net/quic/quic_framer.cc ('k') | net/quic/quic_protocol.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <algorithm> 5 #include <algorithm>
6 #include <map> 6 #include <map>
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 24 matching lines...) Expand all
35 namespace test { 35 namespace test {
36 36
37 const QuicPacketSequenceNumber kEpoch = GG_UINT64_C(1) << 48; 37 const QuicPacketSequenceNumber kEpoch = GG_UINT64_C(1) << 48;
38 const QuicPacketSequenceNumber kMask = kEpoch - 1; 38 const QuicPacketSequenceNumber kMask = kEpoch - 1;
39 39
40 // Index into the guid offset in the header. 40 // Index into the guid offset in the header.
41 const size_t kGuidOffset = kPublicFlagsSize; 41 const size_t kGuidOffset = kPublicFlagsSize;
42 // Index into the version string in the header. (if present). 42 // Index into the version string in the header. (if present).
43 const size_t kVersionOffset = kGuidOffset + PACKET_8BYTE_GUID; 43 const size_t kVersionOffset = kGuidOffset + PACKET_8BYTE_GUID;
44 44
45 // Size in bytes of the stream frame fields for an arbitrary StreamID and
46 // offset and the last frame in a packet.
47 size_t GetMinStreamFrameSize(QuicVersion version) {
48 return kQuicFrameTypeSize + kQuicMaxStreamIdSize + kQuicMaxStreamOffsetSize;
49 }
50
45 // Index into the sequence number offset in the header. 51 // Index into the sequence number offset in the header.
46 size_t GetSequenceNumberOffset(QuicGuidLength guid_length, 52 size_t GetSequenceNumberOffset(QuicGuidLength guid_length,
47 bool include_version) { 53 bool include_version) {
48 return kGuidOffset + guid_length + 54 return kGuidOffset + guid_length +
49 (include_version ? kQuicVersionSize : 0); 55 (include_version ? kQuicVersionSize : 0);
50 } 56 }
51 57
52 size_t GetSequenceNumberOffset(bool include_version) { 58 size_t GetSequenceNumberOffset(bool include_version) {
53 return GetSequenceNumberOffset(PACKET_8BYTE_GUID, include_version); 59 return GetSequenceNumberOffset(PACKET_8BYTE_GUID, include_version);
54 } 60 }
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 } 199 }
194 200
195 virtual ~TestQuicVisitor() { 201 virtual ~TestQuicVisitor() {
196 STLDeleteElements(&stream_frames_); 202 STLDeleteElements(&stream_frames_);
197 STLDeleteElements(&ack_frames_); 203 STLDeleteElements(&ack_frames_);
198 STLDeleteElements(&congestion_feedback_frames_); 204 STLDeleteElements(&congestion_feedback_frames_);
199 STLDeleteElements(&fec_data_); 205 STLDeleteElements(&fec_data_);
200 } 206 }
201 207
202 virtual void OnError(QuicFramer* f) OVERRIDE { 208 virtual void OnError(QuicFramer* f) OVERRIDE {
203 DLOG(INFO) << "QuicFramer Error: " << QuicUtils::ErrorToString(f->error()) 209 DVLOG(1) << "QuicFramer Error: " << QuicUtils::ErrorToString(f->error())
204 << " (" << f->error() << ")"; 210 << " (" << f->error() << ")";
205 error_count_++; 211 error_count_++;
206 } 212 }
207 213
208 virtual void OnPacket() OVERRIDE {} 214 virtual void OnPacket() OVERRIDE {}
209 215
210 virtual void OnPublicResetPacket( 216 virtual void OnPublicResetPacket(
211 const QuicPublicResetPacket& packet) OVERRIDE { 217 const QuicPublicResetPacket& packet) OVERRIDE {
212 public_reset_packet_.reset(new QuicPublicResetPacket(packet)); 218 public_reset_packet_.reset(new QuicPublicResetPacket(packet));
213 } 219 }
214 220
215 virtual void OnVersionNegotiationPacket( 221 virtual void OnVersionNegotiationPacket(
216 const QuicVersionNegotiationPacket& packet) OVERRIDE { 222 const QuicVersionNegotiationPacket& packet) OVERRIDE {
217 version_negotiation_packet_.reset(new QuicVersionNegotiationPacket(packet)); 223 version_negotiation_packet_.reset(new QuicVersionNegotiationPacket(packet));
218 } 224 }
219 225
220 virtual void OnRevivedPacket() OVERRIDE { 226 virtual void OnRevivedPacket() OVERRIDE {
221 revived_packets_++; 227 revived_packets_++;
222 } 228 }
223 229
224 virtual bool OnProtocolVersionMismatch(QuicVersion version) OVERRIDE { 230 virtual bool OnProtocolVersionMismatch(QuicVersion version) OVERRIDE {
225 DLOG(INFO) << "QuicFramer Version Mismatch, version: " << version; 231 DVLOG(1) << "QuicFramer Version Mismatch, version: " << version;
226 version_mismatch_++; 232 version_mismatch_++;
227 return true; 233 return true;
228 } 234 }
229 235
230 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE {
231 packet_count_++;
232 header_.reset(new QuicPacketHeader(header));
233 return accept_packet_;
234 }
235
236 virtual bool OnUnauthenticatedPublicHeader( 236 virtual bool OnUnauthenticatedPublicHeader(
237 const QuicPacketPublicHeader& header) OVERRIDE { 237 const QuicPacketPublicHeader& header) OVERRIDE {
238 public_header_.reset(new QuicPacketPublicHeader(header)); 238 public_header_.reset(new QuicPacketPublicHeader(header));
239 return accept_public_header_; 239 return accept_public_header_;
240 } 240 }
241 241
242 virtual bool OnUnauthenticatedHeader( 242 virtual bool OnUnauthenticatedHeader(
243 const QuicPacketHeader& header) OVERRIDE { 243 const QuicPacketHeader& header) OVERRIDE {
244 return true; 244 return true;
245 } 245 }
246 246
247 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE {
248 packet_count_++;
249 header_.reset(new QuicPacketHeader(header));
250 return accept_packet_;
251 }
252
247 virtual bool OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE { 253 virtual bool OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE {
248 frame_count_++; 254 frame_count_++;
249 stream_frames_.push_back(new QuicStreamFrame(frame)); 255 stream_frames_.push_back(new QuicStreamFrame(frame));
250 return true; 256 return true;
251 } 257 }
252 258
253 virtual void OnFecProtectedPayload(StringPiece payload) OVERRIDE { 259 virtual void OnFecProtectedPayload(StringPiece payload) OVERRIDE {
254 fec_protected_payload_ = payload.as_string(); 260 fec_protected_payload_ = payload.as_string();
255 } 261 }
256 262
(...skipping 2038 matching lines...) Expand 10 before | Expand all | Expand 10 after
2295 EXPECT_TRUE(visitor_.public_reset_packet_->public_header.reset_flag); 2301 EXPECT_TRUE(visitor_.public_reset_packet_->public_header.reset_flag);
2296 EXPECT_FALSE(visitor_.public_reset_packet_->public_header.version_flag); 2302 EXPECT_FALSE(visitor_.public_reset_packet_->public_header.version_flag);
2297 EXPECT_EQ(GG_UINT64_C(0xABCDEF0123456789), 2303 EXPECT_EQ(GG_UINT64_C(0xABCDEF0123456789),
2298 visitor_.public_reset_packet_->nonce_proof); 2304 visitor_.public_reset_packet_->nonce_proof);
2299 EXPECT_EQ(GG_UINT64_C(0x123456789ABC), 2305 EXPECT_EQ(GG_UINT64_C(0x123456789ABC),
2300 visitor_.public_reset_packet_->rejected_sequence_number); 2306 visitor_.public_reset_packet_->rejected_sequence_number);
2301 2307
2302 // Now test framing boundaries 2308 // Now test framing boundaries
2303 for (size_t i = 0; i < GetPublicResetPacketSize(); ++i) { 2309 for (size_t i = 0; i < GetPublicResetPacketSize(); ++i) {
2304 string expected_error; 2310 string expected_error;
2305 DLOG(INFO) << "iteration: " << i; 2311 DVLOG(1) << "iteration: " << i;
2306 if (i < kGuidOffset) { 2312 if (i < kGuidOffset) {
2307 expected_error = "Unable to read public flags."; 2313 expected_error = "Unable to read public flags.";
2308 CheckProcessingFails(packet, i, expected_error, 2314 CheckProcessingFails(packet, i, expected_error,
2309 QUIC_INVALID_PACKET_HEADER); 2315 QUIC_INVALID_PACKET_HEADER);
2310 } else if (i < kPublicResetPacketNonceProofOffset) { 2316 } else if (i < kPublicResetPacketNonceProofOffset) {
2311 expected_error = "Unable to read GUID."; 2317 expected_error = "Unable to read GUID.";
2312 CheckProcessingFails(packet, i, expected_error, 2318 CheckProcessingFails(packet, i, expected_error,
2313 QUIC_INVALID_PACKET_HEADER); 2319 QUIC_INVALID_PACKET_HEADER);
2314 } else if (i < kPublicResetPacketRejectedSequenceNumberOffset) { 2320 } else if (i < kPublicResetPacketRejectedSequenceNumberOffset) {
2315 expected_error = "Unable to read nonce proof."; 2321 expected_error = "Unable to read nonce proof.";
(...skipping 958 matching lines...) Expand 10 before | Expand all | Expand 10 after
3274 QuicPacket::NewDataPacket(AsChars(packet), arraysize(packet), false, 3280 QuicPacket::NewDataPacket(AsChars(packet), arraysize(packet), false,
3275 PACKET_8BYTE_GUID, kIncludeVersion, 3281 PACKET_8BYTE_GUID, kIncludeVersion,
3276 PACKET_6BYTE_SEQUENCE_NUMBER)); 3282 PACKET_6BYTE_SEQUENCE_NUMBER));
3277 scoped_ptr<QuicEncryptedPacket> encrypted( 3283 scoped_ptr<QuicEncryptedPacket> encrypted(
3278 framer_.EncryptPacket(ENCRYPTION_NONE, sequence_number, *raw)); 3284 framer_.EncryptPacket(ENCRYPTION_NONE, sequence_number, *raw));
3279 3285
3280 ASSERT_TRUE(encrypted.get() != NULL); 3286 ASSERT_TRUE(encrypted.get() != NULL);
3281 EXPECT_TRUE(CheckEncryption(sequence_number, raw.get())); 3287 EXPECT_TRUE(CheckEncryption(sequence_number, raw.get()));
3282 } 3288 }
3283 3289
3284 // TODO(rch) enable after landing the revised truncation CL. 3290 TEST_P(QuicFramerTest, Truncation) {
3285 TEST_P(QuicFramerTest, DISABLED_Truncation) {
3286 QuicPacketHeader header; 3291 QuicPacketHeader header;
3287 header.public_header.guid = GG_UINT64_C(0xFEDCBA9876543210); 3292 header.public_header.guid = GG_UINT64_C(0xFEDCBA9876543210);
3288 header.public_header.reset_flag = false; 3293 header.public_header.reset_flag = false;
3289 header.public_header.version_flag = false; 3294 header.public_header.version_flag = false;
3290 header.fec_flag = false; 3295 header.fec_flag = false;
3291 header.entropy_flag = false; 3296 header.entropy_flag = false;
3292 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC); 3297 header.packet_sequence_number = GG_UINT64_C(0x123456789ABC);
3293 header.fec_group = 0; 3298 header.fec_group = 0;
3294 3299
3295 QuicAckFrame ack_frame; 3300 QuicAckFrame ack_frame;
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
3507 EXPECT_CALL(visitor, OnAckFrame(_)).Times(0); 3512 EXPECT_CALL(visitor, OnAckFrame(_)).Times(0);
3508 EXPECT_CALL(visitor, OnPacketComplete()); 3513 EXPECT_CALL(visitor, OnPacketComplete());
3509 3514
3510 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false); 3515 QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false);
3511 EXPECT_TRUE(framer_.ProcessPacket(encrypted)); 3516 EXPECT_TRUE(framer_.ProcessPacket(encrypted));
3512 EXPECT_EQ(QUIC_NO_ERROR, framer_.error()); 3517 EXPECT_EQ(QUIC_NO_ERROR, framer_.error());
3513 } 3518 }
3514 3519
3515 } // namespace test 3520 } // namespace test
3516 } // namespace net 3521 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_framer.cc ('k') | net/quic/quic_protocol.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698