Module: wine Branch: master Commit: 015434d24c6d6b23d464ff1b3233b39d7a82812c URL: https://gitlab.winehq.org/wine/wine/-/commit/015434d24c6d6b23d464ff1b3233b39...
Author: Jinoh Kang jinoh.kang.kr@gmail.com Date: Sat Jan 6 22:40:45 2024 +0900
ntdll/tests: Restore x86-64 #AC exception test in test_exceptions().
---
dlls/ntdll/tests/exception.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c index e49fbb5bce1..3c4d6620fe8 100644 --- a/dlls/ntdll/tests/exception.c +++ b/dlls/ntdll/tests/exception.c @@ -3446,8 +3446,13 @@ static DWORD WINAPI align_check_handler( EXCEPTION_RECORD *rec, ULONG64 frame, #ifdef __GNUC__ __asm__ volatile( "pushfq; andl $~0x40000,(%rsp); popfq" ); #endif - ok (!(context->EFlags & 0x40000), "eflags has AC bit set\n"); + ok (context->EFlags & 0x40000, "eflags has AC bit unset\n"); got_exception++; + if (got_exception != 1) + { + ok(broken(1) /* win7 */, "exception should occur only once"); + context->EFlags &= ~0x40000; + } return ExceptionContinueExecution; }
@@ -3588,12 +3593,10 @@ static void test_exceptions(void) ok(got_exception == 3, "expected 3 single step exceptions, got %d\n", got_exception);
/* test alignment exceptions */ - if (0) /* broken on Windows */ - { got_exception = 0; run_exception_test(align_check_handler, NULL, align_check_code, sizeof(align_check_code), 0); - ok(got_exception == 0, "got %d alignment faults, expected 0\n", got_exception); - } + todo_wine + ok(got_exception == 1 || broken(got_exception == 2) /* win7 */, "got %d alignment faults, expected 1\n", got_exception);
/* test direction flag */ got_exception = 0;