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