mirror of
https://github.com/qmk/qmk_firmware.git
synced 2024-11-22 03:19:24 +00:00
test rotation and invert defines
This commit is contained in:
parent
53a2180b1a
commit
e9bb4521ba
9
tests/pointing/invertxy/config.h
Normal file
9
tests/pointing/invertxy/config.h
Normal file
@ -0,0 +1,9 @@
|
||||
// Copyright 2024 Dasky (@daskygit)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "test_common.h"
|
||||
|
||||
#define POINTING_DEVICE_INVERT_X
|
||||
#define POINTING_DEVICE_INVERT_Y
|
2
tests/pointing/invertxy/test.mk
Normal file
2
tests/pointing/invertxy/test.mk
Normal file
@ -0,0 +1,2 @@
|
||||
POINTING_DEVICE_ENABLE = yes
|
||||
POINTING_DEVICE_DRIVER = custom
|
53
tests/pointing/invertxy/test_invertxy.cpp
Normal file
53
tests/pointing/invertxy/test_invertxy.cpp
Normal file
@ -0,0 +1,53 @@
|
||||
// Copyright 2024 Dasky (@daskygit)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "mouse_report_util.hpp"
|
||||
#include "test_common.hpp"
|
||||
#include "test_pointing_device_driver.h"
|
||||
|
||||
using testing::_;
|
||||
|
||||
struct SimpleReport {
|
||||
int16_t x;
|
||||
int16_t y;
|
||||
int16_t h;
|
||||
int16_t v;
|
||||
};
|
||||
|
||||
class Pointing : public TestFixture {};
|
||||
class PointingInvertXYParametrizedTestFixture : public ::testing::WithParamInterface<std::pair<SimpleReport, SimpleReport>>, public Pointing {};
|
||||
|
||||
TEST_P(PointingInvertXYParametrizedTestFixture, PointingMouseKeysViaPointingDriver) {
|
||||
TestDriver driver;
|
||||
SimpleReport input = GetParam().first;
|
||||
SimpleReport expectations = GetParam().second;
|
||||
|
||||
set_x(input.x);
|
||||
set_y(input.y);
|
||||
set_h(input.h);
|
||||
set_v(input.v);
|
||||
|
||||
EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0));
|
||||
run_one_scan_loop();
|
||||
|
||||
// EXPECT_EMPTY_MOUSE_REPORT(driver);
|
||||
clear_movement();
|
||||
run_one_scan_loop();
|
||||
|
||||
EXPECT_NO_MOUSE_REPORT(driver);
|
||||
run_one_scan_loop();
|
||||
|
||||
VERIFY_AND_CLEAR(driver);
|
||||
}
|
||||
// clang-format off
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
PointingInvertXYTests,
|
||||
PointingInvertXYParametrizedTestFixture,
|
||||
::testing::Values(
|
||||
// Input Expected
|
||||
std::make_pair(SimpleReport{ 33, 0, 0, 0}, SimpleReport{ -33, 0, 0, 0}),
|
||||
std::make_pair(SimpleReport{ 0, -127, 0, 0}, SimpleReport{ 0, 127, 0, 0}),
|
||||
std::make_pair(SimpleReport{ 10, -20, 0, 0}, SimpleReport{ -10, 20, 0, 0})
|
||||
));
|
||||
// clang-format on
|
8
tests/pointing/rotate180/config.h
Normal file
8
tests/pointing/rotate180/config.h
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright 2024 Dasky (@daskygit)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "test_common.h"
|
||||
|
||||
#define POINTING_DEVICE_ROTATION_180
|
2
tests/pointing/rotate180/test.mk
Normal file
2
tests/pointing/rotate180/test.mk
Normal file
@ -0,0 +1,2 @@
|
||||
POINTING_DEVICE_ENABLE = yes
|
||||
POINTING_DEVICE_DRIVER = custom
|
55
tests/pointing/rotate180/test_rotate180.cpp
Normal file
55
tests/pointing/rotate180/test_rotate180.cpp
Normal file
@ -0,0 +1,55 @@
|
||||
// Copyright 2024 Dasky (@daskygit)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "mouse_report_util.hpp"
|
||||
#include "test_common.hpp"
|
||||
#include "test_pointing_device_driver.h"
|
||||
|
||||
using testing::_;
|
||||
|
||||
struct SimpleReport {
|
||||
int16_t x;
|
||||
int16_t y;
|
||||
int16_t h;
|
||||
int16_t v;
|
||||
};
|
||||
|
||||
class Pointing : public TestFixture {};
|
||||
class PointingRotateParametrizedTestFixture : public ::testing::WithParamInterface<std::pair<SimpleReport, SimpleReport>>, public Pointing {};
|
||||
|
||||
TEST_P(PointingRotateParametrizedTestFixture, PointingRotateXY) {
|
||||
TestDriver driver;
|
||||
SimpleReport input = GetParam().first;
|
||||
SimpleReport expectations = GetParam().second;
|
||||
|
||||
set_x(input.x);
|
||||
set_y(input.y);
|
||||
set_h(input.h);
|
||||
set_v(input.v);
|
||||
|
||||
EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0));
|
||||
run_one_scan_loop();
|
||||
|
||||
// EXPECT_EMPTY_MOUSE_REPORT(driver);
|
||||
clear_movement();
|
||||
run_one_scan_loop();
|
||||
|
||||
EXPECT_NO_MOUSE_REPORT(driver);
|
||||
run_one_scan_loop();
|
||||
|
||||
VERIFY_AND_CLEAR(driver);
|
||||
}
|
||||
// clang-format off
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
Rotate180Tests,
|
||||
PointingRotateParametrizedTestFixture,
|
||||
::testing::Values(
|
||||
// Input Expected
|
||||
// Rotate Clockwise
|
||||
std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{ 0, 1, 0, 0}), // UP - DOWN
|
||||
std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{ 0,-1, 0, 0}), // DOWN - UP
|
||||
std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{-1, 0, 0, 0}), // RIGHT - LEFT
|
||||
std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 1, 0, 0, 0}) // LEFT - RIGHT
|
||||
));
|
||||
// clang-format on
|
8
tests/pointing/rotate270/config.h
Normal file
8
tests/pointing/rotate270/config.h
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright 2024 Dasky (@daskygit)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "test_common.h"
|
||||
|
||||
#define POINTING_DEVICE_ROTATION_270
|
2
tests/pointing/rotate270/test.mk
Normal file
2
tests/pointing/rotate270/test.mk
Normal file
@ -0,0 +1,2 @@
|
||||
POINTING_DEVICE_ENABLE = yes
|
||||
POINTING_DEVICE_DRIVER = custom
|
60
tests/pointing/rotate270/test_rotate270.cpp
Normal file
60
tests/pointing/rotate270/test_rotate270.cpp
Normal file
@ -0,0 +1,60 @@
|
||||
// Copyright 2024 Dasky (@daskygit)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "mouse_report_util.hpp"
|
||||
#include "test_common.hpp"
|
||||
#include "test_pointing_device_driver.h"
|
||||
|
||||
using testing::_;
|
||||
|
||||
struct SimpleReport {
|
||||
int16_t x;
|
||||
int16_t y;
|
||||
int16_t h;
|
||||
int16_t v;
|
||||
};
|
||||
|
||||
class Pointing : public TestFixture {};
|
||||
class PointingRotateParametrizedTestFixture : public ::testing::WithParamInterface<std::pair<SimpleReport, SimpleReport>>, public Pointing {};
|
||||
|
||||
TEST_P(PointingRotateParametrizedTestFixture, PointingRotateXY) {
|
||||
TestDriver driver;
|
||||
SimpleReport input = GetParam().first;
|
||||
SimpleReport expectations = GetParam().second;
|
||||
|
||||
set_x(input.x);
|
||||
set_y(input.y);
|
||||
set_h(input.h);
|
||||
set_v(input.v);
|
||||
|
||||
EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0));
|
||||
run_one_scan_loop();
|
||||
|
||||
// EXPECT_EMPTY_MOUSE_REPORT(driver);
|
||||
clear_movement();
|
||||
run_one_scan_loop();
|
||||
|
||||
EXPECT_NO_MOUSE_REPORT(driver);
|
||||
run_one_scan_loop();
|
||||
|
||||
VERIFY_AND_CLEAR(driver);
|
||||
}
|
||||
// clang-format off
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
Rotate270Tests,
|
||||
PointingRotateParametrizedTestFixture,
|
||||
::testing::Values(
|
||||
// Input Expected
|
||||
// Actual Result - Rotate Anticlockwise
|
||||
std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // UP - RIGHT
|
||||
std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{-1, 0, 0, 0}), // DOWN - LEFT
|
||||
std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}), // RIGHT - DOWN
|
||||
std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0,-1, 0, 0}) // LEFT - UP
|
||||
// Rotate Clockwise
|
||||
// std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{-1, 0, 0, 0}), // UP - LEFT
|
||||
// std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // DOWN - RIGHT
|
||||
// std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0,-1, 0, 0}), // RIGHT - UP
|
||||
// std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}) // LEFT - DOWN
|
||||
));
|
||||
// clang-format on
|
8
tests/pointing/rotate90/config.h
Normal file
8
tests/pointing/rotate90/config.h
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright 2024 Dasky (@daskygit)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "test_common.h"
|
||||
|
||||
#define POINTING_DEVICE_ROTATION_90
|
2
tests/pointing/rotate90/test.mk
Normal file
2
tests/pointing/rotate90/test.mk
Normal file
@ -0,0 +1,2 @@
|
||||
POINTING_DEVICE_ENABLE = yes
|
||||
POINTING_DEVICE_DRIVER = custom
|
60
tests/pointing/rotate90/test_rotate90.cpp
Normal file
60
tests/pointing/rotate90/test_rotate90.cpp
Normal file
@ -0,0 +1,60 @@
|
||||
// Copyright 2024 Dasky (@daskygit)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "mouse_report_util.hpp"
|
||||
#include "test_common.hpp"
|
||||
#include "test_pointing_device_driver.h"
|
||||
|
||||
using testing::_;
|
||||
|
||||
struct SimpleReport {
|
||||
int16_t x;
|
||||
int16_t y;
|
||||
int16_t h;
|
||||
int16_t v;
|
||||
};
|
||||
|
||||
class Pointing : public TestFixture {};
|
||||
class PointingRotateParametrizedTestFixture : public ::testing::WithParamInterface<std::pair<SimpleReport, SimpleReport>>, public Pointing {};
|
||||
|
||||
TEST_P(PointingRotateParametrizedTestFixture, PointingRotateXY) {
|
||||
TestDriver driver;
|
||||
SimpleReport input = GetParam().first;
|
||||
SimpleReport expectations = GetParam().second;
|
||||
|
||||
set_x(input.x);
|
||||
set_y(input.y);
|
||||
set_h(input.h);
|
||||
set_v(input.v);
|
||||
|
||||
EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0));
|
||||
run_one_scan_loop();
|
||||
|
||||
// EXPECT_EMPTY_MOUSE_REPORT(driver);
|
||||
clear_movement();
|
||||
run_one_scan_loop();
|
||||
|
||||
EXPECT_NO_MOUSE_REPORT(driver);
|
||||
run_one_scan_loop();
|
||||
|
||||
VERIFY_AND_CLEAR(driver);
|
||||
}
|
||||
// clang-format off
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
Rotate90Tests,
|
||||
PointingRotateParametrizedTestFixture,
|
||||
::testing::Values(
|
||||
// Input Expected
|
||||
// Actual Result - Rotate Anticlockwise
|
||||
std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{-1, 0, 0, 0}), // UP - LEFT
|
||||
std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // DOWN - RIGHT
|
||||
std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0,-1, 0, 0}), // RIGHT - UP
|
||||
std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}) // LEFT - DOWN
|
||||
// Rotate Clockwise
|
||||
// std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // UP - RIGHT
|
||||
// std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{-1, 0, 0, 0}), // DOWN - LEFT
|
||||
// std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0,-1, 0, 0}), // RIGHT - DOWN
|
||||
// std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}) // LEFT - UP
|
||||
));
|
||||
// clang-format on
|
Loading…
Reference in New Issue
Block a user