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

Side by Side Diff: net/spdy/spdy_framer_test.cc

Issue 1535363003: Switch to standard integer types in net/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: stddef Created 5 years 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
« no previous file with comments | « net/spdy/spdy_framer.cc ('k') | net/spdy/spdy_header_block.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 "net/spdy/spdy_framer.h" 5 #include "net/spdy/spdy_framer.h"
6 6
7 #include <stdlib.h> 7 #include <stdlib.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
11 #include <limits> 11 #include <limits>
12 #include <memory> 12 #include <memory>
13 #include <string> 13 #include <string>
14 #include <vector> 14 #include <vector>
15 15
16 #include "base/compiler_specific.h" 16 #include "base/compiler_specific.h"
17 #include "base/macros.h"
17 #include "base/memory/scoped_ptr.h" 18 #include "base/memory/scoped_ptr.h"
18 #include "net/spdy/hpack/hpack_constants.h" 19 #include "net/spdy/hpack/hpack_constants.h"
19 #include "net/spdy/mock_spdy_framer_visitor.h" 20 #include "net/spdy/mock_spdy_framer_visitor.h"
20 #include "net/spdy/spdy_frame_builder.h" 21 #include "net/spdy/spdy_frame_builder.h"
21 #include "net/spdy/spdy_frame_reader.h" 22 #include "net/spdy/spdy_frame_reader.h"
22 #include "net/spdy/spdy_protocol.h" 23 #include "net/spdy/spdy_protocol.h"
23 #include "net/spdy/spdy_test_utils.h" 24 #include "net/spdy/spdy_test_utils.h"
24 #include "testing/gmock/include/gmock/gmock.h" 25 #include "testing/gmock/include/gmock/gmock.h"
25 #include "testing/platform_test.h" 26 #include "testing/platform_test.h"
26 27
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 scoped_ptr<SpdyFrame> frame(framer.SerializeHeaders(headers)); 153 scoped_ptr<SpdyFrame> frame(framer.SerializeHeaders(headers));
153 ResetBuffer(); 154 ResetBuffer();
154 memcpy(buffer_.get(), frame->data(), framer.GetHeadersMinimumSize()); 155 memcpy(buffer_.get(), frame->data(), framer.GetHeadersMinimumSize());
155 size_ += framer.GetSynStreamMinimumSize(); 156 size_ += framer.GetSynStreamMinimumSize();
156 } 157 }
157 158
158 void OnRstStream(SpdyStreamId stream_id, 159 void OnRstStream(SpdyStreamId stream_id,
159 SpdyRstStreamStatus status) override { 160 SpdyRstStreamStatus status) override {
160 LOG(FATAL); 161 LOG(FATAL);
161 } 162 }
162 void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override { 163 void OnSetting(SpdySettingsIds id, uint8_t flags, uint32_t value) override {
163 LOG(FATAL); 164 LOG(FATAL);
164 } 165 }
165 void OnPing(SpdyPingId unique_id, bool is_ack) override { LOG(FATAL); } 166 void OnPing(SpdyPingId unique_id, bool is_ack) override { LOG(FATAL); }
166 void OnSettingsEnd() override { LOG(FATAL); } 167 void OnSettingsEnd() override { LOG(FATAL); }
167 void OnGoAway(SpdyStreamId last_accepted_stream_id, 168 void OnGoAway(SpdyStreamId last_accepted_stream_id,
168 SpdyGoAwayStatus status) override { 169 SpdyGoAwayStatus status) override {
169 LOG(FATAL); 170 LOG(FATAL);
170 } 171 }
171 172
172 void OnHeaders(SpdyStreamId stream_id, 173 void OnHeaders(SpdyStreamId stream_id,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 memcpy(buffer_.get(), frame->data(), framer.GetPushPromiseMinimumSize()); 207 memcpy(buffer_.get(), frame->data(), framer.GetPushPromiseMinimumSize());
207 size_ += framer.GetPushPromiseMinimumSize(); 208 size_ += framer.GetPushPromiseMinimumSize();
208 } 209 }
209 210
210 void OnContinuation(SpdyStreamId stream_id, bool end) override { 211 void OnContinuation(SpdyStreamId stream_id, bool end) override {
211 LOG(FATAL); 212 LOG(FATAL);
212 } 213 }
213 214
214 void OnPriority(SpdyStreamId stream_id, 215 void OnPriority(SpdyStreamId stream_id,
215 SpdyStreamId parent_stream_id, 216 SpdyStreamId parent_stream_id,
216 uint8 weight, 217 uint8_t weight,
217 bool exclusive) override { 218 bool exclusive) override {
218 // Do nothing. 219 // Do nothing.
219 } 220 }
220 221
221 bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override { 222 bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override {
222 LOG(FATAL); 223 LOG(FATAL);
223 return false; 224 return false;
224 } 225 }
225 226
226 char* ReleaseBuffer() { 227 char* ReleaseBuffer() {
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 ++fin_frame_count_; 397 ++fin_frame_count_;
397 } 398 }
398 399
399 bool OnRstStreamFrameData(const char* rst_stream_data, size_t len) override { 400 bool OnRstStreamFrameData(const char* rst_stream_data, size_t len) override {
400 if ((rst_stream_data != NULL) && (len > 0)) { 401 if ((rst_stream_data != NULL) && (len > 0)) {
401 fin_opaque_data_ += string(rst_stream_data, len); 402 fin_opaque_data_ += string(rst_stream_data, len);
402 } 403 }
403 return true; 404 return true;
404 } 405 }
405 406
406 void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override { 407 void OnSetting(SpdySettingsIds id, uint8_t flags, uint32_t value) override {
407 ++setting_count_; 408 ++setting_count_;
408 } 409 }
409 410
410 void OnSettingsAck() override { 411 void OnSettingsAck() override {
411 DCHECK_LT(SPDY3, framer_.protocol_version()); 412 DCHECK_LT(SPDY3, framer_.protocol_version());
412 ++settings_ack_received_; 413 ++settings_ack_received_;
413 } 414 }
414 415
415 void OnSettingsEnd() override { 416 void OnSettingsEnd() override {
416 if (framer_.protocol_version() <= SPDY3) { return; } 417 if (framer_.protocol_version() <= SPDY3) { return; }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 } 470 }
470 for (const SpdyAltSvcWireFormat::AlternativeService& altsvc : 471 for (const SpdyAltSvcWireFormat::AlternativeService& altsvc :
471 altsvc_vector) { 472 altsvc_vector) {
472 test_altsvc_ir_.add_altsvc(altsvc); 473 test_altsvc_ir_.add_altsvc(altsvc);
473 } 474 }
474 ++altsvc_count_; 475 ++altsvc_count_;
475 } 476 }
476 477
477 void OnPriority(SpdyStreamId stream_id, 478 void OnPriority(SpdyStreamId stream_id,
478 SpdyStreamId parent_stream_id, 479 SpdyStreamId parent_stream_id,
479 uint8 weight, 480 uint8_t weight,
480 bool exclusive) override { 481 bool exclusive) override {
481 ++priority_count_; 482 ++priority_count_;
482 } 483 }
483 484
484 bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override { 485 bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override {
485 DLOG(INFO) << "Unknown frame type " << frame_type; 486 DLOG(INFO) << "Unknown frame type " << frame_type;
486 return on_unknown_frame_result_; 487 return on_unknown_frame_result_;
487 } 488 }
488 489
489 void OnSendCompressedFrame(SpdyStreamId stream_id, 490 void OnSendCompressedFrame(SpdyStreamId stream_id,
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 StringPiece GetSerializedHeaders(const SpdyFrame* frame, 616 StringPiece GetSerializedHeaders(const SpdyFrame* frame,
616 const SpdyFramer& framer) { 617 const SpdyFramer& framer) {
617 SpdyFrameReader reader(frame->data(), frame->size()); 618 SpdyFrameReader reader(frame->data(), frame->size());
618 if (framer.protocol_version() > SPDY3) { 619 if (framer.protocol_version() > SPDY3) {
619 reader.Seek(3); // Seek past the frame length. 620 reader.Seek(3); // Seek past the frame length.
620 } else { 621 } else {
621 reader.Seek(2); // Seek past the frame length. 622 reader.Seek(2); // Seek past the frame length.
622 } 623 }
623 SpdyFrameType frame_type; 624 SpdyFrameType frame_type;
624 if (framer.protocol_version() > SPDY3) { 625 if (framer.protocol_version() > SPDY3) {
625 uint8 serialized_type; 626 uint8_t serialized_type;
626 reader.ReadUInt8(&serialized_type); 627 reader.ReadUInt8(&serialized_type);
627 frame_type = SpdyConstants::ParseFrameType(framer.protocol_version(), 628 frame_type = SpdyConstants::ParseFrameType(framer.protocol_version(),
628 serialized_type); 629 serialized_type);
629 DCHECK_EQ(HEADERS, frame_type); 630 DCHECK_EQ(HEADERS, frame_type);
630 uint8 flags; 631 uint8_t flags;
631 reader.ReadUInt8(&flags); 632 reader.ReadUInt8(&flags);
632 if (flags & HEADERS_FLAG_PRIORITY) { 633 if (flags & HEADERS_FLAG_PRIORITY) {
633 frame_type = SYN_STREAM; 634 frame_type = SYN_STREAM;
634 } 635 }
635 } else { 636 } else {
636 uint16 serialized_type; 637 uint16_t serialized_type;
637 reader.ReadUInt16(&serialized_type); 638 reader.ReadUInt16(&serialized_type);
638 frame_type = SpdyConstants::ParseFrameType(framer.protocol_version(), 639 frame_type = SpdyConstants::ParseFrameType(framer.protocol_version(),
639 serialized_type); 640 serialized_type);
640 DCHECK(frame_type == HEADERS || 641 DCHECK(frame_type == HEADERS ||
641 frame_type == SYN_STREAM) << frame_type; 642 frame_type == SYN_STREAM) << frame_type;
642 } 643 }
643 644
644 if (frame_type == SYN_STREAM) { 645 if (frame_type == SYN_STREAM) {
645 return StringPiece(frame->data() + framer.GetSynStreamMinimumSize(), 646 return StringPiece(frame->data() + framer.GetSynStreamMinimumSize(),
646 frame->size() - framer.GetSynStreamMinimumSize()); 647 frame->size() - framer.GetSynStreamMinimumSize());
(...skipping 1886 matching lines...) Expand 10 before | Expand all | Expand 10 after
2533 0x01, 0x00, 0x00, 0x07, 2534 0x01, 0x00, 0x00, 0x07,
2534 0x0a, 0x0b, 0x0c, 0x0d, 2535 0x0a, 0x0b, 0x0c, 0x0d,
2535 }; 2536 };
2536 const unsigned char kH2FrameData[] = { 2537 const unsigned char kH2FrameData[] = {
2537 0x00, 0x00, 0x06, 0x04, 2538 0x00, 0x00, 0x06, 0x04,
2538 0x00, 0x00, 0x00, 0x00, 2539 0x00, 0x00, 0x00, 0x00,
2539 0x00, 0x00, 0x04, 0x0a, 2540 0x00, 0x00, 0x04, 0x0a,
2540 0x0b, 0x0c, 0x0d, 2541 0x0b, 0x0c, 0x0d,
2541 }; 2542 };
2542 2543
2543 uint32 kValue = 0x0a0b0c0d; 2544 uint32_t kValue = 0x0a0b0c0d;
2544 SpdySettingsIR settings_ir; 2545 SpdySettingsIR settings_ir;
2545 2546
2546 SpdySettingsFlags kFlags = static_cast<SpdySettingsFlags>(0x01); 2547 SpdySettingsFlags kFlags = static_cast<SpdySettingsFlags>(0x01);
2547 SpdySettingsIds kId = SETTINGS_INITIAL_WINDOW_SIZE; 2548 SpdySettingsIds kId = SETTINGS_INITIAL_WINDOW_SIZE;
2548 settings_ir.AddSetting(kId, 2549 settings_ir.AddSetting(kId,
2549 kFlags & SETTINGS_FLAG_PLEASE_PERSIST, 2550 kFlags & SETTINGS_FLAG_PLEASE_PERSIST,
2550 kFlags & SETTINGS_FLAG_PERSISTED, 2551 kFlags & SETTINGS_FLAG_PERSISTED,
2551 kValue); 2552 kValue);
2552 2553
2553 scoped_ptr<SpdyFrame> frame(framer.SerializeSettings(settings_ir)); 2554 scoped_ptr<SpdyFrame> frame(framer.SerializeSettings(settings_ir));
(...skipping 2336 matching lines...) Expand 10 before | Expand all | Expand 10 after
4890 EXPECT_EQ(SpdyFramer::SPDY_INVALID_DATA_FRAME_FLAGS, framer.error_code()) 4891 EXPECT_EQ(SpdyFramer::SPDY_INVALID_DATA_FRAME_FLAGS, framer.error_code())
4891 << SpdyFramer::ErrorCodeToString(framer.error_code()); 4892 << SpdyFramer::ErrorCodeToString(framer.error_code());
4892 } 4893 }
4893 } 4894 }
4894 4895
4895 TEST_P(SpdyFramerTest, DataFrameFlagsV2V3) { 4896 TEST_P(SpdyFramerTest, DataFrameFlagsV2V3) {
4896 if (spdy_version_ > SPDY3) { 4897 if (spdy_version_ > SPDY3) {
4897 return; 4898 return;
4898 } 4899 }
4899 4900
4900 uint8 flags = 0; 4901 uint8_t flags = 0;
4901 do { 4902 do {
4902 SCOPED_TRACE(testing::Message() << "Flags " << flags); 4903 SCOPED_TRACE(testing::Message() << "Flags " << flags);
4903 4904
4904 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 4905 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
4905 SpdyFramer framer(spdy_version_); 4906 SpdyFramer framer(spdy_version_);
4906 framer.set_visitor(&visitor); 4907 framer.set_visitor(&visitor);
4907 4908
4908 SpdyDataIR data_ir(1, "hello"); 4909 SpdyDataIR data_ir(1, "hello");
4909 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir)); 4910 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir));
4910 SetFrameFlags(frame.get(), flags, spdy_version_); 4911 SetFrameFlags(frame.get(), flags, spdy_version_);
(...skipping 20 matching lines...) Expand all
4931 << SpdyFramer::ErrorCodeToString(framer.error_code()); 4932 << SpdyFramer::ErrorCodeToString(framer.error_code());
4932 } 4933 }
4933 } while (++flags != 0); 4934 } while (++flags != 0);
4934 } 4935 }
4935 4936
4936 TEST_P(SpdyFramerTest, DataFrameFlagsV4) { 4937 TEST_P(SpdyFramerTest, DataFrameFlagsV4) {
4937 if (spdy_version_ <= SPDY3) { 4938 if (spdy_version_ <= SPDY3) {
4938 return; 4939 return;
4939 } 4940 }
4940 4941
4941 uint8 valid_data_flags = DATA_FLAG_FIN | DATA_FLAG_END_SEGMENT | 4942 uint8_t valid_data_flags =
4942 DATA_FLAG_PADDED; 4943 DATA_FLAG_FIN | DATA_FLAG_END_SEGMENT | DATA_FLAG_PADDED;
4943 4944
4944 uint8 flags = 0; 4945 uint8_t flags = 0;
4945 do { 4946 do {
4946 SCOPED_TRACE(testing::Message() << "Flags " << flags); 4947 SCOPED_TRACE(testing::Message() << "Flags " << flags);
4947 4948
4948 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 4949 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
4949 SpdyFramer framer(spdy_version_); 4950 SpdyFramer framer(spdy_version_);
4950 framer.set_visitor(&visitor); 4951 framer.set_visitor(&visitor);
4951 4952
4952 SpdyDataIR data_ir(1, "hello"); 4953 SpdyDataIR data_ir(1, "hello");
4953 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir)); 4954 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir));
4954 SetFrameFlags(frame.get(), flags, spdy_version_); 4955 SetFrameFlags(frame.get(), flags, spdy_version_);
(...skipping 26 matching lines...) Expand all
4981 << SpdyFramer::ErrorCodeToString(framer.error_code()); 4982 << SpdyFramer::ErrorCodeToString(framer.error_code());
4982 } 4983 }
4983 } while (++flags != 0); 4984 } while (++flags != 0);
4984 } 4985 }
4985 4986
4986 TEST_P(SpdyFramerTest, SynStreamFrameFlags) { 4987 TEST_P(SpdyFramerTest, SynStreamFrameFlags) {
4987 if (!IsSpdy2() && !IsSpdy3()) { 4988 if (!IsSpdy2() && !IsSpdy3()) {
4988 // SYN_STREAM not supported in SPDY>3 4989 // SYN_STREAM not supported in SPDY>3
4989 return; 4990 return;
4990 } 4991 }
4991 uint8 flags = 0; 4992 uint8_t flags = 0;
4992 do { 4993 do {
4993 SCOPED_TRACE(testing::Message() << "Flags " << flags); 4994 SCOPED_TRACE(testing::Message() << "Flags " << flags);
4994 4995
4995 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 4996 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
4996 testing::StrictMock<test::MockDebugVisitor> debug_visitor; 4997 testing::StrictMock<test::MockDebugVisitor> debug_visitor;
4997 SpdyFramer framer(spdy_version_); 4998 SpdyFramer framer(spdy_version_);
4998 framer.set_visitor(&visitor); 4999 framer.set_visitor(&visitor);
4999 framer.set_debug_visitor(&debug_visitor); 5000 framer.set_debug_visitor(&debug_visitor);
5000 5001
5001 EXPECT_CALL(debug_visitor, OnSendCompressedFrame(8, SYN_STREAM, _, _)); 5002 EXPECT_CALL(debug_visitor, OnSendCompressedFrame(8, SYN_STREAM, _, _));
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
5035 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5036 << SpdyFramer::ErrorCodeToString(framer.error_code());
5036 } 5037 }
5037 } while (++flags != 0); 5038 } while (++flags != 0);
5038 } 5039 }
5039 5040
5040 TEST_P(SpdyFramerTest, SynReplyFrameFlags) { 5041 TEST_P(SpdyFramerTest, SynReplyFrameFlags) {
5041 if (!IsSpdy2() && !IsSpdy3()) { 5042 if (!IsSpdy2() && !IsSpdy3()) {
5042 // SYN_REPLY not supported in SPDY>3 5043 // SYN_REPLY not supported in SPDY>3
5043 return; 5044 return;
5044 } 5045 }
5045 uint8 flags = 0; 5046 uint8_t flags = 0;
5046 do { 5047 do {
5047 SCOPED_TRACE(testing::Message() << "Flags " << flags); 5048 SCOPED_TRACE(testing::Message() << "Flags " << flags);
5048 5049
5049 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 5050 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
5050 SpdyFramer framer(spdy_version_); 5051 SpdyFramer framer(spdy_version_);
5051 framer.set_visitor(&visitor); 5052 framer.set_visitor(&visitor);
5052 5053
5053 SpdySynReplyIR syn_reply(37); 5054 SpdySynReplyIR syn_reply(37);
5054 syn_reply.SetHeader("foo", "bar"); 5055 syn_reply.SetHeader("foo", "bar");
5055 scoped_ptr<SpdyFrame> frame(framer.SerializeSynReply(syn_reply)); 5056 scoped_ptr<SpdyFrame> frame(framer.SerializeSynReply(syn_reply));
(...skipping 18 matching lines...) Expand all
5074 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5075 << SpdyFramer::ErrorCodeToString(framer.error_code());
5075 } else { 5076 } else {
5076 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state()); 5077 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state());
5077 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code()) 5078 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code())
5078 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5079 << SpdyFramer::ErrorCodeToString(framer.error_code());
5079 } 5080 }
5080 } while (++flags != 0); 5081 } while (++flags != 0);
5081 } 5082 }
5082 5083
5083 TEST_P(SpdyFramerTest, RstStreamFrameFlags) { 5084 TEST_P(SpdyFramerTest, RstStreamFrameFlags) {
5084 uint8 flags = 0; 5085 uint8_t flags = 0;
5085 do { 5086 do {
5086 SCOPED_TRACE(testing::Message() << "Flags " << flags); 5087 SCOPED_TRACE(testing::Message() << "Flags " << flags);
5087 5088
5088 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 5089 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
5089 SpdyFramer framer(spdy_version_); 5090 SpdyFramer framer(spdy_version_);
5090 framer.set_visitor(&visitor); 5091 framer.set_visitor(&visitor);
5091 5092
5092 SpdyRstStreamIR rst_stream(13, RST_STREAM_CANCEL); 5093 SpdyRstStreamIR rst_stream(13, RST_STREAM_CANCEL);
5093 scoped_ptr<SpdyFrame> frame(framer.SerializeRstStream(rst_stream)); 5094 scoped_ptr<SpdyFrame> frame(framer.SerializeRstStream(rst_stream));
5094 SetFrameFlags(frame.get(), flags, spdy_version_); 5095 SetFrameFlags(frame.get(), flags, spdy_version_);
(...skipping 13 matching lines...) Expand all
5108 } else { 5109 } else {
5109 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state()); 5110 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state());
5110 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code()) 5111 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code())
5111 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5112 << SpdyFramer::ErrorCodeToString(framer.error_code());
5112 } 5113 }
5113 } while (++flags != 0); 5114 } while (++flags != 0);
5114 } 5115 }
5115 5116
5116 TEST_P(SpdyFramerTest, SettingsFrameFlagsOldFormat) { 5117 TEST_P(SpdyFramerTest, SettingsFrameFlagsOldFormat) {
5117 if (spdy_version_ > SPDY3) { return; } 5118 if (spdy_version_ > SPDY3) { return; }
5118 uint8 flags = 0; 5119 uint8_t flags = 0;
5119 do { 5120 do {
5120 SCOPED_TRACE(testing::Message() << "Flags " << flags); 5121 SCOPED_TRACE(testing::Message() << "Flags " << flags);
5121 5122
5122 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 5123 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
5123 SpdyFramer framer(spdy_version_); 5124 SpdyFramer framer(spdy_version_);
5124 framer.set_visitor(&visitor); 5125 framer.set_visitor(&visitor);
5125 5126
5126 SpdySettingsIR settings_ir; 5127 SpdySettingsIR settings_ir;
5127 settings_ir.AddSetting(SETTINGS_UPLOAD_BANDWIDTH, 5128 settings_ir.AddSetting(SETTINGS_UPLOAD_BANDWIDTH,
5128 false, 5129 false,
(...skipping 21 matching lines...) Expand all
5150 } else { 5151 } else {
5151 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state()); 5152 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state());
5152 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code()) 5153 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code())
5153 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5154 << SpdyFramer::ErrorCodeToString(framer.error_code());
5154 } 5155 }
5155 } while (++flags != 0); 5156 } while (++flags != 0);
5156 } 5157 }
5157 5158
5158 TEST_P(SpdyFramerTest, SettingsFrameFlags) { 5159 TEST_P(SpdyFramerTest, SettingsFrameFlags) {
5159 if (spdy_version_ <= SPDY3) { return; } 5160 if (spdy_version_ <= SPDY3) { return; }
5160 uint8 flags = 0; 5161 uint8_t flags = 0;
5161 do { 5162 do {
5162 SCOPED_TRACE(testing::Message() << "Flags " << flags); 5163 SCOPED_TRACE(testing::Message() << "Flags " << flags);
5163 5164
5164 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 5165 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
5165 SpdyFramer framer(spdy_version_); 5166 SpdyFramer framer(spdy_version_);
5166 framer.set_visitor(&visitor); 5167 framer.set_visitor(&visitor);
5167 5168
5168 SpdySettingsIR settings_ir; 5169 SpdySettingsIR settings_ir;
5169 settings_ir.AddSetting(SETTINGS_INITIAL_WINDOW_SIZE, 0, 0, 16); 5170 settings_ir.AddSetting(SETTINGS_INITIAL_WINDOW_SIZE, 0, 0, 16);
5170 scoped_ptr<SpdyFrame> frame(framer.SerializeSettings(settings_ir)); 5171 scoped_ptr<SpdyFrame> frame(framer.SerializeSettings(settings_ir));
(...skipping 21 matching lines...) Expand all
5192 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5193 << SpdyFramer::ErrorCodeToString(framer.error_code());
5193 } else { 5194 } else {
5194 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state()); 5195 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state());
5195 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code()) 5196 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code())
5196 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5197 << SpdyFramer::ErrorCodeToString(framer.error_code());
5197 } 5198 }
5198 } while (++flags != 0); 5199 } while (++flags != 0);
5199 } 5200 }
5200 5201
5201 TEST_P(SpdyFramerTest, GoawayFrameFlags) { 5202 TEST_P(SpdyFramerTest, GoawayFrameFlags) {
5202 uint8 flags = 0; 5203 uint8_t flags = 0;
5203 do { 5204 do {
5204 SCOPED_TRACE(testing::Message() << "Flags " << flags); 5205 SCOPED_TRACE(testing::Message() << "Flags " << flags);
5205 5206
5206 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 5207 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
5207 SpdyFramer framer(spdy_version_); 5208 SpdyFramer framer(spdy_version_);
5208 framer.set_visitor(&visitor); 5209 framer.set_visitor(&visitor);
5209 5210
5210 SpdyGoAwayIR goaway_ir(97, GOAWAY_OK, "test"); 5211 SpdyGoAwayIR goaway_ir(97, GOAWAY_OK, "test");
5211 scoped_ptr<SpdyFrame> frame(framer.SerializeGoAway(goaway_ir)); 5212 scoped_ptr<SpdyFrame> frame(framer.SerializeGoAway(goaway_ir));
5212 SetFrameFlags(frame.get(), flags, spdy_version_); 5213 SetFrameFlags(frame.get(), flags, spdy_version_);
(...skipping 12 matching lines...) Expand all
5225 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5226 << SpdyFramer::ErrorCodeToString(framer.error_code());
5226 } else { 5227 } else {
5227 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state()); 5228 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state());
5228 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code()) 5229 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code())
5229 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5230 << SpdyFramer::ErrorCodeToString(framer.error_code());
5230 } 5231 }
5231 } while (++flags != 0); 5232 } while (++flags != 0);
5232 } 5233 }
5233 5234
5234 TEST_P(SpdyFramerTest, HeadersFrameFlags) { 5235 TEST_P(SpdyFramerTest, HeadersFrameFlags) {
5235 uint8 flags = 0; 5236 uint8_t flags = 0;
5236 do { 5237 do {
5237 SCOPED_TRACE(testing::Message() << "Flags " << flags); 5238 SCOPED_TRACE(testing::Message() << "Flags " << flags);
5238 5239
5239 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 5240 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
5240 SpdyFramer framer(spdy_version_); 5241 SpdyFramer framer(spdy_version_);
5241 framer.set_visitor(&visitor); 5242 framer.set_visitor(&visitor);
5242 5243
5243 SpdyHeadersIR headers_ir(57); 5244 SpdyHeadersIR headers_ir(57);
5244 if (IsHttp2() && (flags & HEADERS_FLAG_PRIORITY)) { 5245 if (IsHttp2() && (flags & HEADERS_FLAG_PRIORITY)) {
5245 headers_ir.set_priority(3); 5246 headers_ir.set_priority(3);
5246 headers_ir.set_has_priority(true); 5247 headers_ir.set_has_priority(true);
5247 headers_ir.set_parent_stream_id(5); 5248 headers_ir.set_parent_stream_id(5);
5248 headers_ir.set_exclusive(true); 5249 headers_ir.set_exclusive(true);
5249 } 5250 }
5250 headers_ir.SetHeader("foo", "bar"); 5251 headers_ir.SetHeader("foo", "bar");
5251 scoped_ptr<SpdyFrame> frame(framer.SerializeHeaders(headers_ir)); 5252 scoped_ptr<SpdyFrame> frame(framer.SerializeHeaders(headers_ir));
5252 uint8 set_flags = flags; 5253 uint8_t set_flags = flags;
5253 if (IsHttp2()) { 5254 if (IsHttp2()) {
5254 // TODO(jgraettinger): Add padding to SpdyHeadersIR, 5255 // TODO(jgraettinger): Add padding to SpdyHeadersIR,
5255 // and implement framing. 5256 // and implement framing.
5256 set_flags &= ~HEADERS_FLAG_PADDED; 5257 set_flags &= ~HEADERS_FLAG_PADDED;
5257 } 5258 }
5258 SetFrameFlags(frame.get(), set_flags, spdy_version_); 5259 SetFrameFlags(frame.get(), set_flags, spdy_version_);
5259 5260
5260 if (!IsHttp2() && flags & ~CONTROL_FLAG_FIN) { 5261 if (!IsHttp2() && flags & ~CONTROL_FLAG_FIN) {
5261 EXPECT_CALL(visitor, OnError(_)); 5262 EXPECT_CALL(visitor, OnError(_));
5262 } else if (IsHttp2() && flags & ~(CONTROL_FLAG_FIN | 5263 } else if (IsHttp2() && flags & ~(CONTROL_FLAG_FIN |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
5314 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5315 << SpdyFramer::ErrorCodeToString(framer.error_code());
5315 } else { 5316 } else {
5316 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state()); 5317 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state());
5317 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code()) 5318 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code())
5318 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5319 << SpdyFramer::ErrorCodeToString(framer.error_code());
5319 } 5320 }
5320 } while (++flags != 0); 5321 } while (++flags != 0);
5321 } 5322 }
5322 5323
5323 TEST_P(SpdyFramerTest, PingFrameFlags) { 5324 TEST_P(SpdyFramerTest, PingFrameFlags) {
5324 uint8 flags = 0; 5325 uint8_t flags = 0;
5325 do { 5326 do {
5326 SCOPED_TRACE(testing::Message() << "Flags " << flags); 5327 SCOPED_TRACE(testing::Message() << "Flags " << flags);
5327 5328
5328 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 5329 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
5329 SpdyFramer framer(spdy_version_); 5330 SpdyFramer framer(spdy_version_);
5330 framer.set_visitor(&visitor); 5331 framer.set_visitor(&visitor);
5331 5332
5332 scoped_ptr<SpdyFrame> frame(framer.SerializePing(SpdyPingIR(42))); 5333 scoped_ptr<SpdyFrame> frame(framer.SerializePing(SpdyPingIR(42)));
5333 SetFrameFlags(frame.get(), flags, spdy_version_); 5334 SetFrameFlags(frame.get(), flags, spdy_version_);
5334 5335
(...skipping 15 matching lines...) Expand all
5350 } else { 5351 } else {
5351 EXPECT_EQ(SpdyFramer::SPDY_ERROR, framer.state()); 5352 EXPECT_EQ(SpdyFramer::SPDY_ERROR, framer.state());
5352 EXPECT_EQ(SpdyFramer::SPDY_INVALID_CONTROL_FRAME_FLAGS, 5353 EXPECT_EQ(SpdyFramer::SPDY_INVALID_CONTROL_FRAME_FLAGS,
5353 framer.error_code()) 5354 framer.error_code())
5354 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5355 << SpdyFramer::ErrorCodeToString(framer.error_code());
5355 } 5356 }
5356 } while (++flags != 0); 5357 } while (++flags != 0);
5357 } 5358 }
5358 5359
5359 TEST_P(SpdyFramerTest, WindowUpdateFrameFlags) { 5360 TEST_P(SpdyFramerTest, WindowUpdateFrameFlags) {
5360 uint8 flags = 0; 5361 uint8_t flags = 0;
5361 do { 5362 do {
5362 SCOPED_TRACE(testing::Message() << "Flags " << flags); 5363 SCOPED_TRACE(testing::Message() << "Flags " << flags);
5363 5364
5364 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 5365 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
5365 SpdyFramer framer(spdy_version_); 5366 SpdyFramer framer(spdy_version_);
5366 framer.set_visitor(&visitor); 5367 framer.set_visitor(&visitor);
5367 5368
5368 scoped_ptr<SpdyFrame> frame(framer.SerializeWindowUpdate( 5369 scoped_ptr<SpdyFrame> frame(framer.SerializeWindowUpdate(
5369 SpdyWindowUpdateIR(4, 1024))); 5370 SpdyWindowUpdateIR(4, 1024)));
5370 SetFrameFlags(frame.get(), flags, spdy_version_); 5371 SetFrameFlags(frame.get(), flags, spdy_version_);
(...skipping 16 matching lines...) Expand all
5387 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5388 << SpdyFramer::ErrorCodeToString(framer.error_code());
5388 } 5389 }
5389 } while (++flags != 0); 5390 } while (++flags != 0);
5390 } 5391 }
5391 5392
5392 TEST_P(SpdyFramerTest, PushPromiseFrameFlags) { 5393 TEST_P(SpdyFramerTest, PushPromiseFrameFlags) {
5393 if (spdy_version_ <= SPDY3) { 5394 if (spdy_version_ <= SPDY3) {
5394 return; 5395 return;
5395 } 5396 }
5396 5397
5397 uint8 flags = 0; 5398 uint8_t flags = 0;
5398 do { 5399 do {
5399 SCOPED_TRACE(testing::Message() << "Flags " << flags); 5400 SCOPED_TRACE(testing::Message() << "Flags " << flags);
5400 5401
5401 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 5402 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
5402 testing::StrictMock<test::MockDebugVisitor> debug_visitor; 5403 testing::StrictMock<test::MockDebugVisitor> debug_visitor;
5403 SpdyFramer framer(spdy_version_); 5404 SpdyFramer framer(spdy_version_);
5404 framer.set_visitor(&visitor); 5405 framer.set_visitor(&visitor);
5405 framer.set_debug_visitor(&debug_visitor); 5406 framer.set_debug_visitor(&debug_visitor);
5406 5407
5407 EXPECT_CALL(debug_visitor, OnSendCompressedFrame(42, PUSH_PROMISE, _, _)); 5408 EXPECT_CALL(debug_visitor, OnSendCompressedFrame(42, PUSH_PROMISE, _, _));
(...skipping 28 matching lines...) Expand all
5436 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5437 << SpdyFramer::ErrorCodeToString(framer.error_code());
5437 } 5438 }
5438 } while (++flags != 0); 5439 } while (++flags != 0);
5439 } 5440 }
5440 5441
5441 TEST_P(SpdyFramerTest, ContinuationFrameFlags) { 5442 TEST_P(SpdyFramerTest, ContinuationFrameFlags) {
5442 if (spdy_version_ <= SPDY3) { 5443 if (spdy_version_ <= SPDY3) {
5443 return; 5444 return;
5444 } 5445 }
5445 5446
5446 uint8 flags = 0; 5447 uint8_t flags = 0;
5447 do { 5448 do {
5448 SCOPED_TRACE(testing::Message() << "Flags " << flags); 5449 SCOPED_TRACE(testing::Message() << "Flags " << flags);
5449 5450
5450 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 5451 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
5451 testing::StrictMock<test::MockDebugVisitor> debug_visitor; 5452 testing::StrictMock<test::MockDebugVisitor> debug_visitor;
5452 SpdyFramer framer(spdy_version_); 5453 SpdyFramer framer(spdy_version_);
5453 framer.set_visitor(&visitor); 5454 framer.set_visitor(&visitor);
5454 framer.set_debug_visitor(&debug_visitor); 5455 framer.set_debug_visitor(&debug_visitor);
5455 5456
5456 EXPECT_CALL(debug_visitor, OnSendCompressedFrame(42, HEADERS, _, _)); 5457 EXPECT_CALL(debug_visitor, OnSendCompressedFrame(42, HEADERS, _, _));
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
5525 EXPECT_CALL(visitor, OnSynStream(1, 0, 1, false, false)); 5526 EXPECT_CALL(visitor, OnSynStream(1, 0, 1, false, false));
5526 EXPECT_CALL(visitor, OnControlFrameHeaderData(1, NULL, 0)); 5527 EXPECT_CALL(visitor, OnControlFrameHeaderData(1, NULL, 0));
5527 5528
5528 framer.ProcessInput(frame->data(), framer.GetSynStreamMinimumSize()); 5529 framer.ProcessInput(frame->data(), framer.GetSynStreamMinimumSize());
5529 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state()); 5530 EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state());
5530 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code()) 5531 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code())
5531 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5532 << SpdyFramer::ErrorCodeToString(framer.error_code());
5532 } 5533 }
5533 5534
5534 TEST_P(SpdyFramerTest, SettingsFlagsAndId) { 5535 TEST_P(SpdyFramerTest, SettingsFlagsAndId) {
5535 const uint32 kId = 0x020304; 5536 const uint32_t kId = 0x020304;
5536 const uint32 kFlags = 0x01; 5537 const uint32_t kFlags = 0x01;
5537 const uint32 kWireFormat = 5538 const uint32_t kWireFormat =
5538 base::HostToNet32(IsSpdy2() ? 0x04030201 : 0x01020304); 5539 base::HostToNet32(IsSpdy2() ? 0x04030201 : 0x01020304);
5539 5540
5540 SettingsFlagsAndId id_and_flags = 5541 SettingsFlagsAndId id_and_flags =
5541 SettingsFlagsAndId::FromWireFormat(spdy_version_, kWireFormat); 5542 SettingsFlagsAndId::FromWireFormat(spdy_version_, kWireFormat);
5542 EXPECT_EQ(kId, id_and_flags.id()); 5543 EXPECT_EQ(kId, id_and_flags.id());
5543 EXPECT_EQ(kFlags, id_and_flags.flags()); 5544 EXPECT_EQ(kFlags, id_and_flags.flags());
5544 EXPECT_EQ(kWireFormat, id_and_flags.GetWireFormat(spdy_version_)); 5545 EXPECT_EQ(kWireFormat, id_and_flags.GetWireFormat(spdy_version_));
5545 } 5546 }
5546 5547
5547 // Test handling of a RST_STREAM with out-of-bounds status codes. 5548 // Test handling of a RST_STREAM with out-of-bounds status codes.
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after
6067 6068
6068 EXPECT_EQ(1, visitor->data_frame_count_); 6069 EXPECT_EQ(1, visitor->data_frame_count_);
6069 EXPECT_EQ(strlen(four_score), static_cast<unsigned>(visitor->data_bytes_)); 6070 EXPECT_EQ(strlen(four_score), static_cast<unsigned>(visitor->data_bytes_));
6070 EXPECT_EQ(0, visitor->headers_frame_count_); 6071 EXPECT_EQ(0, visitor->headers_frame_count_);
6071 } 6072 }
6072 } 6073 }
6073 6074
6074 } // namespace test 6075 } // namespace test
6075 6076
6076 } // namespace net 6077 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_framer.cc ('k') | net/spdy/spdy_header_block.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698