[PATCH 0/1] MR6014: winhttp/tests: Add some tests for querying string options with NULL buffer.
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6014
From: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> --- dlls/winhttp/tests/winhttp.c | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/dlls/winhttp/tests/winhttp.c b/dlls/winhttp/tests/winhttp.c index 2252551f32c..08fedfdb823 100644 --- a/dlls/winhttp/tests/winhttp.c +++ b/dlls/winhttp/tests/winhttp.c @@ -4369,12 +4369,28 @@ static void test_credentials(void) ok(!buffer[0], "unexpected result %s\n", wine_dbgstr_w(buffer)); ok(!size, "expected 0, got %lu\n", size); + size = 4; + SetLastError(0xdeadbeef); + ret = WinHttpQueryOption(req, WINHTTP_OPTION_PROXY_USERNAME, NULL, &size); + todo_wine + ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER, "Unexpected error %lu\n", GetLastError()); + todo_wine + ok(size == 2, "Unexpected size %lu\n", size); + size = ARRAY_SIZE(buffer); ret = WinHttpQueryOption(req, WINHTTP_OPTION_PROXY_PASSWORD, &buffer, &size); ok(ret, "failed to query proxy password %lu\n", GetLastError()); ok(!buffer[0], "unexpected result %s\n", wine_dbgstr_w(buffer)); ok(!size, "expected 0, got %lu\n", size); + size = 4; + SetLastError(0xdeadbeef); + ret = WinHttpQueryOption(req, WINHTTP_OPTION_PROXY_PASSWORD, NULL, &size); + todo_wine + ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER, "Unexpected error %lu\n", GetLastError()); + todo_wine + ok(size == 2, "Unexpected size %lu\n", size); + ret = WinHttpSetOption(req, WINHTTP_OPTION_PROXY_USERNAME, proxy_userW, lstrlenW(proxy_userW)); ok(ret, "failed to set username %lu\n", GetLastError()); @@ -4384,18 +4400,41 @@ static void test_credentials(void) ok(!wcscmp(buffer, proxy_userW), "unexpected result %s\n", wine_dbgstr_w(buffer)); ok(size == lstrlenW(proxy_userW) * sizeof(WCHAR), "unexpected result %lu\n", size); + size = 0; + SetLastError(0xdeadbeef); + ret = WinHttpQueryOption(req, WINHTTP_OPTION_PROXY_USERNAME, NULL, &size); + todo_wine + ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER, "Unexpected error %lu\n", GetLastError()); + ok(size == lstrlenW(proxy_userW) * sizeof(WCHAR), "Unexpected size %lu\n", size); + size = ARRAY_SIZE(buffer); ret = WinHttpQueryOption(req, WINHTTP_OPTION_USERNAME, &buffer, &size); ok(ret, "failed to query username %lu\n", GetLastError()); ok(!buffer[0], "unexpected result %s\n", wine_dbgstr_w(buffer)); ok(!size, "expected 0, got %lu\n", size); + size = 4; + SetLastError(0xdeadbeef); + ret = WinHttpQueryOption(req, WINHTTP_OPTION_USERNAME, NULL, &size); + todo_wine + ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER, "Unexpected error %lu\n", GetLastError()); + todo_wine + ok(size == 2, "Unexpected size %lu\n", size); + size = ARRAY_SIZE(buffer); ret = WinHttpQueryOption(req, WINHTTP_OPTION_PASSWORD, &buffer, &size); ok(ret, "failed to query password %lu\n", GetLastError()); ok(!buffer[0], "unexpected result %s\n", wine_dbgstr_w(buffer)); ok(!size, "expected 0, got %lu\n", size); + size = 4; + SetLastError(0xdeadbeef); + ret = WinHttpQueryOption(req, WINHTTP_OPTION_PASSWORD, NULL, &size); + todo_wine + ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER, "Unexpected error %lu\n", GetLastError()); + todo_wine + ok(size == 2, "Unexpected size %lu\n", size); + ret = WinHttpSetOption(req, WINHTTP_OPTION_PROXY_PASSWORD, proxy_passW, lstrlenW(proxy_passW)); ok(ret, "failed to set proxy password %lu\n", GetLastError()); @@ -4405,6 +4444,13 @@ static void test_credentials(void) ok(!wcscmp(buffer, proxy_passW), "unexpected result %s\n", wine_dbgstr_w(buffer)); ok(size == lstrlenW(proxy_passW) * sizeof(WCHAR), "unexpected result %lu\n", size); + size = 0; + SetLastError(0xdeadbeef); + ret = WinHttpQueryOption(req, WINHTTP_OPTION_PROXY_PASSWORD, NULL, &size); + todo_wine + ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER, "Unexpected error %lu\n", GetLastError()); + ok(size == lstrlenW(proxy_passW) * sizeof(WCHAR), "Unexpected size %lu\n", size); + ret = WinHttpSetOption(req, WINHTTP_OPTION_USERNAME, userW, lstrlenW(userW)); ok(ret, "failed to set username %lu\n", GetLastError()); @@ -4414,6 +4460,13 @@ static void test_credentials(void) ok(!wcscmp(buffer, userW), "unexpected result %s\n", wine_dbgstr_w(buffer)); ok(size == lstrlenW(userW) * sizeof(WCHAR), "unexpected result %lu\n", size); + size = 0; + SetLastError(0xdeadbeef); + ret = WinHttpQueryOption(req, WINHTTP_OPTION_USERNAME, NULL, &size); + todo_wine + ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER, "Unexpected error %lu\n", GetLastError()); + ok(size == lstrlenW(userW) * sizeof(WCHAR), "Unexpected size %lu\n", size); + ret = WinHttpSetOption(req, WINHTTP_OPTION_PASSWORD, passW, lstrlenW(passW)); ok(ret, "failed to set password %lu\n", GetLastError()); @@ -4423,6 +4476,13 @@ static void test_credentials(void) ok(!wcscmp(buffer, passW), "unexpected result %s\n", wine_dbgstr_w(buffer)); ok(size == lstrlenW(passW) * sizeof(WCHAR), "unexpected result %lu\n", size); + size = 0; + SetLastError(0xdeadbeef); + ret = WinHttpQueryOption(req, WINHTTP_OPTION_PASSWORD, NULL, &size); + todo_wine + ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER, "Unexpected error %lu\n", GetLastError()); + ok(size == lstrlenW(passW) * sizeof(WCHAR), "Unexpected size %lu\n", size); + WinHttpCloseHandle(req); req = WinHttpOpenRequest(con, NULL, NULL, NULL, NULL, NULL, 0); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6014
Hi, It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated. The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=146875 Your paranoid android. === w7u_2qxl (32 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w7u_adm (32 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w7u_el (32 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w8 (32 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w8adm (32 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w864 (32 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w1064v1507 (32 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w1064v1809 (32 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w1064_tsign (32 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w10pro64 (32 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w10pro64_en_AE_u8 (32 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w11pro64 (32 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w7pro64 (64 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w864 (64 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w1064v1507 (64 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w1064v1809 (64 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w1064_2qxl (64 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w1064_adm (64 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w1064_tsign (64 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w10pro64 (64 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w10pro64_ar (64 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w10pro64_ja (64 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w10pro64_zh_CN (64 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10 === w11pro64_amd (64 bit report) === winhttp: winhttp.c:4408: Test failed: Unexpected size 20 winhttp.c:4452: Test failed: Unexpected size 20 winhttp.c:4468: Test failed: Unexpected size 10 winhttp.c:4484: Test failed: Unexpected size 10
participants (3)
-
Marvin -
Nikolay Sivov -
Nikolay Sivov (@nsivov)