]> git.proxmox.com Git - ceph.git/blob - ceph/src/test/test_utime.cc
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / test / test_utime.cc
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 }