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

Side by Side Diff: net/socket/sequenced_socket_data_unittest.cc

Issue 1129473002: Revert of Add CompleteRead to SequencedSocketData and convert all but 3 tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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
« no previous file with comments | « net/http/http_network_transaction_unittest.cc ('k') | net/socket/socket_test_util.h » ('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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 <string> 5 #include <string>
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 size_t writes_count); 187 size_t writes_count);
188 188
189 void AssertSyncReadEquals(const char* data, int len); 189 void AssertSyncReadEquals(const char* data, int len);
190 void AssertAsyncReadEquals(const char* data, int len); 190 void AssertAsyncReadEquals(const char* data, int len);
191 void AssertReadReturns(int len, int rv); 191 void AssertReadReturns(int len, int rv);
192 void AssertReadBufferEquals(const char* data, int len); 192 void AssertReadBufferEquals(const char* data, int len);
193 193
194 void AssertSyncWriteEquals(const char* data, int len); 194 void AssertSyncWriteEquals(const char* data, int len);
195 void AssertAsyncWriteEquals(const char* data, int len); 195 void AssertAsyncWriteEquals(const char* data, int len);
196 void AssertWriteReturns(const char* data, int len, int rv); 196 void AssertWriteReturns(const char* data, int len, int rv);
197 void CompleteRead();
198 197
199 // When a given test completes, data_.at_eof() is expected to 198 // When a given test completes, data_.at_eof() is expected to
200 // match the value specified here. Most test should consume all 199 // match the value specified here. Most test should consume all
201 // reads and writes, but some tests verify error handling behavior 200 // reads and writes, but some tests verify error handling behavior
202 // do not consume all data. 201 // do not consume all data.
203 void set_expect_eof(bool expect_eof) { expect_eof_ = expect_eof; } 202 void set_expect_eof(bool expect_eof) { expect_eof_ = expect_eof; }
204 203
205 TestCompletionCallback read_callback_; 204 TestCompletionCallback read_callback_;
206 scoped_refptr<IOBuffer> read_buf_; 205 scoped_refptr<IOBuffer> read_buf_;
207 TestCompletionCallback write_callback_; 206 TestCompletionCallback write_callback_;
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 int len) { 306 int len) {
308 // Issue the read, which should be completed asynchronously. 307 // Issue the read, which should be completed asynchronously.
309 AssertWriteReturns(data, len, ERR_IO_PENDING); 308 AssertWriteReturns(data, len, ERR_IO_PENDING);
310 309
311 EXPECT_FALSE(read_callback_.have_result()); 310 EXPECT_FALSE(read_callback_.have_result());
312 EXPECT_TRUE(sock_->IsConnected()); 311 EXPECT_TRUE(sock_->IsConnected());
313 312
314 ASSERT_EQ(len, write_callback_.WaitForResult()); 313 ASSERT_EQ(len, write_callback_.WaitForResult());
315 } 314 }
316 315
317 void SequencedSocketDataTest::CompleteRead() {
318 data_->CompleteRead();
319 }
320
321 void SequencedSocketDataTest::AssertWriteReturns(const char* data, 316 void SequencedSocketDataTest::AssertWriteReturns(const char* data,
322 int len, 317 int len,
323 int rv) { 318 int rv) {
324 scoped_refptr<IOBuffer> buf(new IOBuffer(len)); 319 scoped_refptr<IOBuffer> buf(new IOBuffer(len));
325 memcpy(buf->data(), data, len); 320 memcpy(buf->data(), data, len);
326 321
327 if (rv == ERR_IO_PENDING) { 322 if (rv == ERR_IO_PENDING) {
328 ASSERT_EQ(rv, sock_->Write(buf.get(), len, write_callback_.callback())); 323 ASSERT_EQ(rv, sock_->Write(buf.get(), len, write_callback_.callback()));
329 ASSERT_FALSE(write_callback_.have_result()); 324 ASSERT_FALSE(write_callback_.have_result());
330 } else { 325 } else {
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 ASSERT_EQ(ERR_IO_PENDING, 596 ASSERT_EQ(ERR_IO_PENDING,
602 sock_->Read(read_buf.get(), 1, read_callback_.callback())); 597 sock_->Read(read_buf.get(), 1, read_callback_.callback()));
603 ASSERT_FALSE(read_callback_.have_result()); 598 ASSERT_FALSE(read_callback_.have_result());
604 599
605 // Even though the read is scheduled to complete at sequence number 0, 600 // Even though the read is scheduled to complete at sequence number 0,
606 // verify that the read callback in never called. 601 // verify that the read callback in never called.
607 base::MessageLoop::current()->RunUntilIdle(); 602 base::MessageLoop::current()->RunUntilIdle();
608 ASSERT_FALSE(read_callback_.have_result()); 603 ASSERT_FALSE(read_callback_.have_result());
609 } 604 }
610 605
611 TEST_F(SequencedSocketDataTest, CompleteRead) {
612 MockRead reads[] = {
613 MockRead(ASYNC, ERR_IO_PENDING, 0), MockRead(ASYNC, kMsg1, kLen1, 1),
614 };
615
616 Initialize(reads, arraysize(reads), nullptr, 0);
617
618 AssertReadReturns(kLen1, ERR_IO_PENDING);
619 ASSERT_FALSE(read_callback_.have_result());
620
621 // Even though the read is scheduled to complete at sequence number 0,
622 // verify that the read callback in not called, until CompleteRead() is.
623 base::MessageLoop::current()->RunUntilIdle();
624 ASSERT_FALSE(read_callback_.have_result());
625
626 CompleteRead();
627
628 ASSERT_TRUE(read_callback_.have_result());
629 ASSERT_EQ(kLen1, read_callback_.WaitForResult());
630 AssertReadBufferEquals(kMsg1, kLen1);
631 }
632
633 // ----------- Write 606 // ----------- Write
634 607
635 TEST_F(SequencedSocketDataTest, SingleSyncWriteTooEarly) { 608 TEST_F(SequencedSocketDataTest, SingleSyncWriteTooEarly) {
636 MockWrite writes[] = { 609 MockWrite writes[] = {
637 MockWrite(SYNCHRONOUS, kMsg1, kLen1, 1), 610 MockWrite(SYNCHRONOUS, kMsg1, kLen1, 1),
638 }; 611 };
639 612
640 MockRead reads[] = {MockRead(SYNCHRONOUS, 0, 0)}; 613 MockRead reads[] = {MockRead(SYNCHRONOUS, 0, 0)};
641 614
642 Initialize(reads, arraysize(reads), writes, arraysize(writes)); 615 Initialize(reads, arraysize(reads), writes, arraysize(writes));
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after
1093 1066
1094 ASSERT_EQ(ERR_IO_PENDING, 1067 ASSERT_EQ(ERR_IO_PENDING,
1095 sock_->Read(helper.read_buf().get(), kLen1, helper.callback())); 1068 sock_->Read(helper.read_buf().get(), kLen1, helper.callback()));
1096 1069
1097 base::MessageLoop::current()->RunUntilIdle(); 1070 base::MessageLoop::current()->RunUntilIdle();
1098 } 1071 }
1099 1072
1100 } // namespace 1073 } // namespace
1101 1074
1102 } // namespace net 1075 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_network_transaction_unittest.cc ('k') | net/socket/socket_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698