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(); }