[ros-diffs] [mbosma] 26749: SetCooperativeLevel Test

mbosma at svn.reactos.org mbosma at svn.reactos.org
Sun May 13 11:58:48 CEST 2007


Author: mbosma
Date: Sun May 13 13:58:47 2007
New Revision: 26749

URL: http://svn.reactos.org/svn/reactos?rev=26749&view=rev
Log:
SetCooperativeLevel Test

Modified:
    trunk/rostests/dxtest/ddraw/testlist.cpp
    trunk/rostests/dxtest/ddraw/tests/CreateDDraw.cpp

Modified: trunk/rostests/dxtest/ddraw/testlist.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/dxtest/ddraw/testlist.cpp?rev=26749&r1=26748&r2=26749&view=diff
==============================================================================
--- trunk/rostests/dxtest/ddraw/testlist.cpp (original)
+++ trunk/rostests/dxtest/ddraw/testlist.cpp Sun May 13 13:58:47 2007
@@ -9,7 +9,8 @@
 /* The List of tests */
 TEST TestList[] =
 {
-	{ "CreateDDraw", Test_CreateDDraw }
+	{ "DirectDrawCreate(Ex)", Test_CreateDDraw },
+	{ "IDirectDraw::SetCooperativeLevel", Test_SetCooperativeLevel }
 };
 
 /* The function that gives us the number of tests */

Modified: trunk/rostests/dxtest/ddraw/tests/CreateDDraw.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/dxtest/ddraw/tests/CreateDDraw.cpp?rev=26749&r1=26748&r2=26749&view=diff
==============================================================================
--- trunk/rostests/dxtest/ddraw/tests/CreateDDraw.cpp (original)
+++ trunk/rostests/dxtest/ddraw/tests/CreateDDraw.cpp Sun May 13 13:58:47 2007
@@ -1,13 +1,13 @@
 #include "ddrawtest.h"
 
-PCHAR DDErrorString (HRESULT hResult);
+HWND CreateBasicWindow (VOID);
 
 BOOL Test_CreateDDraw (INT* passed, INT* failed)
 {
 	LPDIRECTDRAW7 DirectDraw;
 	IDirectDraw* DirectDraw2;
 
-	// FIXME: Test first parameter 
+	/*** FIXME: Test first parameter  ***/
 
 	TEST (DirectDrawCreateEx(NULL, (VOID**)&DirectDraw, IID_IDirectDraw7, (IUnknown*)0xdeadbeef) == CLASS_E_NOAGGREGATION);
 	TEST (DirectDrawCreateEx(NULL, (VOID**)&DirectDraw, IID_IDirectDraw4, NULL) == DDERR_INVALIDPARAMS);
@@ -17,3 +17,64 @@
 
 	return TRUE;
 }
+
+BOOL Test_SetCooperativeLevel (INT* passed, INT* failed)
+{
+	HWND hwnd; 
+	LPDIRECTDRAW7 DirectDraw;
+	
+	/* Preparations */
+	if (DirectDrawCreateEx(NULL, (VOID**)&DirectDraw, IID_IDirectDraw7, NULL) != DD_OK)
+	{
+		printf("ERROR: Failed to set up ddraw\n");
+		return FALSE;
+	}
+
+	if(!( hwnd = CreateBasicWindow() ))
+	{
+		printf("ERROR: Failed to create window\n");
+		DirectDraw->Release();
+		return FALSE;
+	}
+
+	/* The Test */
+	TEST ( DirectDraw->SetCooperativeLevel (NULL, DDSCL_FULLSCREEN) == DDERR_INVALIDPARAMS );
+	TEST ( DirectDraw->SetCooperativeLevel (NULL, DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE) == DDERR_INVALIDPARAMS );
+	TEST ( DirectDraw->SetCooperativeLevel (hwnd, DDSCL_NORMAL | DDSCL_ALLOWMODEX) == DDERR_INVALIDPARAMS );
+	TEST ( DirectDraw->SetCooperativeLevel ((HWND)0xdeadbeef, DDSCL_NORMAL) == DDERR_INVALIDPARAMS);
+
+	TEST ( DirectDraw->SetCooperativeLevel (hwnd, DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE) == DD_OK);
+	TEST ( DirectDraw->SetCooperativeLevel (hwnd, DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE | DDSCL_ALLOWMODEX) == DD_OK);
+	TEST ( DirectDraw->SetCooperativeLevel (hwnd, DDSCL_NORMAL | DDSCL_FULLSCREEN) == DD_OK);
+	TEST ( DirectDraw->SetCooperativeLevel (NULL, DDSCL_NORMAL) == DD_OK );
+	TEST ( DirectDraw->SetCooperativeLevel (hwnd, DDSCL_NORMAL) == DD_OK );
+
+	DirectDraw->Release();
+
+	return TRUE;
+}
+
+LONG WINAPI BasicWindowProc (HWND hwnd, UINT message, UINT wParam, LONG lParam) 
+{ 
+	switch (message)
+	{
+		case WM_DESTROY:
+		{
+			PostQuitMessage (0); 
+			return 0;
+		} break;
+	}
+
+	return DefWindowProc (hwnd, message, wParam, lParam);
+} 
+
+HWND CreateBasicWindow (VOID)
+{
+	WNDCLASS wndclass = {0};
+	wndclass.lpfnWndProc   = BasicWindowProc;
+	wndclass.hInstance     = GetModuleHandle(NULL);
+	wndclass.lpszClassName = "DDrawTest"; 
+	RegisterClass(&wndclass);    
+
+	return CreateWindow("DDrawTest", "ReactOS DirectDraw Test", WS_POPUP, 0, 0, 10, 10, NULL, NULL, GetModuleHandle(NULL), NULL);
+}




More information about the Ros-diffs mailing list