[APPHELP_APITEST] env.c: Fix a 3rd Windows S2003 special case

Test_Shimdata() already has a TODO with 2 special cases.

- Special-case "dwLayerCount" too.
- Add extra-safety checks.
This commit is contained in:
Serge Gautherie 2018-03-05 00:23:45 +01:00 committed by Mark Jansen
parent 3159de5573
commit 601871955f
No known key found for this signature in database
GPG key ID: B39240EE84BEAE8B

View file

@ -685,10 +685,34 @@ static void Test_Shimdata(SDBQUERYRESULT_VISTA* result, const WCHAR* szLayer)
investigate when we have support for multible db's! */ investigate when we have support for multible db's! */
if (dwSize == sizeof(ShimData_Win2k3)) if (dwSize == sizeof(ShimData_Win2k3))
{ {
/* Fake it for now, so the memcmp works. */
SDBQUERYRESULT_2k3* input = (SDBQUERYRESULT_2k3*)result; SDBQUERYRESULT_2k3* input = (SDBQUERYRESULT_2k3*)result;
SDBQUERYRESULT_2k3* output = (SDBQUERYRESULT_2k3*)&result2; SDBQUERYRESULT_2k3* output = (SDBQUERYRESULT_2k3*)&result2;
ok(output->dwCustomSDBMap == 0, "Expected output->dwCustomSDBMap to be 0, was %u for %s\n", output->dwCustomSDBMap, wine_dbgstr_w(szLayer)); const GUID rgGuidDB0 = {0x11111111, 0x1111, 0x1111, {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}};
// Check expected data.
ok(input->dwLayerCount == 1,
"Expected input->dwLayerCount to be 1, was %u for %s\n",
input->dwLayerCount, wine_dbgstr_w(szLayer));
ok(input->dwCustomSDBMap == 1,
"Expected input->dwCustomSDBMap to be 1, was %u for %s\n",
input->dwCustomSDBMap, wine_dbgstr_w(szLayer));
ok(IsEqualGUID(&input->rgGuidDB[0], &rgGuidDB0),
"Expected input->rgGuidDB[0] to be %s, was %s for %s\n",
wine_dbgstr_guid(&rgGuidDB0), wine_dbgstr_guid(&input->rgGuidDB[0]), wine_dbgstr_w(szLayer));
// Check missing data.
ok(output->dwLayerCount == 0,
"Expected output->dwLayerCount to be 0, was %u for %s\n",
output->dwLayerCount, wine_dbgstr_w(szLayer));
ok(output->dwCustomSDBMap == 0,
"Expected output->dwCustomSDBMap to be 0, was %u for %s\n",
output->dwCustomSDBMap, wine_dbgstr_w(szLayer));
ok(IsEqualGUID(&output->rgGuidDB[0], &empty_result.rgGuidDB[0]),
"Expected output->rgGuidDB[0] to be empty, was %s for %s\n",
wine_dbgstr_guid(&output->rgGuidDB[0]), wine_dbgstr_w(szLayer));
// Fake it for now, so the memcmp works.
output->dwLayerCount = input->dwLayerCount;
output->dwCustomSDBMap = input->dwCustomSDBMap; output->dwCustomSDBMap = input->dwCustomSDBMap;
output->rgGuidDB[0] = input->rgGuidDB[0]; output->rgGuidDB[0] = input->rgGuidDB[0];
} }