mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 04:13:34 +00:00
[NTDLL_APITEST]
Set correct locale in RtlGenerate8dot3Name test. This makes the test reproducible on every target plateform. Patch by Mark Jansen. ROSTESTS-218 #resolve #comment Patch commited in r71027. Thanks! svn path=/trunk/; revision=71027
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
|
||||
#define WIN32_NO_STATUS
|
||||
#include <ndk/rtlfuncs.h>
|
||||
#include <stdio.h>
|
||||
|
||||
NTSYSAPI
|
||||
VOID
|
||||
@@ -24,11 +25,57 @@ PWSTR ShortNames1[] = { L"MENUDM~1", L"SLECTE~1.LNK", L"5C2D~1.TXT", L"423C~1.TX
|
||||
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" };
|
||||
|
||||
PVOID LoadCodePageData(ULONG Code)
|
||||
{
|
||||
char filename[MAX_PATH], sysdir[MAX_PATH];
|
||||
HANDLE hFile;
|
||||
PVOID Data = NULL;
|
||||
GetSystemDirectoryA(sysdir, MAX_PATH);
|
||||
|
||||
if (Code != -1)
|
||||
sprintf(filename, "%s\\c_%lu.nls", sysdir, Code);
|
||||
else
|
||||
sprintf(filename, "%s\\l_intl.nls", sysdir);
|
||||
|
||||
hFile = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
|
||||
if (hFile != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
DWORD dwRead;
|
||||
DWORD dwFileSize = GetFileSize(hFile, NULL);
|
||||
Data = malloc(dwFileSize);
|
||||
ReadFile(hFile, Data, dwFileSize, &dwRead, NULL);
|
||||
CloseHandle(hFile);
|
||||
}
|
||||
return Data;
|
||||
}
|
||||
|
||||
/* https://www.microsoft.com/resources/msdn/goglobal/default.mspx */
|
||||
void SetupLocale(ULONG AnsiCode, ULONG OemCode, ULONG Unicode)
|
||||
{
|
||||
NLSTABLEINFO NlsTable;
|
||||
PVOID AnsiCodePageData;
|
||||
PVOID OemCodePageData;
|
||||
PVOID UnicodeCaseTableData;
|
||||
|
||||
AnsiCodePageData = LoadCodePageData(AnsiCode);
|
||||
OemCodePageData = LoadCodePageData(OemCode);
|
||||
UnicodeCaseTableData = LoadCodePageData(Unicode);
|
||||
|
||||
RtlInitNlsTables(AnsiCodePageData, OemCodePageData, UnicodeCaseTableData, &NlsTable);
|
||||
RtlResetRtlTranslations(&NlsTable);
|
||||
/* Do NOT free the buffers here, they are directly used!
|
||||
Yes, we leak the old buffers, but this is a test anyway... */
|
||||
|
||||
}
|
||||
|
||||
START_TEST(RtlGenerate8dot3Name)
|
||||
{
|
||||
USHORT i;
|
||||
|
||||
/* Set a french locale. */
|
||||
SetupLocale(1252, 850, -1);
|
||||
|
||||
for (i = 0; i < 14; ++i)
|
||||
{
|
||||
WCHAR Buffer[12];
|
||||
|
||||
Reference in New Issue
Block a user