Add pointing tests (#24513)
This commit is contained in:
		
							parent
							
								
									d189de24a0
								
							
						
					
					
						commit
						1f7d10902a
					
				
					 29 changed files with 917 additions and 0 deletions
				
			
		
							
								
								
									
										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 PointingRotateParametrized : public ::testing::WithParamInterface<std::pair<SimpleReport, SimpleReport>>, public Pointing {};
 | 
			
		||||
 | 
			
		||||
TEST_P(PointingRotateParametrized, PointingRotateXY) {
 | 
			
		||||
    TestDriver   driver;
 | 
			
		||||
    SimpleReport input        = GetParam().first;
 | 
			
		||||
    SimpleReport expectations = GetParam().second;
 | 
			
		||||
 | 
			
		||||
    pd_set_x(input.x);
 | 
			
		||||
    pd_set_y(input.y);
 | 
			
		||||
    pd_set_h(input.h);
 | 
			
		||||
    pd_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);
 | 
			
		||||
    pd_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(
 | 
			
		||||
    Rotate180,
 | 
			
		||||
    PointingRotateParametrized,
 | 
			
		||||
    ::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
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue