[PATCH] ntdll/tests: Fix some exception test failures.

Zebediah Figura z.figura12 at gmail.com
Thu Jan 2 11:33:33 CST 2020


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/ntdll/tests/exception.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
index 44df47466bd..7b77cbb7954 100644
--- a/dlls/ntdll/tests/exception.c
+++ b/dlls/ntdll/tests/exception.c
@@ -367,8 +367,9 @@ static LONG CALLBACK rtlraiseexception_vectored_handler(EXCEPTION_POINTERS *Exce
     trace("vect. handler %08x addr:%p context.Eip:%x\n", rec->ExceptionCode,
           rec->ExceptionAddress, context->Eip);
 
-    ok(rec->ExceptionAddress == (char *)code_mem + 0xb, "ExceptionAddress at %p instead of %p\n",
-       rec->ExceptionAddress, (char *)code_mem + 0xb);
+    ok(rec->ExceptionAddress == (char *)code_mem + 0xb
+            || broken(rec->ExceptionAddress == code_mem || !rec->ExceptionAddress) /* 2008 */,
+            "ExceptionAddress at %p instead of %p\n", rec->ExceptionAddress, (char *)code_mem + 0xb);
 
     if (NtCurrentTeb()->Peb->BeingDebugged)
         ok((void *)context->Eax == pRtlRaiseException ||
@@ -403,8 +404,9 @@ static DWORD rtlraiseexception_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTR
     trace( "exception: %08x flags:%x addr:%p context: Eip:%x\n",
            rec->ExceptionCode, rec->ExceptionFlags, rec->ExceptionAddress, context->Eip );
 
-    ok(rec->ExceptionAddress == (char *)code_mem + 0xb, "ExceptionAddress at %p instead of %p\n",
-       rec->ExceptionAddress, (char *)code_mem + 0xb);
+    ok(rec->ExceptionAddress == (char *)code_mem + 0xb
+            || broken(rec->ExceptionAddress == code_mem || !rec->ExceptionAddress) /* 2008 */,
+            "ExceptionAddress at %p instead of %p\n", rec->ExceptionAddress, (char *)code_mem + 0xb);
 
     ok( context->ContextFlags == CONTEXT_ALL || context->ContextFlags == (CONTEXT_ALL | CONTEXT_XSTATE) ||
         broken(context->ContextFlags == CONTEXT_FULL),  /* win2003 */
@@ -515,8 +517,10 @@ static DWORD unwind_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECOR
 
     ok(rec->ExceptionCode == STATUS_UNWIND, "ExceptionCode is %08x instead of %08x\n",
        rec->ExceptionCode, STATUS_UNWIND);
-    ok(rec->ExceptionAddress == (char *)code_mem + 0x22, "ExceptionAddress at %p instead of %p\n",
-       rec->ExceptionAddress, (char *)code_mem + 0x22);
+    ok(rec->ExceptionAddress == (char *)code_mem + 0x22 || broken(TRUE) /* Win10 1709 */,
+       "ExceptionAddress at %p instead of %p\n", rec->ExceptionAddress, (char *)code_mem + 0x22);
+    ok(context->Eip == (DWORD)code_mem + 0x22, "context->Eip is %08x instead of %08x\n",
+       context->Eip, (DWORD)code_mem + 0x22);
     ok(context->Eax == unwind_expected_eax, "context->Eax is %08x instead of %08x\n",
        context->Eax, unwind_expected_eax);
 
-- 
2.24.0




More information about the wine-devel mailing list