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

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

Issue 1494813002: Fix HttpStreamParser::CanReuseConnection(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Bring back removed test Created 5 years 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
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 #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 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <cstring> 10 #include <cstring>
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 // Returns the buffer and result code for the next simulated read. 197 // Returns the buffer and result code for the next simulated read.
198 // If the |MockRead.result| is ERR_IO_PENDING, it informs the caller 198 // If the |MockRead.result| is ERR_IO_PENDING, it informs the caller
199 // that it will be called via the AsyncSocket::OnReadComplete() 199 // that it will be called via the AsyncSocket::OnReadComplete()
200 // function at a later time. 200 // function at a later time.
201 virtual MockRead OnRead() = 0; 201 virtual MockRead OnRead() = 0;
202 virtual MockWriteResult OnWrite(const std::string& data) = 0; 202 virtual MockWriteResult OnWrite(const std::string& data) = 0;
203 virtual void Reset() = 0; 203 virtual void Reset() = 0;
204 virtual bool AllReadDataConsumed() const = 0; 204 virtual bool AllReadDataConsumed() const = 0;
205 virtual bool AllWriteDataConsumed() const = 0; 205 virtual bool AllWriteDataConsumed() const = 0;
206 206
207 // Returns true if the request should be considered idle, for the purposes of
208 // IsConnectedAndIdle.
209 virtual bool IsIdle() const;
210
207 // Accessor for the socket which is using the SocketDataProvider. 211 // Accessor for the socket which is using the SocketDataProvider.
208 AsyncSocket* socket() { return socket_; } 212 AsyncSocket* socket() { return socket_; }
209 void set_socket(AsyncSocket* socket) { socket_ = socket; } 213 void set_socket(AsyncSocket* socket) { socket_ = socket; }
210 214
211 MockConnect connect_data() const { return connect_; } 215 MockConnect connect_data() const { return connect_; }
212 void set_connect_data(const MockConnect& connect) { connect_ = connect; } 216 void set_connect_data(const MockConnect& connect) { connect_ = connect; }
213 217
214 private: 218 private:
215 MockConnect connect_; 219 MockConnect connect_;
216 AsyncSocket* socket_; 220 AsyncSocket* socket_;
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 size_t writes_count); 361 size_t writes_count);
358 362
359 ~SequencedSocketData() override; 363 ~SequencedSocketData() override;
360 364
361 // SocketDataProviderBase implementation. 365 // SocketDataProviderBase implementation.
362 MockRead OnRead() override; 366 MockRead OnRead() override;
363 MockWriteResult OnWrite(const std::string& data) override; 367 MockWriteResult OnWrite(const std::string& data) override;
364 void Reset() override; 368 void Reset() override;
365 bool AllReadDataConsumed() const override; 369 bool AllReadDataConsumed() const override;
366 bool AllWriteDataConsumed() const override; 370 bool AllWriteDataConsumed() const override;
371 bool IsIdle() const override;
367 372
368 bool IsReadPaused(); 373 bool IsReadPaused();
369 void CompleteRead(); 374 void CompleteRead();
370 375
376 // When true, IsConnectedAndIdle() will return false if the next even in the
asanka 2015/12/03 17:41:56 *event
mmenke 2015/12/03 18:24:23 Done.
377 // sequence is a synchronous. Otherwise, the socket claims to be idle as
378 // long as it's connected. Defaults to false.
379 void set_busy_before_sync_reads(bool busy_before_sync_reads) {
380 busy_before_sync_reads_ = busy_before_sync_reads;
381 }
382
371 private: 383 private:
372 // Defines the state for the read or write path. 384 // Defines the state for the read or write path.
373 enum IoState { 385 enum IoState {
374 IDLE, // No async operation is in progress. 386 IDLE, // No async operation is in progress.
375 PENDING, // An async operation in waiting for another opteration to 387 PENDING, // An async operation in waiting for another opteration to
376 // complete. 388 // complete.
377 COMPLETING, // A task has been posted to complet an async operation. 389 COMPLETING, // A task has been posted to complet an async operation.
378 PAUSED, // IO is paused until CompleteRead() is called. 390 PAUSED, // IO is paused until CompleteRead() is called.
379 }; 391 };
380 392
381 void OnReadComplete(); 393 void OnReadComplete();
382 void OnWriteComplete(); 394 void OnWriteComplete();
383 395
384 void MaybePostReadCompleteTask(); 396 void MaybePostReadCompleteTask();
385 void MaybePostWriteCompleteTask(); 397 void MaybePostWriteCompleteTask();
386 398
387 StaticSocketDataHelper helper_; 399 StaticSocketDataHelper helper_;
388 int sequence_number_; 400 int sequence_number_;
389 IoState read_state_; 401 IoState read_state_;
390 IoState write_state_; 402 IoState write_state_;
391 403
404 bool busy_before_sync_reads_;
405
392 base::WeakPtrFactory<SequencedSocketData> weak_factory_; 406 base::WeakPtrFactory<SequencedSocketData> weak_factory_;
393 407
394 DISALLOW_COPY_AND_ASSIGN(SequencedSocketData); 408 DISALLOW_COPY_AND_ASSIGN(SequencedSocketData);
395 }; 409 };
396 410
397 class DeterministicMockTCPClientSocket; 411 class DeterministicMockTCPClientSocket;
398 412
399 // This class gives the user full control over the network activity, 413 // This class gives the user full control over the network activity,
400 // specifically the timing of the COMPLETION of I/O operations. Regardless of 414 // specifically the timing of the COMPLETION of I/O operations. Regardless of
401 // the order in which I/O operations are initiated, this class ensures that they 415 // the order in which I/O operations are initiated, this class ensures that they
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
891 int buf_len, 905 int buf_len,
892 const CompletionCallback& callback) override; 906 const CompletionCallback& callback) override;
893 int Write(IOBuffer* buf, 907 int Write(IOBuffer* buf,
894 int buf_len, 908 int buf_len,
895 const CompletionCallback& callback) override; 909 const CompletionCallback& callback) override;
896 910
897 // StreamSocket implementation. 911 // StreamSocket implementation.
898 int Connect(const CompletionCallback& callback) override; 912 int Connect(const CompletionCallback& callback) override;
899 void Disconnect() override; 913 void Disconnect() override;
900 bool IsConnected() const override; 914 bool IsConnected() const override;
915 bool IsConnectedAndIdle() const;
mmenke 2015/12/03 16:15:34 See comment in the unittest file for why I added t
901 bool WasEverUsed() const override; 916 bool WasEverUsed() const override;
902 bool UsingTCPFastOpen() const override; 917 bool UsingTCPFastOpen() const override;
903 int GetPeerAddress(IPEndPoint* address) const override; 918 int GetPeerAddress(IPEndPoint* address) const override;
904 bool GetSSLInfo(SSLInfo* ssl_info) override; 919 bool GetSSLInfo(SSLInfo* ssl_info) override;
905 920
906 // SSLClientSocket implementation. 921 // SSLClientSocket implementation.
907 void GetSSLCertRequestInfo(SSLCertRequestInfo* cert_request_info) override; 922 void GetSSLCertRequestInfo(SSLCertRequestInfo* cert_request_info) override;
908 NextProtoStatus GetNextProto(std::string* proto) const override; 923 NextProtoStatus GetNextProto(std::string* proto) const override;
909 924
910 // This MockSocket does not implement the manual async IO feature. 925 // This MockSocket does not implement the manual async IO feature.
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
1248 1263
1249 // Helper function to get the total data size of the MockReads in |reads|. 1264 // Helper function to get the total data size of the MockReads in |reads|.
1250 int64_t CountReadBytes(const MockRead reads[], size_t reads_size); 1265 int64_t CountReadBytes(const MockRead reads[], size_t reads_size);
1251 1266
1252 // Helper function to get the total data size of the MockWrites in |writes|. 1267 // Helper function to get the total data size of the MockWrites in |writes|.
1253 int64_t CountWriteBytes(const MockWrite writes[], size_t writes_size); 1268 int64_t CountWriteBytes(const MockWrite writes[], size_t writes_size);
1254 1269
1255 } // namespace net 1270 } // namespace net
1256 1271
1257 #endif // NET_SOCKET_SOCKET_TEST_UTIL_H_ 1272 #endif // NET_SOCKET_SOCKET_TEST_UTIL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698