]>
Commit | Line | Data |
---|---|---|
9f95a23c TL |
1 | #include "include/utime.h" |
2 | #include "gtest/gtest.h" | |
3 | #include "include/stringify.h" | |
4 | #include "common/ceph_context.h" | |
5 | ||
6 | TEST(utime_t, localtime) | |
7 | { | |
8 | utime_t t(1556122013, 839991182); | |
9 | string s = stringify(t); | |
10 | cout << s << std::endl; | |
11 | // time zone may vary where unit test is run, so be cirsumspect... | |
12 | ASSERT_EQ(s.size(), strlen("2019-04-24T11:06:53.839991-0500")); | |
13 | ASSERT_TRUE(s[26] == '-' || s[26] == '+'); | |
14 | ASSERT_EQ(s.substr(0, 9), "2019-04-2"); | |
15 | } | |
16 | ||
17 | TEST(utime_t, gmtime) | |
18 | { | |
19 | utime_t t(1556122013, 39991182); | |
20 | { | |
21 | ostringstream ss; | |
22 | t.gmtime(ss); | |
23 | ASSERT_EQ(ss.str(), "2019-04-24T16:06:53.039991Z"); | |
24 | } | |
25 | { | |
26 | ostringstream ss; | |
27 | t.gmtime_nsec(ss); | |
28 | ASSERT_EQ(ss.str(), "2019-04-24T16:06:53.039991182Z"); | |
29 | } | |
30 | } | |
31 | ||
32 | TEST(utime_t, asctime) | |
33 | { | |
34 | utime_t t(1556122013, 839991182); | |
35 | ostringstream ss; | |
36 | t.asctime(ss); | |
37 | string s = ss.str(); | |
38 | ASSERT_EQ(s, "Wed Apr 24 16:06:53 2019"); | |
39 | } | |
40 | ||
41 | const char *v[][2] = { | |
42 | { "2019-04-24T16:06:53.039991Z", "2019-04-24T16:06:53.039991Z" }, | |
43 | { "2019-04-24 16:06:53.039991Z", "2019-04-24T16:06:53.039991Z" }, | |
44 | { "2019-04-24 16:06:53.039991+0000", "2019-04-24T16:06:53.039991Z" }, | |
45 | { "2019-04-24 16:06:53.039991-0100", "2019-04-24T17:06:53.039991Z" }, | |
46 | { "2019-04-24 16:06:53.039991+0430", "2019-04-24T11:36:53.039991Z" }, | |
47 | { "2019-04-24 16:06:53+0000", "2019-04-24T16:06:53.000000Z" }, | |
48 | { "2019-04-24T16:06:53-0100", "2019-04-24T17:06:53.000000Z" }, | |
49 | { "2019-04-24 16:06:53+0430", "2019-04-24T11:36:53.000000Z" }, | |
50 | { "2019-04-24", "2019-04-24T00:00:00.000000Z" }, | |
51 | { 0, 0 }, | |
52 | }; | |
53 | ||
54 | TEST(utime_t, parse_date) | |
55 | { | |
56 | for (unsigned i = 0; v[i][0]; ++i) { | |
57 | cout << v[i][0] << " -> " << v[i][1] << std::endl; | |
58 | utime_t t; | |
59 | bool r = t.parse(string(v[i][0])); | |
60 | ASSERT_TRUE(r); | |
61 | ostringstream ss; | |
62 | t.gmtime(ss); | |
63 | ASSERT_EQ(ss.str(), v[i][1]); | |
64 | } | |
65 | } |