Francois Gouget : shell32/tests: Add server-side DDE checks.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Jan 29 09:10:08 CST 2016
Module: wine
Branch: master
Commit: 805b5e36a99ee1c54c9e4a7e92429974b347a4b6
URL: http://source.winehq.org/git/wine.git/?a=commit;h=805b5e36a99ee1c54c9e4a7e92429974b347a4b6
Author: Francois Gouget <fgouget at codeweavers.com>
Date: Fri Jan 29 00:19:53 2016 +0100
shell32/tests: Add server-side DDE checks.
Should something go wrong a failed ok() call will leave a clearer trace
in the log than an assert.
Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/shell32/tests/shlexec.c | 37 +++++++++++++++++++++++--------------
1 file changed, 23 insertions(+), 14 deletions(-)
diff --git a/dlls/shell32/tests/shlexec.c b/dlls/shell32/tests/shlexec.c
index 22fa6e8..fc27ed6 100644
--- a/dlls/shell32/tests/shlexec.c
+++ b/dlls/shell32/tests/shlexec.c
@@ -212,12 +212,7 @@ static void doChild(int argc, char** argv)
char *filename, buffer[MAX_PATH];
HANDLE hFile, map;
int i;
- int rc;
- HSZ hszApplication;
UINT_PTR timer;
- HANDLE dde_ready;
- MSG msg;
- char *shared_block;
filename=argv[2];
hFile=CreateFileA(filename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0);
@@ -252,19 +247,28 @@ static void doChild(int argc, char** argv)
map = OpenFileMappingA(FILE_MAP_READ, FALSE, "winetest_shlexec_dde_map");
if (map != NULL)
{
- shared_block = MapViewOfFile(map, FILE_MAP_READ, 0, 0, 4096);
+ HANDLE dde_ready;
+ char *shared_block = MapViewOfFile(map, FILE_MAP_READ, 0, 0, 4096);
CloseHandle(map);
if (shared_block[0] != '\0' || shared_block[1] != '\0')
{
+ HDDEDATA hdde;
+ HSZ hszApplication;
+ MSG msg;
+ UINT rc;
+
post_quit_on_execute = TRUE;
ddeInst = 0;
rc = DdeInitializeA(&ddeInst, ddeCb, CBF_SKIP_ALLNOTIFICATIONS | CBF_FAIL_ADVISES |
CBF_FAIL_POKES | CBF_FAIL_REQUESTS, 0);
- ok(rc == DMLERR_NO_ERROR, "got %d\n", rc);
+ ok(rc == DMLERR_NO_ERROR, "DdeInitializeA() returned %d\n", rc);
hszApplication = DdeCreateStringHandleA(ddeInst, shared_block, CP_WINANSI);
- hszTopic = DdeCreateStringHandleA(ddeInst, shared_block + strlen(shared_block) + 1, CP_WINANSI);
- assert(hszApplication && hszTopic);
- assert(DdeNameService(ddeInst, hszApplication, 0, DNS_REGISTER | DNS_FILTEROFF));
+ ok(hszApplication != NULL, "DdeCreateStringHandleA(%s) = NULL\n", shared_block);
+ shared_block += strlen(shared_block) + 1;
+ hszTopic = DdeCreateStringHandleA(ddeInst, shared_block, CP_WINANSI);
+ ok(hszTopic != NULL, "DdeCreateStringHandleA(%s) = NULL\n", shared_block);
+ hdde = DdeNameService(ddeInst, hszApplication, 0, DNS_REGISTER | DNS_FILTEROFF);
+ ok(hdde != NULL, "DdeNameService() failed le=%u\n", GetLastError());
timer = SetTimer(NULL, 0, 2500, childTimeout);
@@ -273,14 +277,19 @@ static void doChild(int argc, char** argv)
CloseHandle(dde_ready);
while (GetMessageA(&msg, NULL, 0, 0))
+ {
+ if (winetest_debug > 2)
+ trace("msg %d lParam=%ld wParam=%lu\n", msg.message, msg.lParam, msg.wParam);
DispatchMessageA(&msg);
+ }
Sleep(500);
KillTimer(NULL, timer);
- assert(DdeNameService(ddeInst, hszApplication, 0, DNS_UNREGISTER));
- assert(DdeFreeStringHandle(ddeInst, hszTopic));
- assert(DdeFreeStringHandle(ddeInst, hszApplication));
- assert(DdeUninitialize(ddeInst));
+ hdde = DdeNameService(ddeInst, hszApplication, 0, DNS_UNREGISTER);
+ ok(hdde != NULL, "DdeNameService() failed le=%u\n", GetLastError());
+ ok(DdeFreeStringHandle(ddeInst, hszTopic), "DdeFreeStringHandle(topic)\n");
+ ok(DdeFreeStringHandle(ddeInst, hszApplication), "DdeFreeStringHandle(application)\n");
+ ok(DdeUninitialize(ddeInst), "DdeUninitialize() failed\n");
}
else
{
More information about the wine-cvs
mailing list