On Thu, Jan 9, 2020 at 8:56 AM Jacek Caban jacek@codeweavers.com wrote:
Hi Jeff,
On 09.01.2020 07:53, Jeff Smith wrote:
@@ -1501,6 +1515,63 @@ static void test_sscanf(void) ok(d == 0.0, "d = %lf\n", f); }
+static void test_iswctype(void) +{
- unsigned int c, i;
- unsigned short types = 0;
- unsigned short base_wctype[65536];
- static const struct
- {
unsigned int c;
unsigned int wctype;
- }
- iswctype_tests[] =
- {
{ '\t', C1_CNTRL | C1_SPACE | C1_BLANK },
{ 0xa0, C1_SPACE | C1_BLANK },
{ 0x85, C1_CNTRL },
{ 0xad, C1_PUNCT },
{ 0xaa, C1_PUNCT },
{ 0xb5, C1_PUNCT },
{ 0xba, C1_PUNCT },
{ 0xb2, C1_PUNCT | C1_DIGIT },
{ 0xb3, C1_PUNCT | C1_DIGIT },
{ 0xb9, C1_PUNCT | C1_DIGIT },
- };
- for (c = 0; c <= 0xff; c++)
- {
base_wctype[c] = p_iswctype(c, 0xffff);
types |= base_wctype[c];
- }
- todo_wine ok(types == 0x1ff, "Unexpected wctype bits present\n");
Hi Jacek,
How about copying NTDLL_wctype to tests so that you can test exact return values for 0..255 ranges? You wouldn't need base_wctype array. You could just iterate all values and compare iswctype result to the value from wctype array. Also, it would be nice to test return values of isw* functions for those characters.
I like that idea for checking the whole table. Adding the isw tests shouldn't be too hard to do as well.
Thanks, Jeff