Chromium Code Reviews| Index: blimp/net/stream_packet_reader_unittest.cc |
| diff --git a/blimp/net/stream_packet_reader_unittest.cc b/blimp/net/stream_packet_reader_unittest.cc |
| index 61419cfa412862906821716c67d75180a4f55f76..5777d4d6e2f6cf7e3deb5788b211696f21053d6e 100644 |
| --- a/blimp/net/stream_packet_reader_unittest.cc |
| +++ b/blimp/net/stream_packet_reader_unittest.cc |
| @@ -5,6 +5,7 @@ |
| #include <stddef.h> |
| #include <string> |
| +#include "base/message_loop/message_loop.h" |
| #include "base/sys_byteorder.h" |
| #include "blimp/net/common.h" |
| #include "blimp/net/stream_packet_reader.h" |
| @@ -41,11 +42,10 @@ class StreamPacketReaderTest : public testing::Test { |
| ~StreamPacketReaderTest() override {} |
| - int ReadPacket() { |
| - return data_reader_.ReadPacket(buffer_, callback_.callback()); |
| - } |
| + void ReadPacket() { data_reader_.ReadPacket(buffer_, callback_.callback()); } |
| protected: |
| + base::MessageLoop message_loop_; |
|
Wez
2015/11/24 23:43:18
Is this actually getting used anywhere..?
Kevin M
2015/11/25 01:18:37
Yes - the product code bounces sync completion off
|
| scoped_refptr<net::GrowableIOBuffer> buffer_; |
| std::string test_msg_; |
| net::TestCompletionCallback callback_; |
| @@ -65,12 +65,11 @@ TEST_F(StreamPacketReaderTest, ReadAsyncHeaderAsyncPayload) { |
| .WillOnce(DoAll(FillBufferFromString<0>(test_msg_), |
| SaveArg<2>(&socket_cb), Return(net::ERR_IO_PENDING))); |
| - EXPECT_EQ(net::ERR_IO_PENDING, ReadPacket()); |
| + ReadPacket(); |
| socket_cb.Run(kPacketHeaderSizeBytes); |
| socket_cb.Run(test_msg_.size()); |
| - int rv = callback_.WaitForResult(); |
| - |
| - EXPECT_EQ(rv, static_cast<int>(test_msg_.size())); |
| + EXPECT_EQ(net::OK, callback_.WaitForResult()); |
| + EXPECT_EQ(static_cast<int>(test_msg_.size()), buffer_->offset()); |
| EXPECT_TRUE(BufferStartsWith(buffer_.get(), test_msg_)); |
| } |
| @@ -89,13 +88,12 @@ TEST_F(StreamPacketReaderTest, ReadAsyncHeaderSyncPayload) { |
| .WillOnce( |
| DoAll(FillBufferFromString<0>(test_msg_), Return(test_msg_.size()))); |
| - EXPECT_EQ(net::ERR_IO_PENDING, ReadPacket()); |
| + ReadPacket(); |
| EXPECT_FALSE(callback_.have_result()); |
| socket_cb.Run(kPacketHeaderSizeBytes); |
| - int rv = callback_.WaitForResult(); |
| - EXPECT_GT(rv, 0); |
| - EXPECT_EQ(rv, static_cast<int>(test_msg_.size())); |
| + EXPECT_EQ(net::OK, callback_.WaitForResult()); |
| + EXPECT_EQ(static_cast<int>(test_msg_.size()), buffer_->offset()); |
| EXPECT_TRUE(BufferStartsWith(buffer_.get(), test_msg_)); |
| } |
| @@ -110,12 +108,10 @@ TEST_F(StreamPacketReaderTest, ReadSyncHeaderAsyncPayload) { |
| .WillOnce(DoAll(FillBufferFromString<0>(test_msg_), |
| SaveArg<2>(&socket_cb), Return(net::ERR_IO_PENDING))); |
| - EXPECT_EQ(net::ERR_IO_PENDING, ReadPacket()); |
| + ReadPacket(); |
| socket_cb.Run(test_msg_.size()); |
| - int rv = callback_.WaitForResult(); |
| - |
| - EXPECT_GT(rv, 0); |
| - EXPECT_EQ(rv, static_cast<int>(test_msg_.size())); |
| + EXPECT_EQ(net::OK, callback_.WaitForResult()); |
| + EXPECT_EQ(static_cast<int>(test_msg_.size()), buffer_->offset()); |
| EXPECT_TRUE(BufferStartsWith(buffer_.get(), test_msg_)); |
| } |
| @@ -130,12 +126,10 @@ TEST_F(StreamPacketReaderTest, ReadSyncHeaderSyncPayload) { |
| .WillOnce( |
| DoAll(FillBufferFromString<0>(test_msg_), Return(test_msg_.size()))); |
| - int rv = ReadPacket(); |
| - |
| - EXPECT_GT(rv, 0); |
| - EXPECT_EQ(rv, static_cast<int>(test_msg_.size())); |
| + ReadPacket(); |
| + EXPECT_EQ(net::OK, callback_.WaitForResult()); |
| + EXPECT_EQ(static_cast<int>(test_msg_.size()), buffer_->offset()); |
| EXPECT_TRUE(BufferStartsWith(buffer_.get(), test_msg_)); |
| - EXPECT_FALSE(callback_.have_result()); |
| } |
| // Successful read of 2 messages, header and payload reads all completing |
| @@ -168,13 +162,14 @@ TEST_F(StreamPacketReaderTest, ReadMultipleMessagesSync) { |
| DoAll(FillBufferFromString<0>(test_msg2), Return(test_msg2.size()))) |
| .RetiresOnSaturation(); |
| - int rv = ReadPacket(); |
| + ReadPacket(); |
| + EXPECT_EQ(net::OK, callback_.WaitForResult()); |
| + EXPECT_EQ(static_cast<int>(test_msg_.size()), buffer_->offset()); |
| + |
| + ReadPacket(); |
| + EXPECT_EQ(net::OK, callback_.WaitForResult()); |
| + EXPECT_EQ(static_cast<int>(test_msg2.size()), buffer_->offset()); |
| - EXPECT_GT(rv, 0); |
| - EXPECT_EQ(rv, static_cast<int>(test_msg_.size())); |
| - rv = ReadPacket(); |
| - EXPECT_GT(rv, 0); |
| - EXPECT_EQ(rv, static_cast<int>(test_msg2.size())); |
| EXPECT_TRUE(BufferStartsWith(buffer_.get(), test_msg_)); |
| EXPECT_FALSE(callback_.have_result()); |
| } |
| @@ -210,23 +205,17 @@ TEST_F(StreamPacketReaderTest, ReadMultipleMessagesAsync) { |
| SaveArg<2>(&socket_cb), Return(net::ERR_IO_PENDING))) |
| .RetiresOnSaturation(); |
| - EXPECT_EQ(net::ERR_IO_PENDING, |
| - data_reader_.ReadPacket(buffer_, read_cb1.callback())); |
| + data_reader_.ReadPacket(buffer_, read_cb1.callback()); |
| socket_cb.Run(kPacketHeaderSizeBytes); |
| socket_cb.Run(test_msg_.size()); |
| - int rv = read_cb1.WaitForResult(); |
| + EXPECT_EQ(net::OK, read_cb1.WaitForResult()); |
| + EXPECT_EQ(static_cast<int>(test_msg_.size()), buffer_->offset()); |
| - EXPECT_GT(rv, 0); |
| - EXPECT_EQ(rv, static_cast<int>(test_msg_.size())); |
| - |
| - EXPECT_EQ(net::ERR_IO_PENDING, |
| - data_reader_.ReadPacket(buffer_, read_cb2.callback())); |
| + data_reader_.ReadPacket(buffer_, read_cb2.callback()); |
| socket_cb.Run(kPacketHeaderSizeBytes); |
| socket_cb.Run(test_msg_.size()); |
| - rv = read_cb2.WaitForResult(); |
| - |
| - EXPECT_GT(rv, 0); |
| - EXPECT_EQ(rv, static_cast<int>(test_msg_.size())); |
| + EXPECT_EQ(net::OK, read_cb2.WaitForResult()); |
| + EXPECT_EQ(static_cast<int>(test_msg_.size()), buffer_->offset()); |
| EXPECT_TRUE(BufferStartsWith(buffer_.get(), test_msg_)); |
| } |
| @@ -250,7 +239,7 @@ TEST_F(StreamPacketReaderTest, PartialHeaderReadAsync) { |
| EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _)) |
| .WillOnce(Return(net::ERR_IO_PENDING)); |
| - EXPECT_EQ(net::ERR_IO_PENDING, ReadPacket()); |
| + ReadPacket(); |
| cb.Run(1); |
| cb.Run(kPacketHeaderSizeBytes - 1); |
| } |
| @@ -268,7 +257,7 @@ TEST_F(StreamPacketReaderTest, PartialPayloadReadAsync) { |
| EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _)) |
| .WillOnce(DoAll(FillBufferFromString<0>(test_msg_.substr(0, 1)), |
| SaveArg<2>(&cb), Return(net::ERR_IO_PENDING))); |
| - EXPECT_EQ(net::ERR_IO_PENDING, ReadPacket()); |
| + ReadPacket(); |
| EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size() - 1, _)) |
| .WillOnce(DoAll( |
| FillBufferFromString<0>(test_msg_.substr(1, test_msg_.size() - 1)), |
| @@ -276,10 +265,8 @@ TEST_F(StreamPacketReaderTest, PartialPayloadReadAsync) { |
| cb.Run(1); |
| cb.Run(test_msg_.size() - 1); |
| - int rv = callback_.WaitForResult(); |
| - |
| - EXPECT_GT(rv, 0); |
| - EXPECT_EQ(static_cast<int>(test_msg_.size()), rv); |
| + EXPECT_EQ(net::OK, callback_.WaitForResult()); |
| + EXPECT_EQ(static_cast<int>(test_msg_.size()), buffer_->offset()); |
| } |
| // Verify that synchronous header read errors are reported correctly. |
| @@ -287,7 +274,8 @@ TEST_F(StreamPacketReaderTest, ReadHeaderErrorSync) { |
| net::CompletionCallback cb; |
| EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _)) |
| .WillOnce(Return(net::ERR_FAILED)); |
| - EXPECT_EQ(net::ERR_FAILED, ReadPacket()); |
| + ReadPacket(); |
| + EXPECT_EQ(net::ERR_FAILED, callback_.WaitForResult()); |
| } |
| // Verify that synchronous payload read errors are reported correctly. |
| @@ -300,7 +288,8 @@ TEST_F(StreamPacketReaderTest, ReadPayloadErrorSync) { |
| EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _)) |
| .WillOnce(Return(net::ERR_FAILED)); |
| - EXPECT_EQ(net::ERR_FAILED, ReadPacket()); |
| + ReadPacket(); |
| + EXPECT_EQ(net::ERR_FAILED, callback_.WaitForResult()); |
| } |
| // Verify that async header read errors are reported correctly. |
| @@ -312,7 +301,7 @@ TEST_F(StreamPacketReaderTest, ReadHeaderErrorAsync) { |
| .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())), |
| SaveArg<2>(&cb), Return(net::ERR_IO_PENDING))); |
| - EXPECT_EQ(net::ERR_IO_PENDING, ReadPacket()); |
| + ReadPacket(); |
| cb.Run(net::ERR_FAILED); |
| EXPECT_EQ(net::ERR_FAILED, callback_.WaitForResult()); |
| } |
| @@ -327,7 +316,7 @@ TEST_F(StreamPacketReaderTest, ReadPayloadErrorAsync) { |
| EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _)) |
| .WillOnce(DoAll(SaveArg<2>(&cb), Return(net::ERR_IO_PENDING))); |
| - EXPECT_EQ(net::ERR_IO_PENDING, ReadPacket()); |
| + ReadPacket(); |
| cb.Run(net::ERR_FAILED); |
| EXPECT_EQ(net::ERR_FAILED, callback_.WaitForResult()); |
| } |
| @@ -343,8 +332,7 @@ TEST_F(StreamPacketReaderTest, ReaderDeletedDuringAsyncHeaderRead) { |
| .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())), |
| SaveArg<2>(&cb), Return(net::ERR_IO_PENDING))); |
| - EXPECT_EQ(net::ERR_IO_PENDING, |
| - reader->ReadPacket(buffer_, callback_.callback())); |
| + reader->ReadPacket(buffer_, callback_.callback()); |
| reader.reset(); // Delete the reader object. |
| cb.Run(kPacketHeaderSizeBytes); // Complete the socket operation. |
| } |
| @@ -360,8 +348,7 @@ TEST_F(StreamPacketReaderTest, ReaderDeletedDuringAsyncPayloadRead) { |
| Return(kPacketHeaderSizeBytes))); |
| EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _)) |
| .WillOnce(DoAll(SaveArg<2>(&cb), Return(net::ERR_IO_PENDING))); |
| - EXPECT_EQ(net::ERR_IO_PENDING, |
| - reader->ReadPacket(buffer_, callback_.callback())); |
| + reader->ReadPacket(buffer_, callback_.callback()); |
| reader.reset(); // Delete the reader object. |
| cb.Run(net::ERR_FAILED); // Complete the socket operation. |
| @@ -374,7 +361,8 @@ TEST_F(StreamPacketReaderTest, ReadWhatIsThisAPacketForAnts) { |
| Return(kPacketHeaderSizeBytes))) |
| .RetiresOnSaturation(); |
| - EXPECT_EQ(net::ERR_INVALID_RESPONSE, ReadPacket()); |
| + ReadPacket(); |
| + EXPECT_EQ(net::ERR_INVALID_RESPONSE, callback_.WaitForResult()); |
| } |
| // Verify that an illegally large payloads is reported as an erroneous inputs. |
| @@ -384,7 +372,8 @@ TEST_F(StreamPacketReaderTest, ReadErrorIllegallyLargePayload) { |
| DoAll(FillBufferFromString<0>(EncodeHeader(kTestMaxBufferSize + 1)), |
| Return(kPacketHeaderSizeBytes))); |
| - EXPECT_EQ(net::ERR_INVALID_RESPONSE, ReadPacket()); |
| + ReadPacket(); |
| + EXPECT_EQ(net::ERR_INVALID_RESPONSE, callback_.WaitForResult()); |
| } |
| } // namespace |