Alexandre Julliard wrote:
Paul Vriens <[email protected]> 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.

--
Cheers,

Paul.


Reply via email to