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