Nikolay Sivov : qmgr/tests: Fixed some test failures on older windows versions.

Alexandre Julliard julliard at winehq.org
Mon Dec 2 13:37:51 CST 2013


Module: wine
Branch: master
Commit: 202e71769e82b3b3a537d5a0a61bb8c82cc47e71
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=202e71769e82b3b3a537d5a0a61bb8c82cc47e71

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Sat Nov 30 14:47:19 2013 +0400

qmgr/tests: Fixed some test failures on older windows versions.

---

 dlls/qmgr/tests/enum_files.c |   43 +++++++++++++++++++++++++++++++++++-
 dlls/qmgr/tests/file.c       |   50 ++++++++++++++++++++++++++---------------
 2 files changed, 74 insertions(+), 19 deletions(-)

diff --git a/dlls/qmgr/tests/enum_files.c b/dlls/qmgr/tests/enum_files.c
index 7e2ab1e..0b05920 100644
--- a/dlls/qmgr/tests/enum_files.c
+++ b/dlls/qmgr/tests/enum_files.c
@@ -56,7 +56,40 @@ static HRESULT addFileHelper(IBackgroundCopyJob* job,
     urlSize = MAX_PATH;
     UrlCreateFromPathW(remoteFile, remoteUrl, &urlSize, 0);
     UrlUnescapeW(remoteUrl, NULL, &urlSize, URL_UNESCAPE_INPLACE);
-    return IBackgroundCopyJob_AddFile(test_job, remoteUrl, localFile);
+    return IBackgroundCopyJob_AddFile(job, remoteUrl, localFile);
+}
+
+static HRESULT test_create_manager(void)
+{
+    HRESULT hres;
+    IBackgroundCopyManager *manager = NULL;
+
+    /* Creating BITS instance */
+    hres = CoCreateInstance(&CLSID_BackgroundCopyManager, NULL, CLSCTX_LOCAL_SERVER,
+                            &IID_IBackgroundCopyManager, (void **) &manager);
+
+    if(hres == HRESULT_FROM_WIN32(ERROR_SERVICE_DISABLED)) {
+        win_skip("Needed Service is disabled\n");
+        return hres;
+    }
+
+    if (hres == S_OK)
+    {
+        IBackgroundCopyJob *job;
+        GUID jobId;
+
+        hres = IBackgroundCopyManager_CreateJob(manager, test_displayName, BG_JOB_TYPE_DOWNLOAD, &jobId, &job);
+        if (hres == S_OK)
+        {
+            hres = addFileHelper(job, test_localNameA, test_remoteNameA);
+            if (hres != S_OK)
+                win_skip("AddFile() with file:// protocol failed. Tests will be skipped.\n");
+            IBackgroundCopyJob_Release(job);
+        }
+        IBackgroundCopyManager_Release(manager);
+    }
+
+    return hres;
 }
 
 /* Generic test setup */
@@ -251,6 +284,14 @@ START_TEST(enum_files)
     int i;
 
     CoInitialize(NULL);
+
+    if (FAILED(test_create_manager()))
+    {
+        CoUninitialize();
+        win_skip("Failed to create Manager instance, skipping tests\n");
+        return;
+    }
+
     for (test = tests, i = 0; *test; ++test, ++i)
     {
         /* Keep state separate between tests. */
diff --git a/dlls/qmgr/tests/file.c b/dlls/qmgr/tests/file.c
index f14ad3a..afe4b53 100644
--- a/dlls/qmgr/tests/file.c
+++ b/dlls/qmgr/tests/file.c
@@ -40,6 +40,25 @@ static IBackgroundCopyManager *test_manager;
 static IEnumBackgroundCopyFiles *test_enumFiles;
 static IBackgroundCopyFile *test_file;
 
+/* Helper function to add a file to a job.  The helper function takes base
+   file name and creates properly formed path and URL strings for creation of
+   the file. */
+static HRESULT addFileHelper(IBackgroundCopyJob* job,
+        const WCHAR *localName, const WCHAR *remoteName)
+{
+    DWORD urlSize;
+
+    GetCurrentDirectoryW(MAX_PATH, test_localFile);
+    PathAppendW(test_localFile, localName);
+    GetCurrentDirectoryW(MAX_PATH, test_remoteUrl);
+    PathAppendW(test_remoteUrl, remoteName);
+    urlSize = MAX_PATH;
+    UrlCreateFromPathW(test_remoteUrl, test_remoteUrl, &urlSize, 0);
+    UrlUnescapeW(test_remoteUrl, NULL, &urlSize, URL_UNESCAPE_INPLACE);
+
+    return IBackgroundCopyJob_AddFile(job, test_remoteUrl, test_localFile);
+}
+
 static HRESULT test_create_manager(void)
 {
     HRESULT hres;
@@ -55,29 +74,24 @@ static HRESULT test_create_manager(void)
     }
 
     if (hres == S_OK)
+    {
+        IBackgroundCopyJob *job;
+        GUID jobId;
+
+        hres = IBackgroundCopyManager_CreateJob(manager, test_displayName, BG_JOB_TYPE_DOWNLOAD, &jobId, &job);
+        if (hres == S_OK)
+        {
+            hres = addFileHelper(job, test_localName, test_remoteName);
+            if (hres != S_OK)
+                win_skip("AddFile() with file:// protocol failed. Tests will be skipped.\n");
+            IBackgroundCopyJob_Release(job);
+        }
         IBackgroundCopyManager_Release(manager);
+    }
 
     return hres;
 }
 
-/* Helper function to add a file to a job.  The helper function takes base
-   file name and creates properly formed path and URL strings for creation of
-   the file. */
-static HRESULT addFileHelper(IBackgroundCopyJob* job,
-        const WCHAR *localName, const WCHAR *remoteName)
-{
-    DWORD urlSize;
-
-    GetCurrentDirectoryW(MAX_PATH, test_localFile);
-    PathAppendW(test_localFile, localName);
-    GetCurrentDirectoryW(MAX_PATH, test_remoteUrl);
-    PathAppendW(test_remoteUrl, remoteName);
-    urlSize = MAX_PATH;
-    UrlCreateFromPathW(test_remoteUrl, test_remoteUrl, &urlSize, 0);
-    UrlUnescapeW(test_remoteUrl, NULL, &urlSize, URL_UNESCAPE_INPLACE);
-    return IBackgroundCopyJob_AddFile(test_job, test_remoteUrl, test_localFile);
-}
-
 /* Generic test setup */
 static BOOL setup(void)
 {




More information about the wine-cvs mailing list