2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: Test for RtlGenerate8dot3Name
5 * PROGRAMMER: Pierre Schweitzer <pierre@reactos.org>
10 #define WIN32_NO_STATUS
11 #include <ndk/rtlfuncs.h>
17 _In_ PCUNICODE_STRING Name
,
18 _In_ BOOLEAN AllowExtendedCharacters
,
19 _Inout_ PGENERATE_NAME_CONTEXT Context
,
20 _Inout_ PUNICODE_STRING Name8dot3
);
22 PWSTR Names
[] = { L
"Menu Démarrer", L
"Sélecteur de configuration clavier.lnk", L
"éèàùç.txt", L
"éèàùçeeauc.txt", L
"Long file name.txt", L
"Long file name", L
"Longfilename.txt", L
"Longfilename" };
23 PWSTR ShortNames1
[] = { L
"MENUDM~1", L
"SLECTE~1.LNK", L
"5C2D~1.TXT", L
"EEAUC~1.TXT", L
"LONGFI~1.TXT", L
"LONGFI~1", L
"LONGFI~1.TXT", L
"LONGFI~1" };
24 PWSTR ShortNames2
[] = { L
"MENUDM~2", L
"SLECTE~2.LNK", L
"5C2D~2.TXT", L
"EEAUC~2.TXT", L
"LONGFI~2.TXT", L
"LONGFI~2", L
"LONGFI~2.TXT", L
"LONGFI~2" };
26 START_TEST(RtlGenerate8dot3Name
)
30 for (i
= 0; i
< 8; ++i
)
33 GENERATE_NAME_CONTEXT Context
;
34 UNICODE_STRING LongName
, ShortName
, Expected
;
36 RtlZeroMemory(&Context
, sizeof(GENERATE_NAME_CONTEXT
));
37 RtlInitUnicodeString(&LongName
, Names
[i
]);
38 ShortName
.Buffer
= Buffer
;
40 ShortName
.MaximumLength
= sizeof(Buffer
);
42 RtlGenerate8dot3Name(&LongName
, FALSE
, &Context
, &ShortName
);
43 RtlInitUnicodeString(&Expected
, ShortNames1
[i
]);
44 ok(RtlEqualUnicodeString(&Expected
, &ShortName
, FALSE
), "Generated: %.*S. Expected: %.*S\n", ShortName
.Length
, ShortName
.Buffer
, Expected
.Length
, Expected
.Buffer
);
47 RtlGenerate8dot3Name(&LongName
, FALSE
, &Context
, &ShortName
);
48 RtlInitUnicodeString(&Expected
, ShortNames2
[i
]);
49 ok(RtlEqualUnicodeString(&Expected
, &ShortName
, FALSE
), "Generated: %.*S. Expected: %.*S\n", ShortName
.Length
, ShortName
.Buffer
, Expected
.Length
, Expected
.Buffer
);