scrrun/tests: Add ITextStream::ReadLine tests.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
14de44513f
commit
f2b681db77
@ -1734,6 +1734,7 @@ static void test_ReadAll(void)
|
|||||||
hr = ITextStream_ReadLine(stream, &str);
|
hr = ITextStream_ReadLine(stream, &str);
|
||||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||||
ok(str != NULL, "got %p\n", str);
|
ok(str != NULL, "got %p\n", str);
|
||||||
|
ok(!wcscmp(str, nameW), "got %s\n", wine_dbgstr_w(str));
|
||||||
SysFreeString(str);
|
SysFreeString(str);
|
||||||
|
|
||||||
lstrcpyW(buffW, secondlineW);
|
lstrcpyW(buffW, secondlineW);
|
||||||
@ -2036,6 +2037,75 @@ static void test_Read(void)
|
|||||||
SysFreeString(nameW);
|
SysFreeString(nameW);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_ReadLine(void)
|
||||||
|
{
|
||||||
|
WCHAR path[MAX_PATH], dir[MAX_PATH];
|
||||||
|
ITextStream *stream;
|
||||||
|
unsigned int i;
|
||||||
|
HANDLE file;
|
||||||
|
DWORD size;
|
||||||
|
HRESULT hr;
|
||||||
|
BSTR str;
|
||||||
|
BOOL ret;
|
||||||
|
|
||||||
|
const char data[] = "first line\r\nsecond\n\n\rt\r\re \rst\n";
|
||||||
|
|
||||||
|
get_temp_filepath(L"test.txt", path, dir);
|
||||||
|
|
||||||
|
ret = CreateDirectoryW(dir, NULL);
|
||||||
|
ok(ret, "got %d, %d\n", ret, GetLastError());
|
||||||
|
|
||||||
|
file = CreateFileW(path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
|
||||||
|
FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
|
ok(file != INVALID_HANDLE_VALUE, "CreateFile failed\n");
|
||||||
|
|
||||||
|
for (i = 0; i < 1000; i++)
|
||||||
|
WriteFile(file, data, strlen(data), &size, NULL);
|
||||||
|
CloseHandle(file);
|
||||||
|
|
||||||
|
str = SysAllocString(path);
|
||||||
|
hr = IFileSystem3_OpenTextFile(fs3, str, ForReading, VARIANT_FALSE, TristateFalse, &stream);
|
||||||
|
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||||
|
SysFreeString(str);
|
||||||
|
|
||||||
|
for (i = 0; i < 1000; i++)
|
||||||
|
{
|
||||||
|
hr = ITextStream_ReadLine(stream, &str);
|
||||||
|
ok(hr == S_OK, "ReadLine failed: %08x\n", hr);
|
||||||
|
ok(!wcscmp(str, L"first line"), "ReadLine returned %s\n", wine_dbgstr_w(str));
|
||||||
|
SysFreeString(str);
|
||||||
|
|
||||||
|
hr = ITextStream_ReadLine(stream, &str);
|
||||||
|
ok(hr == S_OK, "ReadLine failed: %08x\n", hr);
|
||||||
|
ok(!wcscmp(str, L"second"), "ReadLine returned %s\n", wine_dbgstr_w(str));
|
||||||
|
SysFreeString(str);
|
||||||
|
|
||||||
|
hr = ITextStream_ReadLine(stream, &str);
|
||||||
|
ok(hr == S_OK, "ReadLine failed: %08x\n", hr);
|
||||||
|
ok(!*str, "ReadLine returned %s\n", wine_dbgstr_w(str));
|
||||||
|
SysFreeString(str);
|
||||||
|
|
||||||
|
hr = ITextStream_ReadLine(stream, &str);
|
||||||
|
ok(hr == S_OK, "ReadLine failed: %08x\n", hr);
|
||||||
|
ok(!wcscmp(str, L"\rt\r\re \rst"), "ReadLine returned %s\n", wine_dbgstr_w(str));
|
||||||
|
SysFreeString(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
str = NULL;
|
||||||
|
hr = ITextStream_ReadLine(stream, &str);
|
||||||
|
ok(hr == CTL_E_ENDOFFILE, "got 0x%08x\n", hr);
|
||||||
|
ok(!str, "ReadLine returned %s\n", wine_dbgstr_w(str));
|
||||||
|
SysFreeString(str);
|
||||||
|
|
||||||
|
ITextStream_Release(stream);
|
||||||
|
|
||||||
|
ret = DeleteFileW(path);
|
||||||
|
ok(ret, "DeleteFile failed: %u\n", GetLastError());
|
||||||
|
|
||||||
|
ret = RemoveDirectoryW(dir);
|
||||||
|
ok(ret, "RemoveDirectory failed: %u\n", GetLastError());
|
||||||
|
}
|
||||||
|
|
||||||
struct driveexists_test {
|
struct driveexists_test {
|
||||||
const WCHAR drivespec[10];
|
const WCHAR drivespec[10];
|
||||||
const INT drivetype;
|
const INT drivetype;
|
||||||
@ -2403,6 +2473,7 @@ START_TEST(filesystem)
|
|||||||
test_WriteLine();
|
test_WriteLine();
|
||||||
test_ReadAll();
|
test_ReadAll();
|
||||||
test_Read();
|
test_Read();
|
||||||
|
test_ReadLine();
|
||||||
test_DriveExists();
|
test_DriveExists();
|
||||||
test_GetDriveName();
|
test_GetDriveName();
|
||||||
test_GetDrive();
|
test_GetDrive();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user