Commit d6022964 authored by Alexandre Julliard's avatar Alexandre Julliard

kernel32/tests: Remove some workarounds for old Windows versions.

parent 497b9ed8
...@@ -61,8 +61,6 @@ static INT (WINAPI *pLCMapStringEx)(LPCWSTR, DWORD, LPCWSTR, INT, LPWSTR, INT, L ...@@ -61,8 +61,6 @@ static INT (WINAPI *pLCMapStringEx)(LPCWSTR, DWORD, LPCWSTR, INT, LPWSTR, INT, L
static LCID (WINAPI *pLocaleNameToLCID)(LPCWSTR, DWORD); static LCID (WINAPI *pLocaleNameToLCID)(LPCWSTR, DWORD);
static NTSTATUS (WINAPI *pRtlLocaleNameToLcid)(LPCWSTR, LCID *, DWORD); static NTSTATUS (WINAPI *pRtlLocaleNameToLcid)(LPCWSTR, LCID *, DWORD);
static INT (WINAPI *pLCIDToLocaleName)(LCID, LPWSTR, INT, DWORD); static INT (WINAPI *pLCIDToLocaleName)(LCID, LPWSTR, INT, DWORD);
static INT (WINAPI *pFoldStringA)(DWORD, LPCSTR, INT, LPSTR, INT);
static INT (WINAPI *pFoldStringW)(DWORD, LPCWSTR, INT, LPWSTR, INT);
static BOOL (WINAPI *pIsValidLanguageGroup)(LGRPID, DWORD); static BOOL (WINAPI *pIsValidLanguageGroup)(LGRPID, DWORD);
static INT (WINAPI *pIdnToNameprepUnicode)(DWORD, LPCWSTR, INT, LPWSTR, INT); static INT (WINAPI *pIdnToNameprepUnicode)(DWORD, LPCWSTR, INT, LPWSTR, INT);
static INT (WINAPI *pIdnToAscii)(DWORD, LPCWSTR, INT, LPWSTR, INT); static INT (WINAPI *pIdnToAscii)(DWORD, LPCWSTR, INT, LPWSTR, INT);
...@@ -103,8 +101,6 @@ static void InitFunctionPointers(void) ...@@ -103,8 +101,6 @@ static void InitFunctionPointers(void)
X(LocaleNameToLCID); X(LocaleNameToLCID);
X(LCIDToLocaleName); X(LCIDToLocaleName);
X(LCMapStringEx); X(LCMapStringEx);
X(FoldStringA);
X(FoldStringW);
X(IsValidLanguageGroup); X(IsValidLanguageGroup);
X(EnumUILanguagesA); X(EnumUILanguagesA);
X(EnumSystemLocalesEx); X(EnumSystemLocalesEx);
...@@ -3191,9 +3187,6 @@ static void test_FoldStringA(void) ...@@ -3191,9 +3187,6 @@ static void test_FoldStringA(void)
{ 0x00 } { 0x00 }
}; };
if (!pFoldStringA)
return; /* FoldString is present in NT v3.1+, but not 95/98/Me */
/* these tests are locale specific */ /* these tests are locale specific */
if (GetACP() != 1252) if (GetACP() != 1252)
{ {
...@@ -3202,13 +3195,8 @@ static void test_FoldStringA(void) ...@@ -3202,13 +3195,8 @@ static void test_FoldStringA(void)
} }
/* MAP_FOLDDIGITS */ /* MAP_FOLDDIGITS */
SetLastError(0); SetLastError(0xdeadbeef);
ret = pFoldStringA(MAP_FOLDDIGITS, digits_src, -1, dst, 256); ret = FoldStringA(MAP_FOLDDIGITS, digits_src, -1, dst, 256);
if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
{
win_skip("FoldStringA is not implemented\n");
return;
}
ok(ret == 4, "Expected ret == 4, got %d, error %d\n", ret, GetLastError()); ok(ret == 4, "Expected ret == 4, got %d, error %d\n", ret, GetLastError());
ok(strcmp(dst, digits_dst) == 0, ok(strcmp(dst, digits_dst) == 0,
"MAP_FOLDDIGITS: Expected '%s', got '%s'\n", digits_dst, dst); "MAP_FOLDDIGITS: Expected '%s', got '%s'\n", digits_dst, dst);
...@@ -3218,19 +3206,16 @@ static void test_FoldStringA(void) ...@@ -3218,19 +3206,16 @@ static void test_FoldStringA(void)
{ {
src[0] = i; src[0] = i;
src[1] = '\0'; src[1] = '\0';
SetLastError(0); ret = FoldStringA(MAP_FOLDDIGITS, src, -1, dst, 256);
ret = pFoldStringA(MAP_FOLDDIGITS, src, -1, dst, 256);
ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError()); ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError());
ok(dst[0] == src[0], ok(dst[0] == src[0],
"MAP_FOLDDIGITS: Expected '%s', got '%s'\n", src, dst); "MAP_FOLDDIGITS: Expected '%s', got '%s'\n", src, dst);
} }
} }
/* MAP_EXPAND_LIGATURES */ /* MAP_EXPAND_LIGATURES */
SetLastError(0); SetLastError(0xdeadbeef);
ret = pFoldStringA(MAP_EXPAND_LIGATURES, ligatures_src, -1, dst, 256); ret = FoldStringA(MAP_EXPAND_LIGATURES, ligatures_src, -1, dst, 256);
/* NT 4.0 doesn't support MAP_EXPAND_LIGATURES */
if (!(ret == 0 && GetLastError() == ERROR_INVALID_FLAGS)) {
ok(ret == sizeof(ligatures_dst), "Got %d, error %d\n", ret, GetLastError()); ok(ret == sizeof(ligatures_dst), "Got %d, error %d\n", ret, GetLastError());
ok(strcmp(dst, ligatures_dst) == 0, ok(strcmp(dst, ligatures_dst) == 0,
"MAP_EXPAND_LIGATURES: Expected '%s', got '%s'\n", ligatures_dst, dst); "MAP_EXPAND_LIGATURES: Expected '%s', got '%s'\n", ligatures_dst, dst);
...@@ -3240,8 +3225,7 @@ static void test_FoldStringA(void) ...@@ -3240,8 +3225,7 @@ static void test_FoldStringA(void)
{ {
src[0] = i; src[0] = i;
src[1] = '\0'; src[1] = '\0';
SetLastError(0); ret = FoldStringA(MAP_EXPAND_LIGATURES, src, -1, dst, 256);
ret = pFoldStringA(MAP_EXPAND_LIGATURES, src, -1, dst, 256);
if (ret == 3) if (ret == 3)
{ {
/* Vista */ /* Vista */
...@@ -3257,12 +3241,13 @@ static void test_FoldStringA(void) ...@@ -3257,12 +3241,13 @@ static void test_FoldStringA(void)
} }
} }
} }
}
/* MAP_COMPOSITE */ /* MAP_COMPOSITE */
SetLastError(0); SetLastError(0xdeadbeef);
ret = pFoldStringA(MAP_COMPOSITE, composite_src, -1, dst, 256); ret = FoldStringA(MAP_COMPOSITE, composite_src, -1, dst, 256);
ok(ret, "Expected ret != 0, got %d, error %d\n", ret, GetLastError()); ok(ret, "Expected ret != 0, got %d, error %d\n", ret, GetLastError());
ok( GetLastError() == 0xdeadbeef || broken(!GetLastError()), /* vista */
"wrong error %u\n", GetLastError());
ok(ret == 121 || ret == 119, "Expected 121 or 119, got %d\n", ret); ok(ret == 121 || ret == 119, "Expected 121 or 119, got %d\n", ret);
ok(strcmp(dst, composite_dst) == 0 || strcmp(dst, composite_dst_alt) == 0, ok(strcmp(dst, composite_dst) == 0 || strcmp(dst, composite_dst_alt) == 0,
"MAP_COMPOSITE: Mismatch, got '%s'\n", dst); "MAP_COMPOSITE: Mismatch, got '%s'\n", dst);
...@@ -3273,8 +3258,7 @@ static void test_FoldStringA(void) ...@@ -3273,8 +3258,7 @@ static void test_FoldStringA(void)
{ {
src[0] = i; src[0] = i;
src[1] = '\0'; src[1] = '\0';
SetLastError(0); ret = FoldStringA(MAP_COMPOSITE, src, -1, dst, 256);
ret = pFoldStringA(MAP_COMPOSITE, src, -1, dst, 256);
ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError()); ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError());
ok(dst[0] == src[0], ok(dst[0] == src[0],
"0x%02x, 0x%02x,0x%02x,0x%02x,\n", (unsigned char)src[0], "0x%02x, 0x%02x,0x%02x,0x%02x,\n", (unsigned char)src[0],
...@@ -3287,8 +3271,8 @@ static void test_FoldStringA(void) ...@@ -3287,8 +3271,8 @@ static void test_FoldStringA(void)
{ {
src[0] = i; src[0] = i;
src[1] = '\0'; src[1] = '\0';
SetLastError(0); SetLastError(0xdeadbeef);
ret = pFoldStringA(MAP_FOLDCZONE, src, -1, dst, 256); ret = FoldStringA(MAP_FOLDCZONE, src, -1, dst, 256);
is_special = FALSE; is_special = FALSE;
for (j = 0; foldczone_special[j].src != 0 && ! is_special; j++) for (j = 0; foldczone_special[j].src != 0 && ! is_special; j++)
{ {
...@@ -3317,8 +3301,7 @@ static void test_FoldStringA(void) ...@@ -3317,8 +3301,7 @@ static void test_FoldStringA(void)
{ {
src[0] = i; src[0] = i;
src[1] = '\0'; src[1] = '\0';
SetLastError(0); ret = FoldStringA(MAP_PRECOMPOSED, src, -1, dst, 256);
ret = pFoldStringA(MAP_PRECOMPOSED, src, -1, dst, 256);
ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError()); ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError());
ok(src[0] == dst[0], ok(src[0] == dst[0],
"MAP_PRECOMPOSED: Expected 0x%02x, got 0x%02x\n", "MAP_PRECOMPOSED: Expected 0x%02x, got 0x%02x\n",
...@@ -3460,69 +3443,58 @@ static void test_FoldStringW(void) ...@@ -3460,69 +3443,58 @@ static void test_FoldStringW(void)
'f','l','f','f','i','f','f','l',0x017f,'t','s','t','\0' 'f','l','f','f','i','f','f','l',0x017f,'t','s','t','\0'
}; };
if (!pFoldStringW)
{
win_skip("FoldStringW is not available\n");
return; /* FoldString is present in NT v3.1+, but not 95/98/Me */
}
/* Invalid flag combinations */ /* Invalid flag combinations */
for (i = 0; i < ARRAY_SIZE(badFlags); i++) for (i = 0; i < ARRAY_SIZE(badFlags); i++)
{ {
src[0] = dst[0] = '\0'; src[0] = dst[0] = '\0';
SetLastError(0); SetLastError(0xdeadbeef);
ret = pFoldStringW(badFlags[i], src, 256, dst, 256); ret = FoldStringW(badFlags[i], src, 256, dst, 256);
if (GetLastError()==ERROR_CALL_NOT_IMPLEMENTED)
{
win_skip("FoldStringW is not implemented\n");
return;
}
ok(!ret && GetLastError() == ERROR_INVALID_FLAGS, ok(!ret && GetLastError() == ERROR_INVALID_FLAGS,
"Expected ERROR_INVALID_FLAGS, got %d\n", GetLastError()); "Expected ERROR_INVALID_FLAGS, got %d\n", GetLastError());
} }
/* src & dst cannot be the same */ /* src & dst cannot be the same */
SetLastError(0); SetLastError(0xdeadbeef);
ret = pFoldStringW(MAP_FOLDCZONE, src, -1, src, 256); ret = FoldStringW(MAP_FOLDCZONE, src, -1, src, 256);
ok( !ret && GetLastError() == ERROR_INVALID_PARAMETER, ok( !ret && GetLastError() == ERROR_INVALID_PARAMETER,
"Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError()); "Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
/* src can't be NULL */ /* src can't be NULL */
SetLastError(0); SetLastError(0xdeadbeef);
ret = pFoldStringW(MAP_FOLDCZONE, NULL, -1, dst, 256); ret = FoldStringW(MAP_FOLDCZONE, NULL, -1, dst, 256);
ok( !ret && GetLastError() == ERROR_INVALID_PARAMETER, ok( !ret && GetLastError() == ERROR_INVALID_PARAMETER,
"Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError()); "Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
/* srclen can't be 0 */ /* srclen can't be 0 */
SetLastError(0); SetLastError(0xdeadbeef);
ret = pFoldStringW(MAP_FOLDCZONE, src, 0, dst, 256); ret = FoldStringW(MAP_FOLDCZONE, src, 0, dst, 256);
ok( !ret && GetLastError() == ERROR_INVALID_PARAMETER, ok( !ret && GetLastError() == ERROR_INVALID_PARAMETER,
"Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError()); "Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
/* dstlen can't be < 0 */ /* dstlen can't be < 0 */
SetLastError(0); SetLastError(0xdeadbeef);
ret = pFoldStringW(MAP_FOLDCZONE, src, -1, dst, -1); ret = FoldStringW(MAP_FOLDCZONE, src, -1, dst, -1);
ok( !ret && GetLastError() == ERROR_INVALID_PARAMETER, ok( !ret && GetLastError() == ERROR_INVALID_PARAMETER,
"Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError()); "Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
/* Ret includes terminating NUL which is appended if srclen = -1 */ /* Ret includes terminating NUL which is appended if srclen = -1 */
SetLastError(0); SetLastError(0xdeadbeef);
src[0] = 'A'; src[0] = 'A';
src[1] = '\0'; src[1] = '\0';
dst[0] = '\0'; dst[0] = '\0';
ret = pFoldStringW(MAP_FOLDCZONE, src, -1, dst, 256); ret = FoldStringW(MAP_FOLDCZONE, src, -1, dst, 256);
ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError()); ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError());
ok(dst[0] == 'A' && dst[1] == '\0', ok(dst[0] == 'A' && dst[1] == '\0',
"srclen=-1: Expected ret=2 [%d,%d], got ret=%d [%d,%d], err=%d\n", "srclen=-1: Expected ret=2 [%d,%d], got ret=%d [%d,%d], err=%d\n",
'A', '\0', ret, dst[0], dst[1], GetLastError()); 'A', '\0', ret, dst[0], dst[1], GetLastError());
/* If size is given, result is not NUL terminated */ /* If size is given, result is not NUL terminated */
SetLastError(0); SetLastError(0xdeadbeef);
src[0] = 'A'; src[0] = 'A';
src[1] = 'A'; src[1] = 'A';
dst[0] = 'X'; dst[0] = 'X';
dst[1] = 'X'; dst[1] = 'X';
ret = pFoldStringW(MAP_FOLDCZONE, src, 1, dst, 256); ret = FoldStringW(MAP_FOLDCZONE, src, 1, dst, 256);
ok(ret == 1, "Expected ret == 1, got %d, error %d\n", ret, GetLastError()); ok(ret == 1, "Expected ret == 1, got %d, error %d\n", ret, GetLastError());
ok(dst[0] == 'A' && dst[1] == 'X', ok(dst[0] == 'A' && dst[1] == 'X',
"srclen=1: Expected ret=1, [%d,%d], got ret=%d,[%d,%d], err=%d\n", "srclen=1: Expected ret=1, [%d,%d], got ret=%d,[%d,%d], err=%d\n",
...@@ -3534,10 +3506,10 @@ static void test_FoldStringW(void) ...@@ -3534,10 +3506,10 @@ static void test_FoldStringW(void)
/* Check everything before this range */ /* Check everything before this range */
for (ch = prev_ch; ch < digitRanges[j]; ch++) for (ch = prev_ch; ch < digitRanges[j]; ch++)
{ {
SetLastError(0); SetLastError(0xdeadbeef);
src[0] = ch; src[0] = ch;
src[1] = dst[0] = '\0'; src[1] = dst[0] = '\0';
ret = pFoldStringW(MAP_FOLDDIGITS, src, -1, dst, 256); ret = FoldStringW(MAP_FOLDDIGITS, src, -1, dst, 256);
ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError()); ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError());
ok(dst[0] == ch || wcschr(outOfSequenceDigits, ch) || ok(dst[0] == ch || wcschr(outOfSequenceDigits, ch) ||
...@@ -3562,10 +3534,10 @@ static void test_FoldStringW(void) ...@@ -3562,10 +3534,10 @@ static void test_FoldStringW(void)
else if (ch == 0x2073) c = 0x00B3; /* Superscript 3 */ else if (ch == 0x2073) c = 0x00B3; /* Superscript 3 */
else if (ch == 0x245F) c = 0x24EA; /* Circled 0 */ else if (ch == 0x245F) c = 0x24EA; /* Circled 0 */
else c = ch; else c = ch;
SetLastError(0); SetLastError(0xdeadbeef);
src[0] = c; src[0] = c;
src[1] = dst[0] = '\0'; src[1] = dst[0] = '\0';
ret = pFoldStringW(MAP_FOLDDIGITS, src, -1, dst, 256); ret = FoldStringW(MAP_FOLDDIGITS, src, -1, dst, 256);
ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError()); ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError());
ok((dst[0] == '0' + ch - digitRanges[j] && dst[1] == '\0') || ok((dst[0] == '0' + ch - digitRanges[j] && dst[1] == '\0') ||
...@@ -3580,8 +3552,8 @@ static void test_FoldStringW(void) ...@@ -3580,8 +3552,8 @@ static void test_FoldStringW(void)
} }
/* MAP_FOLDCZONE */ /* MAP_FOLDCZONE */
SetLastError(0); SetLastError(0xdeadbeef);
ret = pFoldStringW(MAP_FOLDCZONE, foldczone_src, -1, dst, 256); ret = FoldStringW(MAP_FOLDCZONE, foldczone_src, -1, dst, 256);
ok(ret == ARRAY_SIZE(foldczone_dst) ok(ret == ARRAY_SIZE(foldczone_dst)
|| broken(ret == ARRAY_SIZE(foldczone_broken_dst)), /* winxp, win2003 */ || broken(ret == ARRAY_SIZE(foldczone_broken_dst)), /* winxp, win2003 */
"Got %d, error %d.\n", ret, GetLastError()); "Got %d, error %d.\n", ret, GetLastError());
...@@ -3589,15 +3561,12 @@ static void test_FoldStringW(void) ...@@ -3589,15 +3561,12 @@ static void test_FoldStringW(void)
|| broken(!memcmp(dst, foldczone_broken_dst, sizeof(foldczone_broken_dst))), /* winxp, win2003 */ || broken(!memcmp(dst, foldczone_broken_dst, sizeof(foldczone_broken_dst))), /* winxp, win2003 */
"Got unexpected string %s.\n", wine_dbgstr_w(dst)); "Got unexpected string %s.\n", wine_dbgstr_w(dst));
/* MAP_EXPAND_LIGATURES */ /* MAP_EXPAND_LIGATURES */
SetLastError(0); SetLastError(0xdeadbeef);
ret = pFoldStringW(MAP_EXPAND_LIGATURES, ligatures_src, -1, dst, 256); ret = FoldStringW(MAP_EXPAND_LIGATURES, ligatures_src, -1, dst, 256);
/* NT 4.0 doesn't support MAP_EXPAND_LIGATURES */
if (!(ret == 0 && GetLastError() == ERROR_INVALID_FLAGS)) {
ok(ret == ARRAY_SIZE(ligatures_dst), "Got %d, error %d\n", ret, GetLastError()); ok(ret == ARRAY_SIZE(ligatures_dst), "Got %d, error %d\n", ret, GetLastError());
ok(!memcmp(dst, ligatures_dst, sizeof(ligatures_dst)), ok(!memcmp(dst, ligatures_dst, sizeof(ligatures_dst)),
"Got unexpected string %s.\n", wine_dbgstr_w(dst)); "Got unexpected string %s.\n", wine_dbgstr_w(dst));
}
/* FIXME: MAP_PRECOMPOSED : MAP_COMPOSITE */ /* FIXME: MAP_PRECOMPOSED : MAP_COMPOSITE */
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment