Add a couple of basic tests and implement driver mock
This commit is contained in:
		
							parent
							
								
									617578399c
								
							
						
					
					
						commit
						3bb0586acc
					
				
					 6 changed files with 185 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -14,7 +14,16 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "gtest/gtest.h"
 | 
			
		||||
#include "gmock/gmock.h"
 | 
			
		||||
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
#include "keyboard.h"
 | 
			
		||||
#include "test_driver.h"
 | 
			
		||||
#include "test_matrix.h"
 | 
			
		||||
 | 
			
		||||
using testing::_;
 | 
			
		||||
using testing::Return;
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
	[0] = {
 | 
			
		||||
| 
						 | 
				
			
			@ -22,3 +31,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
	    {KC_C, KC_D}
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
TEST(Basic, SendKeyboardIsNotCalledWhenNoKeyIsPressed) {
 | 
			
		||||
    keyboard_init();
 | 
			
		||||
    TestDriver driver;
 | 
			
		||||
    EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0));
 | 
			
		||||
    EXPECT_CALL(driver, send_keyboard_mock(_)).Times(0);
 | 
			
		||||
    keyboard_task();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST(Basic, SendKeyboardIsCalledWhenAKeyIsPressed) {
 | 
			
		||||
    keyboard_init();
 | 
			
		||||
    TestDriver driver;
 | 
			
		||||
    press_key(0, 0);
 | 
			
		||||
    EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0));
 | 
			
		||||
    EXPECT_CALL(driver, send_keyboard_mock(_));
 | 
			
		||||
    keyboard_task();
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue