Signed-off-by: Hans Leidekker hans@codeweavers.com --- dlls/msi/tests/package.c | 65 +++++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 31 deletions(-)
diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c index 7915798355..6f9c2ca8f1 100644 --- a/dlls/msi/tests/package.c +++ b/dlls/msi/tests/package.c @@ -2146,14 +2146,17 @@ static void test_condition(void) DeleteFileA(msifile); }
-static void check_prop(MSIHANDLE hpkg, const char *prop, const char *expect) +static void check_prop(MSIHANDLE hpkg, const char *prop, const char *expect, int match_case) { char buffer[MAX_PATH] = "x"; DWORD sz = sizeof(buffer); UINT r = MsiGetPropertyA(hpkg, prop, buffer, &sz); ok(!r, "'%s': got %u\n", prop, r); ok(sz == lstrlenA(buffer), "'%s': expected %u, got %u\n", prop, lstrlenA(buffer), sz); - ok(!strcmp(buffer, expect), "'%s': expected '%s', got '%s'\n", prop, expect, buffer); + if (match_case) + ok(!strcmp(buffer, expect), "'%s': expected '%s', got '%s'\n", prop, expect, buffer); + else + ok(!strcasecmp(buffer, expect), "'%s': expected '%s', got '%s'\n", prop, expect, buffer); }
static void test_props(void) @@ -2229,29 +2232,29 @@ static void test_props(void)
r = MsiSetPropertyA( hpkg, "=", "asdf" ); ok(!r, "got %u\n", r); - check_prop(hpkg, "=", "asdf"); + check_prop(hpkg, "=", "asdf", 1);
r = MsiSetPropertyA( hpkg, " ", "asdf" ); ok(!r, "got %u\n", r); - check_prop(hpkg, " ", "asdf"); + check_prop(hpkg, " ", "asdf", 1);
r = MsiSetPropertyA( hpkg, "'", "asdf" ); ok(!r, "got %u\n", r); - check_prop(hpkg, "'", "asdf"); + check_prop(hpkg, "'", "asdf", 1);
/* set empty values */ r = MsiSetPropertyA( hpkg, "boo", NULL ); ok(!r, "got %u\n", r); - check_prop(hpkg, "boo", ""); + check_prop(hpkg, "boo", "", 1);
r = MsiSetPropertyA( hpkg, "boo", "" ); ok(!r, "got %u\n", r); - check_prop(hpkg, "boo", ""); + check_prop(hpkg, "boo", "", 1);
/* set a non-empty value */ r = MsiSetPropertyA( hpkg, "boo", "xyz" ); ok(!r, "got %u\n", r); - check_prop(hpkg, "boo", "xyz"); + check_prop(hpkg, "boo", "xyz", 1);
r = MsiGetPropertyA(hpkg, "boo", NULL, NULL); ok(!r, "got %u\n", r); @@ -2326,10 +2329,10 @@ static void test_props(void) ok(sz == 3, "got size %u\n", sz);
/* properties are case-sensitive */ - check_prop(hpkg, "BOO", ""); + check_prop(hpkg, "BOO", "", 1);
/* properties set in Property table should work */ - check_prop(hpkg, "MetadataCompName", "Photoshop.dll"); + check_prop(hpkg, "MetadataCompName", "Photoshop.dll", 1);
MsiCloseHandle( hpkg ); DeleteFileA(msifile); @@ -5739,65 +5742,65 @@ static void test_installprops(void) if (S(U(si)).wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) { sprintf(buf, "%d", si.wProcessorLevel); - check_prop(hpkg, "Intel", buf); - check_prop(hpkg, "MsiAMD64", buf); - check_prop(hpkg, "Msix64", buf); + check_prop(hpkg, "Intel", buf, 1); + check_prop(hpkg, "MsiAMD64", buf, 1); + check_prop(hpkg, "Msix64", buf, 1); sprintf(buf, "%d", LOBYTE(LOWORD(GetVersion())) * 100 + HIBYTE(LOWORD(GetVersion()))); - check_prop(hpkg, "VersionNT64", buf); + check_prop(hpkg, "VersionNT64", buf, 1);
GetSystemDirectoryA(path, MAX_PATH); strcat(path, "\"); - check_prop(hpkg, "System64Folder", path); + check_prop(hpkg, "System64Folder", path, 0);
GetSystemWow64DirectoryA(path, MAX_PATH); strcat(path, "\"); - check_prop(hpkg, "SystemFolder", path); + check_prop(hpkg, "SystemFolder", path, 0);
size = MAX_PATH; r = RegQueryValueExA(pathkey, "ProgramFilesDir (x86)", 0, &type, (BYTE *)path, &size); strcat(path, "\"); - check_prop(hpkg, "ProgramFilesFolder", path); + check_prop(hpkg, "ProgramFilesFolder", path, 0);
size = MAX_PATH; RegQueryValueExA(pathkey, "ProgramFilesDir", 0, &type, (BYTE *)path, &size); strcat(path, "\"); - check_prop(hpkg, "ProgramFiles64Folder", path); + check_prop(hpkg, "ProgramFiles64Folder", path, 0);
size = MAX_PATH; RegQueryValueExA(pathkey, "CommonFilesDir (x86)", 0, &type, (BYTE *)path, &size); strcat(path, "\"); - check_prop(hpkg, "CommonFilesFolder", path); + check_prop(hpkg, "CommonFilesFolder", path, 0);
size = MAX_PATH; RegQueryValueExA(pathkey, "CommonFilesDir", 0, &type, (BYTE *)path, &size); strcat(path, "\"); - check_prop(hpkg, "CommonFiles64Folder", path); + check_prop(hpkg, "CommonFiles64Folder", path, 0); } else if (S(U(si)).wProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL) { sprintf(buf, "%d", si.wProcessorLevel); - check_prop(hpkg, "Intel", buf); + check_prop(hpkg, "Intel", buf, 1);
GetSystemDirectoryA(path, MAX_PATH); strcat(path, "\"); - check_prop(hpkg, "SystemFolder", path); + check_prop(hpkg, "SystemFolder", path, 0);
size = MAX_PATH; RegQueryValueExA(pathkey, "ProgramFilesDir", 0, &type, (BYTE *)path, &size); strcat(path, "\"); - check_prop(hpkg, "ProgramFilesFolder", path); + check_prop(hpkg, "ProgramFilesFolder", path, 0);
size = MAX_PATH; RegQueryValueExA(pathkey, "CommonFilesDir", 0, &type, (BYTE *)path, &size); strcat(path, "\"); - check_prop(hpkg, "CommonFilesFolder", path); - - check_prop(hpkg, "MsiAMD64", ""); - check_prop(hpkg, "Msix64", ""); - check_prop(hpkg, "VersionNT64", ""); - check_prop(hpkg, "System64Folder", ""); - check_prop(hpkg, "ProgramFiles64Dir", ""); - check_prop(hpkg, "CommonFiles64Dir", ""); + check_prop(hpkg, "CommonFilesFolder", path, 0); + + check_prop(hpkg, "MsiAMD64", "", 1); + check_prop(hpkg, "Msix64", "", 1); + check_prop(hpkg, "VersionNT64", "", 1); + check_prop(hpkg, "System64Folder", "", 0); + check_prop(hpkg, "ProgramFiles64Dir", "", 0); + check_prop(hpkg, "CommonFiles64Dir", "", 0); }
CloseHandle(hkey1);
Hans Leidekker hans@codeweavers.com wrote:
- if (match_case)
ok(!strcmp(buffer, expect), "'%s': expected '%s', got '%s'\n", prop, expect, buffer);
- else
ok(!strcasecmp(buffer, expect), "'%s': expected '%s', got '%s'\n", prop, expect, buffer);
Please use lstrcmpiA() instead, otherwise the test won't compile with PSDK.
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=53872
Your paranoid android.
=== w8adm (32 bit report) ===
msi: package.c:8110: Test failed: Expected "{00DE4B9B-3052-426A-B5C7-09AE989F340A}", got "apple" package.c:8119: Test failed: Expected L"{00DE4B9B-3052-426A-B5C7-09AE989F340A}", got L"apple" package.c:8161: Test failed: Expected first 3 chars of "{00DE4B9B-3052-426A-B5C7-09AE989F340A}", got "apple" package.c:8170: Test failed: Expected first 3 chars of L"{00DE4B9B-3052-426A-B5C7-09AE989F340A}", got L"apple" package.c:8180: Test failed: Expected first 37 chars of "{00DE4B9B-3052-426A-B5C7-09AE989F340A}", got "apple" package.c:8189: Test failed: Expected first 37 chars of L"{00DE4B9B-3052-426A-B5C7-09AE989F340A}", got L"apple" package.c:8199: Test failed: Expected "{00DE4B9B-3052-426A-B5C7-09AE989F340A}", got "apple" package.c:8208: Test failed: Expected L"{00DE4B9B-3052-426A-B5C7-09AE989F340A}", got L"apple" package.c:8254: Test failed: Expected "{00DE4B9B-3052-426A-B5C7-09AE989F340A}", got "apple" package.c:8263: Test failed: Expected L"{00DE4B9B-3052-426A-B5C7-09AE989F340A}", got L"apple"
=== w1064v1507 (32 bit report) ===
msi: package.c:3385: Test failed: Expected ERROR_SUCCESS, got 1618 package.c:3405: Test failed: ProductToBeRegistered = package.c:3030: Test failed: 3425: expected state 4 got 2 package.c:3030: Test failed: 3426: expected state 4 got 2 package.c:3030: Test failed: 3427: expected state 3 got 2 package.c:3030: Test failed: 3428: expected state 3 got 2 package.c:3056: Test failed: 3439: expected state 3 got 2 package.c:3056: Test failed: 3440: expected state 4 got 2 package.c:3056: Test failed: 3441: expected state 3 got 2 package.c:3056: Test failed: 3442: expected state 3 got 2 package.c:3056: Test failed: 3443: expected state 3 got 2 package.c:3056: Test failed: 3444: expected state 4 got 2 package.c:3059: Test failed: 3444: expected action -1 got 4 package.c:3056: Test failed: 3445: expected state 4 got 2 package.c:3059: Test failed: 3445: expected action -1 got 4 package.c:3056: Test failed: 3446: expected state 3 got 2 package.c:3056: Test failed: 3447: expected state 3 got 2 package.c:3467: Test failed: Expected ERROR_SUCCESS, got 1618
=== w1064v1507 (64 bit report) ===
msi: package.c:3385: Test failed: Expected ERROR_SUCCESS, got 1618 package.c:3405: Test failed: ProductToBeRegistered = package.c:3030: Test failed: 3425: expected state 4 got 2 package.c:3030: Test failed: 3426: expected state 4 got 2 package.c:3030: Test failed: 3427: expected state 3 got 2 package.c:3030: Test failed: 3428: expected state 3 got 2 package.c:3056: Test failed: 3439: expected state 3 got 2 package.c:3056: Test failed: 3440: expected state 4 got 2 package.c:3056: Test failed: 3441: expected state 3 got 2 package.c:3056: Test failed: 3442: expected state 3 got 2 package.c:3056: Test failed: 3443: expected state 3 got 2 package.c:3056: Test failed: 3444: expected state 4 got 2 package.c:3059: Test failed: 3444: expected action -1 got 4 package.c:3056: Test failed: 3445: expected state 4 got 2 package.c:3059: Test failed: 3445: expected action -1 got 4 package.c:3056: Test failed: 3446: expected state 3 got 2 package.c:3056: Test failed: 3447: expected state 3 got 2 package.c:3467: Test failed: Expected ERROR_SUCCESS, got 1618 package.c:3476: Test failed: Expected ERROR_SUCCESS, got 1618 package.c:3481: Test failed: state = -1 package.c:3030: Test failed: 3504: expected state 4 got 2 package.c:3030: Test failed: 3505: expected state 4 got 2 package.c:3030: Test failed: 3506: expected state 3 got 2 package.c:3030: Test failed: 3507: expected state 3 got 2 package.c:3030: Test failed: 3509: expected state 4 got 2 package.c:3030: Test failed: 3510: expected state 4 got 2 package.c:3030: Test failed: 3511: expected state 4 got 2 package.c:3030: Test failed: 3512: expected state 4 got 2 package.c:3030: Test failed: 3513: expected state 4 got 2 package.c:3030: Test failed: 3514: expected state 4 got 2 package.c:3030: Test failed: 3515: expected state 3 got 2 package.c:3030: Test failed: 3516: expected state 3 got 2 package.c:3056: Test failed: 3518: expected state 3 got 2 package.c:3056: Test failed: 3519: expected state 4 got 2 package.c:3056: Test failed: 3520: expected state 3 got 2 package.c:3056: Test failed: 3521: expected state 3 got 2 package.c:3056: Test failed: 3522: expected state 3 got 2 package.c:3056: Test failed: 3523: expected state 4 got 2 package.c:3056: Test failed: 3524: expected state 3 got 2 package.c:3056: Test failed: 3525: expected state 3 got 2 package.c:3056: Test failed: 3526: expected state 3 got 2 package.c:3056: Test failed: 3528: expected state 3 got 2 package.c:3056: Test failed: 3529: expected state 4 got 2 package.c:3056: Test failed: 3530: expected state 3 got 2 package.c:3056: Test failed: 3531: expected state 3 got 2 package.c:3056: Test failed: 3532: expected state 3 got 2 package.c:3056: Test failed: 3533: expected state 4 got 2 package.c:3056: Test failed: 3534: expected state 3 got 2 package.c:3056: Test failed: 3535: expected state 3 got 2 package.c:3056: Test failed: 3536: expected state 4 got 2 package.c:3059: Test failed: 3536: expected action -1 got 4 package.c:3056: Test failed: 3537: expected state 4 got 2 package.c:3059: Test failed: 3537: expected action -1 got 4 package.c:3056: Test failed: 3538: expected state 4 got 2 package.c:3059: Test failed: 3538: expected action -1 got 4 package.c:3056: Test failed: 3539: expected state 4 got 2 package.c:3056: Test failed: 3540: expected state 3 got 2 package.c:3546: Test failed: Expected ERROR_SUCCESS, got 1605