[PATCH v4 0/1] MR1892: ntoskrnl.exe/tests: Add Driver Object Extension Tests.
-- v4: ntoskrnl.exe/tests: Add Driver Object Extension Tests. https://gitlab.winehq.org/wine/wine/-/merge_requests/1892
From: Etaash Mathamsetty <etaash.mathamsetty(a)gmail.com> --- dlls/ntoskrnl.exe/tests/driver.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c index d293889c823..cd395f484ef 100644 --- a/dlls/ntoskrnl.exe/tests/driver.c +++ b/dlls/ntoskrnl.exe/tests/driver.c @@ -2293,6 +2293,37 @@ static void test_permanence(void) ok(status == STATUS_OBJECT_NAME_NOT_FOUND, "got %#lx\n", status); } +static void test_driver_object_extension(void) +{ + NTSTATUS (WINAPI *pIoAllocateDriverObjectExtension)(PDRIVER_OBJECT, PVOID, ULONG, PVOID *); + PVOID (WINAPI *pIoGetDriverObjectExtension)(PDRIVER_OBJECT, PVOID); + NTSTATUS status; + void *driver_obj_ext = NULL; + void *get_obj_ext = NULL; + + pIoAllocateDriverObjectExtension = get_proc_address("IoAllocateDriverObjectExtension"); + pIoGetDriverObjectExtension = get_proc_address("IoGetDriverObjectExtension"); + + if (!pIoAllocateDriverObjectExtension) + { + win_skip("IoAllocateDriverObjectExtension is not available.\n"); + return; + } + + status = pIoAllocateDriverObjectExtension(driver_obj, NULL, 100, &driver_obj_ext); + todo_wine ok(status == STATUS_SUCCESS, "got %#lx\n", status); + todo_wine ok(driver_obj_ext != NULL, "got NULL\n"); + + status = pIoAllocateDriverObjectExtension(driver_obj, NULL, 100, &driver_obj_ext); + todo_wine ok(status == STATUS_OBJECT_NAME_COLLISION, "got %#lx\n", status); + + get_obj_ext = pIoGetDriverObjectExtension(driver_obj, NULL); + todo_wine ok(get_obj_ext == driver_obj_ext && get_obj_ext != NULL, "got %p\n", get_obj_ext); + + get_obj_ext = pIoGetDriverObjectExtension(driver_obj, (void *)0xdead); + ok(get_obj_ext == NULL, "got %p\n", get_obj_ext); +} + static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *stack) { void *buffer = irp->AssociatedIrp.SystemBuffer; @@ -2336,6 +2367,7 @@ static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *st test_dpc(); test_process_memory(test_input); test_permanence(); + test_driver_object_extension(); IoMarkIrpPending(irp); IoQueueWorkItem(work_item, main_test_task, DelayedWorkQueue, irp); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1892
Hi, It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated. The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=128220 Your paranoid android. === w7u_2qxl (32 bit report) === ntoskrnl.exe: driver.c:2321: Test failed: got 855EA610 === w7u_el (32 bit report) === ntoskrnl.exe: driver.c:2321: Test failed: got 84ACE118 === w8 (32 bit report) === ntoskrnl.exe: driver.c:2321: Test failed: got 8A2440C0 === w1064_tsign (64 bit report) === ntoskrnl.exe: driver.c:2321: Test failed: got FFFFA78E695D15B0
participants (3)
-
Etaash Mathamsetty -
Etaash Mathamsetty (@etaash.mathamsetty) -
Marvin