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

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

Issue 2156643002: Move ~1000 SpdySerializedFrame instances from heap to stack in tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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/spdy/bidirectional_stream_spdy_impl.h" 5 #include "net/spdy/bidirectional_stream_spdy_impl.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 const SpdySessionKey key_; 248 const SpdySessionKey key_;
249 std::unique_ptr<SequencedSocketData> sequenced_data_; 249 std::unique_ptr<SequencedSocketData> sequenced_data_;
250 std::unique_ptr<HttpNetworkSession> http_session_; 250 std::unique_ptr<HttpNetworkSession> http_session_;
251 base::WeakPtr<SpdySession> session_; 251 base::WeakPtr<SpdySession> session_;
252 252
253 private: 253 private:
254 SSLSocketDataProvider ssl_data_; 254 SSLSocketDataProvider ssl_data_;
255 }; 255 };
256 256
257 TEST_F(BidirectionalStreamSpdyImplTest, SendDataAfterStreamFailed) { 257 TEST_F(BidirectionalStreamSpdyImplTest, SendDataAfterStreamFailed) {
258 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost( 258 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost(
259 kDefaultUrl, 1, kBodyDataSize * 3, LOW, nullptr, 0)); 259 kDefaultUrl, 1, kBodyDataSize * 3, LOW, nullptr, 0));
260 std::unique_ptr<SpdySerializedFrame> rst( 260 SpdySerializedFrame rst(
261 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); 261 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR));
262 262
263 MockWrite writes[] = { 263 MockWrite writes[] = {
264 CreateMockWrite(*req, 0), CreateMockWrite(*rst, 2), 264 CreateMockWrite(req, 0), CreateMockWrite(rst, 2),
265 }; 265 };
266 266
267 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; 267 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"};
268 std::unique_ptr<SpdySerializedFrame> resp( 268 SpdySerializedFrame resp(
269 spdy_util_.ConstructSpdyGetSynReply(kExtraHeaders, 1, 1)); 269 spdy_util_.ConstructSpdyGetSynReply(kExtraHeaders, 1, 1));
270 270
271 MockRead reads[] = { 271 MockRead reads[] = {
272 CreateMockRead(*resp, 1), MockRead(ASYNC, 0, 3), 272 CreateMockRead(resp, 1), MockRead(ASYNC, 0, 3),
273 }; 273 };
274 274
275 InitSession(reads, arraysize(reads), writes, arraysize(writes)); 275 InitSession(reads, arraysize(reads), writes, arraysize(writes));
276 276
277 BidirectionalStreamRequestInfo request_info; 277 BidirectionalStreamRequestInfo request_info;
278 request_info.method = "POST"; 278 request_info.method = "POST";
279 request_info.url = default_url_; 279 request_info.url = default_url_;
280 request_info.extra_headers.SetHeader(net::HttpRequestHeaders::kContentLength, 280 request_info.extra_headers.SetHeader(net::HttpRequestHeaders::kContentLength,
281 base::SizeTToString(kBodyDataSize * 3)); 281 base::SizeTToString(kBodyDataSize * 3));
282 282
(...skipping 16 matching lines...) Expand all
299 EXPECT_EQ(0, delegate->on_data_sent_count()); 299 EXPECT_EQ(0, delegate->on_data_sent_count());
300 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol()); 300 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol());
301 // BidirectionalStreamSpdyStreamJob does not count the bytes sent for |rst| 301 // BidirectionalStreamSpdyStreamJob does not count the bytes sent for |rst|
302 // because it is sent after SpdyStream::Delegate::OnClose is called. 302 // because it is sent after SpdyStream::Delegate::OnClose is called.
303 EXPECT_EQ(CountWriteBytes(writes, 1), delegate->GetTotalSentBytes()); 303 EXPECT_EQ(CountWriteBytes(writes, 1), delegate->GetTotalSentBytes());
304 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), 304 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
305 delegate->GetTotalReceivedBytes()); 305 delegate->GetTotalReceivedBytes());
306 } 306 }
307 307
308 TEST_F(BidirectionalStreamSpdyImplTest, SendDataAfterCancelStream) { 308 TEST_F(BidirectionalStreamSpdyImplTest, SendDataAfterCancelStream) {
309 BufferedSpdyFramer framer; 309 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost(
310
311 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost(
312 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); 310 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0));
313 std::unique_ptr<SpdySerializedFrame> data_frame( 311 SpdySerializedFrame data_frame(
314 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_NONE)); 312 spdy_util_.ConstructSpdyDataFrame(1, kBodyData, kBodyDataSize,
315 std::unique_ptr<SpdySerializedFrame> rst( 313 /*fin=*/false));
314 SpdySerializedFrame rst(
316 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 315 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL));
317 316
318 MockWrite writes[] = { 317 MockWrite writes[] = {
319 CreateMockWrite(*req, 0), CreateMockWrite(*data_frame, 3), 318 CreateMockWrite(req, 0), CreateMockWrite(data_frame, 3),
320 CreateMockWrite(*rst, 5), 319 CreateMockWrite(rst, 5),
321 }; 320 };
322 321
323 std::unique_ptr<SpdySerializedFrame> resp( 322 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1));
324 spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); 323 SpdySerializedFrame response_body_frame(
325 std::unique_ptr<SpdySerializedFrame> response_body_frame( 324 spdy_util_.ConstructSpdyDataFrame(1, false));
326 spdy_util_.ConstructSpdyBodyFrame(1, false));
327 325
328 MockRead reads[] = { 326 MockRead reads[] = {
329 CreateMockRead(*resp, 1), 327 CreateMockRead(resp, 1),
330 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. 328 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause.
331 MockRead(ASYNC, ERR_IO_PENDING, 4), // Force a pause. 329 MockRead(ASYNC, ERR_IO_PENDING, 4), // Force a pause.
332 MockRead(ASYNC, 0, 6), 330 MockRead(ASYNC, 0, 6),
333 }; 331 };
334 332
335 InitSession(reads, arraysize(reads), writes, arraysize(writes)); 333 InitSession(reads, arraysize(reads), writes, arraysize(writes));
336 334
337 BidirectionalStreamRequestInfo request_info; 335 BidirectionalStreamRequestInfo request_info;
338 request_info.method = "POST"; 336 request_info.method = "POST";
339 request_info.url = default_url_; 337 request_info.url = default_url_;
(...skipping 27 matching lines...) Expand all
367 EXPECT_FALSE(delegate->on_failed_called()); 365 EXPECT_FALSE(delegate->on_failed_called());
368 366
369 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 367 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
370 EXPECT_EQ(0, delegate->on_data_read_count()); 368 EXPECT_EQ(0, delegate->on_data_read_count());
371 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol()); 369 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol());
372 EXPECT_EQ(0, delegate->GetTotalSentBytes()); 370 EXPECT_EQ(0, delegate->GetTotalSentBytes());
373 EXPECT_EQ(0, delegate->GetTotalReceivedBytes()); 371 EXPECT_EQ(0, delegate->GetTotalReceivedBytes());
374 } 372 }
375 373
376 } // namespace net 374 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_proxy_client_socket_pool_unittest.cc ('k') | net/spdy/spdy_http_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698