From 81c988093cbd55c654e2685137b294fec8f69d5c Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 25 Apr 2019 17:22:58 -0500 Subject: [PATCH] unittest_utime: add tests Signed-off-by: Sage Weil --- src/test/CMakeLists.txt | 6 ++++ src/test/test_utime.cc | 66 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 src/test/test_utime.cc diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index 3d3aa8842ad..63c02e556f0 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -860,6 +860,12 @@ add_executable(unittest_ipaddr add_ceph_unittest(unittest_ipaddr) target_link_libraries(unittest_ipaddr mon global) +# unittest_utime +add_executable(unittest_utime + test_utime.cc) +add_ceph_unittest(unittest_utime) +target_link_libraries(unittest_utime mon global) + # unittest_texttable add_executable(unittest_texttable test_texttable.cc diff --git a/src/test/test_utime.cc b/src/test/test_utime.cc new file mode 100644 index 00000000000..edbd395ddd3 --- /dev/null +++ b/src/test/test_utime.cc @@ -0,0 +1,66 @@ +#include "include/utime.h" +#include "global/global_context.h" +#include "gtest/gtest.h" +#include "include/stringify.h" +#include "common/ceph_context.h" + +TEST(utime_t, localtime) +{ + utime_t t(1556122013, 839991182); + string s = stringify(t); + cout << s << std::endl; + // time zone may vary where unit test is run, so be cirsumspect... + ASSERT_EQ(s.size(), strlen("2019-04-24T11:06:53.839991-0500")); + ASSERT_TRUE(s[26] == '-' || s[26] == '+'); + ASSERT_EQ(s.substr(0, 9), "2019-04-2"); +} + +TEST(utime_t, gmtime) +{ + utime_t t(1556122013, 39991182); + { + ostringstream ss; + t.gmtime(ss); + ASSERT_EQ(ss.str(), "2019-04-24T16:06:53.039991Z"); + } + { + ostringstream ss; + t.gmtime_nsec(ss); + ASSERT_EQ(ss.str(), "2019-04-24T16:06:53.039991182Z"); + } +} + +TEST(utime_t, asctime) +{ + utime_t t(1556122013, 839991182); + ostringstream ss; + t.asctime(ss); + string s = ss.str(); + ASSERT_EQ(s, "Wed Apr 24 16:06:53 2019"); +} + +const char *v[][2] = { + { "2019-04-24T16:06:53.039991Z", "2019-04-24T16:06:53.039991Z" }, + { "2019-04-24 16:06:53.039991Z", "2019-04-24T16:06:53.039991Z" }, + { "2019-04-24 16:06:53.039991+0000", "2019-04-24T16:06:53.039991Z" }, + { "2019-04-24 16:06:53.039991-0100", "2019-04-24T17:06:53.039991Z" }, + { "2019-04-24 16:06:53.039991+0430", "2019-04-24T11:36:53.039991Z" }, + { "2019-04-24 16:06:53+0000", "2019-04-24T16:06:53.000000Z" }, + { "2019-04-24T16:06:53-0100", "2019-04-24T17:06:53.000000Z" }, + { "2019-04-24 16:06:53+0430", "2019-04-24T11:36:53.000000Z" }, + { "2019-04-24", "2019-04-24T00:00:00.000000Z" }, + { 0, 0 }, +}; + +TEST(utime_t, parse_date) +{ + for (unsigned i = 0; v[i][0]; ++i) { + cout << v[i][0] << " -> " << v[i][1] << std::endl; + utime_t t; + bool r = t.parse(string(v[i][0])); + ASSERT_TRUE(r); + ostringstream ss; + t.gmtime(ss); + ASSERT_EQ(ss.str(), v[i][1]); + } +} -- 2.39.5