[NTDLL_APITEST]
authorPierre Schweitzer <pierre@reactos.org>
Sun, 20 Mar 2016 11:31:42 +0000 (11:31 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Sun, 20 Mar 2016 11:31:42 +0000 (11:31 +0000)
RtlGenerate8dot3Name: add more test locales

svn path=/trunk/; revision=71028

rostests/apitests/ntdll/RtlGenerate8dot3Name.c

index ce3d0a6..6aed32a 100644 (file)
@@ -20,12 +20,42 @@ RtlGenerate8dot3Name(
   _Inout_ PGENERATE_NAME_CONTEXT Context,
   _Inout_ PUNICODE_STRING Name8dot3);
 
   _Inout_ PGENERATE_NAME_CONTEXT Context,
   _Inout_ PUNICODE_STRING Name8dot3);
 
-PWSTR Names[] = { L"Menu Démarrer", L"Sélecteur de configuration clavier.lnk", L"éèàùç.txt", L"çùàèé.txt", L"éèàù.txt", L"çùàè.txt", L"éèàùçeeauc.txt", L"éeèéçcùu.txt", L"test.éxè", L"t£$t¤.txt", L"Long file name.txt", L"Long file name", L"Longfilename.txt", L"Longfilename" };
-PWSTR ShortNames1[] = { L"MENUDM~1", L"SLECTE~1.LNK", L"5C2D~1.TXT", L"423C~1.TXT", L"925E~1.TXT", L"7E4C~1.TXT", L"EEAUC~1.TXT", L"ECU~1.TXT", L"TEST~1.X", L"T$T~1.TXT", L"LONGFI~1.TXT", L"LONGFI~1", L"LONGFI~1.TXT", L"LONGFI~1" };
-PWSTR ShortNames2[] = { L"MENUDM~2", L"SLECTE~2.LNK", L"5C2D~2.TXT", L"423C~2.TXT", L"925E~2.TXT", L"7E4C~2.TXT", L"EEAUC~2.TXT", L"ECU~2.TXT", L"TEST~2.X", L"T$T~2.TXT", L"LONGFI~2.TXT", L"LONGFI~2", L"LONGFI~2.TXT", L"LONGFI~2" };
-PWSTR ExShortNames1[] = { L"MENUDÉ~1", L"SÉLECT~1.LNK", L"ÉÈÀÙÇ~1.TXT", L"ÇÙÀÈÉ~1.TXT", L"ÉÈÀÙ~1.TXT", L"ÇÙÀÈ~1.TXT", L"ÉÈÀÙÇE~1.TXT", L"ÉEÈÉÇC~1.TXT", L"TEST~1.ÉXÈ", L"T£$T¤~1.TXT", L"LONGFI~1.TXT", L"LONGFI~1", L"LONGFI~1.TXT", L"LONGFI~1" };
-PWSTR ExShortNames2[] = { L"MENUDÉ~2", L"SÉLECT~2.LNK", L"ÉÈÀÙÇ~2.TXT", L"ÇÙÀÈÉ~2.TXT", L"ÉÈÀÙ~2.TXT", L"ÇÙÀÈ~2.TXT", L"ÉÈÀÙÇE~2.TXT", L"ÉEÈÉÇC~2.TXT", L"TEST~2.ÉXÈ", L"T£$T¤~2.TXT", L"LONGFI~2.TXT", L"LONGFI~2", L"LONGFI~2.TXT", L"LONGFI~2" };
+#define NAMES_COUNT 14
+#define LOCALES_COUNT 3
+
+PWSTR Names[NAMES_COUNT] = { L"Menu Démarrer", L"Sélecteur de configuration clavier.lnk", L"éèàùç.txt", L"çùàèé.txt", L"éèàù.txt", L"çùàè.txt", L"éèàùçeeauc.txt", L"éeèéçcùu.txt", L"test.éxè", L"t£$t¤.txt", L"Long file name.txt", L"Long file name", L"Longfilename.txt", L"Longfilename" };
+PWSTR ShortNames1[LOCALES_COUNT][NAMES_COUNT] =
+{
+    { L"MENUDM~1", L"SLECTE~1.LNK", L"5C2D~1.TXT", L"423C~1.TXT", L"925E~1.TXT", L"7E4C~1.TXT", L"EEAUC~1.TXT", L"ECU~1.TXT", L"TEST~1.X", L"T$T~1.TXT", L"LONGFI~1.TXT", L"LONGFI~1", L"LONGFI~1.TXT", L"LONGFI~1" },
+    { L"MENUDM~1", L"SLECTE~1.LNK", L"5C2D~1.TXT", L"423C~1.TXT", L"925E~1.TXT", L"7E4C~1.TXT", L"EEAUC~1.TXT", L"ECU~1.TXT", L"TEST~1.X", L"T$T~1.TXT", L"LONGFI~1.TXT", L"LONGFI~1", L"LONGFI~1.TXT", L"LONGFI~1" },
+    { L"MENUDM~1", L"SLECTE~1.LNK", L"5C2D~1.TXT", L"423C~1.TXT", L"925E~1.TXT", L"7E4C~1.TXT", L"EEAUC~1.TXT", L"ECU~1.TXT", L"TEST~1.X", L"T$T~1.TXT", L"LONGFI~1.TXT", L"LONGFI~1", L"LONGFI~1.TXT", L"LONGFI~1" },
+};
+PWSTR ShortNames2[LOCALES_COUNT][NAMES_COUNT] =
+{
+    { L"MENUDM~2", L"SLECTE~2.LNK", L"5C2D~2.TXT", L"423C~2.TXT", L"925E~2.TXT", L"7E4C~2.TXT", L"EEAUC~2.TXT", L"ECU~2.TXT", L"TEST~2.X", L"T$T~2.TXT", L"LONGFI~2.TXT", L"LONGFI~2", L"LONGFI~2.TXT", L"LONGFI~2" },
+    { L"MENUDM~2", L"SLECTE~2.LNK", L"5C2D~2.TXT", L"423C~2.TXT", L"925E~2.TXT", L"7E4C~2.TXT", L"EEAUC~2.TXT", L"ECU~2.TXT", L"TEST~2.X", L"T$T~2.TXT", L"LONGFI~2.TXT", L"LONGFI~2", L"LONGFI~2.TXT", L"LONGFI~2" },
+    { L"MENUDM~2", L"SLECTE~2.LNK", L"5C2D~2.TXT", L"423C~2.TXT", L"925E~2.TXT", L"7E4C~2.TXT", L"EEAUC~2.TXT", L"ECU~2.TXT", L"TEST~2.X", L"T$T~2.TXT", L"LONGFI~2.TXT", L"LONGFI~2", L"LONGFI~2.TXT", L"LONGFI~2" },
+};
+PWSTR ExShortNames1[LOCALES_COUNT][NAMES_COUNT] =
+{
+    { L"MENUDÉ~1", L"SÉLECT~1.LNK", L"ÉÈÀÙÇ~1.TXT", L"ÇÙÀÈÉ~1.TXT", L"ÉÈÀÙ~1.TXT", L"ÇÙÀÈ~1.TXT", L"ÉÈÀÙÇE~1.TXT", L"ÉEÈÉÇC~1.TXT", L"TEST~1.ÉXÈ", L"T£$T¤~1.TXT", L"LONGFI~1.TXT", L"LONGFI~1", L"LONGFI~1.TXT", L"LONGFI~1" },
+    { L"MENUDÉ~1", L"SÉLECT~1.LNK", L"ÉÈÀÙÇ~1.TXT", L"ÇÙÀÈÉ~1.TXT", L"ÉÈÀÙ~1.TXT", L"ÇÙÀÈ~1.TXT", L"ÉÈÀÙÇE~1.TXT", L"ÉEÈÉÇC~1.TXT", L"TEST~1.ÉXÈ", L"T£$T_~1.TXT", L"LONGFI~1.TXT", L"LONGFI~1", L"LONGFI~1.TXT", L"LONGFI~1" },
+    { L"MENUDÉ~1", L"SÉLECT~1.LNK", L"ÉCAU~1.TXT", L"UACÉ~1.TXT", L"ÉCAU~1.TXT", L"UAC~1.TXT", L"ÉCAUEE~1.TXT", L"ÉECÉCU~1.TXT", L"TEST~1.ÉXC", L"T£$T¤~1.TXT", L"LONGFI~1.TXT", L"LONGFI~1", L"LONGFI~1.TXT", L"LONGFI~1" },
+};
+PWSTR ExShortNames2[LOCALES_COUNT][NAMES_COUNT] =
+{
+    { L"MENUDÉ~2", L"SÉLECT~2.LNK", L"ÉÈÀÙÇ~2.TXT", L"ÇÙÀÈÉ~2.TXT", L"ÉÈÀÙ~2.TXT", L"ÇÙÀÈ~2.TXT", L"ÉÈÀÙÇE~2.TXT", L"ÉEÈÉÇC~2.TXT", L"TEST~2.ÉXÈ", L"T£$T¤~2.TXT", L"LONGFI~2.TXT", L"LONGFI~2", L"LONGFI~2.TXT", L"LONGFI~2" },
+    { L"MENUDÉ~2", L"SÉLECT~2.LNK", L"ÉÈÀÙÇ~2.TXT", L"ÇÙÀÈÉ~2.TXT", L"ÉÈÀÙ~2.TXT", L"ÇÙÀÈ~2.TXT", L"ÉÈÀÙÇE~2.TXT", L"ÉEÈÉÇC~2.TXT", L"TEST~2.ÉXÈ", L"T£$T_~2.TXT", L"LONGFI~2.TXT", L"LONGFI~2", L"LONGFI~2.TXT", L"LONGFI~2" },
+    { L"MENUDÉ~2", L"SÉLECT~2.LNK", L"ÉCAU~2.TXT", L"UACÉ~2.TXT", L"ÉCAU~2.TXT", L"UAC~2.TXT", L"ÉCAUEE~2.TXT", L"ÉECÉCU~2.TXT", L"TEST~2.ÉXC", L"T£$T¤~2.TXT", L"LONGFI~2.TXT", L"LONGFI~2", L"LONGFI~2.TXT", L"LONGFI~2" },
+};
+
+ULONG Locales[LOCALES_COUNT][2] =
+{
+    {1252, 850}, // Most used for latin langs
+    {1252, 437}, // Used for English US (not only)
+    {1252, 775}, // Used for Estonian
+};
+
 PVOID LoadCodePageData(ULONG Code)
 {
     char filename[MAX_PATH], sysdir[MAX_PATH];
 PVOID LoadCodePageData(ULONG Code)
 {
     char filename[MAX_PATH], sysdir[MAX_PATH];
@@ -71,41 +101,44 @@ void SetupLocale(ULONG AnsiCode, ULONG OemCode, ULONG Unicode)
 
 START_TEST(RtlGenerate8dot3Name)
 {
 
 START_TEST(RtlGenerate8dot3Name)
 {
-    USHORT i;
-
-    /* Set a french locale. */
-    SetupLocale(1252, 850, -1);
+    USHORT i, j;
 
 
-    for (i = 0; i < 14; ++i)
+    for (j = 0; j < LOCALES_COUNT; ++j)
     {
     {
-        WCHAR Buffer[12];
-        GENERATE_NAME_CONTEXT Context;
-        UNICODE_STRING LongName, ShortName, Expected;
-
-        RtlZeroMemory(&Context, sizeof(GENERATE_NAME_CONTEXT));
-        RtlInitUnicodeString(&LongName, Names[i]);
-        ShortName.Buffer = Buffer;
-        ShortName.Length = 0;
-        ShortName.MaximumLength = sizeof(Buffer);
-
-        RtlGenerate8dot3Name(&LongName, FALSE, &Context, &ShortName);
-        RtlInitUnicodeString(&Expected, ShortNames1[i]);
-        ok(RtlEqualUnicodeString(&Expected, &ShortName, FALSE), "Generated: %.*S. Expected: %.*S\n", ShortName.Length / sizeof(WCHAR), ShortName.Buffer, Expected.Length / sizeof(WCHAR), Expected.Buffer);
-
-        ShortName.Length = 0;
-        RtlGenerate8dot3Name(&LongName, FALSE, &Context, &ShortName);
-        RtlInitUnicodeString(&Expected, ShortNames2[i]);
-        ok(RtlEqualUnicodeString(&Expected, &ShortName, FALSE), "Generated: %.*S. Expected: %.*S\n", ShortName.Length / sizeof(WCHAR), ShortName.Buffer, Expected.Length / sizeof(WCHAR), Expected.Buffer);
-
-        RtlZeroMemory(&Context, sizeof(GENERATE_NAME_CONTEXT));
-        ShortName.Length = 0;
-        RtlGenerate8dot3Name(&LongName, TRUE, &Context, &ShortName);
-        RtlInitUnicodeString(&Expected, ExShortNames1[i]);
-        ok(RtlEqualUnicodeString(&Expected, &ShortName, FALSE), "Generated: %.*S. Expected: %.*S\n", ShortName.Length / sizeof(WCHAR), ShortName.Buffer, Expected.Length / sizeof(WCHAR), Expected.Buffer);
-
-        ShortName.Length = 0;
-        RtlGenerate8dot3Name(&LongName, TRUE, &Context, &ShortName);
-        RtlInitUnicodeString(&Expected, ExShortNames2[i]);
-        ok(RtlEqualUnicodeString(&Expected, &ShortName, FALSE), "Generated: %.*S. Expected: %.*S\n", ShortName.Length / sizeof(WCHAR), ShortName.Buffer, Expected.Length / sizeof(WCHAR), Expected.Buffer);
+        /* Setup locale. */
+        SetupLocale(Locales[j][0], Locales[j][1], -1);
+
+        for (i = 0; i < NAMES_COUNT; ++i)
+        {
+            WCHAR Buffer[12];
+            GENERATE_NAME_CONTEXT Context;
+            UNICODE_STRING LongName, ShortName, Expected;
+
+            RtlZeroMemory(&Context, sizeof(GENERATE_NAME_CONTEXT));
+            RtlInitUnicodeString(&LongName, Names[i]);
+            ShortName.Buffer = Buffer;
+            ShortName.Length = 0;
+            ShortName.MaximumLength = sizeof(Buffer);
+
+            RtlGenerate8dot3Name(&LongName, FALSE, &Context, &ShortName);
+            RtlInitUnicodeString(&Expected, ShortNames1[j][i]);
+            ok(RtlEqualUnicodeString(&Expected, &ShortName, FALSE), "%u:: Generated: %.*S. Expected: %.*S\n", j, ShortName.Length / sizeof(WCHAR), ShortName.Buffer, Expected.Length / sizeof(WCHAR), Expected.Buffer);
+
+            ShortName.Length = 0;
+            RtlGenerate8dot3Name(&LongName, FALSE, &Context, &ShortName);
+            RtlInitUnicodeString(&Expected, ShortNames2[j][i]);
+            ok(RtlEqualUnicodeString(&Expected, &ShortName, FALSE), "%u:: Generated: %.*S. Expected: %.*S\n", j, ShortName.Length / sizeof(WCHAR), ShortName.Buffer, Expected.Length / sizeof(WCHAR), Expected.Buffer);
+
+            RtlZeroMemory(&Context, sizeof(GENERATE_NAME_CONTEXT));
+            ShortName.Length = 0;
+            RtlGenerate8dot3Name(&LongName, TRUE, &Context, &ShortName);
+            RtlInitUnicodeString(&Expected, ExShortNames1[j][i]);
+            ok(RtlEqualUnicodeString(&Expected, &ShortName, FALSE), "%u:: Generated: %.*S. Expected: %.*S\n", j, ShortName.Length / sizeof(WCHAR), ShortName.Buffer, Expected.Length / sizeof(WCHAR), Expected.Buffer);
+
+            ShortName.Length = 0;
+            RtlGenerate8dot3Name(&LongName, TRUE, &Context, &ShortName);
+            RtlInitUnicodeString(&Expected, ExShortNames2[j][i]);
+            ok(RtlEqualUnicodeString(&Expected, &ShortName, FALSE), "%u:: Generated: %.*S. Expected: %.*S\n", j, ShortName.Length / sizeof(WCHAR), ShortName.Buffer, Expected.Length / sizeof(WCHAR), Expected.Buffer);
+        }
     }
 }
     }
 }