Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/msi/tests/custom.c | 52 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-)
diff --git a/dlls/msi/tests/custom.c b/dlls/msi/tests/custom.c index 6332d68768..1cf24536d0 100644 --- a/dlls/msi/tests/custom.c +++ b/dlls/msi/tests/custom.c @@ -30,6 +30,7 @@ #include <msxml.h> #include <msi.h> #include <msiquery.h> +#include <msidefs.h>
static int todo_level, todo_do_loop;
@@ -279,7 +280,9 @@ static void test_db(MSIHANDLE hinst) MSIHANDLE hdb, view, rec, rec2, suminfo; char buffer[10]; DWORD sz; - UINT r; + UINT r, count, type; + INT int_value; + FILETIME ft;
hdb = MsiGetActiveDatabase(hinst); ok(hinst, hdb, "MsiGetActiveDatabase failed\n"); @@ -452,6 +455,53 @@ static void test_db(MSIHANDLE hinst) r = MsiGetSummaryInformationA(hdb, NULL, 1, &suminfo); ok(hinst, !r, "got %u\n", r);
+ r = MsiSummaryInfoGetPropertyCount(suminfo, NULL); +todo_wine + ok(hinst, r == RPC_X_NULL_REF_POINTER, "got %u\n", r); + + count = 0xdeadbeef; + r = MsiSummaryInfoGetPropertyCount(suminfo, &count); +todo_wine + ok(hinst, !r, "got %u\n", r); +todo_wine + ok(hinst, count == 5, "got %u\n", count); + + r = MsiSummaryInfoGetPropertyA(suminfo, 0, NULL, NULL, NULL, NULL, NULL); +todo_wine + ok(hinst, r == RPC_X_NULL_REF_POINTER, "got %u\n", r); + + type = 0xdeadbeef; + int_value = 0xdeadbeef; + strcpy(buffer, "deadbeef"); + sz = sizeof(buffer); + r = MsiSummaryInfoGetPropertyA(suminfo, PID_AUTHOR, &type, &int_value, &ft, buffer, &sz); +todo_wine + ok(hinst, !r, "got %u\n", r); +todo_wine + ok(hinst, type == 0, "got %u\n", type); +todo_wine + ok(hinst, int_value == 0, "got %u\n", int_value); + ok(hinst, sz == sizeof(buffer), "got %u\n", sz); + ok(hinst, !lstrcmpA(buffer, "deadbeef"), "got %s\n", buffer); + + type = 0xdeadbeef; + int_value = 0xdeadbeef; + strcpy(buffer, "deadbeef"); + sz = sizeof(buffer); + r = MsiSummaryInfoGetPropertyA(suminfo, PID_CODEPAGE, &type, &int_value, &ft, buffer, &sz); +todo_wine + ok(hinst, !r, "got %u\n", r); +todo_wine + ok(hinst, type == 0, "got %u\n", type); +todo_wine + ok(hinst, int_value == 0, "got %u\n", int_value); + ok(hinst, sz == sizeof(buffer), "got %u\n", sz); + ok(hinst, !lstrcmpA(buffer, "deadbeef"), "got %s\n", buffer); + + r = MsiSummaryInfoSetPropertyA(suminfo, PID_CODEPAGE, VT_I2, 1252, &ft, ""); +todo_wine + ok(hinst, r == ERROR_FUNCTION_FAILED, "got %u\n", r); + r = MsiCloseHandle(suminfo); ok(hinst, !r, "got %u\n", r);
Hi,
While running your changed tests on Windows, 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=41341
Your paranoid android.
=== w7u (32 bit action) === The test timed out
=== w7u (32 bit install) === The test timed out
=== w7u (32 bit msi) === The test timed out
Hello,
Is there any responsibility of a reviewer or a reasonable time frame for a review, especially such a trivial patch set?
On Thu, 2018-09-06 at 23:13 +0800, Dmitry Timoshkov wrote:
Is there any responsibility of a reviewer or a reasonable time frame for a review, especially such a trivial patch set?
You got a comment from Nikolay. I think he has a point, but I'm not clear on what it takes to handle SEH properly for these RPC calls.
If it's not too much effort I would prefer doing that instead of spreading the current hack.
On 06/09/18 10:34, Hans Leidekker wrote:
On Thu, 2018-09-06 at 23:13 +0800, Dmitry Timoshkov wrote:
Is there any responsibility of a reviewer or a reasonable time frame for a review, especially such a trivial patch set?
You got a comment from Nikolay. I think he has a point, but I'm not clear on what it takes to handle SEH properly for these RPC calls.
If it's not too much effort I would prefer doing that instead of spreading the current hack.
I believe it's just a matter of wrapping each function call in a try/catch block.
Since this is effectively my fault, I'd be willing to handle this.
Hans Leidekker hans@codeweavers.com wrote:
On Thu, 2018-09-06 at 23:13 +0800, Dmitry Timoshkov wrote:
Is there any responsibility of a reviewer or a reasonable time frame for a review, especially such a trivial patch set?
You got a comment from Nikolay. I think he has a point, but I'm not clear on what it takes to handle SEH properly for these RPC calls.
Nikolay's comment is completely misleading and misguided.
If it's not too much effort I would prefer doing that instead of spreading the current hack.
I just followed current pattern of handling NULL pointers. If there's a consensus that it needs a different approach then all the APIs should be reworked at once.