Francois Gouget : msi/tests: Avoid source test failures when running in an account with insufficient privileges.
Alexandre Julliard
julliard at winehq.org
Wed Mar 5 14:12:31 CST 2014
Module: wine
Branch: master
Commit: 65bacd4b696db63a57986b4310d27ad8e9cecc27
URL: http://source.winehq.org/git/wine.git/?a=commit;h=65bacd4b696db63a57986b4310d27ad8e9cecc27
Author: Francois Gouget <fgouget at codeweavers.com>
Date: Wed Mar 5 11:07:13 2014 +0100
msi/tests: Avoid source test failures when running in an account with insufficient privileges.
---
dlls/msi/tests/source.c | 48 +++++++++++++++++++++++++++++++++++------------
1 file changed, 36 insertions(+), 12 deletions(-)
diff --git a/dlls/msi/tests/source.c b/dlls/msi/tests/source.c
index b429c10..9fddd90 100644
--- a/dlls/msi/tests/source.c
+++ b/dlls/msi/tests/source.c
@@ -1014,19 +1014,24 @@ machine_tests:
r = pMsiSourceListAddSourceExA(prodcode, NULL,
MSIINSTALLCONTEXT_MACHINE,
MSICODE_PRODUCT | MSISOURCETYPE_URL, "C:\\source", 0);
- ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+ if (r == ERROR_ACCESS_DENIED)
+ skip("MsiSourceListAddSourceEx (insufficient privileges)\n");
+ else
+ {
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
- res = RegOpenKeyExA(prodkey, "SourceList\\URL", 0, access, &url);
- ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+ res = RegOpenKeyExA(prodkey, "SourceList\\URL", 0, access, &url);
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
- size = MAX_PATH;
- res = RegQueryValueExA(url, "1", NULL, NULL, (LPBYTE)value, &size);
- ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
- ok(!lstrcmpA(value, "C:\\source/"), "Expected 'C:\\source/', got %s\n", value);
- ok(size == 11, "Expected 11, got %d\n", size);
+ size = MAX_PATH;
+ res = RegQueryValueExA(url, "1", NULL, NULL, (LPBYTE)value, &size);
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+ ok(!lstrcmpA(value, "C:\\source/"), "Expected 'C:\\source/', got %s\n", value);
+ ok(size == 11, "Expected 11, got %d\n", size);
- RegCloseKey(url);
- RegCloseKey(prodkey);
+ RegCloseKey(url);
+ RegCloseKey(prodkey);
+ }
LocalFree(usersid);
}
@@ -2050,6 +2055,11 @@ machine_tests:
r = pMsiSourceListSetInfoA(prodcode, NULL,
MSIINSTALLCONTEXT_MACHINE, MSICODE_PRODUCT,
INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path");
+ if (r == ERROR_ACCESS_DENIED)
+ {
+ skip("MsiSourceListSetInfo (insufficient privileges)\n");
+ goto done;
+ }
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
/* Media key is created by MsiSourceListSetInfo */
@@ -2063,10 +2073,11 @@ machine_tests:
INSTALLPROPERTY_MEDIAPACKAGEPATHA, "path");
ok(r == ERROR_INVALID_PARAMETER,
"Expected ERROR_INVALID_PARAMETER, got %d\n", r);
-
RegDeleteValueA(media, "MediaPackage");
delete_key(media, "", access);
RegCloseKey(media);
+
+done:
delete_key(source, "", access);
RegCloseKey(source);
delete_key(prodkey, "", access);
@@ -2361,6 +2372,11 @@ machine_tests:
r = pMsiSourceListAddMediaDiskA(prodcode, NULL,
MSIINSTALLCONTEXT_MACHINE,
MSICODE_PRODUCT, 1, "label", "prompt");
+ if (r == ERROR_ACCESS_DENIED)
+ {
+ skip("MsiSourceListAddMediaDisk (insufficient privileges)\n");
+ goto done;
+ }
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
/* Media subkey is created by MsiSourceListAddMediaDisk */
@@ -2375,10 +2391,11 @@ machine_tests:
MSICODE_PRODUCT, 1, "label", "prompt");
ok(r == ERROR_INVALID_PARAMETER,
"Expected ERROR_INVALID_PARAMETER, got %d\n", r);
-
RegDeleteValueA(media, "1");
delete_key(media, "", access);
RegCloseKey(media);
+
+done:
delete_key(source, "", access);
RegCloseKey(source);
delete_key(prodkey, "", access);
@@ -3452,6 +3469,11 @@ machine_tests:
/* Net key is created */
res = RegOpenKeyExA(source, "Net", 0, access, &net);
+ if (res == ERROR_ACCESS_DENIED)
+ {
+ skip("MsiSourceListAddSource (insufficient privileges)\n");
+ goto done;
+ }
ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
CHECK_REG_STR(net, "1", "source\\");
@@ -3467,6 +3489,8 @@ machine_tests:
RegDeleteValueA(net, "1");
delete_key(net, "", access);
RegCloseKey(net);
+
+done:
delete_key(source, "", access);
RegCloseKey(source);
delete_key(prodkey, "", access);
More information about the wine-cvs
mailing list