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

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

Issue 3859003: FBTF: Even more ctor/virtual deinlining. (Closed) Base URL: http://git.chromium.org/git/chromium.git
Patch Set: Created 10 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #ifndef NET_SOCKET_SOCKET_TEST_UTIL_H_ 5 #ifndef NET_SOCKET_SOCKET_TEST_UTIL_H_
6 #define NET_SOCKET_SOCKET_TEST_UTIL_H_ 6 #define NET_SOCKET_SOCKET_TEST_UTIL_H_
7 #pragma once 7 #pragma once
8 8
9 #include <cstring> 9 #include <cstring>
10 #include <deque> 10 #include <deque>
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 MockConnect connect_; 155 MockConnect connect_;
156 MockClientSocket* socket_; 156 MockClientSocket* socket_;
157 157
158 DISALLOW_COPY_AND_ASSIGN(SocketDataProvider); 158 DISALLOW_COPY_AND_ASSIGN(SocketDataProvider);
159 }; 159 };
160 160
161 // SocketDataProvider which responds based on static tables of mock reads and 161 // SocketDataProvider which responds based on static tables of mock reads and
162 // writes. 162 // writes.
163 class StaticSocketDataProvider : public SocketDataProvider { 163 class StaticSocketDataProvider : public SocketDataProvider {
164 public: 164 public:
165 StaticSocketDataProvider() : reads_(NULL), read_index_(0), read_count_(0), 165 StaticSocketDataProvider();
166 writes_(NULL), write_index_(0), write_count_(0) {}
167 StaticSocketDataProvider(MockRead* reads, size_t reads_count, 166 StaticSocketDataProvider(MockRead* reads, size_t reads_count,
168 MockWrite* writes, size_t writes_count) 167 MockWrite* writes, size_t writes_count);
169 : reads_(reads), 168 virtual ~StaticSocketDataProvider();
170 read_index_(0),
171 read_count_(reads_count),
172 writes_(writes),
173 write_index_(0),
174 write_count_(writes_count) {
175 }
176 virtual ~StaticSocketDataProvider() {}
177 169
178 // SocketDataProvider methods: 170 // SocketDataProvider methods:
179 virtual MockRead GetNextRead(); 171 virtual MockRead GetNextRead();
180 virtual MockWriteResult OnWrite(const std::string& data); 172 virtual MockWriteResult OnWrite(const std::string& data);
181 virtual void Reset(); 173 virtual void Reset();
182 174
183 // These functions get access to the next available read and write data. 175 // These functions get access to the next available read and write data.
184 const MockRead& PeekRead() const; 176 const MockRead& PeekRead() const;
185 const MockWrite& PeekWrite() const; 177 const MockWrite& PeekWrite() const;
186 // These functions get random access to the read and write data, for timing. 178 // These functions get random access to the read and write data, for timing.
(...skipping 18 matching lines...) Expand all
205 DISALLOW_COPY_AND_ASSIGN(StaticSocketDataProvider); 197 DISALLOW_COPY_AND_ASSIGN(StaticSocketDataProvider);
206 }; 198 };
207 199
208 // SocketDataProvider which can make decisions about next mock reads based on 200 // SocketDataProvider which can make decisions about next mock reads based on
209 // received writes. It can also be used to enforce order of operations, for 201 // received writes. It can also be used to enforce order of operations, for
210 // example that tested code must send the "Hello!" message before receiving 202 // example that tested code must send the "Hello!" message before receiving
211 // response. This is useful for testing conversation-like protocols like FTP. 203 // response. This is useful for testing conversation-like protocols like FTP.
212 class DynamicSocketDataProvider : public SocketDataProvider { 204 class DynamicSocketDataProvider : public SocketDataProvider {
213 public: 205 public:
214 DynamicSocketDataProvider(); 206 DynamicSocketDataProvider();
207 virtual ~DynamicSocketDataProvider();
215 208
216 // SocketDataProvider methods: 209 // SocketDataProvider methods:
217 virtual MockRead GetNextRead(); 210 virtual MockRead GetNextRead();
218 virtual MockWriteResult OnWrite(const std::string& data) = 0; 211 virtual MockWriteResult OnWrite(const std::string& data) = 0;
219 virtual void Reset(); 212 virtual void Reset();
220 213
221 int short_read_limit() const { return short_read_limit_; } 214 int short_read_limit() const { return short_read_limit_; }
222 void set_short_read_limit(int limit) { short_read_limit_ = limit; } 215 void set_short_read_limit(int limit) { short_read_limit_ = limit; }
223 216
224 void allow_unconsumed_reads(bool allow) { allow_unconsumed_reads_ = allow; } 217 void allow_unconsumed_reads(bool allow) { allow_unconsumed_reads_ = allow; }
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 void SetCompletionCallback(CompletionCallback* callback) { 329 void SetCompletionCallback(CompletionCallback* callback) {
337 callback_ = callback; 330 callback_ = callback;
338 } 331 }
339 332
340 // Posts a quit message to the current message loop, if one is running. 333 // Posts a quit message to the current message loop, if one is running.
341 void EndLoop(); 334 void EndLoop();
342 335
343 void CompleteRead(); 336 void CompleteRead();
344 337
345 private: 338 private:
339 friend class base::RefCounted<OrderedSocketData>;
340 virtual ~OrderedSocketData();
341
346 int sequence_number_; 342 int sequence_number_;
347 int loop_stop_stage_; 343 int loop_stop_stage_;
348 CompletionCallback* callback_; 344 CompletionCallback* callback_;
349 bool blocked_; 345 bool blocked_;
350 ScopedRunnableMethodFactory<OrderedSocketData> factory_; 346 ScopedRunnableMethodFactory<OrderedSocketData> factory_;
351 }; 347 };
352 348
353 class DeterministicMockTCPClientSocket; 349 class DeterministicMockTCPClientSocket;
354 350
355 // This class gives the user full control over the network activity, 351 // This class gives the user full control over the network activity,
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 class MockTCPClientSocket; 502 class MockTCPClientSocket;
507 class MockSSLClientSocket; 503 class MockSSLClientSocket;
508 504
509 // ClientSocketFactory which contains arrays of sockets of each type. 505 // ClientSocketFactory which contains arrays of sockets of each type.
510 // You should first fill the arrays using AddMock{SSL,}Socket. When the factory 506 // You should first fill the arrays using AddMock{SSL,}Socket. When the factory
511 // is asked to create a socket, it takes next entry from appropriate array. 507 // is asked to create a socket, it takes next entry from appropriate array.
512 // You can use ResetNextMockIndexes to reset that next entry index for all mock 508 // You can use ResetNextMockIndexes to reset that next entry index for all mock
513 // socket types. 509 // socket types.
514 class MockClientSocketFactory : public ClientSocketFactory { 510 class MockClientSocketFactory : public ClientSocketFactory {
515 public: 511 public:
512 MockClientSocketFactory();
513 virtual ~MockClientSocketFactory();
514
516 void AddSocketDataProvider(SocketDataProvider* socket); 515 void AddSocketDataProvider(SocketDataProvider* socket);
517 void AddSSLSocketDataProvider(SSLSocketDataProvider* socket); 516 void AddSSLSocketDataProvider(SSLSocketDataProvider* socket);
518 void ResetNextMockIndexes(); 517 void ResetNextMockIndexes();
519 518
520 // Return |index|-th MockTCPClientSocket (starting from 0) that the factory 519 // Return |index|-th MockTCPClientSocket (starting from 0) that the factory
521 // created. 520 // created.
522 MockTCPClientSocket* GetMockTCPClientSocket(size_t index) const; 521 MockTCPClientSocket* GetMockTCPClientSocket(size_t index) const;
523 522
524 // Return |index|-th MockSSLClientSocket (starting from 0) that the factory 523 // Return |index|-th MockSSLClientSocket (starting from 0) that the factory
525 // created. 524 // created.
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 std::vector<TestSocketRequest*> request_order_; 795 std::vector<TestSocketRequest*> request_order_;
797 size_t completion_count_; 796 size_t completion_count_;
798 }; 797 };
799 798
800 class MockTCPClientSocketPool : public TCPClientSocketPool { 799 class MockTCPClientSocketPool : public TCPClientSocketPool {
801 public: 800 public:
802 class MockConnectJob { 801 class MockConnectJob {
803 public: 802 public:
804 MockConnectJob(ClientSocket* socket, ClientSocketHandle* handle, 803 MockConnectJob(ClientSocket* socket, ClientSocketHandle* handle,
805 CompletionCallback* callback); 804 CompletionCallback* callback);
805 ~MockConnectJob();
806 806
807 int Connect(); 807 int Connect();
808 bool CancelHandle(const ClientSocketHandle* handle); 808 bool CancelHandle(const ClientSocketHandle* handle);
809 809
810 private: 810 private:
811 void OnConnect(int rv); 811 void OnConnect(int rv);
812 812
813 scoped_ptr<ClientSocket> socket_; 813 scoped_ptr<ClientSocket> socket_;
814 ClientSocketHandle* handle_; 814 ClientSocketHandle* handle_;
815 CompletionCallback* user_callback_; 815 CompletionCallback* user_callback_;
(...skipping 30 matching lines...) Expand all
846 ClientSocketFactory* client_socket_factory_; 846 ClientSocketFactory* client_socket_factory_;
847 ScopedVector<MockConnectJob> job_list_; 847 ScopedVector<MockConnectJob> job_list_;
848 int release_count_; 848 int release_count_;
849 int cancel_count_; 849 int cancel_count_;
850 850
851 DISALLOW_COPY_AND_ASSIGN(MockTCPClientSocketPool); 851 DISALLOW_COPY_AND_ASSIGN(MockTCPClientSocketPool);
852 }; 852 };
853 853
854 class DeterministicMockClientSocketFactory : public ClientSocketFactory { 854 class DeterministicMockClientSocketFactory : public ClientSocketFactory {
855 public: 855 public:
856 DeterministicMockClientSocketFactory();
857 virtual ~DeterministicMockClientSocketFactory();
858
856 void AddSocketDataProvider(DeterministicSocketData* socket); 859 void AddSocketDataProvider(DeterministicSocketData* socket);
857 void AddSSLSocketDataProvider(SSLSocketDataProvider* socket); 860 void AddSSLSocketDataProvider(SSLSocketDataProvider* socket);
858 void ResetNextMockIndexes(); 861 void ResetNextMockIndexes();
859 862
860 // Return |index|-th MockSSLClientSocket (starting from 0) that the factory 863 // Return |index|-th MockSSLClientSocket (starting from 0) that the factory
861 // created. 864 // created.
862 MockSSLClientSocket* GetMockSSLClientSocket(size_t index) const; 865 MockSSLClientSocket* GetMockSSLClientSocket(size_t index) const;
863 866
864 // ClientSocketFactory 867 // ClientSocketFactory
865 virtual ClientSocket* CreateTCPClientSocket(const AddressList& addresses, 868 virtual ClientSocket* CreateTCPClientSocket(const AddressList& addresses,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
924 927
925 extern const char kSOCKS5OkRequest[]; 928 extern const char kSOCKS5OkRequest[];
926 extern const int kSOCKS5OkRequestLength; 929 extern const int kSOCKS5OkRequestLength;
927 930
928 extern const char kSOCKS5OkResponse[]; 931 extern const char kSOCKS5OkResponse[];
929 extern const int kSOCKS5OkResponseLength; 932 extern const int kSOCKS5OkResponseLength;
930 933
931 } // namespace net 934 } // namespace net
932 935
933 #endif // NET_SOCKET_SOCKET_TEST_UTIL_H_ 936 #endif // NET_SOCKET_SOCKET_TEST_UTIL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698