There are quite a few failures in kernel32:locale on Vista+. The attached patch tries to address those. Although any comment on the patch is welcome, I'm particularly interested in feedback on the changes to test_FoldStringW() (the part that starts at "@@ -2081,43 +2136,49 @@ static void test_FoldStringW(void)".)
The problem with this test was that FoldStringW() behaves very differently on Vista+ for the MAP_FOLDCZONE and MAP_EXPAND_LIGATURES cases. The tests were broken off after more than 50 failures, if I remove that then I get 7455 failures for MAP_FOLDCZONE and 1350 failures for MAP_EXPAND_LIGATURES.
Now, it is possible to fix all those failures. However, doing so would require us to duplicate the tables that Microsoft uses. This is basically the same problem that we have with the collation tables. To work around this, I simply skip the test on Vista+, just like we skip the sorting test. Does this sound like the right approach?
Thanks, Ge.