[ros-diffs] [greatlrd] 33816: Adding complete test kit for EngCreateSemaphore, EngAcquireSemaphore, EngDeleteSemaphore, EngReleaseSemaphore I think it testing all case it can now, and also split up some test to EngDeleteSemaphore and EngReleaseSemaphore and EngAcquireSemaphore, that was in EngCreateSemaphore

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Sun Jun 1 19:33:52 CEST 2008


Author: greatlrd
Date: Sun Jun  1 12:33:51 2008
New Revision: 33816

URL: http://svn.reactos.org/svn/reactos?rev=33816&view=rev
Log:
Adding complete test kit for EngCreateSemaphore, EngAcquireSemaphore, EngDeleteSemaphore, EngReleaseSemaphore 
I think it testing all case it can now, and also split up some test to EngDeleteSemaphore and EngReleaseSemaphore and EngAcquireSemaphore, that was in EngCreateSemaphore


Added:
    trunk/rostests/apitests/gdi32api/tests/EngAcquireSemaphore.c   (with props)
    trunk/rostests/apitests/gdi32api/tests/EngDeleteSemaphore.c   (with props)
    trunk/rostests/apitests/gdi32api/tests/EngReleaseSemaphore.c   (with props)
Modified:
    trunk/rostests/apitests/gdi32api/testlist.c
    trunk/rostests/apitests/gdi32api/tests/EngCreateSemaphore.c

Modified: trunk/rostests/apitests/gdi32api/testlist.c
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32api/testlist.c?rev=33816&r1=33815&r2=33816&view=diff
==============================================================================
--- trunk/rostests/apitests/gdi32api/testlist.c [iso-8859-1] (original)
+++ trunk/rostests/apitests/gdi32api/testlist.c [iso-8859-1] Sun Jun  1 12:33:51 2008
@@ -12,6 +12,9 @@
 #include "tests/CreatePen.c"
 #include "tests/CreateRectRgn.c"
 #include "tests/EngCreateSemaphore.c"
+#include "tests/EngAcquireSemaphore.c"
+#include "tests/EngDeleteSemaphore.c"
+#include "tests/EngReleaseSemaphore.c"
 #include "tests/ExtCreatePen.c"
 #include "tests/GdiConvertBitmap.c"
 #include "tests/GdiConvertBrush.c"
@@ -53,6 +56,9 @@
 	{ L"CreateFont", Test_CreateFont },
 	{ L"CreatePen", Test_CreatePen },
 	{ L"EngCreateSemaphore", Test_EngCreateSemaphore },
+	{ L"EngAcquireSemaphore", Test_EngAcquireSemaphore },
+	{ L"EngDeleteSemaphore", Test_EngDeleteSemaphore },
+	{ L"EngReleaseSemaphore", Test_EngReleaseSemaphore },
 	{ L"CreateRectRgn", Test_CreateRectRgn },
 	{ L"ExtCreatePen", Test_ExtCreatePen },
 	{ L"GdiConvertBitmap", Test_GdiConvertBitmap },

Added: trunk/rostests/apitests/gdi32api/tests/EngAcquireSemaphore.c
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32api/tests/EngAcquireSemaphore.c?rev=33816&view=auto
==============================================================================
--- trunk/rostests/apitests/gdi32api/tests/EngAcquireSemaphore.c (added)
+++ trunk/rostests/apitests/gdi32api/tests/EngAcquireSemaphore.c [iso-8859-1] Sun Jun  1 12:33:51 2008
@@ -1,0 +1,45 @@
+/* Simple test of EngAcquireSemaphore only check if we got a lock or not */
+INT
+Test_EngAcquireSemaphore(PTESTINFO pti)
+{
+
+    HSEMAPHORE hsem;
+    PRTL_CRITICAL_SECTION lpcrit;
+
+    hsem = EngCreateSemaphore();
+    RTEST ( hsem != NULL );
+    ASSERT(hsem != NULL);
+    lpcrit = (PRTL_CRITICAL_SECTION) hsem;
+
+    /* real data test */
+    EngAcquireSemaphore(hsem);
+    RTEST (lpcrit->LockCount == -2);
+    RTEST (lpcrit->RecursionCount == 1);
+    RTEST (lpcrit->OwningThread != 0);
+    RTEST (lpcrit->LockSemaphore == 0);
+    RTEST (lpcrit->SpinCount == 0);
+
+    ASSERT(lpcrit->DebugInfo != NULL);
+    RTEST (lpcrit->DebugInfo->Type == 0);
+    RTEST (lpcrit->DebugInfo->CreatorBackTraceIndex == 0);
+    RTEST (lpcrit->DebugInfo->EntryCount == 0);
+    RTEST (lpcrit->DebugInfo->ContentionCount == 0);
+
+    EngReleaseSemaphore(hsem);
+    EngDeleteSemaphore(hsem);
+
+    /* NULL pointer test */
+    // Note NULL pointer test crash in Vista */
+    // EngAcquireSemaphore(NULL);
+
+    /* negtive pointer test */
+    // Note negtive pointer test crash in Vista */
+    // EngAcquireSemaphore((HSEMAPHORE)-1);
+
+    /* try with deleted Semaphore */
+    // Note deleted Semaphore pointer test does freze the whole program in Vista */
+    // EngAcquireSemaphore(hsem);
+
+    return APISTATUS_NORMAL;
+}
+

Propchange: trunk/rostests/apitests/gdi32api/tests/EngAcquireSemaphore.c
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: trunk/rostests/apitests/gdi32api/tests/EngCreateSemaphore.c
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32api/tests/EngCreateSemaphore.c?rev=33816&r1=33815&r2=33816&view=diff
==============================================================================
--- trunk/rostests/apitests/gdi32api/tests/EngCreateSemaphore.c [iso-8859-1] (original)
+++ trunk/rostests/apitests/gdi32api/tests/EngCreateSemaphore.c [iso-8859-1] Sun Jun  1 12:33:51 2008
@@ -26,21 +26,6 @@
 
     EngDeleteSemaphore(hsem);
 
-    RTEST (lpcrit->DebugInfo != NULL);
-    RTEST (lpcrit->LockCount > 0);
-    RTEST (lpcrit->RecursionCount == 0);
-    RTEST (lpcrit->OwningThread == 0);
-    RTEST (lpcrit->LockSemaphore == 0);
-    RTEST (lpcrit->SpinCount == 0);
-
-    ASSERT(lpcrit->DebugInfo != NULL);
-    // my (magnus olsen) value I getting back in vista RTEST (lpcrit->DebugInfo->Type == 0xA478);
-    RTEST (lpcrit->DebugInfo->Type != 0);
-    RTEST (lpcrit->DebugInfo->CreatorBackTraceIndex != 0);
-    RTEST (lpcrit->DebugInfo->EntryCount != 0);
-    // my (magnus olsen) value I getting back RTEST in vista (lpcrit->DebugInfo->ContentionCount == 0x20000);
-    RTEST (lpcrit->DebugInfo->ContentionCount != 0);
-
     return APISTATUS_NORMAL;
 }
 

Added: trunk/rostests/apitests/gdi32api/tests/EngDeleteSemaphore.c
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32api/tests/EngDeleteSemaphore.c?rev=33816&view=auto
==============================================================================
--- trunk/rostests/apitests/gdi32api/tests/EngDeleteSemaphore.c (added)
+++ trunk/rostests/apitests/gdi32api/tests/EngDeleteSemaphore.c [iso-8859-1] Sun Jun  1 12:33:51 2008
@@ -1,0 +1,51 @@
+
+INT
+Test_EngDeleteSemaphore(PTESTINFO pti)
+{
+
+    HSEMAPHORE hsem;
+    PRTL_CRITICAL_SECTION lpcrit;
+
+    /* test Create then delete */
+    hsem = EngCreateSemaphore();
+    ASSERT(hsem != NULL);
+    lpcrit = (PRTL_CRITICAL_SECTION) hsem;
+    EngDeleteSemaphore(hsem);
+
+    RTEST (lpcrit->LockCount > 0);
+    RTEST (lpcrit->RecursionCount == 0);
+    RTEST (lpcrit->OwningThread == 0);
+    RTEST (lpcrit->LockSemaphore == 0);
+    RTEST (lpcrit->SpinCount == 0);
+
+    ASSERT(lpcrit->DebugInfo != NULL);
+    RTEST (lpcrit->DebugInfo->Type != 0);
+    RTEST (lpcrit->DebugInfo->CreatorBackTraceIndex != 0);
+    RTEST (lpcrit->DebugInfo->EntryCount != 0);
+    RTEST (lpcrit->DebugInfo->ContentionCount != 0);
+
+
+    /* test EngAcquireSemaphore and release it, then delete it */
+    hsem = EngCreateSemaphore();
+    ASSERT(hsem != NULL);
+    lpcrit = (PRTL_CRITICAL_SECTION) hsem;
+
+    EngAcquireSemaphore(hsem);
+    EngReleaseSemaphore(hsem);
+    EngDeleteSemaphore(hsem);
+
+    RTEST (lpcrit->LockCount > 0);
+    RTEST (lpcrit->RecursionCount == 0);
+    RTEST (lpcrit->OwningThread == 0);
+    RTEST (lpcrit->LockSemaphore == 0);
+    RTEST (lpcrit->SpinCount == 0);
+
+    ASSERT(lpcrit->DebugInfo != NULL);
+    RTEST (lpcrit->DebugInfo->Type != 0);
+    RTEST (lpcrit->DebugInfo->CreatorBackTraceIndex != 0);
+    RTEST (lpcrit->DebugInfo->EntryCount != 0);
+    RTEST (lpcrit->DebugInfo->ContentionCount != 0);
+
+    return APISTATUS_NORMAL;
+}
+

Propchange: trunk/rostests/apitests/gdi32api/tests/EngDeleteSemaphore.c
------------------------------------------------------------------------------
    svn:eol-style = native

Added: trunk/rostests/apitests/gdi32api/tests/EngReleaseSemaphore.c
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32api/tests/EngReleaseSemaphore.c?rev=33816&view=auto
==============================================================================
--- trunk/rostests/apitests/gdi32api/tests/EngReleaseSemaphore.c (added)
+++ trunk/rostests/apitests/gdi32api/tests/EngReleaseSemaphore.c [iso-8859-1] Sun Jun  1 12:33:51 2008
@@ -1,0 +1,56 @@
+/* Simple test of EngAcquireSemaphore only check if we got a lock or not */
+INT
+Test_EngReleaseSemaphore(PTESTINFO pti)
+{
+
+    HSEMAPHORE hsem;
+    PRTL_CRITICAL_SECTION lpcrit;
+
+    hsem = EngCreateSemaphore();
+    ASSERT(hsem != NULL);
+
+    lpcrit = (PRTL_CRITICAL_SECTION) hsem;
+
+    EngAcquireSemaphore(hsem);
+    EngReleaseSemaphore(hsem);
+
+    RTEST (lpcrit->LockCount != 0);
+    RTEST (lpcrit->RecursionCount == 0);
+    RTEST (lpcrit->OwningThread == 0);
+    RTEST (lpcrit->LockSemaphore == 0);
+    RTEST (lpcrit->SpinCount == 0);
+
+    ASSERT(lpcrit->DebugInfo != NULL);
+    RTEST (lpcrit->DebugInfo->Type == 0);
+    RTEST (lpcrit->DebugInfo->CreatorBackTraceIndex == 0);
+    RTEST (lpcrit->DebugInfo->EntryCount == 0);
+    RTEST (lpcrit->DebugInfo->ContentionCount == 0);
+
+    EngDeleteSemaphore(hsem);
+
+    /* try with deleted Semaphore */
+    EngReleaseSemaphore(hsem);
+    RTEST (lpcrit->LockCount > 0);
+    RTEST (lpcrit->RecursionCount != 0);
+    RTEST (lpcrit->OwningThread == 0);
+    RTEST (lpcrit->LockSemaphore == 0);
+    RTEST (lpcrit->SpinCount == 0);
+
+    ASSERT(lpcrit->DebugInfo != NULL);
+    RTEST (lpcrit->DebugInfo->Type != 0);
+    RTEST (lpcrit->DebugInfo->CreatorBackTraceIndex != 0);
+    RTEST (lpcrit->DebugInfo->EntryCount != 0);
+    RTEST (lpcrit->DebugInfo->ContentionCount != 0);
+
+    /* NULL pointer test */
+    // Note NULL pointer test crash in Vista */
+    // EngReleaseSemaphore(NULL);
+
+    /* negtive pointer test */
+    // Note negtive pointer test crash in Vista */
+    // EngReleaseSemaphore((HSEMAPHORE)-1);
+
+
+    return APISTATUS_NORMAL;
+}
+

Propchange: trunk/rostests/apitests/gdi32api/tests/EngReleaseSemaphore.c
------------------------------------------------------------------------------
    svn:eol-style = native



More information about the Ros-diffs mailing list