]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/date_time/test/posix_time/testtime_formatters.cpp
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / boost / libs / date_time / test / posix_time / testtime_formatters.cpp
index bafeda954497717b0e448a1897a9432a630f2e1b..3c8c6eb632b3d65a11fe189807ab08d5617bf9a1 100644 (file)
@@ -8,6 +8,8 @@
 #include "boost/date_time/posix_time/posix_time.hpp"
 #include "../testfrmwk.hpp"
 
+#define CHECK_ROUNDTRIP(_PT) check_equal("from_iso_string(to_iso_string()) roundtrip of \"" + to_iso_string(_PT) + "\"", from_iso_string(to_iso_string(_PT)), _PT)
+
 int
 main() 
 {
@@ -26,7 +28,7 @@ main()
   std::string iso_ext_result = "2002-01-01T01:02:03";
   check("iso ext:     " + iso_ext_result, iso_ext_result == to_iso_extended_string(t1));
 
-
+  CHECK_ROUNDTRIP(t1);
 
 #ifdef BOOST_DATE_TIME_HAS_MILLISECONDS
 
@@ -35,6 +37,7 @@ main()
     std::string r3 = to_simple_string(t4);
     check("simple subsecond: "+r3 , 
           std::string("2002-Jan-01 01:02:03.004000") == r3);
+    CHECK_ROUNDTRIP(t4);
   }
 
 #endif
@@ -60,6 +63,8 @@ main()
     check("to string: " + to_simple_string(tds2), to_simple_string(tds2) == s2);
     check("to string: " + to_iso_string(td1), to_iso_string(td1) == is1);
     check("to string: " + to_iso_string(tds2), to_iso_string(tds2) == is2);
+
+    CHECK_ROUNDTRIP(t3);
   }
 #endif
 
@@ -94,13 +99,24 @@ main()
     std::string r3 = to_simple_string(t4);
     check("simple subsecond: "+r3 , 
           std::string("2002-Jan-01 01:02:03.004000000") == r3);
-  }
+
+    CHECK_ROUNDTRIP(t3);
+}
 #endif
 
+  // Boost Trac 1078 (https://svn.boost.org/trac10/ticket/1078)
+  // from_iso_string should be able to parse output of to_iso_string
+  CHECK_ROUNDTRIP(ptime());
+  CHECK_ROUNDTRIP(ptime(not_a_date_time)); // should be same as previous
+  CHECK_ROUNDTRIP(ptime(pos_infin));
+  CHECK_ROUNDTRIP(ptime(neg_infin));
+  
+  // when min_date_time is formatted out, it is done so as an actual date/time
+  // i.e. it is not "special" in that sense
+  check_equal("from_iso_string(\"minimum-date-time\")", from_iso_string("minimum-date-time"), ptime(min_date_time));
+  check_equal("from_iso_string(\"maximum-date-time\")", from_iso_string("maximum-date-time"), ptime(max_date_time));
 
   return printTestStats();
-
-
 }