From bf174815ba8529bfbbda8697503d3c2539f82359 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Thu, 25 Apr 2019 12:31:55 +0300 Subject: [PATCH] kernel32/tests: Add a test for critical section DebugInfo initial value. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/kernel32/tests/sync.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c index f7be51e9721..8dea3b30c31 100644 --- a/dlls/kernel32/tests/sync.c +++ b/dlls/kernel32/tests/sync.c @@ -2636,6 +2636,26 @@ static void test_apc_deadlock(void) CloseHandle(pi.hProcess); } +static void test_crit_section(void) +{ + CRITICAL_SECTION cs; + BOOL ret; + + /* Win8+ does not initialize debug info, one has to use RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO + to override that. */ + memset(&cs, 0, sizeof(cs)); + InitializeCriticalSection(&cs); + ok(cs.DebugInfo != NULL, "Unexpected debug info pointer %p.\n", cs.DebugInfo); + DeleteCriticalSection(&cs); + + memset(&cs, 0, sizeof(cs)); + ret = InitializeCriticalSectionEx(&cs, 0, CRITICAL_SECTION_NO_DEBUG_INFO); + ok(ret, "Failed to initialize critical section.\n"); +todo_wine + ok(cs.DebugInfo == (void *)(ULONG_PTR)-1, "Unexpected debug info pointer %p.\n", cs.DebugInfo); + DeleteCriticalSection(&cs); +} + START_TEST(sync) { char **argv; @@ -2694,4 +2714,5 @@ START_TEST(sync) test_srwlock_example(); test_alertable_wait(); test_apc_deadlock(); + test_crit_section(); }