Piotr Caban : kernel32/tests: Fix IdnToNameprepUnicode tests.
Alexandre Julliard
julliard at winehq.org
Mon Nov 18 14:51:39 CST 2013
Module: wine
Branch: master
Commit: 18f7f637b01e5b0ea0a27ce398aefbf851cf1304
URL: http://source.winehq.org/git/wine.git/?a=commit;h=18f7f637b01e5b0ea0a27ce398aefbf851cf1304
Author: Piotr Caban <piotr at codeweavers.com>
Date: Sat Nov 16 16:31:13 2013 +0100
kernel32/tests: Fix IdnToNameprepUnicode tests.
---
dlls/kernel32/tests/locale.c | 55 ++++++++++++++++++++++++-----------------
1 files changed, 32 insertions(+), 23 deletions(-)
diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
index 60dea78..62e9f01 100644
--- a/dlls/kernel32/tests/locale.c
+++ b/dlls/kernel32/tests/locale.c
@@ -3107,6 +3107,7 @@ static void test_IdnToNameprepUnicode(void)
DWORD in_len;
const WCHAR in[64];
DWORD ret;
+ DWORD broken_ret;
const WCHAR out[64];
DWORD flags;
DWORD err;
@@ -3114,77 +3115,77 @@ static void test_IdnToNameprepUnicode(void)
} test_data[] = {
{
5, {'t','e','s','t',0},
- 5, {'t','e','s','t',0},
+ 5, 5, {'t','e','s','t',0},
0, 0xdeadbeef
},
{
3, {'a',0xe111,'b'},
- 0, {0},
+ 0, 0, {0},
0, ERROR_INVALID_NAME
},
{
4, {'t',0,'e',0},
- 0, {0},
+ 0, 0, {0},
0, ERROR_INVALID_NAME
},
{
1, {'T',0},
- 1, {'T',0},
+ 1, 1, {'T',0},
0, 0xdeadbeef
},
{
1, {0},
- 0, {0},
+ 0, 0, {0},
0, ERROR_INVALID_NAME
},
{
6, {' ','-','/','[',']',0},
- 6, {' ','-','/','[',']',0},
+ 6, 6, {' ','-','/','[',']',0},
0, 0xdeadbeef
},
{
3, {'a','-','a'},
- 3, {'a','-','a'},
+ 3, 3, {'a','-','a'},
IDN_USE_STD3_ASCII_RULES, 0xdeadbeef
},
{
3, {'a','a','-'},
- 0, {0},
+ 0, 0, {0},
IDN_USE_STD3_ASCII_RULES, ERROR_INVALID_NAME
},
{ /* FoldString is not working as expected when MAP_FOLDCZONE is specified (composition+compatibility) */
10, {'T',0xdf,0x130,0x143,0x37a,0x6a,0x30c,' ',0xaa,0},
- 12, {'t','s','s','i',0x307,0x144,' ',0x3b9,0x1f0,' ','a',0},
+ 12, 12, {'t','s','s','i',0x307,0x144,' ',0x3b9,0x1f0,' ','a',0},
0, 0xdeadbeef, TRUE
},
{
11, {'t',0xad,0x34f,0x1806,0x180b,0x180c,0x180d,0x200b,0x200c,0x200d,0},
- 2, {'t',0},
+ 2, 0, {'t',0},
0, 0xdeadbeef
},
{ /* Another example of incorrectly working FoldString (composition) */
2, {0x3b0, 0},
- 2, {0x3b0, 0},
+ 2, 2, {0x3b0, 0},
0, 0xdeadbeef, TRUE
},
{
2, {0x221, 0},
- 0, {0},
+ 0, 2, {0},
0, ERROR_NO_UNICODE_TRANSLATION
},
{
2, {0x221, 0},
- 2, {0x221, 0},
+ 2, 2, {0x221, 0},
IDN_ALLOW_UNASSIGNED, 0xdeadbeef
},
{
5, {'a','.','.','a',0},
- 0, {0},
+ 0, 0, {0},
0, ERROR_INVALID_NAME
},
{
3, {'a','.',0},
- 3, {'a','.',0},
+ 3, 3, {'a','.',0},
0, 0xdeadbeef
},
};
@@ -3253,15 +3254,23 @@ static void test_IdnToNameprepUnicode(void)
ret = pIdnToNameprepUnicode(test_data[i].flags, test_data[i].in,
test_data[i].in_len, buf, sizeof(buf)/sizeof(WCHAR));
err = GetLastError();
- if(!test_data[i].todo) {
- ok(ret == test_data[i].ret, "%d) ret = %d\n", i, ret);
- ok(err == test_data[i].err, "%d) err = %d\n", i, err);
- ok(!memcmp(test_data[i].out, buf, ret*sizeof(WCHAR)),
- "%d) buf = %s\n", i, wine_dbgstr_wn(buf, ret));
- }else {
- todo_wine ok(!memcmp(test_data[i].out, buf, ret*sizeof(WCHAR)),
- "%d) buf = %s\n", i, wine_dbgstr_wn(buf, ret));
+
+ if (!test_data[i].todo)
+ {
+ ok(ret == test_data[i].ret ||
+ broken(ret == test_data[i].broken_ret), "%d) ret = %d\n", i, ret);
}
+ else
+ {
+ todo_wine ok(ret == test_data[i].ret ||
+ broken(ret == test_data[i].broken_ret), "%d) ret = %d\n", i, ret);
+ }
+ if(ret != test_data[i].ret)
+ continue;
+
+ ok(err == test_data[i].err, "%d) err = %d\n", i, err);
+ ok(!memcmp(test_data[i].out, buf, ret*sizeof(WCHAR)),
+ "%d) buf = %s\n", i, wine_dbgstr_wn(buf, ret));
}
}
More information about the wine-cvs
mailing list