winpr: fix crashing tests
authorMarc-André Moreau <marcandre.moreau@gmail.com>
Thu, 19 Sep 2013 18:17:00 +0000 (14:17 -0400)
committerMarc-André Moreau <marcandre.moreau@gmail.com>
Thu, 19 Sep 2013 18:17:00 +0000 (14:17 -0400)
winpr/libwinpr/nt/test/TestNtCreateFile.c
winpr/libwinpr/synch/critical.c
winpr/libwinpr/synch/test/TestSynchWaitableTimer.c

index 571f733..8c1b9fd 100644 (file)
@@ -5,7 +5,7 @@
 
 int TestNtCreateFile(int argc, char* argv[])
 {
-#ifndef _WIN32
+#if 0
        HANDLE handle;
        NTSTATUS ntstatus;
        ULONG CreateOptions;
index ff419a5..df66f1a 100644 (file)
@@ -237,7 +237,7 @@ VOID DeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection)
 
 #if ((_WIN32) && (_WIN32_WINNT < 0x0600))
 
-typedef BOOL (*PINITIALIZE_CRITICAL_SECTION_EX_FN)(LPCRITICAL_SECTION lpCriticalSection, DWORD dwSpinCount, DWORD Flags);
+typedef BOOL (WINAPI * PINITIALIZE_CRITICAL_SECTION_EX_FN)(LPCRITICAL_SECTION lpCriticalSection, DWORD dwSpinCount, DWORD Flags);
 
 static HMODULE g_KERNEL32_Library = NULL;
 static BOOL g_InitializeCriticalSectionEx_Detected = FALSE;
@@ -268,7 +268,7 @@ BOOL InitializeCriticalSectionEx(LPCRITICAL_SECTION lpCriticalSection, DWORD dwS
        if (g_InitializeCriticalSectionEx_Available)
        {
                /* Vista and later */
-               return g_pInitializeCriticalSectionEx(lpCriticalSection, dwSpinCount, Flags);
+               return (*g_pInitializeCriticalSectionEx)(lpCriticalSection, dwSpinCount, Flags);
        }
        else
        {
index 472a412..fb8497c 100644 (file)
@@ -4,11 +4,12 @@
 
 int TestSynchWaitableTimer(int argc, char* argv[])
 {
+       DWORD status;
        HANDLE timer;
        LONG period;
        LARGE_INTEGER due;
 
-       timer = CreateWaitableTimer(NULL, TRUE, NULL);
+       timer = CreateWaitableTimer(NULL, FALSE, NULL);
 
        if (!timer)
        {
@@ -24,7 +25,9 @@ int TestSynchWaitableTimer(int argc, char* argv[])
                return -1;
        }
 
-       if (WaitForSingleObject(timer, INFINITE) != WAIT_OBJECT_0)
+       status = WaitForSingleObject(timer, INFINITE);
+
+       if (status != WAIT_OBJECT_0)
        {
                printf("WaitForSingleObject(timer, INFINITE) failure\n");
                return -1;
@@ -32,9 +35,11 @@ int TestSynchWaitableTimer(int argc, char* argv[])
 
        printf("Timer Signaled\n");
 
-       if (WaitForSingleObject(timer, 2000) != WAIT_TIMEOUT)
+       status = WaitForSingleObject(timer, 2000);
+
+       if (status != WAIT_TIMEOUT)
        {
-               printf("WaitForSingleObject(timer, 2000) failure\n");
+               printf("WaitForSingleObject(timer, 2000) failure: Actual: 0x%04X, Expected: 0x%04X\n", status, WAIT_TIMEOUT);
                return -1;
        }