Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
a4b636f1
Commit
a4b636f1
authored
Jul 28, 2008
by
Aric Stewart
Committed by
Alexandre Julliard
Jul 29, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mlang: Japanese conversion tests.
parent
6d598150
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
173 additions
and
0 deletions
+173
-0
mlang.c
dlls/mlang/tests/mlang.c
+173
-0
No files found.
dlls/mlang/tests/mlang.c
View file @
a4b636f1
...
...
@@ -1111,6 +1111,177 @@ static void test_ConvertINetUnicodeToMultiByte(void)
"Expected %u, got %u
\n
"
,
lstrlenW
(
src
)
+
1
,
destsz
);
}
static
void
test_JapaneseConversion
(
void
)
{
/* Data */
static
WCHAR
unc_jp
[
9
][
12
]
=
{
{
9
,
0x31
,
0x20
,
0x3042
,
0x3044
,
0x3046
,
0x3048
,
0x304a
,
0x000d
,
0x000a
},
{
9
,
0x31
,
0x20
,
0x30a2
,
0x30a4
,
0x30a6
,
0x30a8
,
0x30aa
,
0x000d
,
0x000a
},
{
9
,
0x31
,
0x20
,
0xff71
,
0xff72
,
0xff73
,
0xff74
,
0xff75
,
0x000d
,
0x000a
},
{
9
,
0x31
,
0x20
,
0x3041
,
0x3043
,
0x3045
,
0x3047
,
0x3049
,
0x000d
,
0x000a
},
{
9
,
0x31
,
0x20
,
0x30a1
,
0x30a3
,
0x30a5
,
0x30a7
,
0x30a9
,
0x000d
,
0x000a
},
{
9
,
0x31
,
0x20
,
0xff67
,
0xff68
,
0xff69
,
0xff6a
,
0xff6b
,
0x000d
,
0x000a
},
{
9
,
0x31
,
0x20
,
0x300c
,
0x65e5
,
0x672c
,
0x8a9e
,
0x300d
,
0x000d
,
0x000a
},
{
7
,
0x31
,
0x20
,
0x25c7
,
0x25c7
,
0x3012
,
0x000d
,
0x000a
},
{
11
,
0x31
,
0x20
,
0x203b
,
0x3010
,
0x0074
,
0x0065
,
0x0073
,
0x0074
,
0x3011
,
0x000d
,
0x000a
}
};
static
CHAR
jis_jp
[
9
][
27
]
=
{
{
20
,
0x31
,
0x20
,
0x1b
,
0x24
,
0x42
,
0x24
,
0x22
,
0x24
,
0x24
,
0x24
,
0x26
,
0x24
,
0x28
,
0x24
,
0x2a
,
0x1b
,
0x28
,
0x42
,
0x0d
,
0x0a
},
{
20
,
0x31
,
0x20
,
0x1b
,
0x24
,
0x42
,
0x25
,
0x22
,
0x25
,
0x24
,
0x25
,
0x26
,
0x25
,
0x28
,
\
0x25
,
0x2a
,
0x1b
,
0x28
,
0x42
,
0x0d
,
0x0a
},
{
20
,
0x31
,
0x20
,
0x1b
,
0x24
,
0x42
,
0x25
,
0x22
,
0x25
,
0x24
,
0x25
,
0x26
,
0x25
,
0x28
,
\
0x25
,
0x2a
,
0x1b
,
0x28
,
0x42
,
0x0d
,
0x0a
},
{
20
,
0x31
,
0x20
,
0x1b
,
0x24
,
0x42
,
0x24
,
0x21
,
0x24
,
0x23
,
0x24
,
0x25
,
0x24
,
0x27
,
\
0x24
,
0x29
,
0x1b
,
0x28
,
0x42
,
0x0d
,
0x0a
},
{
20
,
0x31
,
0x20
,
0x1b
,
0x24
,
0x42
,
0x25
,
0x21
,
0x25
,
0x23
,
0x25
,
0x25
,
0x25
,
0x27
,
\
0x25
,
0x29
,
0x1b
,
0x28
,
0x42
,
0x0d
,
0x0a
},
{
20
,
0x31
,
0x20
,
0x1b
,
0x24
,
0x42
,
0x25
,
0x21
,
0x25
,
0x23
,
0x25
,
0x25
,
0x25
,
0x27
,
\
0x25
,
0x29
,
0x1b
,
0x28
,
0x42
,
0x0d
,
0x0a
},
{
20
,
0x31
,
0x20
,
0x1b
,
0x24
,
0x42
,
0x21
,
0x56
,
0x46
,
0x7c
,
0x4b
,
0x5c
,
0x38
,
0x6c
,
\
0x21
,
0x57
,
0x1b
,
0x28
,
0x42
,
0x0d
,
0x0a
},
{
16
,
0x31
,
0x20
,
0x1b
,
0x24
,
0x42
,
0x21
,
0x7e
,
0x21
,
0x7e
,
0x22
,
0x29
,
0x1b
,
0x28
,
\
0x42
,
0x0d
,
0x0a
},
{
26
,
0x31
,
0x20
,
0x1b
,
0x24
,
0x42
,
0x22
,
0x28
,
0x21
,
0x5a
,
0x1b
,
0x28
,
0x42
,
0x74
,
\
0x65
,
0x73
,
0x74
,
0x1b
,
0x24
,
0x42
,
0x21
,
0x5b
,
0x1b
,
0x28
,
0x42
,
0x0d
,
0x0a
}
};
static
CHAR
sjis_jp
[
9
][
15
]
=
{
{
14
,
0x31
,
0x20
,
0x82
,
0xa0
,
0x82
,
0xa2
,
0x82
,
0xa4
,
0x82
,
0xa6
,
0x82
,
0xa8
,
0x0d
,
0x0a
},
{
14
,
0x31
,
0x20
,
0x83
,
0x41
,
0x83
,
0x43
,
0x83
,
0x45
,
0x83
,
0x47
,
0x83
,
0x49
,
0x0d
,
0x0a
},
{
9
,
0x31
,
0x20
,
0xb1
,
0xb2
,
0xb3
,
0xb4
,
0xb5
,
0x0d
,
0x0a
},
{
14
,
0x31
,
0x20
,
0x82
,
0x9f
,
0x82
,
0xa1
,
0x82
,
0xa3
,
0x82
,
0xa5
,
0x82
,
0xa7
,
0x0d
,
0x0a
},
{
14
,
0x31
,
0x20
,
0x83
,
0x40
,
0x83
,
0x42
,
0x83
,
0x44
,
0x83
,
0x46
,
0x83
,
0x48
,
0x0d
,
0x0a
},
{
9
,
0x31
,
0x20
,
0xa7
,
0xa8
,
0xa9
,
0xaa
,
0xab
,
0x0d
,
0x0a
},
{
14
,
0x31
,
0x20
,
0x81
,
0x75
,
0x93
,
0xfa
,
0x96
,
0x7b
,
0x8c
,
0xea
,
0x81
,
0x76
,
0x0d
,
0x0a
},
{
10
,
0x31
,
0x20
,
0x81
,
0x9e
,
0x81
,
0x9e
,
0x81
,
0xa7
,
0x0d
,
0x0a
},
{
14
,
0x31
,
0x20
,
0x81
,
0xa6
,
0x81
,
0x79
,
0x74
,
0x65
,
0x73
,
0x74
,
0x81
,
0x7a
,
0x0d
,
0x0a
}
};
static
CHAR
euc_jp
[
9
][
15
]
=
{
{
14
,
0x31
,
0x20
,
0xa4
,
0xa2
,
0xa4
,
0xa4
,
0xa4
,
0xa6
,
0xa4
,
0xa8
,
0xa4
,
0xaa
,
0x0d
,
0x0a
},
{
14
,
0x31
,
0x20
,
0xa5
,
0xa2
,
0xa5
,
0xa4
,
0xa5
,
0xa6
,
0xa5
,
0xa8
,
0xa5
,
0xaa
,
0x0d
,
0x0a
},
{
14
,
0x31
,
0x20
,
0x8e
,
0xb1
,
0x8e
,
0xb2
,
0x8e
,
0xb3
,
0x8e
,
0xb4
,
0x8e
,
0xb5
,
0x0d
,
0x0a
},
{
14
,
0x31
,
0x20
,
0xa4
,
0xa1
,
0xa4
,
0xa3
,
0xa4
,
0xa5
,
0xa4
,
0xa7
,
0xa4
,
0xa9
,
0x0d
,
0x0a
},
{
14
,
0x31
,
0x20
,
0xa5
,
0xa1
,
0xa5
,
0xa3
,
0xa5
,
0xa5
,
0xa5
,
0xa7
,
0xa5
,
0xa9
,
0x0d
,
0x0a
},
{
14
,
0x31
,
0x20
,
0x8e
,
0xa7
,
0x8e
,
0xa8
,
0x8e
,
0xa9
,
0x8e
,
0xaa
,
0x8e
,
0xab
,
0x0d
,
0x0a
},
{
14
,
0x31
,
0x20
,
0xa1
,
0xd6
,
0xc6
,
0xfc
,
0xcb
,
0xdc
,
0xb8
,
0xec
,
0xa1
,
0xd7
,
0x0d
,
0x0a
},
{
10
,
0x31
,
0x20
,
0xa1
,
0xfe
,
0xa1
,
0xfe
,
0xa2
,
0xa9
,
0x0d
,
0x0a
},
{
14
,
0x31
,
0x20
,
0xa2
,
0xa8
,
0xa1
,
0xda
,
0x74
,
0x65
,
0x73
,
0x74
,
0xa1
,
0xdb
,
0x0d
,
0x0a
}
};
INT
srcsz
,
destsz
;
INT
i
;
HRESULT
hr
;
CHAR
output
[
30
];
WCHAR
outputW
[
30
];
int
outlen
;
/* test unc->jis */
for
(
i
=
0
;
i
<
9
;
i
++
)
{
int
j
;
destsz
=
30
;
outlen
=
jis_jp
[
i
][
0
];
srcsz
=
unc_jp
[
i
][
0
];
hr
=
pConvertINetUnicodeToMultiByte
(
NULL
,
50220
,
&
unc_jp
[
i
][
1
],
&
srcsz
,
output
,
&
destsz
);
ok
(
hr
==
S_OK
,
"(%i) Expected S_OK, got %08x
\n
"
,
i
,
hr
);
ok
(
destsz
==
outlen
,
"(%i) Expected %i, got %i
\n
"
,
i
,
outlen
,
destsz
);
ok
(
srcsz
==
unc_jp
[
i
][
0
],
"(%i) Expected %i, got %i
\n
"
,
i
,
unc_jp
[
i
][
0
],
srcsz
);
ok
(
memcmp
(
output
,
&
jis_jp
[
i
][
1
],
destsz
)
==
0
,
"(%i) Strings do not match
\n
"
,
i
);
/* and back */
srcsz
=
outlen
;
destsz
=
30
;
hr
=
pConvertINetMultiByteToUnicode
(
NULL
,
50220
,
output
,
&
srcsz
,
outputW
,
&
destsz
);
/*
* JIS does not have hankata so it get automatically converted to
* zenkata. this means that strings 1 and 2 are identical as well as
* strings 4 and 5.
*/
j
=
i
;
if
(
i
==
2
)
j
=
1
;
if
(
i
==
5
)
j
=
4
;
ok
(
hr
==
S_OK
,
"(%i) Expected S_OK, got %08x
\n
"
,
i
,
hr
);
ok
(
destsz
==
unc_jp
[
j
][
0
],
"(%i) Expected %i, got %i
\n
"
,
i
,
unc_jp
[
j
][
0
],
destsz
);
ok
(
srcsz
==
outlen
,
"(%i) Expected %i, got %i
\n
"
,
i
,
outlen
,
srcsz
);
ok
(
memcmp
(
outputW
,
&
unc_jp
[
j
][
1
],
destsz
)
==
0
,
"(%i) Strings do not match
\n
"
,
i
);
}
/* test unc->sjis */
for
(
i
=
0
;
i
<
9
;
i
++
)
{
destsz
=
30
;
outlen
=
sjis_jp
[
i
][
0
];
srcsz
=
unc_jp
[
i
][
0
];
hr
=
pConvertINetUnicodeToMultiByte
(
NULL
,
932
,
&
unc_jp
[
i
][
1
],
&
srcsz
,
output
,
&
destsz
);
ok
(
hr
==
S_OK
,
"(%i) Expected S_OK, got %08x
\n
"
,
i
,
hr
);
ok
(
destsz
==
outlen
,
"(%i) Expected %i, got %i
\n
"
,
i
,
outlen
,
destsz
);
ok
(
srcsz
==
unc_jp
[
i
][
0
],
"(%i) Expected %i, got %i
\n
"
,
i
,
unc_jp
[
i
][
0
],
srcsz
);
ok
(
memcmp
(
output
,
&
sjis_jp
[
i
][
1
],
outlen
)
==
0
,
"(%i) Strings do not match
\n
"
,
i
);
srcsz
=
outlen
;
destsz
=
30
;
hr
=
pConvertINetMultiByteToUnicode
(
NULL
,
932
,
output
,
&
srcsz
,
outputW
,
&
destsz
);
ok
(
hr
==
S_OK
,
"(%i) Expected S_OK, got %08x
\n
"
,
i
,
hr
);
ok
(
destsz
==
unc_jp
[
i
][
0
],
"(%i) Expected %i, got %i
\n
"
,
i
,
unc_jp
[
i
][
0
],
destsz
);
ok
(
srcsz
==
outlen
,
"(%i) Expected %i, got %i
\n
"
,
i
,
outlen
,
srcsz
);
ok
(
memcmp
(
outputW
,
&
unc_jp
[
i
][
1
],
destsz
)
==
0
,
"(%i) Strings do not match
\n
"
,
i
);
}
/* test unc->euc */
for
(
i
=
0
;
i
<
9
;
i
++
)
{
destsz
=
30
;
outlen
=
euc_jp
[
i
][
0
];
srcsz
=
unc_jp
[
i
][
0
];
hr
=
pConvertINetUnicodeToMultiByte
(
NULL
,
51932
,
&
unc_jp
[
i
][
1
],
&
srcsz
,
output
,
&
destsz
);
ok
(
hr
==
S_OK
,
"(%i) Expected S_OK, got %08x
\n
"
,
i
,
hr
);
ok
(
destsz
==
outlen
,
"(%i) Expected %i, got %i
\n
"
,
i
,
outlen
,
destsz
);
ok
(
srcsz
==
unc_jp
[
i
][
0
],
"(%i) Expected %i, got %i
\n
"
,
i
,
unc_jp
[
i
][
0
],
destsz
);
ok
(
memcmp
(
output
,
&
euc_jp
[
i
][
1
],
outlen
)
==
0
,
"(%i) Strings do not match
\n
"
,
i
);
srcsz
=
outlen
;
destsz
=
30
;
hr
=
pConvertINetMultiByteToUnicode
(
NULL
,
51932
,
output
,
&
srcsz
,
outputW
,
&
destsz
);
ok
(
hr
==
S_OK
,
"(%i) Expected S_OK, got %08x
\n
"
,
i
,
hr
);
ok
(
destsz
==
unc_jp
[
i
][
0
],
"(%i) Expected %i, got %i
\n
"
,
i
,
unc_jp
[
i
][
0
],
destsz
);
ok
(
srcsz
==
outlen
,
"(%i) Expected %i, got %i
\n
"
,
i
,
outlen
,
srcsz
);
ok
(
memcmp
(
outputW
,
&
unc_jp
[
i
][
1
],
destsz
)
==
0
,
"(%i) Strings do not match
\n
"
,
i
);
}
/* Japanese autodetect */
i
=
0
;
destsz
=
30
;
srcsz
=
jis_jp
[
i
][
0
];
hr
=
pConvertINetMultiByteToUnicode
(
NULL
,
50932
,
&
jis_jp
[
i
][
1
],
&
srcsz
,
outputW
,
&
destsz
);
ok
(
hr
==
S_OK
,
"(%i) Expected S_OK, got %08x
\n
"
,
i
,
hr
);
ok
(
destsz
==
unc_jp
[
i
][
0
],
"(%i) Expected %i, got %i
\n
"
,
i
,
unc_jp
[
i
][
0
],
destsz
);
ok
(
srcsz
==
jis_jp
[
i
][
0
],
"(%i) Expected %i, got %i
\n
"
,
i
,
jis_jp
[
i
][
0
],
srcsz
);
ok
(
memcmp
(
outputW
,
&
unc_jp
[
i
][
1
],
destsz
)
==
0
,
"(%i) Strings do not match
\n
"
,
i
);
i
=
1
;
destsz
=
30
;
srcsz
=
sjis_jp
[
i
][
0
];
hr
=
pConvertINetMultiByteToUnicode
(
NULL
,
50932
,
&
sjis_jp
[
i
][
1
],
&
srcsz
,
outputW
,
&
destsz
);
ok
(
hr
==
S_OK
,
"(%i) Expected S_OK, got %08x
\n
"
,
i
,
hr
);
ok
(
destsz
==
unc_jp
[
i
][
0
],
"(%i) Expected %i, got %i
\n
"
,
i
,
unc_jp
[
i
][
0
],
destsz
);
ok
(
srcsz
==
sjis_jp
[
i
][
0
],
"(%i) Expected %i, got %i
\n
"
,
i
,
sjis_jp
[
i
][
0
],
srcsz
);
ok
(
memcmp
(
outputW
,
&
unc_jp
[
i
][
1
],
destsz
)
==
0
,
"(%i) Strings do not match
\n
"
,
i
);
i
=
2
;
destsz
=
30
;
srcsz
=
euc_jp
[
i
][
0
];
hr
=
pConvertINetMultiByteToUnicode
(
NULL
,
50932
,
&
euc_jp
[
i
][
1
],
&
srcsz
,
outputW
,
&
destsz
);
ok
(
hr
==
S_OK
,
"(%i) Expected S_OK, got %08x
\n
"
,
i
,
hr
);
ok
(
destsz
==
unc_jp
[
i
][
0
],
"(%i) Expected %i, got %i
\n
"
,
i
,
unc_jp
[
i
][
0
],
destsz
);
ok
(
srcsz
==
euc_jp
[
i
][
0
],
"(%i) Expected %i, got %i
\n
"
,
i
,
euc_jp
[
i
][
0
],
srcsz
);
ok
(
memcmp
(
outputW
,
&
unc_jp
[
i
][
1
],
destsz
)
==
0
,
"(%i) Strings do not match
\n
"
,
i
);
}
START_TEST
(
mlang
)
{
IMultiLanguage2
*
iML2
=
NULL
;
...
...
@@ -1158,6 +1329,8 @@ START_TEST(mlang)
test_ConvertINetUnicodeToMultiByte
();
test_JapaneseConversion
();
ret
=
CoCreateInstance
(
&
CLSID_CMultiLanguage
,
NULL
,
CLSCTX_INPROC_SERVER
,
&
IID_IMLangFontLink
,
(
void
**
)
&
iMLFL
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment