]> git.donarmstrong.com Git - qmk_firmware.git/blob - tests/test_common/test_fixture.cpp
Add a test fixture
[qmk_firmware.git] / tests / test_common / test_fixture.cpp
1 #include "test_fixture.h"
2 #include "gmock/gmock.h"
3 #include "test_driver.h"
4 #include "test_matrix.h"
5 #include "keyboard.h"
6
7 using testing::_;
8 using testing::AnyNumber;
9 using testing::Return;
10 using testing::Between;
11
12 void TestFixture::SetUpTestCase() {
13     TestDriver driver;
14     EXPECT_CALL(driver, send_keyboard_mock(_));
15     keyboard_init();
16 }
17
18 void TestFixture::TearDownTestCase() {
19 }
20
21 TestFixture::TestFixture() {
22 }
23
24 TestFixture::~TestFixture() {
25     TestDriver driver;
26     clear_all_keys();
27     // Run for a while to make sure all keys are completely released
28     // Should probably wait until tapping term etc, has timed out
29     EXPECT_CALL(driver, send_keyboard_mock(_)).Times(AnyNumber());
30     EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0));
31     for (int i=0; i<100; i++) {
32         keyboard_task();
33     }
34     testing::Mock::VerifyAndClearExpectations(&driver); 
35     // Verify that the matrix really is cleared
36     EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(Between(0, 1));
37     EXPECT_CALL(driver, keyboard_leds_mock()).WillRepeatedly(Return(0));
38 }