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

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

Issue 1499423004: Remove kint32max. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@kint9
Patch Set: rebase 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_session.cc ('k') | ppapi/shared_impl/id_assignment.cc » ('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 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 <stdint.h>
6
5 #include <cstddef> 7 #include <cstddef>
8 #include <limits>
6 #include <string> 9 #include <string>
7 #include <vector> 10 #include <vector>
8 11
9 #include "base/memory/ref_counted.h" 12 #include "base/memory/ref_counted.h"
10 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
11 #include "base/strings/string_piece.h" 14 #include "base/strings/string_piece.h"
12 #include "net/base/completion_callback.h" 15 #include "net/base/completion_callback.h"
13 #include "net/base/request_priority.h" 16 #include "net/base/request_priority.h"
14 #include "net/log/test_net_log.h" 17 #include "net/log/test_net_log.h"
15 #include "net/log/test_net_log_entry.h" 18 #include "net/log/test_net_log_entry.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 const size_t kPostBodyLength = arraysize(kPostBody); 54 const size_t kPostBodyLength = arraysize(kPostBody);
52 const base::StringPiece kPostBodyStringPiece(kPostBody, kPostBodyLength); 55 const base::StringPiece kPostBodyStringPiece(kPostBody, kPostBodyLength);
53 56
54 } // namespace 57 } // namespace
55 58
56 class SpdyStreamTest : public ::testing::Test, 59 class SpdyStreamTest : public ::testing::Test,
57 public ::testing::WithParamInterface<TestCase> { 60 public ::testing::WithParamInterface<TestCase> {
58 protected: 61 protected:
59 // A function that takes a SpdyStream and the number of bytes which 62 // A function that takes a SpdyStream and the number of bytes which
60 // will unstall the next frame completely. 63 // will unstall the next frame completely.
61 typedef base::Callback<void(const base::WeakPtr<SpdyStream>&, int32)> 64 typedef base::Callback<void(const base::WeakPtr<SpdyStream>&, int32_t)>
62 UnstallFunction; 65 UnstallFunction;
63 66
64 SpdyStreamTest() 67 SpdyStreamTest()
65 : spdy_util_(GetProtocol(), GetDependenciesFromPriority()), 68 : spdy_util_(GetProtocol(), GetDependenciesFromPriority()),
66 session_deps_(GetProtocol()), 69 session_deps_(GetProtocol()),
67 offset_(0) { 70 offset_(0) {
68 SpdySession::SetPriorityDependencyDefaultForTesting( 71 SpdySession::SetPriorityDependencyDefaultForTesting(
69 GetDependenciesFromPriority()); 72 GetDependenciesFromPriority());
70 } 73 }
71 74
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after
823 EXPECT_FALSE(push_stream); 826 EXPECT_FALSE(push_stream);
824 827
825 data.RunFor(2); 828 data.RunFor(2);
826 829
827 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); 830 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose());
828 } 831 }
829 832
830 // The tests below are only for SPDY/3 and above. 833 // The tests below are only for SPDY/3 and above.
831 834
832 // Call IncreaseSendWindowSize on a stream with a large enough delta 835 // Call IncreaseSendWindowSize on a stream with a large enough delta
833 // to overflow an int32. The SpdyStream should handle that case 836 // to overflow an int32_t. The SpdyStream should handle that case
834 // gracefully. 837 // gracefully.
835 TEST_P(SpdyStreamTest, IncreaseSendWindowSizeOverflow) { 838 TEST_P(SpdyStreamTest, IncreaseSendWindowSizeOverflow) {
836 session_ = 839 session_ =
837 SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_); 840 SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_);
838 841
839 scoped_ptr<SpdyFrame> req( 842 scoped_ptr<SpdyFrame> req(
840 spdy_util_.ConstructSpdyPost( 843 spdy_util_.ConstructSpdyPost(
841 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0)); 844 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0));
842 AddWrite(*req); 845 AddWrite(*req);
843 846
(...skipping 26 matching lines...) Expand all
870 873
871 scoped_ptr<SpdyHeaderBlock> headers( 874 scoped_ptr<SpdyHeaderBlock> headers(
872 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); 875 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength));
873 EXPECT_EQ(ERR_IO_PENDING, 876 EXPECT_EQ(ERR_IO_PENDING,
874 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); 877 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND));
875 EXPECT_TRUE(stream->HasUrlFromHeaders()); 878 EXPECT_TRUE(stream->HasUrlFromHeaders());
876 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 879 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
877 880
878 data.RunFor(1); 881 data.RunFor(1);
879 882
880 int32 old_send_window_size = stream->send_window_size(); 883 int32_t old_send_window_size = stream->send_window_size();
881 ASSERT_GT(old_send_window_size, 0); 884 ASSERT_GT(old_send_window_size, 0);
882 int32 delta_window_size = kint32max - old_send_window_size + 1; 885 int32_t delta_window_size =
886 std::numeric_limits<int32_t>::max() - old_send_window_size + 1;
883 stream->IncreaseSendWindowSize(delta_window_size); 887 stream->IncreaseSendWindowSize(delta_window_size);
884 EXPECT_EQ(NULL, stream.get()); 888 EXPECT_EQ(NULL, stream.get());
885 889
886 data.RunFor(2); 890 data.RunFor(2);
887 891
888 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, delegate.WaitForClose()); 892 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, delegate.WaitForClose());
889 } 893 }
890 894
891 // Functions used with 895 // Functions used with
892 // RunResumeAfterUnstall{RequestResponse,Bidirectional}Test(). 896 // RunResumeAfterUnstall{RequestResponse,Bidirectional}Test().
893 897
894 void StallStream(const base::WeakPtr<SpdyStream>& stream) { 898 void StallStream(const base::WeakPtr<SpdyStream>& stream) {
895 // Reduce the send window size to 0 to stall. 899 // Reduce the send window size to 0 to stall.
896 while (stream->send_window_size() > 0) { 900 while (stream->send_window_size() > 0) {
897 stream->DecreaseSendWindowSize( 901 stream->DecreaseSendWindowSize(
898 std::min(kMaxSpdyFrameChunkSize, stream->send_window_size())); 902 std::min(kMaxSpdyFrameChunkSize, stream->send_window_size()));
899 } 903 }
900 } 904 }
901 905
902 void IncreaseStreamSendWindowSize(const base::WeakPtr<SpdyStream>& stream, 906 void IncreaseStreamSendWindowSize(const base::WeakPtr<SpdyStream>& stream,
903 int32 delta_window_size) { 907 int32_t delta_window_size) {
904 EXPECT_TRUE(stream->send_stalled_by_flow_control()); 908 EXPECT_TRUE(stream->send_stalled_by_flow_control());
905 stream->IncreaseSendWindowSize(delta_window_size); 909 stream->IncreaseSendWindowSize(delta_window_size);
906 EXPECT_FALSE(stream->send_stalled_by_flow_control()); 910 EXPECT_FALSE(stream->send_stalled_by_flow_control());
907 } 911 }
908 912
909 void AdjustStreamSendWindowSize(const base::WeakPtr<SpdyStream>& stream, 913 void AdjustStreamSendWindowSize(const base::WeakPtr<SpdyStream>& stream,
910 int32 delta_window_size) { 914 int32_t delta_window_size) {
911 // Make sure that negative adjustments are handled properly. 915 // Make sure that negative adjustments are handled properly.
912 EXPECT_TRUE(stream->send_stalled_by_flow_control()); 916 EXPECT_TRUE(stream->send_stalled_by_flow_control());
913 stream->AdjustSendWindowSize(-delta_window_size); 917 stream->AdjustSendWindowSize(-delta_window_size);
914 EXPECT_TRUE(stream->send_stalled_by_flow_control()); 918 EXPECT_TRUE(stream->send_stalled_by_flow_control());
915 stream->AdjustSendWindowSize(+delta_window_size); 919 stream->AdjustSendWindowSize(+delta_window_size);
916 EXPECT_TRUE(stream->send_stalled_by_flow_control()); 920 EXPECT_TRUE(stream->send_stalled_by_flow_control());
917 stream->AdjustSendWindowSize(+delta_window_size); 921 stream->AdjustSendWindowSize(+delta_window_size);
918 EXPECT_FALSE(stream->send_stalled_by_flow_control()); 922 EXPECT_FALSE(stream->send_stalled_by_flow_control());
919 } 923 }
920 924
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
1128 1132
1129 EXPECT_FALSE(stream->HasUrlFromHeaders()); 1133 EXPECT_FALSE(stream->HasUrlFromHeaders());
1130 1134
1131 scoped_ptr<SpdyHeaderBlock> headers( 1135 scoped_ptr<SpdyHeaderBlock> headers(
1132 spdy_util_.ConstructGetHeaderBlock(kStreamUrl)); 1136 spdy_util_.ConstructGetHeaderBlock(kStreamUrl));
1133 EXPECT_EQ(ERR_IO_PENDING, 1137 EXPECT_EQ(ERR_IO_PENDING,
1134 stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND)); 1138 stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND));
1135 EXPECT_TRUE(stream->HasUrlFromHeaders()); 1139 EXPECT_TRUE(stream->HasUrlFromHeaders());
1136 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 1140 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
1137 1141
1138 int64 reply_frame_len = reply->size(); 1142 int64_t reply_frame_len = reply->size();
1139 int64 data_header_len = spdy_util_.CreateFramer(false) 1143 int64_t data_header_len =
1140 ->GetDataFrameMinimumSize(); 1144 spdy_util_.CreateFramer(false)->GetDataFrameMinimumSize();
1141 int64 data_frame_len = data_header_len + kPostBodyLength; 1145 int64_t data_frame_len = data_header_len + kPostBodyLength;
1142 int64 response_len = reply_frame_len + data_frame_len; 1146 int64_t response_len = reply_frame_len + data_frame_len;
1143 1147
1144 EXPECT_EQ(0, stream->raw_received_bytes()); 1148 EXPECT_EQ(0, stream->raw_received_bytes());
1145 data.RunFor(1); // SYN 1149 data.RunFor(1); // SYN
1146 EXPECT_EQ(0, stream->raw_received_bytes()); 1150 EXPECT_EQ(0, stream->raw_received_bytes());
1147 data.RunFor(1); // REPLY 1151 data.RunFor(1); // REPLY
1148 EXPECT_EQ(reply_frame_len, stream->raw_received_bytes()); 1152 EXPECT_EQ(reply_frame_len, stream->raw_received_bytes());
1149 data.RunFor(1); // DATA 1153 data.RunFor(1); // DATA
1150 EXPECT_EQ(response_len, stream->raw_received_bytes()); 1154 EXPECT_EQ(response_len, stream->raw_received_bytes());
1151 data.RunFor(1); // FIN 1155 data.RunFor(1); // FIN
1152 1156
1153 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); 1157 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose());
1154 } 1158 }
1155 1159
1156 } // namespace test 1160 } // namespace test
1157 1161
1158 } // namespace net 1162 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_session.cc ('k') | ppapi/shared_impl/id_assignment.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698