1 // Copyright 2019 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 "platform/impl/timeval_posix.h"
6
7 #include "gtest/gtest.h"
8
9 namespace openscreen {
10
TEST(TimevalPosixTest,ToTimeval)11 TEST(TimevalPosixTest, ToTimeval) {
12 auto timespan = Clock::duration::zero();
13 auto timeval = ToTimeval(timespan);
14 EXPECT_EQ(timeval.tv_sec, 0);
15 EXPECT_EQ(timeval.tv_usec, 0);
16
17 timespan = Clock::duration(1000000);
18 timeval = ToTimeval(timespan);
19 EXPECT_EQ(timeval.tv_sec, 1);
20 EXPECT_EQ(timeval.tv_usec, 0);
21
22 timespan = Clock::duration(1000000 - 1);
23 timeval = ToTimeval(timespan);
24 EXPECT_EQ(timeval.tv_sec, 0);
25 EXPECT_EQ(timeval.tv_usec, 1000000 - 1);
26
27 timespan = Clock::duration(1);
28 timeval = ToTimeval(timespan);
29 EXPECT_EQ(timeval.tv_sec, 0);
30 EXPECT_EQ(timeval.tv_usec, 1);
31
32 timespan = Clock::duration(100000010);
33 timeval = ToTimeval(timespan);
34 EXPECT_EQ(timeval.tv_sec, 100);
35 EXPECT_EQ(timeval.tv_usec, 10);
36 }
37
38 } // namespace openscreen
39