From 1138cd749f69d5d420e5cfae4dd79a1439163fad Mon Sep 17 00:00:00 2001 From: Yann Locatelli Date: Mon, 4 Mar 2024 13:00:49 +0100 Subject: [PATCH] not in setup --- .../tests/CoreSTM32HalBasicTimer_test.cpp | 118 ++++++++++-------- 1 file changed, 69 insertions(+), 49 deletions(-) diff --git a/drivers/CoreDAC/tests/CoreSTM32HalBasicTimer_test.cpp b/drivers/CoreDAC/tests/CoreSTM32HalBasicTimer_test.cpp index 500a21010e..c56c0bec31 100644 --- a/drivers/CoreDAC/tests/CoreSTM32HalBasicTimer_test.cpp +++ b/drivers/CoreDAC/tests/CoreSTM32HalBasicTimer_test.cpp @@ -23,35 +23,12 @@ using ::testing::SaveArgPointee; class CoreSTM32HalBasicTimerTest : public ::testing::Test { protected: - void SetUp() override - { - basic_timer.registerCallback(callback.AsStdFunction()); - - EXPECT_CALL(halmock, HAL_TIM_RegisterCallback(_, HAL_TIM_BASE_MSPINIT_CB_ID, _)) - .WillOnce(DoAll(SaveArg<2>(&mspinit_callback), Return(HAL_StatusTypeDef::HAL_OK))); - EXPECT_CALL(halmock, HAL_TIM_RegisterCallback(_, HAL_TIM_BASE_MSPDEINIT_CB_ID, _)) - .WillOnce(DoAll(SaveArg<2>(&mspdeinit_callback), Return(HAL_StatusTypeDef::HAL_OK))); - EXPECT_CALL(halmock, HAL_TIM_RegisterCallback(_, HAL_TIM_PERIOD_ELAPSED_CB_ID, _)) - .WillOnce(DoAll(SaveArg<2>(&period_elapsed_callback), Return(HAL_StatusTypeDef::HAL_OK))); - - EXPECT_CALL(halmock, HAL_TIM_Base_Init); - EXPECT_CALL(halmock, HAL_TIMEx_MasterConfigSynchronization) - .WillOnce(DoAll(SaveArgPointee<1>(&basic_timer_master_config), Return(HAL_StatusTypeDef::HAL_OK))); - - basic_timer.initialize(); - } + // void SetUp() override {} // void TearDown() override {} mock::CoreSTM32Hal halmock; CoreSTM32HalBasicTimer basic_timer {halmock}; - TIM_MasterConfigTypeDef basic_timer_master_config {}; - - MockFunction callback; - - std::function mspinit_callback = [](TIM_HandleTypeDef *) {}; - std::function mspdeinit_callback = [](TIM_HandleTypeDef *) {}; - std::function period_elapsed_callback = [](TIM_HandleTypeDef *) {}; }; TEST_F(CoreSTM32HalBasicTimerTest, initializationDefault) @@ -88,42 +65,69 @@ TEST_F(CoreSTM32HalBasicTimerTest, initialize) basic_timer.initialize(); } -TEST_F(CoreSTM32HalBasicTimerTest, initializeMspInit) +TEST_F(CoreSTM32HalBasicTimerTest, initializeMspInitDeinit) { - auto *basic_timer_instance = basic_timer.getHandle().Instance; + std::function mspinit_callback = [](TIM_HandleTypeDef *) {}; + std::function mspdeinit_callback = [](TIM_HandleTypeDef *) {}; - if (basic_timer_instance == TIM6) { - EXPECT_CALL(halmock, HAL_RCC_TIM6_CLK_ENABLE); - EXPECT_CALL(halmock, HAL_NVIC_SetPriority(TIM6_DAC_IRQn, _, _)); - EXPECT_CALL(halmock, HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn)); - } else if (basic_timer_instance == TIM7) { - EXPECT_CALL(halmock, HAL_RCC_TIM7_CLK_ENABLE); - EXPECT_CALL(halmock, HAL_NVIC_SetPriority(TIM7_IRQn, _, _)); - EXPECT_CALL(halmock, HAL_NVIC_EnableIRQ(TIM7_IRQn)); - } else { - FAIL(); // Only timers 6 and 7 can be used as Basic Timer - } + { + EXPECT_CALL(halmock, HAL_TIM_RegisterCallback(_, HAL_TIM_BASE_MSPINIT_CB_ID, _)) + .WillOnce(DoAll(SaveArg<2>(&mspinit_callback), Return(HAL_StatusTypeDef::HAL_OK))); + EXPECT_CALL(halmock, HAL_TIM_RegisterCallback(_, HAL_TIM_BASE_MSPDEINIT_CB_ID, _)) + .WillOnce(DoAll(SaveArg<2>(&mspdeinit_callback), Return(HAL_StatusTypeDef::HAL_OK))); + EXPECT_CALL(halmock, HAL_TIM_RegisterCallback(_, HAL_TIM_PERIOD_ELAPSED_CB_ID, _)); + EXPECT_CALL(halmock, HAL_TIM_Base_Init); + EXPECT_CALL(halmock, HAL_TIMEx_MasterConfigSynchronization); - mspinit_callback(&basic_timer.getHandle()); -} + basic_timer.initialize(); + } -TEST_F(CoreSTM32HalBasicTimerTest, initializeMspDeinit) -{ auto *basic_timer_instance = basic_timer.getHandle().Instance; - if (basic_timer_instance == TIM6) { - EXPECT_CALL(halmock, HAL_RCC_TIM6_CLK_DISABLE); - } else if (basic_timer_instance == TIM7) { - EXPECT_CALL(halmock, HAL_RCC_TIM7_CLK_DISABLE); - } else { - FAIL(); // Only timers 6 and 7 can be used as Basic Timer - } + { + if (basic_timer_instance == TIM6) { + EXPECT_CALL(halmock, HAL_RCC_TIM6_CLK_ENABLE); + EXPECT_CALL(halmock, HAL_NVIC_SetPriority(TIM6_DAC_IRQn, _, _)); + EXPECT_CALL(halmock, HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn)); + } else if (basic_timer_instance == TIM7) { + EXPECT_CALL(halmock, HAL_RCC_TIM7_CLK_ENABLE); + EXPECT_CALL(halmock, HAL_NVIC_SetPriority(TIM7_IRQn, _, _)); + EXPECT_CALL(halmock, HAL_NVIC_EnableIRQ(TIM7_IRQn)); + } else { + FAIL(); // Only timers 6 and 7 can be used as Basic Timer + } + + mspinit_callback(&basic_timer.getHandle()); + } // MSP Init - mspdeinit_callback(&basic_timer.getHandle()); + { + if (basic_timer_instance == TIM6) { + EXPECT_CALL(halmock, HAL_RCC_TIM6_CLK_DISABLE); + } else if (basic_timer_instance == TIM7) { + EXPECT_CALL(halmock, HAL_RCC_TIM7_CLK_DISABLE); + } else { + FAIL(); // Only timers 6 and 7 can be used as Basic Timer + } + + mspdeinit_callback(&basic_timer.getHandle()); + } // MSP Deinit } TEST_F(CoreSTM32HalBasicTimerTest, initializeConfig) { + TIM_MasterConfigTypeDef basic_timer_master_config {}; + + { + EXPECT_CALL(halmock, HAL_TIM_RegisterCallback(_, HAL_TIM_BASE_MSPINIT_CB_ID, _)); + EXPECT_CALL(halmock, HAL_TIM_RegisterCallback(_, HAL_TIM_BASE_MSPDEINIT_CB_ID, _)); + EXPECT_CALL(halmock, HAL_TIM_RegisterCallback(_, HAL_TIM_PERIOD_ELAPSED_CB_ID, _)); + EXPECT_CALL(halmock, HAL_TIM_Base_Init); + EXPECT_CALL(halmock, HAL_TIMEx_MasterConfigSynchronization) + .WillOnce(DoAll(SaveArgPointee<1>(&basic_timer_master_config), Return(HAL_StatusTypeDef::HAL_OK))); + + basic_timer.initialize(); + } + auto timer_handle = basic_timer.getHandle(); auto CK_INT = 54'000'000; @@ -158,6 +162,22 @@ TEST_F(CoreSTM32HalBasicTimerTest, initializeConfig) TEST_F(CoreSTM32HalBasicTimerTest, initializePeriodElapsedCallback) { + MockFunction callback; + std::function period_elapsed_callback = [](TIM_HandleTypeDef *) {}; + + { + basic_timer.registerCallback(callback.AsStdFunction()); + + EXPECT_CALL(halmock, HAL_TIM_RegisterCallback(_, HAL_TIM_BASE_MSPINIT_CB_ID, _)); + EXPECT_CALL(halmock, HAL_TIM_RegisterCallback(_, HAL_TIM_BASE_MSPDEINIT_CB_ID, _)); + EXPECT_CALL(halmock, HAL_TIM_RegisterCallback(_, HAL_TIM_PERIOD_ELAPSED_CB_ID, _)) + .WillOnce(DoAll(SaveArg<2>(&period_elapsed_callback), Return(HAL_StatusTypeDef::HAL_OK))); + EXPECT_CALL(halmock, HAL_TIM_Base_Init); + EXPECT_CALL(halmock, HAL_TIMEx_MasterConfigSynchronization); + + basic_timer.initialize(); + } + EXPECT_CALL(callback, Call); period_elapsed_callback(&basic_timer.getHandle()); }