[NTDLL_APITESTS]
authorPierre Schweitzer <pierre@reactos.org>
Sun, 20 Sep 2015 10:42:05 +0000 (10:42 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Sun, 20 Sep 2015 10:42:05 +0000 (10:42 +0000)
Add a few tests for RtlGenerate8dot3Name()

svn path=/trunk/; revision=69303

rostests/apitests/ntdll/CMakeLists.txt
rostests/apitests/ntdll/RtlGenerate8dot3Name.c [new file with mode: 0644]
rostests/apitests/ntdll/testlist.c

index 3c7fc7d..9c2792a 100644 (file)
@@ -22,6 +22,7 @@ list(APPEND SOURCE
     RtlDosPathNameToNtPathName_U.c
     RtlDosSearchPath_U.c
     RtlDosSearchPath_Ustr.c
+    RtlGenerate8dot3Name.c
     RtlGetFullPathName_U.c
     RtlGetFullPathName_Ustr.c
     RtlGetFullPathName_UstrEx.c
diff --git a/rostests/apitests/ntdll/RtlGenerate8dot3Name.c b/rostests/apitests/ntdll/RtlGenerate8dot3Name.c
new file mode 100644 (file)
index 0000000..f05a035
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * PROJECT:         ReactOS api tests
+ * LICENSE:         GPLv2+ - See COPYING in the top level directory
+ * PURPOSE:         Test for RtlGenerate8dot3Name
+ * PROGRAMMER:      Pierre Schweitzer <pierre@reactos.org>
+ */
+
+#include <apitest.h>
+
+#define WIN32_NO_STATUS
+#include <ndk/rtlfuncs.h>
+
+NTSYSAPI
+VOID
+NTAPI
+RtlGenerate8dot3Name(
+  _In_ PCUNICODE_STRING Name,
+  _In_ BOOLEAN AllowExtendedCharacters,
+  _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"éèàùçeeauc.txt" };
+PWSTR ShortNames1[] = { L"MENUDM~1", L"SLECTE~1.LNK", L"5C2D~1.TXT", L"EEAUC~1.TXT" };
+PWSTR ShortNames2[] = { L"MENUDM~2", L"SLECTE~2.LNK", L"5C2D~2.TXT", L"EEAUC~2.TXT" };
+
+START_TEST(RtlGenerate8dot3Name)
+{
+    USHORT i;
+
+    for (i = 0; i < 4; ++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 = sizeof(Buffer);
+        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, ShortName.Buffer, Expected.Length, Expected.Buffer);
+
+        RtlGenerate8dot3Name(&LongName, FALSE, &Context, &ShortName);
+        RtlInitUnicodeString(&Expected, ShortNames2[i]);
+        ok(RtlEqualUnicodeString(&Expected, &ShortName, FALSE), "Generated: %.*S. Expected: %.*S\n", ShortName.Length, ShortName.Buffer, Expected.Length, Expected.Buffer);
+    }
+}
index db77b2f..ac469dc 100644 (file)
@@ -26,6 +26,7 @@ extern void func_RtlDoesFileExists(void);
 extern void func_RtlDosPathNameToNtPathName_U(void);
 extern void func_RtlDosSearchPath_U(void);
 extern void func_RtlDosSearchPath_Ustr(void);
+extern void func_RtlGenerate8dot3Name(void);
 extern void func_RtlGetFullPathName_U(void);
 extern void func_RtlGetFullPathName_Ustr(void);
 extern void func_RtlGetFullPathName_UstrEx(void);
@@ -62,6 +63,7 @@ const struct test winetest_testlist[] =
     { "RtlDosPathNameToNtPathName_U",   func_RtlDosPathNameToNtPathName_U },
     { "RtlDosSearchPath_U",             func_RtlDosSearchPath_U },
     { "RtlDosSearchPath_Ustr",          func_RtlDosSearchPath_Ustr },
+    { "RtlGenerate8dot3Name",           func_RtlGenerate8dot3Name },
     { "RtlGetFullPathName_U",           func_RtlGetFullPathName_U },
     { "RtlGetFullPathName_Ustr",        func_RtlGetFullPathName_Ustr },
     { "RtlGetFullPathName_UstrEx",      func_RtlGetFullPathName_UstrEx },