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
3 // found in the LICENSE file.
5 #include "net/tools/quic/quic_epoll_clock.h"
7 #include "net/tools/quic/test_tools/mock_epoll_server.h"
8 #include "testing/gmock/include/gmock/gmock.h"
14 TEST(QuicEpollClockTest
, ApproximateNowInUsec
) {
15 MockEpollServer epoll_server
;
16 QuicEpollClock
clock(&epoll_server
);
18 epoll_server
.set_now_in_usec(1000000);
20 clock
.ApproximateNow().Subtract(QuicTime::Zero()).ToMicroseconds());
22 epoll_server
.AdvanceBy(5);
24 clock
.ApproximateNow().Subtract(QuicTime::Zero()).ToMicroseconds());
27 TEST(QuicEpollClockTest
, NowInUsec
) {
28 MockEpollServer epoll_server
;
29 QuicEpollClock
clock(&epoll_server
);
31 epoll_server
.set_now_in_usec(1000000);
33 clock
.Now().Subtract(QuicTime::Zero()).ToMicroseconds());
35 epoll_server
.AdvanceBy(5);
37 clock
.Now().Subtract(QuicTime::Zero()).ToMicroseconds());
40 TEST(QuicEpollClockTest
, WallNow
) {
41 MockEpollServer epoll_server
;
42 QuicEpollClock
clock(&epoll_server
);
44 base::Time start
= base::Time::Now();
45 QuicWallTime now
= clock
.WallNow();
46 base::Time end
= base::Time::Now();
48 // If end > start, then we can check now is between start and end.
50 EXPECT_LE(static_cast<uint64
>(start
.ToTimeT()), now
.ToUNIXSeconds());
51 EXPECT_LE(now
.ToUNIXSeconds(), static_cast<uint64
>(end
.ToTimeT()));