OLD | NEW |
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 // Common utilities for Quic tests | 5 // Common utilities for Quic tests |
6 | 6 |
7 #ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ | 7 #ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ |
8 #define NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ | 8 #define NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ |
9 | 9 |
10 #include <stddef.h> | 10 #include <stddef.h> |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
311 private: | 311 private: |
312 DISALLOW_COPY_AND_ASSIGN(MockConnectionVisitor); | 312 DISALLOW_COPY_AND_ASSIGN(MockConnectionVisitor); |
313 }; | 313 }; |
314 | 314 |
315 class MockConnectionHelper : public QuicConnectionHelperInterface { | 315 class MockConnectionHelper : public QuicConnectionHelperInterface { |
316 public: | 316 public: |
317 MockConnectionHelper(); | 317 MockConnectionHelper(); |
318 ~MockConnectionHelper() override; | 318 ~MockConnectionHelper() override; |
319 const QuicClock* GetClock() const override; | 319 const QuicClock* GetClock() const override; |
320 QuicRandom* GetRandomGenerator() override; | 320 QuicRandom* GetRandomGenerator() override; |
| 321 QuicBufferAllocator* GetBufferAllocator() override; |
| 322 void AdvanceTime(QuicTime::Delta delta); |
| 323 |
| 324 private: |
| 325 MockClock clock_; |
| 326 MockRandom random_generator_; |
| 327 SimpleBufferAllocator buffer_allocator_; |
| 328 |
| 329 DISALLOW_COPY_AND_ASSIGN(MockConnectionHelper); |
| 330 }; |
| 331 |
| 332 class MockAlarmFactory : public QuicAlarmFactory { |
| 333 public: |
321 QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate) override; | 334 QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate) override; |
322 QuicArenaScopedPtr<QuicAlarm> CreateAlarm( | 335 QuicArenaScopedPtr<QuicAlarm> CreateAlarm( |
323 QuicArenaScopedPtr<QuicAlarm::Delegate> delegate, | 336 QuicArenaScopedPtr<QuicAlarm::Delegate> delegate, |
324 QuicConnectionArena* arena) override; | 337 QuicConnectionArena* arena) override; |
325 QuicBufferAllocator* GetBufferAllocator() override; | |
326 void AdvanceTime(QuicTime::Delta delta); | |
327 | 338 |
328 // No-op alarm implementation | 339 // No-op alarm implementation |
329 class TestAlarm : public QuicAlarm { | 340 class TestAlarm : public QuicAlarm { |
330 public: | 341 public: |
331 explicit TestAlarm(QuicArenaScopedPtr<QuicAlarm::Delegate> delegate) | 342 explicit TestAlarm(QuicArenaScopedPtr<QuicAlarm::Delegate> delegate) |
332 : QuicAlarm(std::move(delegate)) {} | 343 : QuicAlarm(std::move(delegate)) {} |
333 | 344 |
334 void SetImpl() override {} | 345 void SetImpl() override {} |
335 void CancelImpl() override {} | 346 void CancelImpl() override {} |
336 | 347 |
337 using QuicAlarm::Fire; | 348 using QuicAlarm::Fire; |
338 }; | 349 }; |
339 | 350 |
340 void FireAlarm(QuicAlarm* alarm) { | 351 void FireAlarm(QuicAlarm* alarm) { |
341 reinterpret_cast<TestAlarm*>(alarm)->Fire(); | 352 reinterpret_cast<TestAlarm*>(alarm)->Fire(); |
342 } | 353 } |
343 | |
344 private: | |
345 MockClock clock_; | |
346 MockRandom random_generator_; | |
347 SimpleBufferAllocator buffer_allocator_; | |
348 | |
349 DISALLOW_COPY_AND_ASSIGN(MockConnectionHelper); | |
350 }; | 354 }; |
351 | 355 |
352 class MockConnection : public QuicConnection { | 356 class MockConnection : public QuicConnection { |
353 public: | 357 public: |
354 // Uses a ConnectionId of 42 and 127.0.0.1:123. | 358 // Uses a ConnectionId of 42 and 127.0.0.1:123. |
355 MockConnection(MockConnectionHelper* helper, Perspective perspective); | 359 MockConnection(MockConnectionHelper* helper, |
| 360 MockAlarmFactory* alarm_factory, |
| 361 Perspective perspective); |
356 | 362 |
357 // Uses a ConnectionId of 42. | 363 // Uses a ConnectionId of 42. |
358 MockConnection(IPEndPoint address, | 364 MockConnection(IPEndPoint address, |
359 MockConnectionHelper* helper, | 365 MockConnectionHelper* helper, |
| 366 MockAlarmFactory* alarm_factory, |
360 Perspective perspective); | 367 Perspective perspective); |
361 | 368 |
362 // Uses 127.0.0.1:123. | 369 // Uses 127.0.0.1:123. |
363 MockConnection(QuicConnectionId connection_id, | 370 MockConnection(QuicConnectionId connection_id, |
364 MockConnectionHelper* helper, | 371 MockConnectionHelper* helper, |
| 372 MockAlarmFactory* alarm_factory, |
365 Perspective perspective); | 373 Perspective perspective); |
366 | 374 |
367 // Uses a ConnectionId of 42, and 127.0.0.1:123. | 375 // Uses a ConnectionId of 42, and 127.0.0.1:123. |
368 MockConnection(MockConnectionHelper* helper, | 376 MockConnection(MockConnectionHelper* helper, |
| 377 MockAlarmFactory* alarm_factory, |
369 Perspective perspective, | 378 Perspective perspective, |
370 const QuicVersionVector& supported_versions); | 379 const QuicVersionVector& supported_versions); |
371 | 380 |
372 MockConnection(QuicConnectionId connection_id, | 381 MockConnection(QuicConnectionId connection_id, |
373 IPEndPoint address, | 382 IPEndPoint address, |
374 MockConnectionHelper* helper, | 383 MockConnectionHelper* helper, |
| 384 MockAlarmFactory* alarm_factory, |
375 Perspective perspective, | 385 Perspective perspective, |
376 const QuicVersionVector& supported_versions); | 386 const QuicVersionVector& supported_versions); |
377 | 387 |
378 ~MockConnection() override; | 388 ~MockConnection() override; |
379 | 389 |
380 // If the constructor that uses a MockConnectionHelper has been used then | 390 // If the constructor that uses a MockConnectionHelper has been used then |
381 // this method | 391 // this method |
382 // will advance the time of the MockClock. | 392 // will advance the time of the MockClock. |
383 void AdvanceTime(QuicTime::Delta delta); | 393 void AdvanceTime(QuicTime::Delta delta); |
384 | 394 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 const std::string& reason) { | 438 const std::string& reason) { |
429 QuicConnection::SendGoAway(error, last_good_stream_id, reason); | 439 QuicConnection::SendGoAway(error, last_good_stream_id, reason); |
430 } | 440 } |
431 | 441 |
432 private: | 442 private: |
433 DISALLOW_COPY_AND_ASSIGN(MockConnection); | 443 DISALLOW_COPY_AND_ASSIGN(MockConnection); |
434 }; | 444 }; |
435 | 445 |
436 class PacketSavingConnection : public MockConnection { | 446 class PacketSavingConnection : public MockConnection { |
437 public: | 447 public: |
438 PacketSavingConnection(MockConnectionHelper* helper, Perspective perspective); | 448 PacketSavingConnection(MockConnectionHelper* helper, |
| 449 MockAlarmFactory* alarm_factory, |
| 450 Perspective perspective); |
439 | 451 |
440 PacketSavingConnection(MockConnectionHelper* helper, | 452 PacketSavingConnection(MockConnectionHelper* helper, |
| 453 MockAlarmFactory* alarm_factory, |
441 Perspective perspective, | 454 Perspective perspective, |
442 const QuicVersionVector& supported_versions); | 455 const QuicVersionVector& supported_versions); |
443 | 456 |
444 ~PacketSavingConnection() override; | 457 ~PacketSavingConnection() override; |
445 | 458 |
446 void SendOrQueuePacket(SerializedPacket* packet) override; | 459 void SendOrQueuePacket(SerializedPacket* packet) override; |
447 | 460 |
448 std::vector<QuicEncryptedPacket*> encrypted_packets_; | 461 std::vector<QuicEncryptedPacket*> encrypted_packets_; |
449 | 462 |
450 private: | 463 private: |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
784 // client_connection: Pointer reference for newly created | 797 // client_connection: Pointer reference for newly created |
785 // connection. This object will be owned by the | 798 // connection. This object will be owned by the |
786 // client_session. | 799 // client_session. |
787 // client_session: Pointer reference for the newly created client | 800 // client_session: Pointer reference for the newly created client |
788 // session. The new object will be owned by the caller. | 801 // session. The new object will be owned by the caller. |
789 void CreateClientSessionForTest(QuicServerId server_id, | 802 void CreateClientSessionForTest(QuicServerId server_id, |
790 bool supports_stateless_rejects, | 803 bool supports_stateless_rejects, |
791 QuicTime::Delta connection_start_time, | 804 QuicTime::Delta connection_start_time, |
792 QuicVersionVector supported_versions, | 805 QuicVersionVector supported_versions, |
793 MockConnectionHelper* helper, | 806 MockConnectionHelper* helper, |
| 807 MockAlarmFactory* alarm_factory, |
794 QuicCryptoClientConfig* crypto_client_config, | 808 QuicCryptoClientConfig* crypto_client_config, |
795 PacketSavingConnection** client_connection, | 809 PacketSavingConnection** client_connection, |
796 TestQuicSpdyClientSession** client_session); | 810 TestQuicSpdyClientSession** client_session); |
797 | 811 |
798 // Creates a server session for testing. | 812 // Creates a server session for testing. |
799 // | 813 // |
800 // server_id: The server id associated with this stream. | 814 // server_id: The server id associated with this stream. |
801 // connection_start_time: The time to set for the connection clock. | 815 // connection_start_time: The time to set for the connection clock. |
802 // Needed for strike-register nonce verification. The server | 816 // Needed for strike-register nonce verification. The server |
803 // connection_start_time should be synchronized witht the client | 817 // connection_start_time should be synchronized witht the client |
804 // start time, otherwise nonce verification will fail. | 818 // start time, otherwise nonce verification will fail. |
805 // supported_versions: Set of QUIC versions this server supports. | 819 // supported_versions: Set of QUIC versions this server supports. |
806 // helper: Pointer to the MockConnectionHelper to use for the session. | 820 // helper: Pointer to the MockConnectionHelper to use for the session. |
807 // crypto_server_config: Pointer to the crypto server config. | 821 // crypto_server_config: Pointer to the crypto server config. |
808 // server_connection: Pointer reference for newly created | 822 // server_connection: Pointer reference for newly created |
809 // connection. This object will be owned by the | 823 // connection. This object will be owned by the |
810 // server_session. | 824 // server_session. |
811 // server_session: Pointer reference for the newly created server | 825 // server_session: Pointer reference for the newly created server |
812 // session. The new object will be owned by the caller. | 826 // session. The new object will be owned by the caller. |
813 void CreateServerSessionForTest( | 827 void CreateServerSessionForTest( |
814 QuicServerId server_id, | 828 QuicServerId server_id, |
815 QuicTime::Delta connection_start_time, | 829 QuicTime::Delta connection_start_time, |
816 QuicVersionVector supported_versions, | 830 QuicVersionVector supported_versions, |
817 MockConnectionHelper* helper, | 831 MockConnectionHelper* helper, |
| 832 MockAlarmFactory* alarm_factory, |
818 QuicCryptoServerConfig* crypto_server_config, | 833 QuicCryptoServerConfig* crypto_server_config, |
819 QuicCompressedCertsCache* compressed_certs_cache, | 834 QuicCompressedCertsCache* compressed_certs_cache, |
820 PacketSavingConnection** server_connection, | 835 PacketSavingConnection** server_connection, |
821 TestQuicSpdyServerSession** server_session); | 836 TestQuicSpdyServerSession** server_session); |
822 | 837 |
823 // Helper to generate client side stream ids, generalizes | 838 // Helper to generate client side stream ids, generalizes |
824 // kClientDataStreamId1 etc. above. | 839 // kClientDataStreamId1 etc. above. |
825 QuicStreamId QuicClientDataStreamId(int i); | 840 QuicStreamId QuicClientDataStreamId(int i); |
826 | 841 |
827 } // namespace test | 842 } // namespace test |
828 } // namespace net | 843 } // namespace net |
829 | 844 |
830 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ | 845 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ |
OLD | NEW |