add more test for EngCreateSemaphore, it checking some info in the internal HANDLE...
authorMagnus Olsen <magnus@greatlord.com>
Sun, 1 Jun 2008 15:06:40 +0000 (15:06 +0000)
committerMagnus Olsen <magnus@greatlord.com>
Sun, 1 Jun 2008 15:06:40 +0000 (15:06 +0000)
svn path=/trunk/; revision=33809

rostests/apitests/gdi32api/gdi.h
rostests/apitests/gdi32api/gdi32api.h
rostests/apitests/gdi32api/tests/EngCreateSemaphore.c

index deff65e..3e6520d 100644 (file)
@@ -2,13 +2,6 @@
 #define _WIN32_WINNT 0x0501\r
 #endif\r
 \r
-typedef struct _GDI_TABLE_ENTRY\r
-{\r
-       PVOID KernelData; /* Points to the kernel mode structure */\r
-       HANDLE ProcessId; /* process id that created the object, 0 for stock objects */\r
-       LONG Type;        /* the first 16 bit is the object type including the stock obj flag, the last 16 bits is just the object type */\r
-       PVOID UserData;   /* Points to the user mode structure, usually NULL though */\r
-} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;\r
 \r
 typedef PGDI_TABLE_ENTRY (CALLBACK * GDIQUERYPROC) (void);\r
 \r
@@ -22,29 +15,7 @@ typedef PGDI_TABLE_ENTRY (CALLBACK * GDIQUERYPROC) (void);
 #define GDI_HANDLE_STOCK_MASK 0x00800000\r
 #define GDI_HANDLE_REUSE_MASK 0xff000000\r
 #define GDI_HANDLE_REUSECNT_SHIFT 24\r
-#define GDI_HANDLE_UPPER_MASK 0xffff0000\r
 \r
-/* Handle macros */\r
-#define GDI_HANDLE_CREATE(i, t)    \\r
-    ((HANDLE)(((i) & GDI_HANDLE_INDEX_MASK) | ((t) << 16)))\r
-\r
-#define GDI_HANDLE_GET_INDEX(h)    \\r
-    (((ULONG_PTR)(h)) & GDI_HANDLE_INDEX_MASK)\r
-\r
-#define GDI_HANDLE_GET_TYPE(h)     \\r
-    (((ULONG_PTR)(h)) & GDI_HANDLE_TYPE_MASK)\r
-\r
-#define GDI_HANDLE_IS_TYPE(h, t)   \\r
-    ((t) == (((ULONG_PTR)(h)) & GDI_HANDLE_TYPE_MASK))\r
-\r
-#define GDI_HANDLE_IS_STOCKOBJ(h)  \\r
-    (0 != (((ULONG_PTR)(h)) & GDI_HANDLE_STOCK_MASK))\r
-\r
-#define GDI_HANDLE_SET_STOCKOBJ(h) \\r
-    ((h) = (HANDLE)(((ULONG_PTR)(h)) | GDI_HANDLE_STOCK_MASK))\r
-\r
-#define GDI_HANDLE_GET_UPPER(h)     \\r
-    (((ULONG_PTR)(h)) & GDI_HANDLE_UPPER_MASK)\r
 \r
 #define GDI_OBJECT_TYPE_DC          0x00010000\r
 #define GDI_OBJECT_TYPE_REGION      0x00040000\r
@@ -73,132 +44,8 @@ typedef PGDI_TABLE_ENTRY (CALLBACK * GDIQUERYPROC) (void);
 \r
 typedef LONG FIX;\r
 \r
-typedef struct _EFLOAT_S\r
-{\r
-    LONG lMant;\r
-    LONG lExp;\r
-} EFLOAT_S;\r
-\r
-/* XFORM Structures */\r
-typedef struct _MATRIX_S\r
-{\r
-    EFLOAT_S efM11;\r
-    EFLOAT_S efM12;\r
-    EFLOAT_S efM21;\r
-    EFLOAT_S efM22;\r
-    EFLOAT_S efDx;\r
-    EFLOAT_S efDy;\r
-    FIX fxDx;\r
-    FIX fxDy;\r
-    FLONG flAccel;\r
-} MATRIX;\r
-\r
-/* GDI object structures */\r
-\r
-typedef struct _RGNATTR\r
-{\r
-    ULONG AttrFlags;\r
-    ULONG Flags;\r
-    RECTL Rect;\r
-} RGNATTR,*PRGNATTR;\r
-\r
-// Local DC structure (_DC_ATTR) PVOID pvLDC;\r
-typedef struct _LDC\r
-{\r
-    HDC hDC;\r
-    ULONG Flags;\r
-    INT iType;\r
-    PVOID pvEmfDC;        /* Pointer to ENHMETAFILE structure */\r
-    ABORTPROC pAbortProc; /* AbortProc for Printing */\r
-    HANDLE hPrinter;      /* Local or Remote Printer driver */\r
-    INT iInitPage;        /* Start/Stop */\r
-    INT iInitDocument;\r
-} LDC, *PLDC;\r
-\r
-typedef struct\r
-{\r
-  void *      pvLDC;                 // 000\r
-  ULONG       ulDirty;\r
-  HBRUSH      hbrush;\r
-  HPEN        hpen;\r
-\r
-  COLORREF    crBackgroundClr;       // 010\r
-  ULONG       ulBackgroundClr;\r
-  COLORREF    crForegroundClr;\r
-  ULONG       ulForegroundClr;\r
-\r
-#if (_WIN32_WINNT >= 0x0500)\r
-  COLORREF crBrushClr;               // 020\r
-  ULONG ulBrushClr;\r
-  COLORREF crPenClr;\r
-  ULONG ulPenClr;\r
 \r
-#endif\r
-  int         iCS_CP;                // 030\r
-  int         iGraphicsMode;\r
-  BYTE        jROP2;                 // 038\r
-  BYTE        jBkMode;\r
-  BYTE        jFillMode;\r
-  BYTE        jStretchBltMode;\r
-\r
-  POINT       ptlCurrent;            // 03C\r
-  POINTFX     ptfxCurrent;           // 044\r
-  long        lBkMode;               // 04C\r
-\r
-  long        lFillMode;             // 050\r
-  long        lStretchBltMode;\r
-\r
-#if (_WIN32_WINNT >= 0x0500)\r
-  long        flFontMapper;          // 058\r
-  long        lIcmMode;\r
-  unsigned    hcmXform;              // 060\r
-  HCOLORSPACE hColorSpace;\r
-  FLONG       flIcmFlags;\r
-  unsigned    IcmBrushColor;\r
-  unsigned    IcmPenColor;           // 070\r
-  PVOID       pvLIcm;\r
-#endif\r
-\r
-  long        flTextAlign;           // 078\r
-  long        lTextAlign;\r
-  long        lTextExtra;            // 080\r
-  long        lRelAbs;\r
-  long        lBreakExtra;\r
-  long        cBreak;\r
-\r
-  HFONT       hlfntNew;              // 090\r
-  MATRIX      mxWorldToDevice;       // 094\r
-  MATRIX      mxDeviceToWorld;       // 0D0\r
-  MATRIX      mxWorldToPage;         // 10C\r
 \r
-  EFLOAT_S    efM11PtoD;\r
-  EFLOAT_S    efM22PtoD;\r
-  EFLOAT_S    efDxPtoD;\r
-  EFLOAT_S    efDyPtoD;\r
-\r
-  int         iMapMode;              // 168\r
-\r
-#if (_WIN32_WINNT >= 0x0500)\r
-  DWORD       dwLayout;              // 16c\r
-  long        lWindowOrgx;           // 170\r
-#endif\r
-  POINT       ptlWindowOrg;          // 174\r
-  SIZE        szlWindowExt;          // 17c\r
-  POINT       ptlViewportOrg;        // 184\r
-  SIZE        szlViewportExt;        // 18c\r
-\r
-  long        flXform;               // 194\r
-  SIZE        szlVirtualDevicePixel; // 198\r
-  SIZE        szlVirtualDeviceMm;    // 1a0\r
-  POINT       ptlBrushOrigin;        // 1a8\r
-\r
-  unsigned    unk1b0_00000000[2];    // 1b0\r
-  RGNATTR VisRectRegion;\r
-\r
-//  unsigned    unk1b0_00000000[2];    // 1b0\r
-//  unsigned    RectRegionFlag;        // 1b4\r
-//  RECT        VisRectRegion;         // 1b8\r
-} DC_ATTR, *PDC_ATTR;\r
 \r
 HDC WINAPI GdiConvertBitmap(HDC hdc);\r
 HBRUSH WINAPI GdiConvertBrush(HBRUSH hbr);\r
index efbc8d7..f65b6db 100644 (file)
@@ -3,7 +3,17 @@
 \r
 #define WIN32_NO_STATUS\r
 #include <windows.h>\r
+#include <windows.h>\r
 #include <ndk/ntndk.h>\r
+#include <wingdi.h>\r
+#include <winddi.h>\r
+#include <d3dnthal.h>\r
+#include <prntfont.h>\r
+\r
+/* Public Win32K Headers */\r
+#include <win32k/ntgdityp.h>\r
+#include <ntgdi.h>\r
+#include <win32k/ntgdihdl.h>\r
 \r
 #include "../apitest.h"\r
 #include "gdi.h"\r
index 84192a8..0d02a0b 100644 (file)
@@ -4,9 +4,19 @@ Test_EngCreateSemaphore(PTESTINFO pti)
 {
 
     HSEMAPHORE hsem;
-    hsem = EngCreateSemaphore();
+    PRTL_CRITICAL_SECTION lpcrit;
 
+    hsem = EngCreateSemaphore();
     RTEST ( hsem != NULL );
+    ASSERT(hsem != NULL);
+
+    lpcrit = (PRTL_CRITICAL_SECTION) hsem;
+    RTEST ( lpcrit->DebugInfo != NULL);
+    RTEST (lpcrit->LockCount == -1);
+    RTEST (lpcrit->RecursionCount == 0);
+    RTEST (lpcrit->OwningThread == 0);
+    RTEST (lpcrit->LockSemaphore == 0);
+    RTEST (lpcrit->SpinCount == 0);
 
     EngDeleteSemaphore(hsem);