[3/6] ntdll/tests: Add the tests for some error cases.
Dmitry Timoshkov
dmitry at baikal.ru
Wed Aug 21 04:33:46 CDT 2013
---
dlls/ntdll/tests/file.c | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
index 879c3f2..e30ada0 100644
--- a/dlls/ntdll/tests/file.c
+++ b/dlls/ntdll/tests/file.c
@@ -1941,11 +1941,41 @@ static void test_read_write(void)
DWORD ret, bytes, status;
LARGE_INTEGER offset;
+ iob.Status = -1;
+ iob.Information = -1;
+ offset.QuadPart = 0;
+ status = pNtReadFile(INVALID_HANDLE_VALUE, 0, NULL, NULL, &iob, buf, sizeof(buf), &offset, NULL);
+ ok(status == STATUS_OBJECT_TYPE_MISMATCH || status == STATUS_INVALID_HANDLE, "expected STATUS_OBJECT_TYPE_MISMATCH, got %#x\n", status);
+ ok(iob.Status == -1, "expected -1, got %#x\n", iob.Status);
+ ok(iob.Information == -1, "expected -1, got %lu\n", iob.Information);
+
+ iob.Status = -1;
+ iob.Information = -1;
+ offset.QuadPart = 0;
+ status = pNtWriteFile(INVALID_HANDLE_VALUE, 0, NULL, NULL, &iob, buf, sizeof(buf), &offset, NULL);
+ ok(status == STATUS_OBJECT_TYPE_MISMATCH || status == STATUS_INVALID_HANDLE, "expected STATUS_OBJECT_TYPE_MISMATCH, got %#x\n", status);
+ ok(iob.Status == -1, "expected -1, got %#x\n", iob.Status);
+ ok(iob.Information == -1, "expected -1, got %lu\n", iob.Information);
+
hfile = create_temp_file(0);
if (!hfile) return;
iob.Status = -1;
iob.Information = -1;
+ status = pNtWriteFile(hfile, 0, NULL, NULL, &iob, NULL, sizeof(contents), NULL, NULL);
+ ok(status == STATUS_INVALID_USER_BUFFER, "expected STATUS_INVALID_USER_BUFFER, got %#x\n", status);
+ ok(iob.Status == -1, "expected -1, got %#x\n", iob.Status);
+ ok(iob.Information == -1, "expected -1, got %lu\n", iob.Information);
+
+ iob.Status = -1;
+ iob.Information = -1;
+ status = pNtReadFile(hfile, 0, NULL, NULL, &iob, NULL, sizeof(contents), NULL, NULL);
+ ok(status == STATUS_ACCESS_VIOLATION, "expected STATUS_ACCESS_VIOLATION, got %#x\n", status);
+ ok(iob.Status == -1, "expected -1, got %#x\n", iob.Status);
+ ok(iob.Information == -1, "expected -1, got %lu\n", iob.Information);
+
+ iob.Status = -1;
+ iob.Information = -1;
status = pNtWriteFile(hfile, 0, NULL, NULL, &iob, contents, sizeof(contents), NULL, NULL);
ok(status == STATUS_SUCCESS, "NtWriteFile error %#x\n", status);
ok(iob.Status == STATUS_SUCCESS, "expected STATUS_SUCCESS, got %#x\n", iob.Status);
--
1.8.3.4
More information about the wine-patches
mailing list