shlwapi/tests: Fix win8 test failures.
This commit is contained in:
parent
70225a4de3
commit
ddf861da00
|
@ -289,14 +289,15 @@ static void test_GetAcceptLanguagesA(void)
|
||||||
When the buffer is large enough, the default language is returned
|
When the buffer is large enough, the default language is returned
|
||||||
|
|
||||||
When the buffer is too small for that fallback, win7_32 and w2k8_64
|
When the buffer is too small for that fallback, win7_32 and w2k8_64
|
||||||
and above fail with HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), but
|
fail with HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), win8 fails
|
||||||
recent os succeed and return a partial result while
|
with HRESULT_FROM_WIN32(ERROR_MORE_DATA), other versions succeed and
|
||||||
older os succeed and overflow the buffer */
|
return a partial result while older os succeed and overflow the buffer */
|
||||||
|
|
||||||
ok(((hr == E_INVALIDARG) && (len == 0)) ||
|
ok(((hr == E_INVALIDARG) && (len == 0)) ||
|
||||||
(((hr == S_OK) && !lstrcmpA(buffer, language) && (len == lstrlenA(language))) ||
|
(((hr == S_OK) && !lstrcmpA(buffer, language) && (len == lstrlenA(language))) ||
|
||||||
((hr == S_OK) && !memcmp(buffer, language, len)) ||
|
((hr == S_OK) && !memcmp(buffer, language, len)) ||
|
||||||
((hr == __HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)) && !len)),
|
((hr == __HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)) && !len) ||
|
||||||
|
((hr == __HRESULT_FROM_WIN32(ERROR_MORE_DATA)) && len == exactsize)),
|
||||||
"==_#%d: got 0x%x with %d and %s\n", i, hr, len, buffer);
|
"==_#%d: got 0x%x with %d and %s\n", i, hr, len, buffer);
|
||||||
|
|
||||||
if (exactsize > 1) {
|
if (exactsize > 1) {
|
||||||
|
@ -307,7 +308,8 @@ static void test_GetAcceptLanguagesA(void)
|
||||||
ok(((hr == E_INVALIDARG) && (len == 0)) ||
|
ok(((hr == E_INVALIDARG) && (len == 0)) ||
|
||||||
(((hr == S_OK) && !lstrcmpA(buffer, language) && (len == lstrlenA(language))) ||
|
(((hr == S_OK) && !lstrcmpA(buffer, language) && (len == lstrlenA(language))) ||
|
||||||
((hr == S_OK) && !memcmp(buffer, language, len)) ||
|
((hr == S_OK) && !memcmp(buffer, language, len)) ||
|
||||||
((hr == __HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)) && !len)),
|
((hr == __HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)) && !len) ||
|
||||||
|
((hr == __HRESULT_FROM_WIN32(ERROR_MORE_DATA)) && len == exactsize - 1)),
|
||||||
"-1_#%d: got 0x%x with %d and %s\n", i, hr, len, buffer);
|
"-1_#%d: got 0x%x with %d and %s\n", i, hr, len, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -318,15 +320,16 @@ static void test_GetAcceptLanguagesA(void)
|
||||||
ok(((hr == E_INVALIDARG) && (len == 0)) ||
|
ok(((hr == E_INVALIDARG) && (len == 0)) ||
|
||||||
(((hr == S_OK) && !lstrcmpA(buffer, language) && (len == lstrlenA(language))) ||
|
(((hr == S_OK) && !lstrcmpA(buffer, language) && (len == lstrlenA(language))) ||
|
||||||
((hr == S_OK) && !memcmp(buffer, language, len)) ||
|
((hr == S_OK) && !memcmp(buffer, language, len)) ||
|
||||||
((hr == __HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)) && !len)),
|
((hr == __HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)) && !len) ||
|
||||||
|
((hr == __HRESULT_FROM_WIN32(ERROR_MORE_DATA)) && len == 1)),
|
||||||
"=1_#%d: got 0x%x with %d and %s\n", i, hr, len, buffer);
|
"=1_#%d: got 0x%x with %d and %s\n", i, hr, len, buffer);
|
||||||
|
|
||||||
len = maxlen;
|
len = maxlen;
|
||||||
hr = pGetAcceptLanguagesA( NULL, &len);
|
hr = pGetAcceptLanguagesA( NULL, &len);
|
||||||
|
|
||||||
/* w2k3 and below: E_FAIL and untouched len,
|
/* w2k3 and below: E_FAIL and untouched len,
|
||||||
since w2k8: S_OK and needed size (excluding 0) */
|
since w2k8: S_OK and needed size (excluding 0), win8 S_OK and size including 0. */
|
||||||
ok( ((hr == S_OK) && (len == exactsize)) ||
|
ok( ((hr == S_OK) && ((len == exactsize) || (len == exactsize + 1))) ||
|
||||||
((hr == E_FAIL) && (len == maxlen)),
|
((hr == E_FAIL) && (len == maxlen)),
|
||||||
"NULL,max #%d: got 0x%x with %d and %s\n", i, hr, len, buffer);
|
"NULL,max #%d: got 0x%x with %d and %s\n", i, hr, len, buffer);
|
||||||
|
|
||||||
|
@ -349,7 +352,8 @@ static void test_GetAcceptLanguagesA(void)
|
||||||
buffer[maxlen] = 0;
|
buffer[maxlen] = 0;
|
||||||
hr = pGetAcceptLanguagesA( buffer, &len);
|
hr = pGetAcceptLanguagesA( buffer, &len);
|
||||||
ok( (((hr == S_OK) || (hr == E_INVALIDARG)) && !memcmp(buffer, language, len)) ||
|
ok( (((hr == S_OK) || (hr == E_INVALIDARG)) && !memcmp(buffer, language, len)) ||
|
||||||
((hr == __HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)) && !len),
|
((hr == __HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)) && !len) ||
|
||||||
|
((hr == __HRESULT_FROM_WIN32(ERROR_CANNOT_COPY)) && !len),
|
||||||
"=2: got 0x%x with %d and %s\n", hr, len, buffer);
|
"=2: got 0x%x with %d and %s\n", hr, len, buffer);
|
||||||
|
|
||||||
len = 1;
|
len = 1;
|
||||||
|
@ -357,20 +361,21 @@ static void test_GetAcceptLanguagesA(void)
|
||||||
buffer[maxlen] = 0;
|
buffer[maxlen] = 0;
|
||||||
hr = pGetAcceptLanguagesA( buffer, &len);
|
hr = pGetAcceptLanguagesA( buffer, &len);
|
||||||
/* When the buffer is too small, win7_32 and w2k8_64 and above fail with
|
/* When the buffer is too small, win7_32 and w2k8_64 and above fail with
|
||||||
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), other versions succeed
|
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), win8 ERROR_CANNOT_COPY,
|
||||||
and return a partial 0 terminated result while other versions
|
other versions succeed and return a partial 0 terminated result while other versions
|
||||||
fail with E_INVALIDARG and return a partial unterminated result */
|
fail with E_INVALIDARG and return a partial unterminated result */
|
||||||
ok( (((hr == S_OK) || (hr == E_INVALIDARG)) && !memcmp(buffer, language, len)) ||
|
ok( (((hr == S_OK) || (hr == E_INVALIDARG)) && !memcmp(buffer, language, len)) ||
|
||||||
((hr == __HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)) && !len),
|
((hr == __HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)) && !len) ||
|
||||||
|
((hr == __HRESULT_FROM_WIN32(ERROR_CANNOT_COPY)) && !len),
|
||||||
"=1: got 0x%x with %d and %s\n", hr, len, buffer);
|
"=1: got 0x%x with %d and %s\n", hr, len, buffer);
|
||||||
|
|
||||||
len = 0;
|
len = 0;
|
||||||
memset(buffer, '#', maxlen);
|
memset(buffer, '#', maxlen);
|
||||||
buffer[maxlen] = 0;
|
buffer[maxlen] = 0;
|
||||||
hr = pGetAcceptLanguagesA( buffer, &len);
|
hr = pGetAcceptLanguagesA( buffer, &len);
|
||||||
/* w2k3 and below: E_FAIL, since w2k8: E_INVALIDARG */
|
/* w2k3 and below: E_FAIL, since w2k8: E_INVALIDARG, win8 ERROR_CANNOT_COPY */
|
||||||
ok((hr == E_FAIL) || (hr == E_INVALIDARG),
|
ok((hr == E_FAIL) || (hr == E_INVALIDARG) || (hr == __HRESULT_FROM_WIN32(ERROR_CANNOT_COPY)),
|
||||||
"got 0x%x (expected E_FAIL or E_INVALIDARG)\n", hr);
|
"got 0x%x\n", hr);
|
||||||
|
|
||||||
memset(buffer, '#', maxlen);
|
memset(buffer, '#', maxlen);
|
||||||
buffer[maxlen] = 0;
|
buffer[maxlen] = 0;
|
||||||
|
@ -2290,7 +2295,9 @@ static void test_IUnknown_QueryServiceExec(void)
|
||||||
|
|
||||||
/* null source pointer */
|
/* null source pointer */
|
||||||
hr = pIUnknown_QueryServiceExec(NULL, &dummy_serviceid, &dummy_groupid, 0, 0, 0, 0);
|
hr = pIUnknown_QueryServiceExec(NULL, &dummy_serviceid, &dummy_groupid, 0, 0, 0, 0);
|
||||||
ok(hr == E_FAIL, "got 0x%08x\n", hr);
|
ok(hr == E_FAIL ||
|
||||||
|
hr == E_NOTIMPL, /* win 8 */
|
||||||
|
"got 0x%08x\n", hr);
|
||||||
|
|
||||||
/* expected trace:
|
/* expected trace:
|
||||||
IUnknown_QueryServiceExec( ptr1, serviceid, groupid, arg1, arg2, arg3, arg4);
|
IUnknown_QueryServiceExec( ptr1, serviceid, groupid, arg1, arg2, arg3, arg4);
|
||||||
|
@ -2406,7 +2413,9 @@ static void test_IUnknown_ProfferService(void)
|
||||||
|
|
||||||
/* null source pointer */
|
/* null source pointer */
|
||||||
hr = pIUnknown_ProfferService(NULL, &dummy_serviceid, 0, 0);
|
hr = pIUnknown_ProfferService(NULL, &dummy_serviceid, 0, 0);
|
||||||
ok(hr == E_FAIL, "got 0x%08x\n", hr);
|
ok(hr == E_FAIL ||
|
||||||
|
hr == E_NOTIMPL, /* win 8 */
|
||||||
|
"got 0x%08x\n", hr);
|
||||||
|
|
||||||
/* expected trace:
|
/* expected trace:
|
||||||
IUnknown_ProfferService( ptr1, serviceid, arg1, arg2);
|
IUnknown_ProfferService( ptr1, serviceid, arg1, arg2);
|
||||||
|
|
Loading…
Reference in New Issue