Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/kernel32/tests/file.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c index ea0a32f258d..b4c7adacf7e 100644 --- a/dlls/kernel32/tests/file.c +++ b/dlls/kernel32/tests/file.c @@ -5927,6 +5927,7 @@ static void test_move_file(void) static void test_eof(void) { char temp_path[MAX_PATH], filename[MAX_PATH], buffer[20]; + OVERLAPPED overlapped = {0}; LARGE_INTEGER file_size; HANDLE file, mapping; unsigned int i; @@ -5961,9 +5962,25 @@ static void test_eof(void) ok(ret, "failed to get size, error %u\n", GetLastError()); ok(!file_size.QuadPart, "got size %I64d\n", file_size.QuadPart);
+ SetLastError(0xdeadbeef); ret = ReadFile(file, buffer, sizeof(buffer), &size, NULL); ok(ret, "failed to read, error %u\n", GetLastError()); 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); ok(ret, "failed to set EOF, error %u\n", GetLastError());