| OLD | NEW |
| 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 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_epoll_alarm_factory.h" | 5 #include "net/tools/quic/quic_epoll_alarm_factory.h" |
| 6 | 6 |
| 7 #include "net/tools/quic/quic_epoll_clock.h" | 7 #include "net/tools/quic/quic_epoll_clock.h" |
| 8 #include "net/tools/quic/test_tools/mock_epoll_server.h" | 8 #include "net/tools/quic/test_tools/mock_epoll_server.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 }; | 41 }; |
| 42 | 42 |
| 43 TEST_P(QuicEpollAlarmFactoryTest, CreateAlarm) { | 43 TEST_P(QuicEpollAlarmFactoryTest, CreateAlarm) { |
| 44 QuicArenaScopedPtr<TestDelegate> delegate = | 44 QuicArenaScopedPtr<TestDelegate> delegate = |
| 45 QuicArenaScopedPtr<TestDelegate>(new TestDelegate()); | 45 QuicArenaScopedPtr<TestDelegate>(new TestDelegate()); |
| 46 QuicArenaScopedPtr<QuicAlarm> alarm( | 46 QuicArenaScopedPtr<QuicAlarm> alarm( |
| 47 alarm_factory_.CreateAlarm(std::move(delegate), GetArenaParam())); | 47 alarm_factory_.CreateAlarm(std::move(delegate), GetArenaParam())); |
| 48 | 48 |
| 49 QuicTime start = clock_.Now(); | 49 QuicTime start = clock_.Now(); |
| 50 QuicTime::Delta delta = QuicTime::Delta::FromMicroseconds(1); | 50 QuicTime::Delta delta = QuicTime::Delta::FromMicroseconds(1); |
| 51 alarm->Set(start.Add(delta)); | 51 alarm->Set(start + delta); |
| 52 | 52 |
| 53 epoll_server_.AdvanceByAndWaitForEventsAndExecuteCallbacks( | 53 epoll_server_.AdvanceByAndWaitForEventsAndExecuteCallbacks( |
| 54 delta.ToMicroseconds()); | 54 delta.ToMicroseconds()); |
| 55 EXPECT_EQ(start.Add(delta), clock_.Now()); | 55 EXPECT_EQ(start + delta, clock_.Now()); |
| 56 } | 56 } |
| 57 | 57 |
| 58 TEST_P(QuicEpollAlarmFactoryTest, CreateAlarmAndCancel) { | 58 TEST_P(QuicEpollAlarmFactoryTest, CreateAlarmAndCancel) { |
| 59 QuicArenaScopedPtr<TestDelegate> delegate = | 59 QuicArenaScopedPtr<TestDelegate> delegate = |
| 60 QuicArenaScopedPtr<TestDelegate>(new TestDelegate()); | 60 QuicArenaScopedPtr<TestDelegate>(new TestDelegate()); |
| 61 TestDelegate* unowned_delegate = delegate.get(); | 61 TestDelegate* unowned_delegate = delegate.get(); |
| 62 QuicArenaScopedPtr<QuicAlarm> alarm( | 62 QuicArenaScopedPtr<QuicAlarm> alarm( |
| 63 alarm_factory_.CreateAlarm(std::move(delegate), GetArenaParam())); | 63 alarm_factory_.CreateAlarm(std::move(delegate), GetArenaParam())); |
| 64 | 64 |
| 65 QuicTime start = clock_.Now(); | 65 QuicTime start = clock_.Now(); |
| 66 QuicTime::Delta delta = QuicTime::Delta::FromMicroseconds(1); | 66 QuicTime::Delta delta = QuicTime::Delta::FromMicroseconds(1); |
| 67 alarm->Set(start.Add(delta)); | 67 alarm->Set(start + delta); |
| 68 alarm->Cancel(); | 68 alarm->Cancel(); |
| 69 | 69 |
| 70 epoll_server_.AdvanceByExactlyAndCallCallbacks(delta.ToMicroseconds()); | 70 epoll_server_.AdvanceByExactlyAndCallCallbacks(delta.ToMicroseconds()); |
| 71 EXPECT_EQ(start.Add(delta), clock_.Now()); | 71 EXPECT_EQ(start + delta, clock_.Now()); |
| 72 EXPECT_FALSE(unowned_delegate->fired()); | 72 EXPECT_FALSE(unowned_delegate->fired()); |
| 73 } | 73 } |
| 74 | 74 |
| 75 TEST_P(QuicEpollAlarmFactoryTest, CreateAlarmAndReset) { | 75 TEST_P(QuicEpollAlarmFactoryTest, CreateAlarmAndReset) { |
| 76 QuicArenaScopedPtr<TestDelegate> delegate = | 76 QuicArenaScopedPtr<TestDelegate> delegate = |
| 77 QuicArenaScopedPtr<TestDelegate>(new TestDelegate()); | 77 QuicArenaScopedPtr<TestDelegate>(new TestDelegate()); |
| 78 TestDelegate* unowned_delegate = delegate.get(); | 78 TestDelegate* unowned_delegate = delegate.get(); |
| 79 QuicArenaScopedPtr<QuicAlarm> alarm( | 79 QuicArenaScopedPtr<QuicAlarm> alarm( |
| 80 alarm_factory_.CreateAlarm(std::move(delegate), GetArenaParam())); | 80 alarm_factory_.CreateAlarm(std::move(delegate), GetArenaParam())); |
| 81 | 81 |
| 82 QuicTime start = clock_.Now(); | 82 QuicTime start = clock_.Now(); |
| 83 QuicTime::Delta delta = QuicTime::Delta::FromMicroseconds(1); | 83 QuicTime::Delta delta = QuicTime::Delta::FromMicroseconds(1); |
| 84 alarm->Set(clock_.Now().Add(delta)); | 84 alarm->Set(clock_.Now() + delta); |
| 85 alarm->Cancel(); | 85 alarm->Cancel(); |
| 86 QuicTime::Delta new_delta = QuicTime::Delta::FromMicroseconds(3); | 86 QuicTime::Delta new_delta = QuicTime::Delta::FromMicroseconds(3); |
| 87 alarm->Set(clock_.Now().Add(new_delta)); | 87 alarm->Set(clock_.Now() + new_delta); |
| 88 | 88 |
| 89 epoll_server_.AdvanceByExactlyAndCallCallbacks(delta.ToMicroseconds()); | 89 epoll_server_.AdvanceByExactlyAndCallCallbacks(delta.ToMicroseconds()); |
| 90 EXPECT_EQ(start.Add(delta), clock_.Now()); | 90 EXPECT_EQ(start + delta, clock_.Now()); |
| 91 EXPECT_FALSE(unowned_delegate->fired()); | 91 EXPECT_FALSE(unowned_delegate->fired()); |
| 92 | 92 |
| 93 epoll_server_.AdvanceByExactlyAndCallCallbacks( | 93 epoll_server_.AdvanceByExactlyAndCallCallbacks( |
| 94 new_delta.Subtract(delta).ToMicroseconds()); | 94 (new_delta - delta).ToMicroseconds()); |
| 95 EXPECT_EQ(start.Add(new_delta), clock_.Now()); | 95 EXPECT_EQ(start + new_delta, clock_.Now()); |
| 96 EXPECT_TRUE(unowned_delegate->fired()); | 96 EXPECT_TRUE(unowned_delegate->fired()); |
| 97 } | 97 } |
| 98 | 98 |
| 99 TEST_P(QuicEpollAlarmFactoryTest, CreateAlarmAndUpdate) { | 99 TEST_P(QuicEpollAlarmFactoryTest, CreateAlarmAndUpdate) { |
| 100 QuicArenaScopedPtr<TestDelegate> delegate = | 100 QuicArenaScopedPtr<TestDelegate> delegate = |
| 101 QuicArenaScopedPtr<TestDelegate>(new TestDelegate()); | 101 QuicArenaScopedPtr<TestDelegate>(new TestDelegate()); |
| 102 TestDelegate* unowned_delegate = delegate.get(); | 102 TestDelegate* unowned_delegate = delegate.get(); |
| 103 QuicArenaScopedPtr<QuicAlarm> alarm( | 103 QuicArenaScopedPtr<QuicAlarm> alarm( |
| 104 alarm_factory_.CreateAlarm(std::move(delegate), GetArenaParam())); | 104 alarm_factory_.CreateAlarm(std::move(delegate), GetArenaParam())); |
| 105 | 105 |
| 106 QuicTime start = clock_.Now(); | 106 QuicTime start = clock_.Now(); |
| 107 QuicTime::Delta delta = QuicTime::Delta::FromMicroseconds(1); | 107 QuicTime::Delta delta = QuicTime::Delta::FromMicroseconds(1); |
| 108 alarm->Set(clock_.Now().Add(delta)); | 108 alarm->Set(clock_.Now() + delta); |
| 109 QuicTime::Delta new_delta = QuicTime::Delta::FromMicroseconds(3); | 109 QuicTime::Delta new_delta = QuicTime::Delta::FromMicroseconds(3); |
| 110 alarm->Update(clock_.Now().Add(new_delta), | 110 alarm->Update(clock_.Now() + new_delta, QuicTime::Delta::FromMicroseconds(1)); |
| 111 QuicTime::Delta::FromMicroseconds(1)); | |
| 112 | 111 |
| 113 epoll_server_.AdvanceByExactlyAndCallCallbacks(delta.ToMicroseconds()); | 112 epoll_server_.AdvanceByExactlyAndCallCallbacks(delta.ToMicroseconds()); |
| 114 EXPECT_EQ(start.Add(delta), clock_.Now()); | 113 EXPECT_EQ(start + delta, clock_.Now()); |
| 115 EXPECT_FALSE(unowned_delegate->fired()); | 114 EXPECT_FALSE(unowned_delegate->fired()); |
| 116 | 115 |
| 117 // Move the alarm forward 1us and ensure it doesn't move forward. | 116 // Move the alarm forward 1us and ensure it doesn't move forward. |
| 118 alarm->Update(clock_.Now().Add(new_delta), | 117 alarm->Update(clock_.Now() + new_delta, QuicTime::Delta::FromMicroseconds(2)); |
| 119 QuicTime::Delta::FromMicroseconds(2)); | |
| 120 | 118 |
| 121 epoll_server_.AdvanceByExactlyAndCallCallbacks( | 119 epoll_server_.AdvanceByExactlyAndCallCallbacks( |
| 122 new_delta.Subtract(delta).ToMicroseconds()); | 120 (new_delta - delta).ToMicroseconds()); |
| 123 EXPECT_EQ(start.Add(new_delta), clock_.Now()); | 121 EXPECT_EQ(start + new_delta, clock_.Now()); |
| 124 EXPECT_TRUE(unowned_delegate->fired()); | 122 EXPECT_TRUE(unowned_delegate->fired()); |
| 125 | 123 |
| 126 // Set the alarm via an update call. | 124 // Set the alarm via an update call. |
| 127 new_delta = QuicTime::Delta::FromMicroseconds(5); | 125 new_delta = QuicTime::Delta::FromMicroseconds(5); |
| 128 alarm->Update(clock_.Now().Add(new_delta), | 126 alarm->Update(clock_.Now() + new_delta, QuicTime::Delta::FromMicroseconds(1)); |
| 129 QuicTime::Delta::FromMicroseconds(1)); | |
| 130 EXPECT_TRUE(alarm->IsSet()); | 127 EXPECT_TRUE(alarm->IsSet()); |
| 131 | 128 |
| 132 // Update it with an uninitialized time and ensure it's cancelled. | 129 // Update it with an uninitialized time and ensure it's cancelled. |
| 133 alarm->Update(QuicTime::Zero(), QuicTime::Delta::FromMicroseconds(1)); | 130 alarm->Update(QuicTime::Zero(), QuicTime::Delta::FromMicroseconds(1)); |
| 134 EXPECT_FALSE(alarm->IsSet()); | 131 EXPECT_FALSE(alarm->IsSet()); |
| 135 } | 132 } |
| 136 | 133 |
| 137 } // namespace | 134 } // namespace |
| 138 } // namespace test | 135 } // namespace test |
| 139 } // namespace net | 136 } // namespace net |
| OLD | NEW |