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 |