test_azoteq_iqs5xx.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Copyright 2026 QMK
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "gtest/gtest.h"
  4. extern "C" {
  5. #include "azoteq_iqs5xx.h"
  6. void azoteq_iqs5xx_mock_reset(void);
  7. void azoteq_iqs5xx_mock_set_base_data(azoteq_iqs5xx_base_data_t base_data);
  8. }
  9. class AzoteqIqs5xx : public testing::Test {
  10. protected:
  11. void SetUp() override {
  12. azoteq_iqs5xx_mock_reset();
  13. }
  14. };
  15. TEST_F(AzoteqIqs5xx, PreservesIncomingButtonsWhenReportingMovement) {
  16. azoteq_iqs5xx_base_data_t base_data = {0};
  17. base_data.number_of_fingers = 1;
  18. base_data.x.l = 12;
  19. base_data.y.l = 34;
  20. azoteq_iqs5xx_mock_set_base_data(base_data);
  21. report_mouse_t input_report = {0};
  22. input_report.buttons = (1 << POINTING_DEVICE_BUTTON1) | (1 << POINTING_DEVICE_BUTTON2);
  23. report_mouse_t report = azoteq_iqs5xx_get_report(input_report);
  24. EXPECT_EQ(report.x, 12);
  25. EXPECT_EQ(report.y, 34);
  26. EXPECT_EQ(report.h, 0);
  27. EXPECT_EQ(report.v, 0);
  28. EXPECT_EQ(report.buttons, input_report.buttons);
  29. }
  30. TEST_F(AzoteqIqs5xx, CombinesGestureButtonWithIncomingButtons) {
  31. azoteq_iqs5xx_base_data_t base_data = {0};
  32. base_data.gesture_events_1.two_finger_tap = true;
  33. azoteq_iqs5xx_mock_set_base_data(base_data);
  34. report_mouse_t input_report = {0};
  35. input_report.buttons = 1 << POINTING_DEVICE_BUTTON1;
  36. report_mouse_t report = azoteq_iqs5xx_get_report(input_report);
  37. EXPECT_EQ(report.x, 0);
  38. EXPECT_EQ(report.y, 0);
  39. EXPECT_EQ(report.h, 0);
  40. EXPECT_EQ(report.v, 0);
  41. EXPECT_EQ(report.buttons, input_report.buttons | (1 << POINTING_DEVICE_BUTTON2));
  42. }