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. 4 5#include "net/tools/quic/quic_epoll_clock.h" 6 7#include "net/tools/quic/test_tools/mock_epoll_server.h" 8#include "testing/gmock/include/gmock/gmock.h" 9 10namespace net { 11namespace tools { 12namespace test { 13 14TEST(QuicEpollClockTest, ApproximateNowInUsec) { 15 MockEpollServer epoll_server; 16 QuicEpollClock clock(&epoll_server); 17 18 epoll_server.set_now_in_usec(1000000); 19 EXPECT_EQ(1000000, 20 clock.ApproximateNow().Subtract(QuicTime::Zero()).ToMicroseconds()); 21 22 epoll_server.AdvanceBy(5); 23 EXPECT_EQ(1000005, 24 clock.ApproximateNow().Subtract(QuicTime::Zero()).ToMicroseconds()); 25} 26 27TEST(QuicEpollClockTest, NowInUsec) { 28 MockEpollServer epoll_server; 29 QuicEpollClock clock(&epoll_server); 30 31 epoll_server.set_now_in_usec(1000000); 32 EXPECT_EQ(1000000, 33 clock.Now().Subtract(QuicTime::Zero()).ToMicroseconds()); 34 35 epoll_server.AdvanceBy(5); 36 EXPECT_EQ(1000005, 37 clock.Now().Subtract(QuicTime::Zero()).ToMicroseconds()); 38} 39 40TEST(QuicEpollClockTest, WallNow) { 41 MockEpollServer epoll_server; 42 QuicEpollClock clock(&epoll_server); 43 44 base::Time start = base::Time::Now(); 45 QuicWallTime now = clock.WallNow(); 46 base::Time end = base::Time::Now(); 47 48 // If end > start, then we can check now is between start and end. 49 if (end > start) { 50 EXPECT_LE(static_cast<uint64>(start.ToTimeT()), now.ToUNIXSeconds()); 51 EXPECT_LE(now.ToUNIXSeconds(), static_cast<uint64>(end.ToTimeT())); 52 } 53} 54 55} // namespace test 56} // namespace tools 57} // namespace net 58