[PATCH v3 3/3] msi/tests: Test for ErrorControl-flag

Andreas Maier andy1.m at gmx.de
Mon Jun 6 16:35:54 CDT 2016


This test expands a already existing test.
A Service is installed with the special ErrorControl-flag
0x8000 (msidbServiceInstallErrorControlVital).
The flag should be filtered out be msi. The test checks,
if the service is created without this flag.

Signed-off-by: Andreas Maier <andy1.m at gmx.de>
---
 dlls/msi/tests/action.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/dlls/msi/tests/action.c b/dlls/msi/tests/action.c
index fe7f9a2..c281d3b 100644
--- a/dlls/msi/tests/action.c
+++ b/dlls/msi/tests/action.c
@@ -234,7 +234,7 @@ static const char service_install2_dat[] =
     "LoadOrderGroup\tDependencies\tStartName\tPassword\tArguments\tComponent_\tDescription\n"
     "s72\ts255\tL255\ti4\ti4\ti4\tS255\tS255\tS255\tS255\tS255\ts72\tL255\n"
     "ServiceInstall\tServiceInstall\n"
-    "TestService\tTestService\tTestService\t2\t3\t0\t\t\tTestService\t\t\tservice_comp\t\n"
+    "TestService\tTestService\tTestService\t2\t3\t32768\t\t\tTestService\t\t\tservice_comp\t\n"
     "TestService4\tTestService4\tTestService4\t2\t3\t0\t\t\tTestService4\t\t\tservice_comp3\t\n";
 
 static const char service_control_dat[] =
@@ -5560,6 +5560,19 @@ static void test_install_services(void)
     ok(service == NULL, "TestService4 installed\n");
     CloseServiceHandle(manager);
 
+    res = RegOpenKeyA(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Services\\TestService", &hKey);
+    ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+    if (res == ERROR_SUCCESS)
+    {
+        err_control = 0xBEEF;
+        err_controltype = REG_DWORD;
+        err_controlsize = sizeof(err_control);
+        res = RegQueryValueExA(hKey, "ErrorControl", NULL, &err_controltype, (LPBYTE)&err_control, &err_controlsize);
+        ok(err_control == 0, "TestService.ErrorControl wrong, expected 0, got %u\n", err_control);
+        RegCloseKey(hKey);
+    }
+
     r = MsiInstallProductA(msifile, "REMOVE=ALL");
     ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
 
-- 
2.8.1




More information about the wine-patches mailing list