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

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

Issue 1113203002: Convert DnsTransactionTest to use SequencedSocketData (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and tweak 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/dns/dns_transaction_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/socket/socket_test_util.h" 5 #include "net/socket/socket_test_util.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 base::MessageLoop::current()->PostTask( 680 base::MessageLoop::current()->PostTask(
681 FROM_HERE, base::Bind(&SequencedSocketData::OnWriteComplete, 681 FROM_HERE, base::Bind(&SequencedSocketData::OnWriteComplete,
682 weak_factory_.GetWeakPtr())); 682 weak_factory_.GetWeakPtr()));
683 CHECK_NE(COMPLETING, read_state_); 683 CHECK_NE(COMPLETING, read_state_);
684 write_state_ = COMPLETING; 684 write_state_ = COMPLETING;
685 } 685 }
686 686
687 void SequencedSocketData::OnReadComplete() { 687 void SequencedSocketData::OnReadComplete() {
688 CHECK_EQ(COMPLETING, read_state_); 688 CHECK_EQ(COMPLETING, read_state_);
689 NET_TRACE(1, " *** ") << "Completing read for: " << sequence_number_; 689 NET_TRACE(1, " *** ") << "Completing read for: " << sequence_number_;
690 if (!socket()) {
691 NET_TRACE(1, " *** ") << "No socket available to complete read";
692 return;
693 }
694 690
695 MockRead data = helper_.AdvanceRead(); 691 MockRead data = helper_.AdvanceRead();
696 DCHECK_EQ(sequence_number_, data.sequence_number); 692 DCHECK_EQ(sequence_number_, data.sequence_number);
697 sequence_number_++; 693 sequence_number_++;
698 read_state_ = IDLE; 694 read_state_ = IDLE;
699 695
700 // The result of this read completing might trigger the completion 696 // The result of this read completing might trigger the completion
701 // of a pending write. If so, post a task to complete the write later. 697 // of a pending write. If so, post a task to complete the write later.
702 // Since the socket may call back into the SequencedSocketData 698 // Since the socket may call back into the SequencedSocketData
703 // from socket()->OnReadComplete(), trigger the write task to be posted 699 // from socket()->OnReadComplete(), trigger the write task to be posted
704 // before calling that. 700 // before calling that.
705 MaybePostWriteCompleteTask(); 701 MaybePostWriteCompleteTask();
706 702
703 if (!socket()) {
704 NET_TRACE(1, " *** ") << "No socket available to complete read";
705 return;
706 }
707
707 NET_TRACE(1, " *** ") << "Completing socket read for: " 708 NET_TRACE(1, " *** ") << "Completing socket read for: "
708 << data.sequence_number; 709 << data.sequence_number;
709 DumpMockReadWrite(data); 710 DumpMockReadWrite(data);
710 socket()->OnReadComplete(data); 711 socket()->OnReadComplete(data);
711 NET_TRACE(1, " *** ") << "Done"; 712 NET_TRACE(1, " *** ") << "Done";
712 } 713 }
713 714
714 void SequencedSocketData::OnWriteComplete() { 715 void SequencedSocketData::OnWriteComplete() {
715 CHECK_EQ(COMPLETING, write_state_); 716 CHECK_EQ(COMPLETING, write_state_);
716 NET_TRACE(1, " *** ") << " Completing write for: " << sequence_number_; 717 NET_TRACE(1, " *** ") << " Completing write for: " << sequence_number_;
717 if (!socket()) {
718 NET_TRACE(1, " *** ") << "No socket available to complete write.";
719 return;
720 }
721 718
722 const MockWrite& data = helper_.AdvanceWrite(); 719 const MockWrite& data = helper_.AdvanceWrite();
723 DCHECK_EQ(sequence_number_, data.sequence_number); 720 DCHECK_EQ(sequence_number_, data.sequence_number);
724 sequence_number_++; 721 sequence_number_++;
725 write_state_ = IDLE; 722 write_state_ = IDLE;
726 int rv = data.result == OK ? data.data_len : data.result; 723 int rv = data.result == OK ? data.data_len : data.result;
727 724
728 // The result of this write completing might trigger the completion 725 // The result of this write completing might trigger the completion
729 // of a pending read. If so, post a task to complete the read later. 726 // of a pending read. If so, post a task to complete the read later.
730 // Since the socket may call back into the SequencedSocketData 727 // Since the socket may call back into the SequencedSocketData
731 // from socket()->OnWriteComplete(), trigger the write task to be posted 728 // from socket()->OnWriteComplete(), trigger the write task to be posted
732 // before calling that. 729 // before calling that.
733 MaybePostReadCompleteTask(); 730 MaybePostReadCompleteTask();
734 731
732 if (!socket()) {
733 NET_TRACE(1, " *** ") << "No socket available to complete write";
734 return;
735 }
736
735 NET_TRACE(1, " *** ") << " Completing socket write for: " 737 NET_TRACE(1, " *** ") << " Completing socket write for: "
736 << data.sequence_number; 738 << data.sequence_number;
737 socket()->OnWriteComplete(rv); 739 socket()->OnWriteComplete(rv);
738 NET_TRACE(1, " *** ") << "Done"; 740 NET_TRACE(1, " *** ") << "Done";
739 } 741 }
740 742
741 SequencedSocketData::~SequencedSocketData() { 743 SequencedSocketData::~SequencedSocketData() {
742 } 744 }
743 745
744 DeterministicSocketData::DeterministicSocketData(MockRead* reads, 746 DeterministicSocketData::DeterministicSocketData(MockRead* reads,
(...skipping 1500 matching lines...) Expand 10 before | Expand all | Expand 10 after
2245 2247
2246 const char kSOCKS5OkRequest[] = 2248 const char kSOCKS5OkRequest[] =
2247 { 0x05, 0x01, 0x00, 0x03, 0x04, 'h', 'o', 's', 't', 0x00, 0x50 }; 2249 { 0x05, 0x01, 0x00, 0x03, 0x04, 'h', 'o', 's', 't', 0x00, 0x50 };
2248 const int kSOCKS5OkRequestLength = arraysize(kSOCKS5OkRequest); 2250 const int kSOCKS5OkRequestLength = arraysize(kSOCKS5OkRequest);
2249 2251
2250 const char kSOCKS5OkResponse[] = 2252 const char kSOCKS5OkResponse[] =
2251 { 0x05, 0x00, 0x00, 0x01, 127, 0, 0, 1, 0x00, 0x50 }; 2253 { 0x05, 0x00, 0x00, 0x01, 127, 0, 0, 1, 0x00, 0x50 };
2252 const int kSOCKS5OkResponseLength = arraysize(kSOCKS5OkResponse); 2254 const int kSOCKS5OkResponseLength = arraysize(kSOCKS5OkResponse);
2253 2255
2254 } // namespace net 2256 } // namespace net
OLDNEW
« no previous file with comments | « net/dns/dns_transaction_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698