@@ -170,7 +170,7 @@ TEST_F(RedisParserTest, Empty) {
170
170
}
171
171
172
172
TEST_F (RedisParserTest, LargeBulk) {
173
- std:: string_view prefix (" *1\r\n $1024\r\n " );
173
+ string_view prefix (" *1\r\n $1024\r\n " );
174
174
175
175
ASSERT_EQ (RedisParser::INPUT_PENDING, Parse (prefix));
176
176
ASSERT_EQ (prefix.size (), consumed_);
@@ -191,6 +191,18 @@ TEST_F(RedisParserTest, LargeBulk) {
191
191
ASSERT_EQ (RedisParser::INPUT_PENDING, Parse (part1));
192
192
ASSERT_EQ (RedisParser::INPUT_PENDING, Parse (half));
193
193
ASSERT_EQ (RedisParser::OK, Parse (" \r\n " ));
194
+
195
+ prefix = " *1\r\n $270000000\r\n " ;
196
+ ASSERT_EQ (RedisParser::INPUT_PENDING, Parse (prefix));
197
+ ASSERT_EQ (prefix.size (), consumed_);
198
+ string chunk (1000000 , ' a' );
199
+ for (unsigned i = 0 ; i < 270 ; ++i) {
200
+ ASSERT_EQ (RedisParser::INPUT_PENDING, Parse (chunk));
201
+ ASSERT_EQ (chunk.size (), consumed_);
202
+ }
203
+ ASSERT_EQ (RedisParser::OK, Parse (" \r\n " ));
204
+ ASSERT_THAT (args_, ElementsAre (ArgType (RespExpr::STRING)));
205
+ EXPECT_EQ (270000000 , args_[0 ].GetBuf ().size ());
194
206
}
195
207
196
208
TEST_F (RedisParserTest, NILs) {
0 commit comments