aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/base64/driver.cxx7
-rw-r--r--tests/timestamp/driver.cxx10
2 files changed, 17 insertions, 0 deletions
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.