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

Side by Side Diff: net/http2/hpack/decoder/hpack_block_decoder_test.cc

Issue 2714053003: Fix GCC build for target 'all' (Closed)
Patch Set: #if defined(__GNUC__) Created 3 years, 9 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 "net/http2/hpack/decoder/hpack_block_decoder.h" 5 #include "net/http2/hpack/decoder/hpack_block_decoder.h"
6 6
7 // Tests of HpackBlockDecoder. 7 // Tests of HpackBlockDecoder.
8 8
9 #include <sstream> 9 #include <sstream>
10 10
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 HpackBlockDecoder decoder_; 83 HpackBlockDecoder decoder_;
84 }; 84 };
85 85
86 // http://httpwg.org/specs/rfc7541.html#rfc.section.C.2.1 86 // http://httpwg.org/specs/rfc7541.html#rfc.section.C.2.1
87 TEST_F(HpackBlockDecoderTest, SpecExample_C_2_1) { 87 TEST_F(HpackBlockDecoderTest, SpecExample_C_2_1) {
88 NoArgValidator do_check = [this]() { 88 NoArgValidator do_check = [this]() {
89 VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleLiteralNameValueHeader( 89 VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleLiteralNameValueHeader(
90 HpackEntryType::kIndexedLiteralHeader, false, "custom-key", false, 90 HpackEntryType::kIndexedLiteralHeader, false, "custom-key", false,
91 "custom-header")); 91 "custom-header"));
92 }; 92 };
93 EXPECT_TRUE( 93 const char hpack_example[] = R"(
94 DecodeHpackExampleAndValidateSeveralWays(R"(
95 40 | == Literal indexed == 94 40 | == Literal indexed ==
96 0a | Literal name (len = 10) 95 0a | Literal name (len = 10)
97 6375 7374 6f6d 2d6b 6579 | custom-key 96 6375 7374 6f6d 2d6b 6579 | custom-key
98 0d | Literal value (len = 13) 97 0d | Literal value (len = 13)
99 6375 7374 6f6d 2d68 6561 6465 72 | custom-header 98 6375 7374 6f6d 2d68 6561 6465 72 | custom-header
100 | -> custom-key: 99 | -> custom-key:
101 | custom-header 100 | custom-header
102 )", 101 )";
103 ValidateDoneAndEmpty(do_check))); 102 EXPECT_TRUE(DecodeHpackExampleAndValidateSeveralWays(
103 hpack_example, ValidateDoneAndEmpty(do_check)));
104 EXPECT_TRUE(do_check()); 104 EXPECT_TRUE(do_check());
105 } 105 }
106 106
107 // http://httpwg.org/specs/rfc7541.html#rfc.section.C.2.2 107 // http://httpwg.org/specs/rfc7541.html#rfc.section.C.2.2
108 TEST_F(HpackBlockDecoderTest, SpecExample_C_2_2) { 108 TEST_F(HpackBlockDecoderTest, SpecExample_C_2_2) {
109 NoArgValidator do_check = [this]() { 109 NoArgValidator do_check = [this]() {
110 VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleLiteralValueHeader( 110 VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleLiteralValueHeader(
111 HpackEntryType::kUnindexedLiteralHeader, 4, false, "/sample/path")); 111 HpackEntryType::kUnindexedLiteralHeader, 4, false, "/sample/path"));
112 }; 112 };
113 EXPECT_TRUE( 113 const char hpack_example[] = R"(
114 DecodeHpackExampleAndValidateSeveralWays(R"(
115 04 | == Literal not indexed == 114 04 | == Literal not indexed ==
116 | Indexed name (idx = 4) 115 | Indexed name (idx = 4)
117 | :path 116 | :path
118 0c | Literal value (len = 12) 117 0c | Literal value (len = 12)
119 2f73 616d 706c 652f 7061 7468 | /sample/path 118 2f73 616d 706c 652f 7061 7468 | /sample/path
120 | -> :path: /sample/path 119 | -> :path: /sample/path
121 )", 120 )";
122 ValidateDoneAndEmpty(do_check))); 121 EXPECT_TRUE(DecodeHpackExampleAndValidateSeveralWays(
122 hpack_example, ValidateDoneAndEmpty(do_check)));
123 EXPECT_TRUE(do_check()); 123 EXPECT_TRUE(do_check());
124 } 124 }
125 125
126 // http://httpwg.org/specs/rfc7541.html#rfc.section.C.2.3 126 // http://httpwg.org/specs/rfc7541.html#rfc.section.C.2.3
127 TEST_F(HpackBlockDecoderTest, SpecExample_C_2_3) { 127 TEST_F(HpackBlockDecoderTest, SpecExample_C_2_3) {
128 NoArgValidator do_check = [this]() { 128 NoArgValidator do_check = [this]() {
129 VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleLiteralNameValueHeader( 129 VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleLiteralNameValueHeader(
130 HpackEntryType::kNeverIndexedLiteralHeader, false, "password", false, 130 HpackEntryType::kNeverIndexedLiteralHeader, false, "password", false,
131 "secret")); 131 "secret"));
132 }; 132 };
133 EXPECT_TRUE( 133 const char hpack_example[] = R"(
134 DecodeHpackExampleAndValidateSeveralWays(R"(
135 10 | == Literal never indexed == 134 10 | == Literal never indexed ==
136 08 | Literal name (len = 8) 135 08 | Literal name (len = 8)
137 7061 7373 776f 7264 | password 136 7061 7373 776f 7264 | password
138 06 | Literal value (len = 6) 137 06 | Literal value (len = 6)
139 7365 6372 6574 | secret 138 7365 6372 6574 | secret
140 | -> password: secret 139 | -> password: secret
141 )", 140 )";
142 ValidateDoneAndEmpty(do_check))); 141 EXPECT_TRUE(DecodeHpackExampleAndValidateSeveralWays(
142 hpack_example, ValidateDoneAndEmpty(do_check)));
143 EXPECT_TRUE(do_check()); 143 EXPECT_TRUE(do_check());
144 } 144 }
145 145
146 // http://httpwg.org/specs/rfc7541.html#rfc.section.C.2.4 146 // http://httpwg.org/specs/rfc7541.html#rfc.section.C.2.4
147 TEST_F(HpackBlockDecoderTest, SpecExample_C_2_4) { 147 TEST_F(HpackBlockDecoderTest, SpecExample_C_2_4) {
148 NoArgValidator do_check = [this]() { 148 NoArgValidator do_check = [this]() {
149 VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleIndexedHeader(2)); 149 VERIFY_AND_RETURN_SUCCESS(collector_.ValidateSoleIndexedHeader(2));
150 }; 150 };
151 EXPECT_TRUE( 151 const char hpack_example[] = R"(
152 DecodeHpackExampleAndValidateSeveralWays(R"(
153 82 | == Indexed - Add == 152 82 | == Indexed - Add ==
154 | idx = 2 153 | idx = 2
155 | -> :method: GET 154 | -> :method: GET
156 )", 155 )";
157 ValidateDoneAndEmpty(do_check))); 156 EXPECT_TRUE(DecodeHpackExampleAndValidateSeveralWays(
157 hpack_example, ValidateDoneAndEmpty(do_check)));
158 EXPECT_TRUE(do_check()); 158 EXPECT_TRUE(do_check());
159 } 159 }
160 // http://httpwg.org/specs/rfc7541.html#rfc.section.C.3.1 160 // http://httpwg.org/specs/rfc7541.html#rfc.section.C.3.1
161 TEST_F(HpackBlockDecoderTest, SpecExample_C_3_1) { 161 TEST_F(HpackBlockDecoderTest, SpecExample_C_3_1) {
162 string example = R"( 162 string example = R"(
163 82 | == Indexed - Add == 163 82 | == Indexed - Add ==
164 | idx = 2 164 | idx = 2
165 | -> :method: GET 165 | -> :method: GET
166 86 | == Indexed - Add == 166 86 | == Indexed - Add ==
167 | idx = 6 167 | idx = 6
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 VERIFY_AND_RETURN_SUCCESS(collector_.VerifyEq(expected)); 287 VERIFY_AND_RETURN_SUCCESS(collector_.VerifyEq(expected));
288 }; 288 };
289 EXPECT_TRUE( 289 EXPECT_TRUE(
290 DecodeAndValidateSeveralWays(hbb, ValidateDoneAndEmpty(do_check))); 290 DecodeAndValidateSeveralWays(hbb, ValidateDoneAndEmpty(do_check)));
291 EXPECT_TRUE(do_check()); 291 EXPECT_TRUE(do_check());
292 } 292 }
293 293
294 } // namespace 294 } // namespace
295 } // namespace test 295 } // namespace test
296 } // namespace net 296 } // namespace net
OLDNEW
« no previous file with comments | « gpu/tools/compositor_model_bench/render_tree.cc ('k') | net/quic/core/congestion_control/windowed_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698