From ade3b05a8f43179168669538f3bf29a6168ea018 Mon Sep 17 00:00:00 2001 From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com> Date: Tue, 29 Sep 2026 23:34:42 -0400 Subject: [PATCH] test(linux): cover upper-half absolute mouse movement --- tests/unit/test_linux_backend.cpp | 15 +++++++++++++++ tests/unit/test_linux_consumers.cpp | 8 ++++++++ 2 files changed, 23 insertions(+) diff --git a/tests/unit/test_linux_backend.cpp b/tests/unit/test_linux_backend.cpp index 76f7a6cd..3383e690 100644 --- a/tests/unit/test_linux_backend.cpp +++ b/tests/unit/test_linux_backend.cpp @@ -606,6 +606,21 @@ TEST_F(LinuxBackendTest, PipeBackedUinputMouseEmitsEvents) { EXPECT_EQ(result.events[1].value, 65535); EXPECT_EQ(result.events[2].type, EV_SYN); + event.x = 2580; + event.y = 1080; + event.width = 3440; + event.height = 1440; + result = lvh::detail::test::linux_uinput_mouse_submit_pipe(event); + ASSERT_TRUE(result.status.ok()) << result.status.message(); + ASSERT_EQ(result.events.size(), 3U); + EXPECT_EQ(result.events[0].type, EV_ABS); + EXPECT_EQ(result.events[0].code, ABS_X); + EXPECT_EQ(result.events[0].value, 49151); + EXPECT_EQ(result.events[1].type, EV_ABS); + EXPECT_EQ(result.events[1].code, ABS_Y); + EXPECT_EQ(result.events[1].value, 49151); + EXPECT_EQ(result.events[2].type, EV_SYN); + event = {}; event.kind = lvh::MouseEventKind::button; event.button = lvh::MouseButton::extra; diff --git a/tests/unit/test_linux_consumers.cpp b/tests/unit/test_linux_consumers.cpp index a2283fc6..ca1296d5 100644 --- a/tests/unit/test_linux_consumers.cpp +++ b/tests/unit/test_linux_consumers.cpp @@ -1197,6 +1197,14 @@ TEST_F(LinuxConsumerTest, LibinputSeesSplitUinputMouseMotionAndButtons) { EXPECT_NEAR(libinput_event_pointer_get_absolute_x_transformed(pointer_event, 100), 50.0, 0.1); EXPECT_NEAR(libinput_event_pointer_get_absolute_y_transformed(pointer_event, 100), 25.0, 0.1); + ASSERT_TRUE(created.mouse->move_absolute(2580, 1080, 3440, 1440).ok()); + event = wait_for_libinput_event(absolute_context.get(), {LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE}); + ASSERT_NE(event.get(), nullptr); + pointer_event = libinput_event_get_pointer_event(event.get()); + ASSERT_NE(pointer_event, nullptr); + EXPECT_NEAR(libinput_event_pointer_get_absolute_x_transformed(pointer_event, 100), 75.0, 0.1); + EXPECT_NEAR(libinput_event_pointer_get_absolute_y_transformed(pointer_event, 100), 75.0, 0.1); + ASSERT_TRUE(created.mouse->button(lvh::MouseButton::middle, true).ok()); event = wait_for_libinput_event(absolute_context.get(), {LIBINPUT_EVENT_POINTER_BUTTON}); ASSERT_NE(event.get(), nullptr);