From 17030fa6b637f67d41e2c54f6ab411447e3e4395 Mon Sep 17 00:00:00 2001 From: Yann Locatelli Date: Mon, 4 Mar 2024 13:18:03 +0100 Subject: [PATCH] Revert "not in setup" This reverts commit 78daabd6a3b092b886005e7cc16ec916281760d9. --- drivers/CoreDAC/tests/CoreDAC_test.cpp | 163 +++++++----------- .../tests/CoreSTM32HalBasicTimer_test.cpp | 118 ++++++------- 2 files changed, 109 insertions(+), 172 deletions(-) diff --git a/drivers/CoreDAC/tests/CoreDAC_test.cpp b/drivers/CoreDAC/tests/CoreDAC_test.cpp index 3379c4cf0a..f832d99391 100644 --- a/drivers/CoreDAC/tests/CoreDAC_test.cpp +++ b/drivers/CoreDAC/tests/CoreDAC_test.cpp @@ -22,13 +22,44 @@ using ::testing::SaveArgPointee; class CoreDACTest : public ::testing::Test { protected: - // void SetUp() override {} + void SetUp() override + { + dac.registerDMACallbacks(on_half_transfer_callback.AsStdFunction(), + on_complete_transfer_callback.AsStdFunction()); + + EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_MSPINIT_CB_ID, _)) + .WillOnce(DoAll(SaveArg<2>(&mspinit_callback), Return(HAL_StatusTypeDef::HAL_OK))); + EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_MSPDEINIT_CB_ID, _)) + .WillOnce(DoAll(SaveArg<2>(&mspdeinit_callback), Return(HAL_StatusTypeDef::HAL_OK))); + EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_CH1_HALF_COMPLETE_CB_ID, _)) + .WillOnce(DoAll(SaveArg<2>(&dma_half_transfer_callback), Return(HAL_StatusTypeDef::HAL_OK))); + EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_CH1_COMPLETE_CB_ID, _)) + .WillOnce(DoAll(SaveArg<2>(&dma_complete_transfer_callback), Return(HAL_StatusTypeDef::HAL_OK))); + + EXPECT_CALL(halmock, HAL_DAC_Init); + EXPECT_CALL(haltimermock, linkDACTimer); + EXPECT_CALL(halmock, HAL_DAC_ConfigChannel) + .WillOnce(DoAll(SaveArgPointee<1>(&dac_config), Return(HAL_StatusTypeDef::HAL_OK))); + + dac.initialize(); + } // void TearDown() override {} mock::CoreSTM32Hal halmock; mock::STM32HalTimer haltimermock; CoreDAC dac {halmock, haltimermock}; + + MockFunction on_half_transfer_callback; + MockFunction on_complete_transfer_callback; + + std::function mspinit_callback = [](DAC_HandleTypeDef *) {}; + std::function mspdeinit_callback = [](DAC_HandleTypeDef *) {}; + + DAC_ChannelConfTypeDef dac_config {}; + + std::function dma_half_transfer_callback = [](DAC_HandleTypeDef *) {}; + std::function dma_complete_transfer_callback = [](DAC_HandleTypeDef *) {}; }; TEST_F(CoreDACTest, initializationDefault) @@ -66,72 +97,38 @@ TEST_F(CoreDACTest, initialize) dac.initialize(); } -TEST_F(CoreDACTest, initializeMspInitDeinit) +TEST_F(CoreDACTest, initializeMspInit) { - std::function mspinit_callback = [](DAC_HandleTypeDef *) {}; - std::function mspdeinit_callback = [](DAC_HandleTypeDef *) {}; - - { - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_MSPINIT_CB_ID, _)) - .WillOnce(DoAll(SaveArg<2>(&mspinit_callback), Return(HAL_StatusTypeDef::HAL_OK))); - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_MSPDEINIT_CB_ID, _)) - .WillOnce(DoAll(SaveArg<2>(&mspdeinit_callback), Return(HAL_StatusTypeDef::HAL_OK))); - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_CH1_HALF_COMPLETE_CB_ID, _)); - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_CH1_COMPLETE_CB_ID, _)); - EXPECT_CALL(halmock, HAL_DAC_Init); - EXPECT_CALL(haltimermock, linkDACTimer); - EXPECT_CALL(halmock, HAL_DAC_ConfigChannel); - - dac.initialize(); - } + EXPECT_CALL(halmock, HAL_RCC_DMA1_CLK_ENABLE); + EXPECT_CALL(halmock, HAL_NVIC_SetPriority); + EXPECT_CALL(halmock, HAL_NVIC_EnableIRQ); + EXPECT_CALL(halmock, HAL_DMA_Init); - { - EXPECT_CALL(halmock, HAL_RCC_DMA1_CLK_ENABLE); - EXPECT_CALL(halmock, HAL_NVIC_SetPriority); - EXPECT_CALL(halmock, HAL_NVIC_EnableIRQ); - EXPECT_CALL(halmock, HAL_DMA_Init); - EXPECT_CALL(halmock, HAL_RCC_DAC_CLK_ENABLE); + EXPECT_CALL(halmock, HAL_RCC_DAC_CLK_ENABLE); - mspinit_callback(&dac.getHandle()); - } // MSP Init + mspinit_callback(&dac.getHandle()); +} - { - EXPECT_CALL(halmock, HAL_DMA_DeInit); - EXPECT_CALL(halmock, HAL_RCC_DAC_CLK_DISABLE); - mspdeinit_callback(&dac.getHandle()); - } // MSP Deinit +TEST_F(CoreDACTest, initializeMspDeinit) +{ + EXPECT_CALL(halmock, HAL_DMA_DeInit); + EXPECT_CALL(halmock, HAL_RCC_DAC_CLK_DISABLE); + mspdeinit_callback(&dac.getHandle()); } TEST_F(CoreDACTest, initializeMspInitDMAConfig) { - std::function mspinit_callback = [](DAC_HandleTypeDef *) {}; - - { - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_MSPINIT_CB_ID, _)) - .WillOnce(DoAll(SaveArg<2>(&mspinit_callback), Return(HAL_StatusTypeDef::HAL_OK))); - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_MSPDEINIT_CB_ID, _)); - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_CH1_HALF_COMPLETE_CB_ID, _)); - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_CH1_COMPLETE_CB_ID, _)); - EXPECT_CALL(halmock, HAL_DAC_Init); - EXPECT_CALL(haltimermock, linkDACTimer); - EXPECT_CALL(halmock, HAL_DAC_ConfigChannel); - - dac.initialize(); - } - auto dma_handle = DMA_HandleTypeDef {}; - { - EXPECT_CALL(halmock, HAL_RCC_DMA1_CLK_ENABLE); - EXPECT_CALL(halmock, HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, _, _)); - EXPECT_CALL(halmock, HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn)); - EXPECT_CALL(halmock, HAL_DMA_Init) - .WillOnce(DoAll(SaveArgPointee<0>(&dma_handle), Return(HAL_StatusTypeDef::HAL_OK))); + EXPECT_CALL(halmock, HAL_RCC_DMA1_CLK_ENABLE); + EXPECT_CALL(halmock, HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, _, _)); + EXPECT_CALL(halmock, HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn)); + EXPECT_CALL(halmock, HAL_DMA_Init) + .WillOnce(DoAll(SaveArgPointee<0>(&dma_handle), Return(HAL_StatusTypeDef::HAL_OK))); - EXPECT_CALL(halmock, HAL_RCC_DAC_CLK_ENABLE); + EXPECT_CALL(halmock, HAL_RCC_DAC_CLK_ENABLE); - mspinit_callback(&dac.getHandle()); - } // MSP Init - DMA Specific + mspinit_callback(&dac.getHandle()); EXPECT_NE(&dma_handle, nullptr); EXPECT_EQ(dma_handle.Instance, DMA1_Stream5); @@ -142,60 +139,20 @@ TEST_F(CoreDACTest, initializeMspInitDMAConfig) TEST_F(CoreDACTest, initializeConfig) { - DAC_ChannelConfTypeDef dac_config {}; - - { - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_MSPINIT_CB_ID, _)); - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_MSPDEINIT_CB_ID, _)); - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_CH1_HALF_COMPLETE_CB_ID, _)); - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_CH1_COMPLETE_CB_ID, _)); - EXPECT_CALL(halmock, HAL_DAC_Init); - EXPECT_CALL(haltimermock, linkDACTimer); - EXPECT_CALL(halmock, HAL_DAC_ConfigChannel) - .WillOnce(DoAll(SaveArgPointee<1>(&dac_config), Return(HAL_StatusTypeDef::HAL_OK))); - - dac.initialize(); - } - // necessary to reach the full voltage range in DAC output EXPECT_EQ(dac_config.DAC_OutputBuffer, DAC_OUTPUTBUFFER_ENABLE); } -TEST_F(CoreDACTest, initializeDmaHalfCompleteTransferCallback) +TEST_F(CoreDACTest, initializeDmaHalfTransferCallback) { - MockFunction on_half_transfer_callback; - MockFunction on_complete_transfer_callback; - - std::function dma_half_transfer_callback = [](DAC_HandleTypeDef *) {}; - std::function dma_complete_transfer_callback = [](DAC_HandleTypeDef *) {}; - - { - dac.registerDMACallbacks(on_half_transfer_callback.AsStdFunction(), - on_complete_transfer_callback.AsStdFunction()); - - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_MSPINIT_CB_ID, _)); - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_MSPDEINIT_CB_ID, _)); - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_CH1_HALF_COMPLETE_CB_ID, _)) - .WillOnce(DoAll(SaveArg<2>(&dma_half_transfer_callback), Return(HAL_StatusTypeDef::HAL_OK))); - EXPECT_CALL(halmock, HAL_DAC_RegisterCallback(_, HAL_DAC_CH1_COMPLETE_CB_ID, _)) - .WillOnce(DoAll(SaveArg<2>(&dma_complete_transfer_callback), Return(HAL_StatusTypeDef::HAL_OK))); - - EXPECT_CALL(halmock, HAL_DAC_Init); - EXPECT_CALL(haltimermock, linkDACTimer); - EXPECT_CALL(halmock, HAL_DAC_ConfigChannel); - - dac.initialize(); - } - - { - EXPECT_CALL(on_half_transfer_callback, Call); - dma_half_transfer_callback(&dac.getHandle()); - } // DMA half transfer + EXPECT_CALL(on_half_transfer_callback, Call); + dma_half_transfer_callback(&dac.getHandle()); +} - { - EXPECT_CALL(on_complete_transfer_callback, Call); - dma_complete_transfer_callback(&dac.getHandle()); - } // DMA complete transfer +TEST_F(CoreDACTest, initializeDmaCompleteTransferCallback) +{ + EXPECT_CALL(on_complete_transfer_callback, Call); + dma_complete_transfer_callback(&dac.getHandle()); } TEST_F(CoreDACTest, terminate) diff --git a/drivers/CoreDAC/tests/CoreSTM32HalBasicTimer_test.cpp b/drivers/CoreDAC/tests/CoreSTM32HalBasicTimer_test.cpp index 7d9907a676..94fa88a193 100644 --- a/drivers/CoreDAC/tests/CoreSTM32HalBasicTimer_test.cpp +++ b/drivers/CoreDAC/tests/CoreSTM32HalBasicTimer_test.cpp @@ -22,12 +22,35 @@ using ::testing::SaveArgPointee; class CoreSTM32HalBasicTimerTest : public ::testing::Test { protected: - // void SetUp() override {} + 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 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) @@ -64,69 +87,42 @@ TEST_F(CoreSTM32HalBasicTimerTest, initialize) basic_timer.initialize(); } -TEST_F(CoreSTM32HalBasicTimerTest, initializeMspInitDeinit) +TEST_F(CoreSTM32HalBasicTimerTest, initializeMspInit) { - std::function mspinit_callback = [](TIM_HandleTypeDef *) {}; - std::function mspdeinit_callback = [](TIM_HandleTypeDef *) {}; - - { - 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); + auto *basic_timer_instance = basic_timer.getHandle().Instance; - basic_timer.initialize(); + 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()); +} + +TEST_F(CoreSTM32HalBasicTimerTest, initializeMspDeinit) +{ auto *basic_timer_instance = basic_timer.getHandle().Instance; - { - 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 + 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_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 + mspdeinit_callback(&basic_timer.getHandle()); } 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; @@ -161,22 +157,6 @@ 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()); }