-- v9: comctl32/listview: Do not return items count on getting next item for last one. ddraw: Mark failing tests as todo_wine. comctl32/listview: Add LVM_GETNEXTITEM test.
From: Ilia Docin ilya.docin@contentai.ru
--- dlls/comctl32/tests/listview.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+)
diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c index 1081a045cde..dbe2cd574f9 100644 --- a/dlls/comctl32/tests/listview.c +++ b/dlls/comctl32/tests/listview.c @@ -7162,6 +7162,36 @@ static void test_LVM_SETBKIMAGE(BOOL is_v6) CoUninitialize(); }
+static void test_LVM_GETNEXTITEM(void) +{ + /* LVM_GETNEXTITEM */ + + HWND hwnd; + DWORD r; + UINT uFlagsAbove = MAKELPARAM(LVNI_ABOVE, 0); + UINT uFlagsBelow = MAKELPARAM(LVNI_BELOW, 0); + + hwnd = create_listview_control(LVS_REPORT); + insert_item(hwnd, 0); + insert_item(hwnd, 1); + insert_item(hwnd, 2); + + r = SendMessageA(hwnd, LVM_GETNEXTITEM, 0, uFlagsAbove); + expect(-1, r); + r = SendMessageA(hwnd, LVM_GETNEXTITEM, 0, uFlagsBelow); + expect(1, r); + r = SendMessageA(hwnd, LVM_GETNEXTITEM, 1, uFlagsAbove); + expect(0, r); + r = SendMessageA(hwnd, LVM_GETNEXTITEM, 1, uFlagsBelow); + expect(2, r); + r = SendMessageA(hwnd, LVM_GETNEXTITEM, 2, uFlagsAbove); + expect(1, r); + r = SendMessageA(hwnd, LVM_GETNEXTITEM, 2, uFlagsBelow); + expect(-1, r); + + DestroyWindow(hwnd); +} + START_TEST(listview) { ULONG_PTR ctx_cookie; @@ -7275,6 +7305,7 @@ START_TEST(listview) test_item_state_change(); test_selected_column(); test_LVM_GETNEXTITEMINDEX(); + test_LVM_GETNEXTITEM(); test_LVM_SETBKIMAGE(TRUE);
unload_v6_module(ctx_cookie, hCtx);
From: Ilia Docin ilya.docin@contentai.ru
--- dlls/ddraw/tests/ddraw2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c index 48a49815c58..41d80e00f4d 100644 --- a/dlls/ddraw/tests/ddraw2.c +++ b/dlls/ddraw/tests/ddraw2.c @@ -9807,11 +9807,11 @@ static void test_texturemapblend(void) ok(SUCCEEDED(hr), "Failed to end scene, hr %#lx.\n", hr);
color = get_surface_color(rt, 5, 5); - ok(compare_color(color, 0x00000000, 2), "Got unexpected color 0x%08x.\n", color); + todo_wine ok(compare_color(color, 0x00000000, 2), "Got unexpected color 0x%08x.\n", color); color = get_surface_color(rt, 400, 5); ok(compare_color(color, 0x00ff0000, 2), "Got unexpected color 0x%08x.\n", color); color = get_surface_color(rt, 5, 245); - ok(compare_color(color, 0x00000000, 2), "Got unexpected color 0x%08x.\n", color); + todo_wine ok(compare_color(color, 0x00000000, 2), "Got unexpected color 0x%08x.\n", color); color = get_surface_color(rt, 400, 245); ok(compare_color(color, 0x00800000, 2), "Got unexpected color 0x%08x.\n", color);
From: Ilia Docin ilya.docin@contentai.ru
--- dlls/comctl32/listview.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c index c82473b6205..b7ef90635ba 100644 --- a/dlls/comctl32/listview.c +++ b/dlls/comctl32/listview.c @@ -7371,7 +7371,7 @@ static INT LISTVIEW_GetNextItem(const LISTVIEW_INFO *infoPtr, INT nItem, UINT uF { if ((infoPtr->uView == LV_VIEW_LIST) || (infoPtr->uView == LV_VIEW_DETAILS)) { - while (nItem < infoPtr->nItemCount) + while (nItem < infoPtr->nItemCount - 1) { nItem++; if ((LISTVIEW_GetItemState(infoPtr, nItem, uMask) & uMask) == uMask)
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 tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=147072
Your paranoid android.
=== debian11 (32 bit de report) ===
ddraw: ddraw2.c:3814: Test failed: Expected (0,0)-(640,480), got (0,0)-(1024,768). ddraw2.c:3839: Test failed: Expected (0,0)-(640,480), got (0,0)-(1024,768).
=== debian11b (64 bit WoW report) ===
user32: input.c:5027: Test failed: 2:2: expected that X keystate is set input.c:5027: Test failed: 2:2: expected that X keystate is set input.c:5028: Test failed: 2:2: expected that X highest bit is set, got 0x1 input.c:5029: Test failed: 2:2: expected that X keystate is set input.c:5029: Test failed: 2:2: expected that X keystate is set input.c:4941: Test failed: 2:2: expected that X highest bit is set, got 0x1 input.c:4942: Test failed: 2:2: expected that X keystate is set input.c:4942: Test failed: 2:2: expected that X keystate is set input.c:5045: Test failed: 2:2: expected that X keystate is set input.c:5045: Test failed: 2:2: expected that X keystate is set input.c:5046: Test failed: 2:2: expected that X highest bit is set, got 0x1 input.c:5047: Test failed: 2:2: expected that X keystate is set input.c:5047: Test failed: 2:2: expected that X keystate is set input.c:4949: Test failed: 2:2: expected that X keystate is set input.c:4949: Test failed: 2:2: expected that X keystate is set
The ddraw patch is a regression; I don't know how I missed it. It should be fixed by 6080.
On Tue Jul 16 02:07:14 2024 +0000, Elizabeth Figura wrote:
The ddraw patch is a regression; I don't know how I missed it. It should be fixed by 6080.
It's nothing. ddraw tests are not only the ones who decided to fail here ;)
Zhiyi Zhang (@zhiyi) commented about dlls/comctl32/tests/listview.c:
- DWORD r;
- UINT uFlagsAbove = MAKELPARAM(LVNI_ABOVE, 0);
- UINT uFlagsBelow = MAKELPARAM(LVNI_BELOW, 0);
- hwnd = create_listview_control(LVS_REPORT);
- insert_item(hwnd, 0);
- insert_item(hwnd, 1);
- insert_item(hwnd, 2);
- r = SendMessageA(hwnd, LVM_GETNEXTITEM, 0, uFlagsAbove);
- expect(-1, r);
- r = SendMessageA(hwnd, LVM_GETNEXTITEM, 0, uFlagsBelow);
- expect(1, r);
- r = SendMessageA(hwnd, LVM_GETNEXTITEM, 1, uFlagsAbove);
- expect(0, r);
- r = SendMessageA(hwnd, LVM_GETNEXTITEM, 1, uFlagsBelow);
there is no todo_wine in this patch, which means the wine tests are already passing without your fix.
Zhiyi Zhang (@zhiyi) commented about dlls/ddraw/tests/ddraw2.c:
ok(SUCCEEDED(hr), "Failed to end scene, hr %#lx.\n", hr); color = get_surface_color(rt, 5, 5);
- ok(compare_color(color, 0x00000000, 2), "Got unexpected color 0x%08x.\n", color);
- todo_wine ok(compare_color(color, 0x00000000, 2), "Got unexpected color 0x%08x.\n", color);
As Zeb pointed out. This error should be fixed by MR6080. Please remove this commit.