Hans Leidekker wrote:
Passes on win2k3, vista and the win7 release candidate.
Hi Hans,
These are the results on Win95:
mlang.c:2002: Test failed: 37: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 500: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 855: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 858: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 860: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 861: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 863: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 864: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 865: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1047: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1140: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1141: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1142: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1143: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1144: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1145: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1146: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1147: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1148: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1149: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1361: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 10000: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 10010: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 10017: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 10079: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 10082: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20001: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20003: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20004: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20005: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20105: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20106: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20107: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20108: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20127: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20261: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20269: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20273: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20277: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20278: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20280: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20284: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20285: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20297: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20871: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20924: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20932: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20936: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20949: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 21027: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 28605: expected S_OK, got 0x80070057 mlang.c:1997: Test failed: 29001: expected S_FALSE or S_OK, got 0x80070057 mlang.c:2002: Test failed: 50227: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 50229: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 54936: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57002: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57003: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57004: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57005: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57006: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57007: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57008: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57009: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57010: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57011: expected S_OK, got 0x80070057
win98:
mlang.c:2002: Test failed: 37: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 500: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 858: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 860: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 861: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 863: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 865: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1047: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1140: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1141: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1142: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1143: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1144: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1145: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1146: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1147: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1148: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1149: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 10000: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 10079: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20105: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20106: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20107: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20108: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20127: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20261: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20269: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20273: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20277: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20278: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20280: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20284: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20285: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20297: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20871: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20924: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 21027: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 28605: expected S_OK, got 0x80070057 mlang.c:1997: Test failed: 29001: expected S_FALSE or S_OK, got 0x80070057 mlang.c:2002: Test failed: 57002: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57003: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57004: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57005: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57006: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57007: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57008: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57009: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57010: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57011: expected S_OK, got 0x80070057
NT4:
mlang.c:2002: Test failed: 37: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 500: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 855: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 858: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 860: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 861: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 863: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 865: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1047: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1140: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1141: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1142: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1143: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1144: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1145: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1146: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1147: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1148: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 1149: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 10079: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20105: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20106: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20107: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20108: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20127: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20269: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20273: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20277: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20278: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20280: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20284: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20285: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20297: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20871: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 20924: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 21027: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 28605: expected S_OK, got 0x80070057 mlang.c:1997: Test failed: 29001: expected S_FALSE or S_OK, got 0x80070057 mlang.c:2002: Test failed: 57002: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57003: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57004: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57005: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57006: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57007: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57008: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57009: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57010: expected S_OK, got 0x80070057 mlang.c:2002: Test failed: 57011: expected S_OK, got 0x80070057
W2K:
mlang.c:2002: Test failed: 855: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 858: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1047: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1140: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1141: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1142: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1143: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1144: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1145: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1146: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1147: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1148: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1149: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20105: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20106: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20107: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20108: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20269: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20273: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20277: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20278: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20280: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20284: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20285: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20297: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20871: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20924: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 21027: expected S_OK, got 0x00000001
XP:
mlang.c:2002: Test failed: 858: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 870: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1047: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1140: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1141: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1142: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1143: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1144: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1145: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1146: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1147: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1148: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 1149: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20105: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20106: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20107: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20108: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20269: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20273: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20277: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20278: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20280: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20284: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20285: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20297: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20423: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20871: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20880: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20905: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 20924: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 21025: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 21027: expected S_OK, got 0x00000001 mlang.c:2002: Test failed: 28593: expected S_OK, got 0x00000001
Would using IsValidCodePage() be helpful here?
Paul Vriens wrote:
Hans Leidekker wrote:
Passes on win2k3, vista and the win7 release candidate.
Would using IsValidCodePage() be helpful here?
Yep, something like:
hr = IMultiLanguage2_IsCodePageInstallable(ml2, i); if (i == 29001 || /* win2k3 */ i == 50930 || i == 50931 || i == 50933 || i == 50935 || i == 50937 || i == 50939 /* vista */) { ok(hr == S_FALSE || hr == S_OK || broken(!IsValidCodePage(i)), "%u: expected S_FALSE or S_OK, got 0x%08x\n", i, hr); j++; } else if (i == cp[j]) { ok(hr == S_OK || broken(!IsValidCodePage(i)), "%u: expected S_OK, got 0x%08x\n", i, hr); j++; } else ok(hr == E_INVALIDARG, "%u: expected E_INVALIDARG, got 0x%08x\n", i, hr);
does the trick.
On Wednesday 01 July 2009 12:12:47 pm Paul Vriens wrote:
Would using IsValidCodePage() be helpful here?
Yep, something like:
hr = IMultiLanguage2_IsCodePageInstallable(ml2, i); if (i == 29001 || /* win2k3 */ i == 50930 || i == 50931 || i == 50933 || i == 50935 || i
== 50937 || i == 50939 /* vista */) { ok(hr == S_FALSE || hr == S_OK || broken(!IsValidCodePage(i)), "%u: expected S_FALSE or S_OK, got 0x%08x\n", i, hr);
IsValidCodePage might be helpful yes, although marking it broken is a bit too strong I think, it's just a difference in codepage databases.
-Hans
Hans Leidekker wrote:
On Wednesday 01 July 2009 12:12:47 pm Paul Vriens wrote:
Would using IsValidCodePage() be helpful here?
Yep, something like:
hr = IMultiLanguage2_IsCodePageInstallable(ml2, i); if (i == 29001 || /* win2k3 */ i == 50930 || i == 50931 || i == 50933 || i == 50935 || i
== 50937 || i == 50939 /* vista */) { ok(hr == S_FALSE || hr == S_OK || broken(!IsValidCodePage(i)), "%u: expected S_FALSE or S_OK, got 0x%08x\n", i, hr);
IsValidCodePage might be helpful yes, although marking it broken is a bit too strong I think, it's just a difference in codepage databases.
-Hans
Yes, broken() seems strong but it's actually meant as behaviour_we_dont_want_to_replicate() in this case.
Using win_skip() would be nicer but that would mean way bigger report files. Maybe have a counter for skipped codepages and issue one win_skip() for all of them?
Paul Vriens paul.vriens.wine@gmail.com writes:
Hans Leidekker wrote:
On Wednesday 01 July 2009 12:12:47 pm Paul Vriens wrote:
Would using IsValidCodePage() be helpful here?
Yep, something like:
hr = IMultiLanguage2_IsCodePageInstallable(ml2, i); if (i == 29001 || /* win2k3 */ i == 50930 || i == 50931 || i == 50933 || i == 50935
|| i == 50937 || i == 50939 /* vista */) { ok(hr == S_FALSE || hr == S_OK || broken(!IsValidCodePage(i)), "%u: expected S_FALSE or S_OK, got 0x%08x\n", i, hr);
IsValidCodePage might be helpful yes, although marking it broken is a bit too strong I think, it's just a difference in codepage databases.
-Hans
Yes, broken() seems strong but it's actually meant as behaviour_we_dont_want_to_replicate() in this case.
I'm not convinced we don't want to replicate it. Using something like IsValidCodePage in the implementation would be better than hardcoding the list.
Alexandre Julliard wrote:
Paul Vriens paul.vriens.wine@gmail.com writes:
Hans Leidekker wrote:
On Wednesday 01 July 2009 12:12:47 pm Paul Vriens wrote:
Would using IsValidCodePage() be helpful here?
Yep, something like:
hr = IMultiLanguage2_IsCodePageInstallable(ml2, i); if (i == 29001 || /* win2k3 */ i == 50930 || i == 50931 || i == 50933 || i == 50935
|| i == 50937 || i == 50939 /* vista */) { ok(hr == S_FALSE || hr == S_OK || broken(!IsValidCodePage(i)), "%u: expected S_FALSE or S_OK, got 0x%08x\n", i, hr);
IsValidCodePage might be helpful yes, although marking it broken is a bit too strong I think, it's just a difference in codepage databases.
-Hans
Yes, broken() seems strong but it's actually meant as behaviour_we_dont_want_to_replicate() in this case.
I'm not convinced we don't want to replicate it. Using something like IsValidCodePage in the implementation would be better than hardcoding the list.
I was actually pointing only to the failures in the test. These failures (varying number of failures per platform) happen on XP and below.
Unfortunately there isn't a 1 to 1 mapping between !IsValidCodePage() and E_INVALIDARG. (The exceptions are mentioned already in the test).
The ideal tests would then probably be something like:
ret = IsValidCodePage(i); hr = IMultiLanguage2_IsCodePageInstallable(ml2, i); ok((ret && (hr == S_OK)) || (!ret && (hr == E_INVALIDARG)), "Something wrong")
There are however numerous errors when running this on all platforms.
On Wednesday 01 July 2009 01:09:52 pm Alexandre Julliard wrote:
IsValidCodePage might be helpful yes, although marking it broken is a bit too strong I think, it's just a difference in codepage databases.
-Hans
Yes, broken() seems strong but it's actually meant as behaviour_we_dont_want_to_replicate() in this case.
I'm not convinced we don't want to replicate it. Using something like IsValidCodePage in the implementation would be better than hardcoding the list.
Some more testing suggests that the installable set is a superset of the valid codepages set. So we could just return the set of valid codepages for now and not hardcode anything.
-Hans
Hans Leidekker hans@codeweavers.com writes:
Some more testing suggests that the installable set is a superset of the valid codepages set. So we could just return the set of valid codepages for now and not hardcode anything.
Yes, it should probably use something like IMultiLanguage2_ValidateCodePageEx (and the test should probably use that too). This way we can also return the non kernel32-supported codepages.