From bac02200267495741e85db90607186ce4e0593b3 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 29 Jun 2016 21:17:43 +0300 Subject: Port to MSVC --- tests/base64/driver.cxx | 7 +++++++ tests/timestamp/driver.cxx | 10 ++++++++++ 2 files changed, 17 insertions(+) (limited to 'tests') diff --git a/tests/base64/driver.cxx b/tests/base64/driver.cxx index e43e04a..a65ddbb 100644 --- a/tests/base64/driver.cxx +++ b/tests/base64/driver.cxx @@ -23,6 +23,13 @@ encode (const string& i, const string& o) if (r) { is.seekg (0); + + // VC 19 seekg() doesn't clear eofbit. + // +#if defined(_MSC_VER) && _MSC_VER <= 1900 + is.clear (); +#endif + ostringstream os; base64_encode (os, is); r = os.str () == o && is.eof (); diff --git a/tests/timestamp/driver.cxx b/tests/timestamp/driver.cxx index f5f30b9..e732629 100644 --- a/tests/timestamp/driver.cxx +++ b/tests/timestamp/driver.cxx @@ -108,7 +108,17 @@ main () // Invalid input (%[] unrelated). // assert (fail ("Apr 08 19:31:10.123456789 ABC", "%b %d %H:%M:%S%[.N] %Y")); + +// This doesn't work in VC 19 because their implementation of std::get_time() +// has a bug. Due to this bug std::get_time() parses the input +// "Apr 19:31:10 2016" for the format "%b %d %H:%M:%S %Y" as if the input were +// "Apr 19 00:31:10 2016". +// +#if !defined(_MSC_VER) || _MSC_VER > 1900 assert (fail ("Apr 19:31:10 2016", "%b %d %H:%M:%S %Y")); + assert (fail (":31 2016", "%H:%M %Y")); +#endif + assert (fail ("Opr 08 19:31:10 2016", "%b %d %H:%M:%S %Y")); // Parse valid input with a valid format. -- cgit v1.1