Robert Wilhelm : scrrun/tests: Use more context for MultiByteToWideChar in Read test.
Alexandre Julliard
julliard at winehq.org
Mon Dec 6 16:08:00 CST 2021
Module: wine
Branch: master
Commit: b167df37776c12c6ec999973a6b23484b06cb0f9
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b167df37776c12c6ec999973a6b23484b06cb0f9
Author: Robert Wilhelm <robert.wilhelm at gmx.net>
Date: Thu Dec 2 22:32:46 2021 +0100
scrrun/tests: Use more context for MultiByteToWideChar in Read test.
Second byte of BOM (0xfe) is LeadByte in Asian locales. Therefore chars after BOM matter.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=39244
Signed-off-by: Robert Wilhelm <robert.wilhelm at gmx.net>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/scrrun/tests/filesystem.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/dlls/scrrun/tests/filesystem.c b/dlls/scrrun/tests/filesystem.c
index 65bb83dfd7e..8b06dbb883d 100644
--- a/dlls/scrrun/tests/filesystem.c
+++ b/dlls/scrrun/tests/filesystem.c
@@ -1817,8 +1817,10 @@ static void test_ReadAll(void)
static void test_Read(void)
{
+ static const WCHAR firstlineW[] = L"first";
static const WCHAR secondlineW[] = L"second";
WCHAR pathW[MAX_PATH], dirW[MAX_PATH], buffW[500];
+ char buffA[MAX_PATH];
ITextStream *stream;
BSTR nameW;
HRESULT hr;
@@ -1835,8 +1837,10 @@ static void test_Read(void)
hr = IFileSystem3_CreateTextFile(fs3, nameW, VARIANT_FALSE, VARIANT_TRUE, &stream);
ok(hr == S_OK, "got 0x%08x\n", hr);
- hr = ITextStream_WriteLine(stream, nameW);
+ str = SysAllocString(firstlineW);
+ hr = ITextStream_WriteLine(stream, str);
ok(hr == S_OK, "got 0x%08x\n", hr);
+ SysFreeString(str);
str = SysAllocString(secondlineW);
hr = ITextStream_WriteLine(stream, str);
@@ -1881,9 +1885,10 @@ static void test_Read(void)
ok(hr == S_OK, "got 0x%08x\n", hr);
buffW[0] = 0;
- MultiByteToWideChar(CP_ACP, 0, utf16bom, -1, buffW, ARRAY_SIZE(buffW));
-
- ok(!lstrcmpW(str, buffW), "got %s, expected %s\n", wine_dbgstr_w(str), wine_dbgstr_w(buffW));
+ lstrcpyA(buffA, utf16bom);
+ lstrcatA(buffA, "first");
+ MultiByteToWideChar(CP_ACP, 0, buffA, -1, buffW, ARRAY_SIZE(buffW));
+ ok(str[0] == buffW[0] && str[1] == buffW[1], "got %s, expected %s, %d\n", wine_dbgstr_w(str), wine_dbgstr_w(buffW), SysStringLen(str));
ok(SysStringLen(str) == 2, "got %d\n", SysStringLen(str));
SysFreeString(str);
ITextStream_Release(stream);
@@ -1892,7 +1897,7 @@ static void test_Read(void)
hr = IFileSystem3_OpenTextFile(fs3, nameW, ForReading, VARIANT_FALSE, TristateTrue, &stream);
ok(hr == S_OK, "got 0x%08x\n", hr);
- lstrcpyW(buffW, nameW);
+ lstrcpyW(buffW, firstlineW);
lstrcatW(buffW, L"\r\n");
lstrcatW(buffW, secondlineW);
lstrcatW(buffW, L"\r\n");
@@ -1938,7 +1943,7 @@ static void test_Read(void)
hr = IFileSystem3_OpenTextFile(fs3, nameW, ForReading, VARIANT_FALSE, TristateUseDefault, &stream);
ok(hr == S_OK, "got 0x%08x\n", hr);
- lstrcpyW(buffW, nameW);
+ lstrcpyW(buffW, firstlineW);
lstrcatW(buffW, L"\r\n");
lstrcatW(buffW, secondlineW);
lstrcatW(buffW, L"\r\n");
More information about the wine-cvs
mailing list