diff options
author | Fred Sundvik <fsundvik@gmail.com> | 2017-06-18 23:49:38 +0300 |
---|---|---|
committer | Fred Sundvik <fsundvik@gmail.com> | 2017-06-18 23:49:38 +0300 |
commit | 36f820be7e80bc8f1f5489373708356cf142c269 (patch) | |
tree | cf3561b80650e536a2c41f0e3bb4bc70635b6435 /tests/basic/test.cpp | |
parent | e85b1857968d4c0378b9778650c30b9d2bca3ea9 (diff) | |
download | qmk_firmware-36f820be7e80bc8f1f5489373708356cf142c269.tar.gz qmk_firmware-36f820be7e80bc8f1f5489373708356cf142c269.zip |
Add a test fixture
It only initializes QMK once, and clears the matrix after each test.
Diffstat (limited to 'tests/basic/test.cpp')
-rw-r--r-- | tests/basic/test.cpp | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/tests/basic/test.cpp b/tests/basic/test.cpp index 398063fca..26a09585c 100644 --- a/tests/basic/test.cpp +++ b/tests/basic/test.cpp | |||
@@ -18,10 +18,10 @@ | |||
18 | #include "gmock/gmock.h" | 18 | #include "gmock/gmock.h" |
19 | 19 | ||
20 | #include "quantum.h" | 20 | #include "quantum.h" |
21 | #include "keyboard.h" | ||
22 | #include "test_driver.h" | 21 | #include "test_driver.h" |
23 | #include "test_matrix.h" | 22 | #include "test_matrix.h" |
24 | #include "keyboard_report_util.h" | 23 | #include "keyboard_report_util.h" |
24 | #include "test_fixture.h" | ||
25 | 25 | ||
26 | using testing::_; | 26 | using testing::_; |
27 | using testing::Return; | 27 | using testing::Return; |
@@ -33,35 +33,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
33 | }, | 33 | }, |
34 | }; | 34 | }; |
35 | 35 | ||
36 | TEST(KeyPress, SendKeyboardIsNotCalledWhenNoKeyIsPressed) { | 36 | class KeyPress : public TestFixture {}; |
37 | |||
38 | TEST_F(KeyPress, SendKeyboardIsNotCalledWhenNoKeyIsPressed) { | ||
37 | TestDriver driver; | 39 | TestDriver driver; |
38 | EXPECT_CALL(driver, send_keyboard_mock(_)); | ||
39 | keyboard_init(); | ||
40 | EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0)); | 40 | EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0)); |
41 | EXPECT_CALL(driver, send_keyboard_mock(_)).Times(0); | 41 | EXPECT_CALL(driver, send_keyboard_mock(_)).Times(0); |
42 | keyboard_task(); | 42 | keyboard_task(); |
43 | } | 43 | } |
44 | 44 | ||
45 | TEST(KeyPress, CorrectKeyIsReportedWhenPressed) { | 45 | TEST_F(KeyPress, CorrectKeyIsReportedWhenPressed) { |
46 | TestDriver driver; | 46 | TestDriver driver; |
47 | EXPECT_CALL(driver, send_keyboard_mock(_)); | ||
48 | keyboard_init(); | ||
49 | press_key(0, 0); | 47 | press_key(0, 0); |
50 | EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0)); | 48 | EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0)); |
51 | EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_A))); | 49 | EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_A))); |
52 | keyboard_task(); | 50 | keyboard_task(); |
53 | } | 51 | } |
54 | 52 | ||
55 | TEST(KeyPress, CorrectKeysAreReportedWhenTwoKeysArePressed) { | 53 | TEST_F(KeyPress, CorrectKeysAreReportedWhenTwoKeysArePressed) { |
56 | TestDriver driver; | 54 | TestDriver driver; |
57 | EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); | ||
58 | keyboard_init(); | ||
59 | press_key(1, 0); | 55 | press_key(1, 0); |
60 | press_key(0, 1); | 56 | press_key(0, 1); |
61 | EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0)); | 57 | EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0)); |
62 | //TODO: This is a left-over from the previous test and need to be fixed | ||
63 | EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); | ||
64 | keyboard_task(); | ||
65 | //Note that QMK only processes one key at a time | 58 | //Note that QMK only processes one key at a time |
66 | EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_B))); | 59 | EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_B))); |
67 | keyboard_task(); | 60 | keyboard_task(); |