Module: wine Branch: master Commit: 2062a483658217d1acfb504d1859108f8994a63d URL: http://source.winehq.org/git/wine.git/?a=commit;h=2062a483658217d1acfb504d18... Author: Nikolay Sivov <nsivov(a)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();