@@ -23,35 +23,12 @@ using ::testing::SaveArgPointee;
23
23
class CoreSTM32HalBasicTimerTest : public ::testing::Test
24
24
{
25
25
protected:
26
- void SetUp () override
27
- {
28
- basic_timer.registerCallback (callback.AsStdFunction ());
29
-
30
- EXPECT_CALL (halmock, HAL_TIM_RegisterCallback (_, HAL_TIM_BASE_MSPINIT_CB_ID, _))
31
- .WillOnce (DoAll (SaveArg<2 >(&mspinit_callback), Return (HAL_StatusTypeDef::HAL_OK)));
32
- EXPECT_CALL (halmock, HAL_TIM_RegisterCallback (_, HAL_TIM_BASE_MSPDEINIT_CB_ID, _))
33
- .WillOnce (DoAll (SaveArg<2 >(&mspdeinit_callback), Return (HAL_StatusTypeDef::HAL_OK)));
34
- EXPECT_CALL (halmock, HAL_TIM_RegisterCallback (_, HAL_TIM_PERIOD_ELAPSED_CB_ID, _))
35
- .WillOnce (DoAll (SaveArg<2 >(&period_elapsed_callback), Return (HAL_StatusTypeDef::HAL_OK)));
36
-
37
- EXPECT_CALL (halmock, HAL_TIM_Base_Init);
38
- EXPECT_CALL (halmock, HAL_TIMEx_MasterConfigSynchronization)
39
- .WillOnce (DoAll (SaveArgPointee<1 >(&basic_timer_master_config), Return (HAL_StatusTypeDef::HAL_OK)));
40
-
41
- basic_timer.initialize ();
42
- }
26
+ // void SetUp() override {}
43
27
// void TearDown() override {}
44
28
45
29
mock::CoreSTM32Hal halmock;
46
30
47
31
CoreSTM32HalBasicTimer basic_timer {halmock};
48
- TIM_MasterConfigTypeDef basic_timer_master_config {};
49
-
50
- MockFunction<void ()> callback;
51
-
52
- std::function<void (TIM_HandleTypeDef *)> mspinit_callback = [](TIM_HandleTypeDef *) {};
53
- std::function<void (TIM_HandleTypeDef *)> mspdeinit_callback = [](TIM_HandleTypeDef *) {};
54
- std::function<void (TIM_HandleTypeDef *)> period_elapsed_callback = [](TIM_HandleTypeDef *) {};
55
32
};
56
33
57
34
TEST_F (CoreSTM32HalBasicTimerTest, initializationDefault)
@@ -88,42 +65,69 @@ TEST_F(CoreSTM32HalBasicTimerTest, initialize)
88
65
basic_timer.initialize ();
89
66
}
90
67
91
- TEST_F (CoreSTM32HalBasicTimerTest, initializeMspInit )
68
+ TEST_F (CoreSTM32HalBasicTimerTest, initializeMspInitDeinit )
92
69
{
93
- auto *basic_timer_instance = basic_timer.getHandle ().Instance ;
70
+ std::function<void (TIM_HandleTypeDef *)> mspinit_callback = [](TIM_HandleTypeDef *) {};
71
+ std::function<void (TIM_HandleTypeDef *)> mspdeinit_callback = [](TIM_HandleTypeDef *) {};
94
72
95
- if (basic_timer_instance == TIM6) {
96
- EXPECT_CALL (halmock, HAL_RCC_TIM6_CLK_ENABLE);
97
- EXPECT_CALL (halmock, HAL_NVIC_SetPriority (TIM6_DAC_IRQn, _, _));
98
- EXPECT_CALL (halmock, HAL_NVIC_EnableIRQ (TIM6_DAC_IRQn));
99
- } else if (basic_timer_instance == TIM7) {
100
- EXPECT_CALL (halmock, HAL_RCC_TIM7_CLK_ENABLE);
101
- EXPECT_CALL (halmock, HAL_NVIC_SetPriority (TIM7_IRQn, _, _));
102
- EXPECT_CALL (halmock, HAL_NVIC_EnableIRQ (TIM7_IRQn));
103
- } else {
104
- FAIL (); // Only timers 6 and 7 can be used as Basic Timer
105
- }
73
+ {
74
+ EXPECT_CALL (halmock, HAL_TIM_RegisterCallback (_, HAL_TIM_BASE_MSPINIT_CB_ID, _))
75
+ .WillOnce (DoAll (SaveArg<2 >(&mspinit_callback), Return (HAL_StatusTypeDef::HAL_OK)));
76
+ EXPECT_CALL (halmock, HAL_TIM_RegisterCallback (_, HAL_TIM_BASE_MSPDEINIT_CB_ID, _))
77
+ .WillOnce (DoAll (SaveArg<2 >(&mspdeinit_callback), Return (HAL_StatusTypeDef::HAL_OK)));
78
+ EXPECT_CALL (halmock, HAL_TIM_RegisterCallback (_, HAL_TIM_PERIOD_ELAPSED_CB_ID, _));
79
+ EXPECT_CALL (halmock, HAL_TIM_Base_Init);
80
+ EXPECT_CALL (halmock, HAL_TIMEx_MasterConfigSynchronization);
106
81
107
- mspinit_callback (& basic_timer.getHandle () );
108
- }
82
+ basic_timer.initialize ( );
83
+ }
109
84
110
- TEST_F (CoreSTM32HalBasicTimerTest, initializeMspDeinit)
111
- {
112
85
auto *basic_timer_instance = basic_timer.getHandle ().Instance ;
113
86
114
- if (basic_timer_instance == TIM6) {
115
- EXPECT_CALL (halmock, HAL_RCC_TIM6_CLK_DISABLE);
116
- } else if (basic_timer_instance == TIM7) {
117
- EXPECT_CALL (halmock, HAL_RCC_TIM7_CLK_DISABLE);
118
- } else {
119
- FAIL (); // Only timers 6 and 7 can be used as Basic Timer
120
- }
87
+ {
88
+ if (basic_timer_instance == TIM6) {
89
+ EXPECT_CALL (halmock, HAL_RCC_TIM6_CLK_ENABLE);
90
+ EXPECT_CALL (halmock, HAL_NVIC_SetPriority (TIM6_DAC_IRQn, _, _));
91
+ EXPECT_CALL (halmock, HAL_NVIC_EnableIRQ (TIM6_DAC_IRQn));
92
+ } else if (basic_timer_instance == TIM7) {
93
+ EXPECT_CALL (halmock, HAL_RCC_TIM7_CLK_ENABLE);
94
+ EXPECT_CALL (halmock, HAL_NVIC_SetPriority (TIM7_IRQn, _, _));
95
+ EXPECT_CALL (halmock, HAL_NVIC_EnableIRQ (TIM7_IRQn));
96
+ } else {
97
+ FAIL (); // Only timers 6 and 7 can be used as Basic Timer
98
+ }
99
+
100
+ mspinit_callback (&basic_timer.getHandle ());
101
+ } // MSP Init
121
102
122
- mspdeinit_callback (&basic_timer.getHandle ());
103
+ {
104
+ if (basic_timer_instance == TIM6) {
105
+ EXPECT_CALL (halmock, HAL_RCC_TIM6_CLK_DISABLE);
106
+ } else if (basic_timer_instance == TIM7) {
107
+ EXPECT_CALL (halmock, HAL_RCC_TIM7_CLK_DISABLE);
108
+ } else {
109
+ FAIL (); // Only timers 6 and 7 can be used as Basic Timer
110
+ }
111
+
112
+ mspdeinit_callback (&basic_timer.getHandle ());
113
+ } // MSP Deinit
123
114
}
124
115
125
116
TEST_F (CoreSTM32HalBasicTimerTest, initializeConfig)
126
117
{
118
+ TIM_MasterConfigTypeDef basic_timer_master_config {};
119
+
120
+ {
121
+ EXPECT_CALL (halmock, HAL_TIM_RegisterCallback (_, HAL_TIM_BASE_MSPINIT_CB_ID, _));
122
+ EXPECT_CALL (halmock, HAL_TIM_RegisterCallback (_, HAL_TIM_BASE_MSPDEINIT_CB_ID, _));
123
+ EXPECT_CALL (halmock, HAL_TIM_RegisterCallback (_, HAL_TIM_PERIOD_ELAPSED_CB_ID, _));
124
+ EXPECT_CALL (halmock, HAL_TIM_Base_Init);
125
+ EXPECT_CALL (halmock, HAL_TIMEx_MasterConfigSynchronization)
126
+ .WillOnce (DoAll (SaveArgPointee<1 >(&basic_timer_master_config), Return (HAL_StatusTypeDef::HAL_OK)));
127
+
128
+ basic_timer.initialize ();
129
+ }
130
+
127
131
auto timer_handle = basic_timer.getHandle ();
128
132
129
133
auto CK_INT = 54'000'000 ;
@@ -158,6 +162,22 @@ TEST_F(CoreSTM32HalBasicTimerTest, initializeConfig)
158
162
159
163
TEST_F (CoreSTM32HalBasicTimerTest, initializePeriodElapsedCallback)
160
164
{
165
+ MockFunction<void ()> callback;
166
+ std::function<void (TIM_HandleTypeDef *)> period_elapsed_callback = [](TIM_HandleTypeDef *) {};
167
+
168
+ {
169
+ basic_timer.registerCallback (callback.AsStdFunction ());
170
+
171
+ EXPECT_CALL (halmock, HAL_TIM_RegisterCallback (_, HAL_TIM_BASE_MSPINIT_CB_ID, _));
172
+ EXPECT_CALL (halmock, HAL_TIM_RegisterCallback (_, HAL_TIM_BASE_MSPDEINIT_CB_ID, _));
173
+ EXPECT_CALL (halmock, HAL_TIM_RegisterCallback (_, HAL_TIM_PERIOD_ELAPSED_CB_ID, _))
174
+ .WillOnce (DoAll (SaveArg<2 >(&period_elapsed_callback), Return (HAL_StatusTypeDef::HAL_OK)));
175
+ EXPECT_CALL (halmock, HAL_TIM_Base_Init);
176
+ EXPECT_CALL (halmock, HAL_TIMEx_MasterConfigSynchronization);
177
+
178
+ basic_timer.initialize ();
179
+ }
180
+
161
181
EXPECT_CALL (callback, Call);
162
182
period_elapsed_callback (&basic_timer.getHandle ());
163
183
}
0 commit comments