mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 13:22:31 +01:00 
			
		
		
		
	More natural interface for setting keyboard leds
This commit is contained in:
		
							parent
							
								
									36f820be7e
								
							
						
					
					
						commit
						43d8fa5bf1
					
				| @ -37,7 +37,6 @@ class KeyPress : public TestFixture {}; | |||||||
| 
 | 
 | ||||||
| TEST_F(KeyPress, SendKeyboardIsNotCalledWhenNoKeyIsPressed) { | TEST_F(KeyPress, SendKeyboardIsNotCalledWhenNoKeyIsPressed) { | ||||||
|     TestDriver driver; |     TestDriver driver; | ||||||
|     EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0)); |  | ||||||
|     EXPECT_CALL(driver, send_keyboard_mock(_)).Times(0); |     EXPECT_CALL(driver, send_keyboard_mock(_)).Times(0); | ||||||
|     keyboard_task(); |     keyboard_task(); | ||||||
| } | } | ||||||
| @ -45,7 +44,6 @@ TEST_F(KeyPress, SendKeyboardIsNotCalledWhenNoKeyIsPressed) { | |||||||
| TEST_F(KeyPress, CorrectKeyIsReportedWhenPressed) { | TEST_F(KeyPress, CorrectKeyIsReportedWhenPressed) { | ||||||
|     TestDriver driver; |     TestDriver driver; | ||||||
|     press_key(0, 0); |     press_key(0, 0); | ||||||
|     EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0)); |  | ||||||
|     EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_A))); |     EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_A))); | ||||||
|     keyboard_task(); |     keyboard_task(); | ||||||
| } | } | ||||||
| @ -54,7 +52,6 @@ TEST_F(KeyPress, CorrectKeysAreReportedWhenTwoKeysArePressed) { | |||||||
|     TestDriver driver; |     TestDriver driver; | ||||||
|     press_key(1, 0); |     press_key(1, 0); | ||||||
|     press_key(0, 1); |     press_key(0, 1); | ||||||
|     EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0)); |  | ||||||
|     //Note that QMK only processes one key at a time
 |     //Note that QMK only processes one key at a time
 | ||||||
|     EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_B))); |     EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_B))); | ||||||
|     keyboard_task(); |     keyboard_task(); | ||||||
|  | |||||||
| @ -27,7 +27,6 @@ TestDriver::TestDriver() | |||||||
|         &TestDriver::send_consumer |         &TestDriver::send_consumer | ||||||
|     } |     } | ||||||
| { | { | ||||||
| 
 |  | ||||||
|     host_set_driver(&m_driver); |     host_set_driver(&m_driver); | ||||||
|     m_this = this; |     m_this = this; | ||||||
| } | } | ||||||
| @ -37,7 +36,7 @@ TestDriver::~TestDriver() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint8_t TestDriver::keyboard_leds(void) { | uint8_t TestDriver::keyboard_leds(void) { | ||||||
|     return m_this->keyboard_leds_mock(); |     return m_this->m_leds; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void TestDriver::send_keyboard(report_keyboard_t* report) { | void TestDriver::send_keyboard(report_keyboard_t* report) { | ||||||
|  | |||||||
| @ -27,7 +27,8 @@ class TestDriver { | |||||||
| public: | public: | ||||||
|     TestDriver(); |     TestDriver(); | ||||||
|     ~TestDriver(); |     ~TestDriver(); | ||||||
|     MOCK_METHOD0(keyboard_leds_mock, uint8_t ()); |     void set_leds(uint8_t leds) { m_leds = leds; } | ||||||
|  |      | ||||||
|     MOCK_METHOD1(send_keyboard_mock, void (report_keyboard_t&)); |     MOCK_METHOD1(send_keyboard_mock, void (report_keyboard_t&)); | ||||||
|     MOCK_METHOD1(send_mouse_mock, void (report_mouse_t&)); |     MOCK_METHOD1(send_mouse_mock, void (report_mouse_t&)); | ||||||
|     MOCK_METHOD1(send_system_mock, void (uint16_t)); |     MOCK_METHOD1(send_system_mock, void (uint16_t)); | ||||||
| @ -39,6 +40,7 @@ private: | |||||||
|     static void send_system(uint16_t data); |     static void send_system(uint16_t data); | ||||||
|     static void send_consumer(uint16_t data); |     static void send_consumer(uint16_t data); | ||||||
|     host_driver_t m_driver; |     host_driver_t m_driver; | ||||||
|  |     uint8_t m_leds = 0; | ||||||
|     static TestDriver* m_this; |     static TestDriver* m_this; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -27,12 +27,10 @@ TestFixture::~TestFixture() { | |||||||
|     // Run for a while to make sure all keys are completely released
 |     // Run for a while to make sure all keys are completely released
 | ||||||
|     // Should probably wait until tapping term etc, has timed out
 |     // Should probably wait until tapping term etc, has timed out
 | ||||||
|     EXPECT_CALL(driver, send_keyboard_mock(_)).Times(AnyNumber()); |     EXPECT_CALL(driver, send_keyboard_mock(_)).Times(AnyNumber()); | ||||||
|     EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0)); |  | ||||||
|     for (int i=0; i<100; i++) { |     for (int i=0; i<100; i++) { | ||||||
|         keyboard_task(); |         keyboard_task(); | ||||||
|     } |     } | ||||||
|     testing::Mock::VerifyAndClearExpectations(&driver);  |     testing::Mock::VerifyAndClearExpectations(&driver);  | ||||||
|     // Verify that the matrix really is cleared
 |     // Verify that the matrix really is cleared
 | ||||||
|     EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(Between(0, 1)); |     EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(Between(0, 1)); | ||||||
|     EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0)); |  | ||||||
| } | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Fred Sundvik
						Fred Sundvik