Module: wine Branch: master Commit: 2b6abd5f850720d4141ef83756054029bb013daf URL: http://source.winehq.org/git/wine.git/?a=commit;h=2b6abd5f850720d4141ef83756...
Author: Francois Gouget fgouget@free.fr Date: Fri Nov 9 12:42:32 2007 +0100
user32/tests: Skip some tests when DdeClientTransaction() returns NULL. This avoids some crashes on Win9x.
---
dlls/user32/tests/dde.c | 69 +++++++++++++++++++++++++++------------------- 1 files changed, 40 insertions(+), 29 deletions(-)
diff --git a/dlls/user32/tests/dde.c b/dlls/user32/tests/dde.c index ca9fe20..5c01181 100644 --- a/dlls/user32/tests/dde.c +++ b/dlls/user32/tests/dde.c @@ -285,57 +285,66 @@ static void test_ddeml_client(void) DdeGetLastError(client_pid); hdata = DdeClientTransaction(NULL, 0, conversation, item, CF_TEXT, XTYP_REQUEST, default_timeout, &res); ret = DdeGetLastError(client_pid); - ok(hdata != NULL, "Expected non-NULL hdata, got %p\n", hdata); ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret); todo_wine { ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %08x\n", res); } + if (hdata == NULL) + ok(FALSE, "hdata is NULL\n"); + else + { + str = (LPSTR)DdeAccessData(hdata, &size); + ok(!lstrcmpA(str, "requested data\r\n"), "Expected 'requested data\r\n', got %s\n", str); + ok(size == 19, "Expected 19, got %d\n", size);
- str = (LPSTR)DdeAccessData(hdata, &size); - ok(!lstrcmpA(str, "requested data\r\n"), "Expected 'requested data\r\n', got %s\n", str); - ok(size == 19, "Expected 19, got %d\n", size); - - ret = DdeUnaccessData(hdata); - ok(ret == TRUE, "Expected TRUE, got %d\n", ret); + ret = DdeUnaccessData(hdata); + ok(ret == TRUE, "Expected TRUE, got %d\n", ret); + }
/* XTYP_REQUEST, fAckReq = TRUE */ res = 0xdeadbeef; DdeGetLastError(client_pid); hdata = DdeClientTransaction(NULL, 0, conversation, item, CF_TEXT, XTYP_REQUEST, default_timeout, &res); ret = DdeGetLastError(client_pid); - ok(hdata != NULL, "Expected non-NULL hdata\n"); todo_wine { ok(res == DDE_FNOTPROCESSED, "Expected DDE_FNOTPROCESSED, got %d\n", res); ok(ret == DMLERR_MEMORY_ERROR, "Expected DMLERR_MEMORY_ERROR, got %d\n", ret); } + if (hdata == NULL) + ok(FALSE, "hdata is NULL\n"); + else + { + str = (LPSTR)DdeAccessData(hdata, &size); + ok(!lstrcmpA(str, "requested data\r\n"), "Expected 'requested data\r\n', got %s\n", str); + ok(size == 19, "Expected 19, got %d\n", size);
- str = (LPSTR)DdeAccessData(hdata, &size); - ok(!lstrcmpA(str, "requested data\r\n"), "Expected 'requested data\r\n', got %s\n", str); - ok(size == 19, "Expected 19, got %d\n", size); - - ret = DdeUnaccessData(hdata); - ok(ret == TRUE, "Expected TRUE, got %d\n", ret); + ret = DdeUnaccessData(hdata); + ok(ret == TRUE, "Expected TRUE, got %d\n", ret); + }
/* XTYP_REQUEST, all params normal */ res = 0xdeadbeef; DdeGetLastError(client_pid); hdata = DdeClientTransaction(NULL, 0, conversation, item, CF_TEXT, XTYP_REQUEST, default_timeout, &res); ret = DdeGetLastError(client_pid); - ok(hdata != NULL, "Expected non-NULL hdata\n"); ok(ret == DMLERR_NO_ERROR, "Expected DMLERR_NO_ERROR, got %d\n", ret); todo_wine { ok(res == DDE_FNOTPROCESSED, "Expected DDE_FNOTPROCESSED, got %d\n", res); } + if (hdata == NULL) + ok(FALSE, "hdata is NULL\n"); + else + { + str = (LPSTR)DdeAccessData(hdata, &size); + ok(!lstrcmpA(str, "requested data\r\n"), "Expected 'requested data\r\n', got %s\n", str); + ok(size == 19, "Expected 19, got %d\n", size);
- str = (LPSTR)DdeAccessData(hdata, &size); - ok(!lstrcmpA(str, "requested data\r\n"), "Expected 'requested data\r\n', got %s\n", str); - ok(size == 19, "Expected 19, got %d\n", size); - - ret = DdeUnaccessData(hdata); - ok(ret == TRUE, "Expected TRUE, got %d\n", ret); + ret = DdeUnaccessData(hdata); + ok(ret == TRUE, "Expected TRUE, got %d\n", ret); + }
/* XTYP_REQUEST, no item */ res = 0xdeadbeef; @@ -444,22 +453,24 @@ static void test_ddeml_client(void) DdeGetLastError(client_pid); hdata = DdeClientTransaction(NULL, 0, conversation, item, CF_TEXT, XTYP_REQUEST, default_timeout, &res); ret = DdeGetLastError(client_pid); - ok(hdata != NULL, "Expected non-NULL hdata\n"); ok(ret == DMLERR_NO_ERROR, "Expected DMLERR_NO_ERROR, got %d\n", ret); todo_wine { ok(res == DDE_FNOTPROCESSED, "Expected DDE_FNOTPROCESSED, got %d\n", res); } + if (hdata == NULL) + ok(FALSE, "hdata is NULL\n"); + else + { + str = (LPSTR)DdeAccessData(hdata, &size); + ok(!lstrcmpA(str, "command executed\r\n"), "Expected 'command executed\r\n', got %s\n", str); + ok(size == 21, "Expected 21, got %d\n", size);
- str = (LPSTR)DdeAccessData(hdata, &size); - ok(!lstrcmpA(str, "command executed\r\n"), "Expected 'command executed\r\n', got %s\n", str); - ok(size == 21, "Expected 21, got %d\n", size); - - ret = DdeUnaccessData(hdata); - ok(ret == TRUE, "Expected TRUE, got %d\n", ret); + ret = DdeUnaccessData(hdata); + ok(ret == TRUE, "Expected TRUE, got %d\n", ret); + }
/* invalid transactions */ - res = 0xdeadbeef; DdeGetLastError(client_pid); op = DdeClientTransaction(NULL, 0, conversation, item, CF_TEXT, XTYP_ADVREQ, default_timeout, &res);