Alexandre Julliard : kernel32/tests: Add more normalization tests.

Alexandre Julliard julliard at winehq.org
Tue Feb 18 16:13:46 CST 2020


Module: wine
Branch: master
Commit: 84b05383bb5f5253525e80183f9067cc90ff4469
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=84b05383bb5f5253525e80183f9067cc90ff4469

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Feb 18 19:59:16 2020 +0100

kernel32/tests: Add more normalization tests.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernel32/tests/locale.c | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
index 67b1982395..097cd1fcb4 100644
--- a/dlls/kernel32/tests/locale.c
+++ b/dlls/kernel32/tests/locale.c
@@ -6104,6 +6104,14 @@ static void test_NormalizeString(void)
                 ok( str_cmp == 0, "%s:%d: string incorrect got %s expect %s\n", wine_dbgstr_w(ptest->str), i,
                     wine_dbgstr_w(dst), wine_dbgstr_w(ptest->expected[i]) );
                 ret = FALSE;
+                status = pRtlIsNormalizedString( norm_forms[i], ptest->str, -1, &ret );
+                todo_wine ok( !status, "%s:%d: failed %x\n", wine_dbgstr_w(ptest->str), i, status );
+                if (!wcscmp( ptest->str, dst ))
+                    todo_wine
+                    ok( ret, "%s:%d: not normalized\n", wine_dbgstr_w(ptest->str), i );
+                else
+                    ok( !ret, "%s:%d: normalized (dst %s)\n", wine_dbgstr_w(ptest->str), i, wine_dbgstr_w(dst) );
+                ret = FALSE;
                 status = pRtlIsNormalizedString( norm_forms[i], dst, dstlen, &ret );
                 todo_wine ok( !status, "%s:%d: failed %x\n", wine_dbgstr_w(ptest->str), i, status );
                 todo_wine ok( ret, "%s:%d: not normalized\n", wine_dbgstr_w(ptest->str), i );
@@ -6301,7 +6309,7 @@ static void test_NormalizeString(void)
     {
         char *p, buffer[1024];
         WCHAR str[3], srcW[32], dstW[32], resW[4][32];
-        int i, line = 0, part = 0, ch;
+        int line = 0, part = 0, ch;
         char tested[0x110000 / 8];
 
         while (fgets( buffer, sizeof(buffer), f ))
@@ -6334,6 +6342,28 @@ static void test_NormalizeString(void)
                 ok( !wcscmp( dstW, resW[i] ),
                     "line %u form %u: wrong result %s for %s expected %s\n", line, i,
                     wine_dbgstr_w( dstW ), wine_dbgstr_w( srcW ), wine_dbgstr_w( resW[i] ));
+
+                ret = FALSE;
+                status = pRtlIsNormalizedString( norm_forms[i], srcW, -1, &ret );
+                ok( !status, "line %u form %u: RtlIsNormalizedString failed %x\n", line, i, status );
+                if (!wcscmp( srcW, dstW ))
+                    ok( ret, "line %u form %u: source not normalized %s\n", line, i, wine_dbgstr_w(srcW) );
+                else
+                    ok( !ret, "line %u form %u: source normalized %s\n", line, i, wine_dbgstr_w(srcW) );
+                ret = FALSE;
+                status = pRtlIsNormalizedString( norm_forms[i], dstW, -1, &ret );
+                ok( !status, "line %u form %u: RtlIsNormalizedString failed %x\n", line, i, status );
+                ok( ret, "line %u form %u: dest not normalized %s\n", line, i, wine_dbgstr_w(dstW) );
+
+                for (j = 0; j < 4; j++)
+                {
+                    int expect = i | (j & 2);
+                    memset( dstW, 0xcc, sizeof(dstW) );
+                    dstlen = pNormalizeString( norm_forms[i], resW[j], -1, dstW, ARRAY_SIZE(dstW) );
+                    ok( !wcscmp( dstW, resW[expect] ),
+                        "line %u form %u res %u: wrong result %s for %s expected %s\n", line, i, j,
+                        wine_dbgstr_w( dstW ), wine_dbgstr_w( resW[j] ), wine_dbgstr_w( resW[expect] ));
+                }
             }
         }
         fclose( f );




More information about the wine-cvs mailing list