Home | History | Annotate | Download | only in quic
      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 
     10 namespace net {
     11 namespace tools {
     12 namespace test {
     13 
     14 TEST(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 
     27 TEST(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 
     40 TEST(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