From: Bernhard Übelacker bernhardu@mailbox.org
--- dlls/ntoskrnl.exe/tests/ntoskrnl.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/dlls/ntoskrnl.exe/tests/ntoskrnl.c b/dlls/ntoskrnl.exe/tests/ntoskrnl.c index 63c7c5bb2b6..c1db4a6b650 100644 --- a/dlls/ntoskrnl.exe/tests/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/tests/ntoskrnl.c @@ -1161,16 +1161,17 @@ static void test_ioctl_buffers(void) void *out; ULONG out_size; NTSTATUS buffered_status, direct_status, neither_status; + int todowine[4]; } param_tests[] = { - {NULL, 0, NULL, 0, STATUS_END_OF_FILE, STATUS_END_OF_FILE, STATUS_END_OF_FILE}, - {NULL, 4, NULL, 0, STATUS_END_OF_FILE, STATUS_END_OF_FILE, STATUS_INVALID_PARAMETER_2}, - {(void *)16, 0, NULL, 0, STATUS_END_OF_FILE, STATUS_END_OF_FILE, STATUS_INVALID_PARAMETER_1}, - {(void *)16, 4, NULL, 0, STATUS_ACCESS_VIOLATION, STATUS_ACCESS_VIOLATION, STATUS_INVALID_PARAMETER_1}, - {NULL, 0, NULL, 4, STATUS_END_OF_FILE, STATUS_ACCESS_VIOLATION, STATUS_INVALID_PARAMETER_4}, - {NULL, 0, (void *)16, 0, STATUS_END_OF_FILE, STATUS_END_OF_FILE, STATUS_INVALID_PARAMETER_3}, - {NULL, 0, (void *)16, 4, STATUS_ACCESS_VIOLATION, STATUS_ACCESS_VIOLATION, STATUS_INVALID_PARAMETER_3}, + {NULL, 0, NULL, 0, STATUS_END_OF_FILE, STATUS_END_OF_FILE, STATUS_END_OF_FILE, {1, 1, 1, 1}}, + {NULL, 4, NULL, 0, STATUS_END_OF_FILE, STATUS_END_OF_FILE, STATUS_INVALID_PARAMETER_2, {1, 1, 1, 1}}, + {(void *)16, 0, NULL, 0, STATUS_END_OF_FILE, STATUS_END_OF_FILE, STATUS_INVALID_PARAMETER_1, {1, 1, 1, 0}}, + {(void *)16, 4, NULL, 0, STATUS_ACCESS_VIOLATION, STATUS_ACCESS_VIOLATION, STATUS_INVALID_PARAMETER_1, {0, 0, 0, 1}}, + {NULL, 0, NULL, 4, STATUS_END_OF_FILE, STATUS_ACCESS_VIOLATION, STATUS_INVALID_PARAMETER_4, {1, 1, 1, 1}}, + {NULL, 0, (void *)16, 0, STATUS_END_OF_FILE, STATUS_END_OF_FILE, STATUS_INVALID_PARAMETER_3, {1, 1, 1, 1}}, + {NULL, 0, (void *)16, 4, STATUS_ACCESS_VIOLATION, STATUS_ACCESS_VIOLATION, STATUS_INVALID_PARAMETER_3, {1, 1, 1, 1}}, };
for (j = 0; j < ARRAY_SIZE(param_tests); ++j) @@ -1179,15 +1180,19 @@ static void test_ioctl_buffers(void)
status = NtDeviceIoControlFile(device, NULL, NULL, NULL, &io, IOCTL_WINETEST_EMPTY_BUFFERED, param_tests[j].in, param_tests[j].in_size, param_tests[j].out, param_tests[j].out_size); + todo_wine_if(param_tests[j].todowine[0]) ok(status == param_tests[j].buffered_status, "got %#lx\n", status); status = NtDeviceIoControlFile(device, NULL, NULL, NULL, &io, IOCTL_WINETEST_EMPTY_IN_DIRECT, param_tests[j].in, param_tests[j].in_size, param_tests[j].out, param_tests[j].out_size); + todo_wine_if(param_tests[j].todowine[1]) ok(status == param_tests[j].direct_status, "got %#lx\n", status); status = NtDeviceIoControlFile(device, NULL, NULL, NULL, &io, IOCTL_WINETEST_EMPTY_OUT_DIRECT, param_tests[j].in, param_tests[j].in_size, param_tests[j].out, param_tests[j].out_size); + todo_wine_if(param_tests[j].todowine[2]) ok(status == param_tests[j].direct_status, "got %#lx\n", status); status = NtDeviceIoControlFile(device, NULL, NULL, NULL, &io, IOCTL_WINETEST_EMPTY_NEITHER, param_tests[j].in, param_tests[j].in_size, param_tests[j].out, param_tests[j].out_size); + todo_wine_if(param_tests[j].todowine[3]) ok(status == param_tests[j].neither_status, "got %#lx\n", status);
winetest_pop_context();