kernel32/tests: Add a couple of tests for error handling when reading past EOF.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
0925a73027
commit
80b35103df
|
@ -5927,6 +5927,7 @@ static void test_move_file(void)
|
||||||
static void test_eof(void)
|
static void test_eof(void)
|
||||||
{
|
{
|
||||||
char temp_path[MAX_PATH], filename[MAX_PATH], buffer[20];
|
char temp_path[MAX_PATH], filename[MAX_PATH], buffer[20];
|
||||||
|
OVERLAPPED overlapped = {0};
|
||||||
LARGE_INTEGER file_size;
|
LARGE_INTEGER file_size;
|
||||||
HANDLE file, mapping;
|
HANDLE file, mapping;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
@ -5961,9 +5962,25 @@ static void test_eof(void)
|
||||||
ok(ret, "failed to get size, error %u\n", GetLastError());
|
ok(ret, "failed to get size, error %u\n", GetLastError());
|
||||||
ok(!file_size.QuadPart, "got size %I64d\n", file_size.QuadPart);
|
ok(!file_size.QuadPart, "got size %I64d\n", file_size.QuadPart);
|
||||||
|
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
ret = ReadFile(file, buffer, sizeof(buffer), &size, NULL);
|
ret = ReadFile(file, buffer, sizeof(buffer), &size, NULL);
|
||||||
ok(ret, "failed to read, error %u\n", GetLastError());
|
ok(ret, "failed to read, error %u\n", GetLastError());
|
||||||
ok(!size, "got size %u\n", size);
|
ok(!size, "got size %u\n", size);
|
||||||
|
ok(GetLastError() == 0xdeadbeef, "got error %u\n", GetLastError());
|
||||||
|
|
||||||
|
SetFilePointer(file, 2, NULL, SEEK_SET);
|
||||||
|
|
||||||
|
SetLastError(0xdeadbeef);
|
||||||
|
size = 0xdeadbeef;
|
||||||
|
overlapped.Offset = 2;
|
||||||
|
ret = ReadFile(file, buffer, sizeof(buffer), &size, &overlapped);
|
||||||
|
ok(!ret, "expected failure\n");
|
||||||
|
ok(GetLastError() == ERROR_HANDLE_EOF, "got error %u\n", GetLastError());
|
||||||
|
ok(!size, "got size %u\n", size);
|
||||||
|
todo_wine ok((NTSTATUS)overlapped.Internal == STATUS_PENDING, "got status %#x\n", (NTSTATUS)overlapped.Internal);
|
||||||
|
ok(!overlapped.InternalHigh, "got size %Iu\n", overlapped.InternalHigh);
|
||||||
|
|
||||||
|
SetFilePointer(file, 2, NULL, SEEK_SET);
|
||||||
|
|
||||||
ret = SetEndOfFile(file);
|
ret = SetEndOfFile(file);
|
||||||
ok(ret, "failed to set EOF, error %u\n", GetLastError());
|
ok(ret, "failed to set EOF, error %u\n", GetLastError());
|
||||||
|
|
Loading…
Reference in New Issue