Nikolay Sivov : msxml3: Fix some test failures on Windows 8.

Alexandre Julliard julliard at winehq.org
Tue Mar 12 14:21:48 CDT 2013


Module: wine
Branch: master
Commit: 40d30cf39955c501201239c4774398a2215b99b0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=40d30cf39955c501201239c4774398a2215b99b0

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue Mar 12 12:58:31 2013 +0400

msxml3: Fix some test failures on Windows 8.

---

 dlls/msxml3/httprequest.c   |   16 ++++++++--------
 dlls/msxml3/tests/httpreq.c |   16 ++++++++--------
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/dlls/msxml3/httprequest.c b/dlls/msxml3/httprequest.c
index f9db1cd..c67177b 100644
--- a/dlls/msxml3/httprequest.c
+++ b/dlls/msxml3/httprequest.c
@@ -948,7 +948,8 @@ static HRESULT httprequest_getResponseHeader(httprequest *This, BSTR header, BST
 {
     struct httpheader *entry;
 
-    if (!header || !value) return E_INVALIDARG;
+    if (!header) return E_INVALIDARG;
+    if (!value) return E_POINTER;
 
     if (This->raw_respheaders && list_empty(&This->respheaders))
     {
@@ -982,7 +983,7 @@ static HRESULT httprequest_getResponseHeader(httprequest *This, BSTR header, BST
 
 static HRESULT httprequest_getAllResponseHeaders(httprequest *This, BSTR *respheaders)
 {
-    if (!respheaders) return E_INVALIDARG;
+    if (!respheaders) return E_POINTER;
 
     *respheaders = SysAllocString(This->raw_respheaders);
 
@@ -1015,17 +1016,16 @@ static HRESULT httprequest_abort(httprequest *This)
 
 static HRESULT httprequest_get_status(httprequest *This, LONG *status)
 {
-    if (!status) return E_INVALIDARG;
-    if (This->state != READYSTATE_COMPLETE) return E_FAIL;
+    if (!status) return E_POINTER;
 
     *status = This->status;
 
-    return S_OK;
+    return This->state == READYSTATE_COMPLETE ? S_OK : E_FAIL;
 }
 
 static HRESULT httprequest_get_statusText(httprequest *This, BSTR *status)
 {
-    if (!status) return E_INVALIDARG;
+    if (!status) return E_POINTER;
     if (This->state != READYSTATE_COMPLETE) return E_FAIL;
 
     *status = SysAllocString(This->status_text);
@@ -1038,7 +1038,7 @@ static HRESULT httprequest_get_responseText(httprequest *This, BSTR *body)
     HGLOBAL hglobal;
     HRESULT hr;
 
-    if (!body) return E_INVALIDARG;
+    if (!body) return E_POINTER;
     if (This->state != READYSTATE_COMPLETE) return E_FAIL;
 
     hr = GetHGlobalFromStream(This->bsc->stream, &hglobal);
@@ -1184,7 +1184,7 @@ static HRESULT httprequest_get_responseStream(httprequest *This, VARIANT *body)
 
 static HRESULT httprequest_get_readyState(httprequest *This, LONG *state)
 {
-    if (!state) return E_INVALIDARG;
+    if (!state) return E_POINTER;
 
     *state = This->state;
     return S_OK;
diff --git a/dlls/msxml3/tests/httpreq.c b/dlls/msxml3/tests/httpreq.c
index 6744657..5c62772 100644
--- a/dlls/msxml3/tests/httpreq.c
+++ b/dlls/msxml3/tests/httpreq.c
@@ -1469,12 +1469,12 @@ static void test_XMLHTTP(void)
 
     /* initial status code */
     hr = IXMLHttpRequest_get_status(xhr, NULL);
-    EXPECT_HR(hr, E_INVALIDARG);
+    ok(hr == E_POINTER || broken(hr == E_INVALIDARG) /* <win8 */, "got 0x%08x\n", hr);
 
     status = 0xdeadbeef;
     hr = IXMLHttpRequest_get_status(xhr, &status);
     ok(hr == E_FAIL || broken(hr == E_UNEXPECTED) /* win2k */, "got 0x%08x\n", hr);
-    ok(status == 0xdeadbeef, "got %d\n", status);
+    ok(status == READYSTATE_UNINITIALIZED || broken(status == 0xdeadbeef) /* <win8 */, "got %d\n", status);
 
     hr = IXMLHttpRequest_get_statusText(xhr, &str);
     ok(hr == E_FAIL, "got 0x%08x\n", hr);
@@ -1497,7 +1497,7 @@ static void test_XMLHTTP(void)
     ok(hr == E_FAIL || broken(hr == E_UNEXPECTED) /* win2k */, "got 0x%08x\n", hr);
 
     hr = IXMLHttpRequest_get_readyState(xhr, NULL);
-    EXPECT_HR(hr, E_INVALIDARG);
+    ok(hr == E_POINTER || broken(hr == E_INVALIDARG) /* <win8 */, "got 0x%08x\n", hr);
 
     state = -1;
     hr = IXMLHttpRequest_get_readyState(xhr, &state);
@@ -1523,7 +1523,7 @@ static void test_XMLHTTP(void)
     status = 0xdeadbeef;
     hr = IXMLHttpRequest_get_status(xhr, &status);
     ok(hr == E_FAIL || broken(hr == E_UNEXPECTED) /* win2k */, "got 0x%08x\n", hr);
-    ok(status == 0xdeadbeef, "got %d\n", status);
+    ok(status == READYSTATE_UNINITIALIZED || broken(status == 0xdeadbeef) /* <win8 */, "got %d\n", status);
 
     state = -1;
     hr = IXMLHttpRequest_get_readyState(xhr, &state);
@@ -1564,7 +1564,7 @@ static void test_XMLHTTP(void)
 
     /* response headers */
     hr = IXMLHttpRequest_getAllResponseHeaders(xhr, NULL);
-    EXPECT_HR(hr, E_INVALIDARG);
+    ok(hr == E_POINTER || broken(hr == E_INVALIDARG) /* <win8 */, "got 0x%08x\n", hr);
     hr = IXMLHttpRequest_getAllResponseHeaders(xhr, &str);
     EXPECT_HR(hr, S_OK);
     /* status line is stripped already */
@@ -1579,7 +1579,7 @@ static void test_XMLHTTP(void)
     hr = IXMLHttpRequest_getResponseHeader(xhr, NULL, NULL);
     EXPECT_HR(hr, E_INVALIDARG);
     hr = IXMLHttpRequest_getResponseHeader(xhr, _bstr_("Date"), NULL);
-    EXPECT_HR(hr, E_INVALIDARG);
+    ok(hr == E_POINTER || broken(hr == E_INVALIDARG) /* <win8 */, "got 0x%08x\n", hr);
     hr = IXMLHttpRequest_getResponseHeader(xhr, _bstr_("Date"), &str);
     EXPECT_HR(hr, S_OK);
     ok(*str != ' ', "got leading space in header %s\n", wine_dbgstr_w(str));
@@ -1592,7 +1592,7 @@ static void test_XMLHTTP(void)
     ok(status == 200, "got %d\n", status);
 
     hr = IXMLHttpRequest_get_statusText(xhr, NULL);
-    EXPECT_HR(hr, E_INVALIDARG);
+    ok(hr == E_POINTER || broken(hr == E_INVALIDARG) /* <win8 */, "got 0x%08x\n", hr);
 
     hr = IXMLHttpRequest_get_statusText(xhr, &str);
     EXPECT_HR(hr, S_OK);
@@ -1640,7 +1640,7 @@ static void test_XMLHTTP(void)
     EXPECT_HR(hr, S_OK);
 
     hr = IXMLHttpRequest_get_responseText(xhr, NULL);
-    EXPECT_HR(hr, E_INVALIDARG);
+    ok(hr == E_POINTER || broken(hr == E_INVALIDARG) /* <win8 */, "got 0x%08x\n", hr);
 
     hr = IXMLHttpRequest_get_responseText(xhr, &bstrResponse);
     EXPECT_HR(hr, S_OK);




More information about the wine-cvs mailing list