OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/tools/quic/quic_time_wait_list_manager.h" | 5 #include "net/tools/quic/quic_time_wait_list_manager.h" |
6 | 6 |
7 #include <errno.h> | 7 #include <errno.h> |
8 #include <memory> | 8 #include <memory> |
9 | 9 |
10 #include "net/quic/core/crypto/crypto_protocol.h" | 10 #include "net/quic/core/crypto/crypto_protocol.h" |
11 #include "net/quic/core/crypto/null_encrypter.h" | 11 #include "net/quic/core/crypto/null_encrypter.h" |
12 #include "net/quic/core/crypto/quic_decrypter.h" | 12 #include "net/quic/core/crypto/quic_decrypter.h" |
13 #include "net/quic/core/crypto/quic_encrypter.h" | 13 #include "net/quic/core/crypto/quic_encrypter.h" |
14 #include "net/quic/core/quic_data_reader.h" | 14 #include "net/quic/core/quic_data_reader.h" |
15 #include "net/quic/core/quic_flags.h" | 15 #include "net/quic/core/quic_flags.h" |
16 #include "net/quic/core/quic_framer.h" | 16 #include "net/quic/core/quic_framer.h" |
17 #include "net/quic/core/quic_packet_writer.h" | 17 #include "net/quic/core/quic_packet_writer.h" |
18 #include "net/quic/core/quic_protocol.h" | 18 #include "net/quic/core/quic_protocol.h" |
19 #include "net/quic/core/quic_utils.h" | 19 #include "net/quic/core/quic_utils.h" |
20 #include "net/quic/test_tools/quic_test_utils.h" | 20 #include "net/quic/test_tools/quic_test_utils.h" |
| 21 #include "net/quic/test_tools/quic_time_wait_list_manager_peer.h" |
21 #include "net/tools/quic/quic_epoll_alarm_factory.h" | 22 #include "net/tools/quic/quic_epoll_alarm_factory.h" |
22 #include "net/tools/quic/quic_epoll_connection_helper.h" | 23 #include "net/tools/quic/quic_epoll_connection_helper.h" |
23 #include "net/tools/quic/test_tools/mock_epoll_server.h" | 24 #include "net/tools/quic/test_tools/mock_epoll_server.h" |
24 #include "net/tools/quic/test_tools/mock_quic_server_session_visitor.h" | 25 #include "net/tools/quic/test_tools/mock_quic_server_session_visitor.h" |
25 #include "testing/gmock/include/gmock/gmock.h" | 26 #include "testing/gmock/include/gmock/gmock.h" |
26 #include "testing/gtest/include/gtest/gtest.h" | 27 #include "testing/gtest/include/gtest/gtest.h" |
27 | 28 |
28 using net::test::kTestPort; | 29 using net::test::kTestPort; |
29 using net::test::BuildUnsizedDataPacket; | 30 using net::test::BuildUnsizedDataPacket; |
30 using net::test::NoOpFramerVisitor; | 31 using net::test::NoOpFramerVisitor; |
(...skipping 27 matching lines...) Expand all Loading... |
58 } | 59 } |
59 | 60 |
60 const QuicPublicResetPacket public_reset_packet() { | 61 const QuicPublicResetPacket public_reset_packet() { |
61 return public_reset_packet_; | 62 return public_reset_packet_; |
62 } | 63 } |
63 | 64 |
64 private: | 65 private: |
65 QuicPublicResetPacket public_reset_packet_; | 66 QuicPublicResetPacket public_reset_packet_; |
66 }; | 67 }; |
67 | 68 |
68 class QuicTimeWaitListManagerPeer { | |
69 public: | |
70 static bool ShouldSendResponse(QuicTimeWaitListManager* manager, | |
71 int received_packet_count) { | |
72 return manager->ShouldSendResponse(received_packet_count); | |
73 } | |
74 | |
75 static QuicTime::Delta time_wait_period(QuicTimeWaitListManager* manager) { | |
76 return manager->time_wait_period_; | |
77 } | |
78 | |
79 static QuicVersion GetQuicVersionFromConnectionId( | |
80 QuicTimeWaitListManager* manager, | |
81 QuicConnectionId connection_id) { | |
82 return manager->GetQuicVersionFromConnectionId(connection_id); | |
83 } | |
84 }; | |
85 | |
86 namespace { | 69 namespace { |
87 | 70 |
88 class MockFakeTimeEpollServer : public FakeTimeEpollServer { | 71 class MockFakeTimeEpollServer : public FakeTimeEpollServer { |
89 public: | 72 public: |
90 MOCK_METHOD2(RegisterAlarm, | 73 MOCK_METHOD2(RegisterAlarm, |
91 void(int64_t timeout_in_us, EpollAlarmCallbackInterface* alarm)); | 74 void(int64_t timeout_in_us, EpollAlarmCallbackInterface* alarm)); |
92 }; | 75 }; |
93 | 76 |
94 class QuicTimeWaitListManagerTest : public ::testing::Test { | 77 class QuicTimeWaitListManagerTest : public ::testing::Test { |
95 protected: | 78 protected: |
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 EXPECT_EQ(static_cast<size_t>(FLAGS_quic_time_wait_list_max_connections), | 533 EXPECT_EQ(static_cast<size_t>(FLAGS_quic_time_wait_list_max_connections), |
551 time_wait_list_manager_.num_connections()); | 534 time_wait_list_manager_.num_connections()); |
552 EXPECT_FALSE(IsConnectionIdInTimeWait(id_to_evict)); | 535 EXPECT_FALSE(IsConnectionIdInTimeWait(id_to_evict)); |
553 EXPECT_TRUE(IsConnectionIdInTimeWait(current_connection_id)); | 536 EXPECT_TRUE(IsConnectionIdInTimeWait(current_connection_id)); |
554 } | 537 } |
555 } | 538 } |
556 | 539 |
557 } // namespace | 540 } // namespace |
558 } // namespace test | 541 } // namespace test |
559 } // namespace net | 542 } // namespace net |
OLD | NEW |