]> Savannah Git Hosting - gnulib.git/commitdiff
mbrtowc tests: Fix test failures on MSVC 14.
authorBruno Haible <bruno@clisp.org>
Fri, 21 Apr 2017 14:55:49 +0000 (16:55 +0200)
committerBruno Haible <bruno@clisp.org>
Fri, 21 Apr 2017 14:55:49 +0000 (16:55 +0200)
* tests/test-mbrtowc-w32.c (test_one_locale): Accept MSVC's conversion
behaviour for invalid input.

ChangeLog
tests/test-mbrtowc-w32.c

index 7ef61bea371a04bf4aac5c57c102d2556d4f5b3a..78e49755abec333dc550cb19f0cfa0ef8fb8f3c1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-04-21  Bruno Haible  <bruno@clisp.org>
+
+       mbrtowc tests: Fix test failures on MSVC 14.
+       * tests/test-mbrtowc-w32.c (test_one_locale): Accept MSVC's conversion
+       behaviour for invalid input.
+
 2017-04-21  Bruno Haible  <bruno@clisp.org>
 
        mbsinit: Fix for MSVC 14.
index 4dc30b0a74c7231fdc34088d7eaccf05a81c0e3e..70afc87f46a0067e5ce66601630291d0dc2f2150 100644 (file)
@@ -325,14 +325,12 @@ test_one_locale (const char *name, int codepage)
         memset (&state, '\0', sizeof (mbstate_t));
         wc = (wchar_t) 0xBADFACE;
         ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
+        ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || ret == (size_t)-2);
 
         memset (&state, '\0', sizeof (mbstate_t));
         wc = (wchar_t) 0xBADFACE;
         ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
+        ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || (ret == 2 && wc == 0x30FB));
       }
       return 0;
 
@@ -397,14 +395,12 @@ test_one_locale (const char *name, int codepage)
         memset (&state, '\0', sizeof (mbstate_t));
         wc = (wchar_t) 0xBADFACE;
         ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
+        ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || ret == (size_t)-2);
 
         memset (&state, '\0', sizeof (mbstate_t));
         wc = (wchar_t) 0xBADFACE;
         ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
+        ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || (ret == 2 && wc == '?'));
       }
       return 0;
 
@@ -469,14 +465,12 @@ test_one_locale (const char *name, int codepage)
         memset (&state, '\0', sizeof (mbstate_t));
         wc = (wchar_t) 0xBADFACE;
         ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
+        ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || ret == (size_t)-2);
 
         memset (&state, '\0', sizeof (mbstate_t));
         wc = (wchar_t) 0xBADFACE;
         ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
+        ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || (ret == 2 && wc == '?'));
       }
       return 0;