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