Jacek Caban : scrrun/tests: Add test of lost trailing byte in unicode srteam.

Alexandre Julliard julliard at winehq.org
Thu Nov 7 16:16:04 CST 2019


Module: wine
Branch: master
Commit: 9294823a7b680a86beee199784d3240cca662041
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=9294823a7b680a86beee199784d3240cca662041

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Nov  7 17:10:49 2019 +0100

scrrun/tests: Add test of lost trailing byte in unicode srteam.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/scrrun/tests/filesystem.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/dlls/scrrun/tests/filesystem.c b/dlls/scrrun/tests/filesystem.c
index 3bd8634f25..68ac70ce3a 100644
--- a/dlls/scrrun/tests/filesystem.c
+++ b/dlls/scrrun/tests/filesystem.c
@@ -2032,6 +2032,32 @@ static void test_Read(void)
 
     ITextStream_Release(stream);
 
+    /* ASCII file, read with Unicode stream */
+    /* 3. one byte content, 2 are interpreted as a character, 3rd is lost */
+    hr = IFileSystem3_CreateTextFile(fs3, nameW, VARIANT_TRUE, VARIANT_FALSE, &stream);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    str = SysAllocString(L"abc");
+    hr = ITextStream_Write(stream, str);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    SysFreeString(str);
+    ITextStream_Release(stream);
+
+    hr = IFileSystem3_OpenTextFile(fs3, nameW, ForReading, VARIANT_FALSE, TristateTrue, &stream);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+
+    str = NULL;
+    hr = ITextStream_Read(stream, 500, &str);
+    ok(hr == S_FALSE || broken(hr == S_OK) /* win2003 */, "got 0x%08x\n", hr);
+    ok(SysStringLen(str) == 1, "len = %u\n", SysStringLen(str));
+    SysFreeString(str);
+
+    str = (void*)0xdeadbeef;
+    hr = ITextStream_Read(stream, 500, &str);
+    ok(hr == CTL_E_ENDOFFILE, "got 0x%08x\n", hr);
+    ok(str == NULL, "got %p\n", str);
+
+    ITextStream_Release(stream);
+
     DeleteFileW(nameW);
     RemoveDirectoryW(dirW);
     SysFreeString(nameW);




More information about the wine-cvs mailing list