kernel32/tests: Add a test for critical section DebugInfo initial value.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
(cherry picked from commit bf174815ba)
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
oldstable
Nikolay Sivov 2019-04-25 12:31:55 +03:00 committed by Michael Stefaniuc
parent 97cf4f154d
commit 0a77cef2ee
1 changed files with 21 additions and 0 deletions

View File

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