[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
fix mbrtowc test failures on MSVC
From: |
Bruno Haible |
Subject: |
fix mbrtowc test failures on MSVC |
Date: |
Fri, 21 Apr 2017 16:56:10 +0200 |
User-agent: |
KMail/5.1.3 (Linux/4.4.0-72-generic; KDE/5.18.0; x86_64; ; ) |
On MSVC 14, the tests test-mbrtowc-w32-3.sh, test-mbrtowc-w32-4.sh,
test-mbrtowc-w32-5.sh fail, because the charset converter behaves a bit
differently than the GNU one.
2017-04-21 Bruno Haible <address@hidden>
mbrtowc tests: Fix test failures on MSVC 14.
* tests/test-mbrtowc-w32.c (test_one_locale): Accept MSVC's conversion
behaviour for invalid input.
diff --git a/tests/test-mbrtowc-w32.c b/tests/test-mbrtowc-w32.c
index 4dc30b0..70afc87 100644
--- a/tests/test-mbrtowc-w32.c
+++ b/tests/test-mbrtowc-w32.c
@@ -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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- fix mbrtowc test failures on MSVC,
Bruno Haible <=