Nikolay Sivov : gameux/tests: Simplify test game registering, add intermediate test checks.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Feb 24 10:33:24 CST 2015
Module: wine
Branch: master
Commit: 2062a483658217d1acfb504d1859108f8994a63d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2062a483658217d1acfb504d1859108f8994a63d
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Sat Feb 21 20:16:27 2015 +0300
gameux/tests: Simplify test game registering, add intermediate test checks.
---
dlls/gameux/tests/gamestatistics.c | 64 ++++++++++++++------------------------
1 file changed, 23 insertions(+), 41 deletions(-)
diff --git a/dlls/gameux/tests/gamestatistics.c b/dlls/gameux/tests/gamestatistics.c
index f5dd2ab..663ed53 100644
--- a/dlls/gameux/tests/gamestatistics.c
+++ b/dlls/gameux/tests/gamestatistics.c
@@ -30,7 +30,6 @@
/*******************************************************************************
* utilities
*/
-static IGameExplorer *ge = NULL;
static WCHAR sExeName[MAX_PATH] = {0};
static GUID gameInstanceId;
static HRESULT WINAPI (*pSHGetFolderPathW)(HWND,int,HANDLE,DWORD,LPWSTR);
@@ -52,65 +51,50 @@ static BOOL _loadDynamicRoutines(void)
if (!pSHGetFolderPathW) return FALSE;
return TRUE;
}
+
/*******************************************************************************
- * _registerGame
* Registers test suite executable as game in Games Explorer. Required to test
* game statistics.
*/
-static HRESULT _registerGame(void) {
+static void test_register_game(IGameExplorer **explorer)
+{
HRESULT hr;
- WCHAR sExePath[MAX_PATH];
+ WCHAR pathW[MAX_PATH];
BSTR bstrExeName, bstrExePath;
- DWORD dwExeNameLen;
/* prepare path to binary */
- dwExeNameLen = GetModuleFileNameW(NULL, sExeName, sizeof (sExeName) / sizeof (sExeName[0]));
- hr = (dwExeNameLen!= 0 ? S_OK : E_FAIL);
- lstrcpynW(sExePath, sExeName, StrRChrW(sExeName, NULL, '\\') - sExeName + 1);
-
- bstrExeName = SysAllocString(sExeName);
- if(!bstrExeName) hr = E_OUTOFMEMORY;
-
- bstrExePath = SysAllocString(sExePath);
- if(!bstrExePath) hr = E_OUTOFMEMORY;
+ GetModuleFileNameW(NULL, sExeName, sizeof (sExeName) / sizeof (sExeName[0]));
- if(SUCCEEDED(hr))
- {
- gameInstanceId = GUID_NULL;
- hr = CoCreateInstance(&CLSID_GameExplorer, NULL, CLSCTX_INPROC_SERVER,
- &IID_IGameExplorer, (LPVOID*)&ge);
- }
+ lstrcpyW(pathW, sExeName);
+ PathRemoveFileSpecW(pathW);
- if(SUCCEEDED(hr))
- hr = IGameExplorer_AddGame(ge, bstrExeName, bstrExePath,
- GIS_CURRENT_USER, &gameInstanceId);
+ hr = CoCreateInstance(&CLSID_GameExplorer, NULL, CLSCTX_INPROC_SERVER, &IID_IGameExplorer, (void**)explorer);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
- if(FAILED(hr) && ge)
- {
- IGameExplorer_Release(ge);
- ge = NULL;
- }
+ gameInstanceId = GUID_NULL;
+ bstrExeName = SysAllocString(sExeName);
+ bstrExePath = SysAllocString(pathW);
+ hr = IGameExplorer_AddGame(*explorer, bstrExeName, bstrExePath, GIS_CURRENT_USER, &gameInstanceId);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
SysFreeString(bstrExeName);
SysFreeString(bstrExePath);
- return hr;
}
+
/*******************************************************************************
- * _unregisterGame
* Unregisters test suite from Games Explorer.
*/
-static HRESULT _unregisterGame(void) {
+static void test_unregister_game(IGameExplorer *ge)
+{
HRESULT hr;
- if(!ge) return E_FAIL;
+ if (!ge) return;
hr = IGameExplorer_RemoveGame(ge, gameInstanceId);
-
+ ok(hr == S_OK, "got 0x%08x\n", hr);
IGameExplorer_Release(ge);
- ge = NULL;
-
- return hr;
}
+
/*******************************************************************************
* _buildStatisticsFilePath
* Creates path to file containing statistics of game with given id.
@@ -438,13 +422,11 @@ START_TEST(gamestatistics)
if(gameStatisticsAvailable)
{
- hr = _registerGame();
- ok( hr == S_OK, "cannot register game in Game Explorer (error: 0x%x)\n", hr);
+ IGameExplorer *ge;
+ test_register_game(&ge);
test_gamestatisticsmgr();
-
- hr = _unregisterGame();
- ok( hr == S_OK, "cannot unregister game from Game Explorer (error: 0x%x)\n", hr);
+ test_unregister_game(ge);
}
CoUninitialize();
More information about the wine-cvs
mailing list