| /* | 
 |  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 
 |  * | 
 |  *  Use of this source code is governed by a BSD-style license | 
 |  *  that can be found in the LICENSE file in the root of the source | 
 |  *  tree. An additional intellectual property rights grant can be found | 
 |  *  in the file PATENTS.  All contributing project authors may | 
 |  *  be found in the AUTHORS file in the root of the source tree. | 
 |  */ | 
 |  | 
 | #include "system_wrappers/include/clock.h" | 
 |  | 
 | #include "test/gtest.h" | 
 |  | 
 | namespace webrtc { | 
 |  | 
 | TEST(ClockTest, NtpTime) { | 
 |   Clock* clock = Clock::GetRealTimeClock(); | 
 |  | 
 |   // To ensure the test runs correctly even on a heavily loaded system, do not | 
 |   // compare the seconds/fractions and millisecond values directly. Instead, | 
 |   // we check that the NTP time is between the "milliseconds" values returned | 
 |   // right before and right after the call. | 
 |   // The comparison includes 1 ms of margin to account for the rounding error in | 
 |   // the conversion. | 
 |   int64_t milliseconds_lower_bound = clock->CurrentNtpInMilliseconds(); | 
 |   NtpTime ntp_time = clock->CurrentNtpTime(); | 
 |   int64_t milliseconds_upper_bound = clock->CurrentNtpInMilliseconds(); | 
 |   EXPECT_GT(milliseconds_lower_bound / 1000, kNtpJan1970); | 
 |   EXPECT_LE(milliseconds_lower_bound - 1, ntp_time.ToMs()); | 
 |   EXPECT_GE(milliseconds_upper_bound + 1, ntp_time.ToMs()); | 
 | } | 
 |  | 
 | }  // namespace webrtc |