summaryrefslogtreecommitdiff
path: root/FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestTimerConfigurator.c
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestTimerConfigurator.c')
-rw-r--r--FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestTimerConfigurator.c112
1 files changed, 112 insertions, 0 deletions
diff --git a/FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestTimerConfigurator.c b/FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestTimerConfigurator.c
new file mode 100644
index 000000000..5c7d4e044
--- /dev/null
+++ b/FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestTimerConfigurator.c
@@ -0,0 +1,112 @@
+#include "unity.h"
+#include "Types.h"
+#include "TimerConfigurator.h"
+#include "AT91SAM7X256.h"
+#include "MockTimerInterruptConfigurator.h"
+
+AT91S_PMC PmcPeripheral;
+AT91S_TC TimerCounter0Peripheral;
+AT91S_PIO PioBPeripheral;
+
+void setUp(void)
+{
+}
+
+void tearDown(void)
+{
+}
+
+void testEnablePeripheralClocksShouldEnableClockToTimer0Peripheral(void)
+{
+ AT91C_BASE_PMC->PMC_PCER = 0;
+ Timer_EnablePeripheralClocks();
+ TEST_ASSERT_EQUAL(
+ TIMER0_CLOCK_ENABLE,
+ AT91C_BASE_PMC->PMC_PCER & TIMER0_CLOCK_ENABLE);
+}
+
+void testEnablePeripheralClocksShouldEnableClockToPIOBPeripheral(void)
+{
+ AT91C_BASE_PMC->PMC_PCER = 0;
+ Timer_EnablePeripheralClocks();
+ TEST_ASSERT_EQUAL(
+ PIOB_CLOCK_ENABLE,
+ AT91C_BASE_PMC->PMC_PCER & PIOB_CLOCK_ENABLE);
+}
+
+void testResetShouldSetTimer0ClockDisableBit_DisableTimer0Interrupts_ClearStatusRegister(void)
+{
+ AT91C_BASE_TC0->TC_CCR = 0;
+ AT91C_BASE_TC0->TC_IDR = 0;
+ AT91C_BASE_TC0->TC_SR = 0xFFFFFFFF;
+ Timer_Reset();
+ TEST_ASSERT_EQUAL(0x00000002, AT91C_BASE_TC0->TC_CCR);
+ TEST_ASSERT_EQUAL(0xffffffff, AT91C_BASE_TC0->TC_IDR);
+ // CANNOT BE VERIFIED!! TEST_ASSERT_EQUAL(0X00000000, AT91C_BASE_TC0->TC_SR);
+}
+
+void testEnableOutputPinShouldEnable_TIOA0_DigitalOutput(void)
+{
+ AT91C_BASE_PIOB->PIO_PDR = 0;
+ Timer_EnableOutputPin();
+ TEST_ASSERT_EQUAL(TIOA0_PIN_MASK, AT91C_BASE_PIOB->PIO_PDR);
+}
+
+void testConfigureModeShouldConfigureTimer0ClockSourceForMasterClockDividedBy1024(void)
+{
+ AT91C_BASE_TC0->TC_CMR = 0;
+ Timer_ConfigureMode();
+ TEST_ASSERT_EQUAL(0x00000004, AT91C_BASE_TC0->TC_CMR & 0x00000007);
+}
+
+void testConfigureModeShouldConfigureTimer0ForWaveGeneration(void)
+{
+ AT91C_BASE_TC0->TC_CMR = 0;
+ Timer_ConfigureMode();
+ TEST_ASSERT_EQUAL(0x00008000, AT91C_BASE_TC0->TC_CMR & 0x00008000);
+}
+
+void testConfigureModeShouldConfigureTimer0ForUpModeWithAutomaticTriggerOnRCCompare(void)
+{
+ AT91C_BASE_TC0->TC_CMR = 0;
+ Timer_ConfigureMode();
+ TEST_ASSERT_EQUAL(0x00004000, AT91C_BASE_TC0->TC_CMR & 0x00006000);
+}
+
+void testConfigureModeShouldConfigureTimer0ToToggleTIOAOnRCCompare(void)
+{
+ AT91C_BASE_TC0->TC_CMR = 0;
+ Timer_ConfigureMode();
+ TEST_ASSERT_EQUAL(0x000C0000, AT91C_BASE_TC0->TC_CMR & 0x000C0000);
+}
+
+void testConfigurePeriodShouldConfigureRegisterCFor10msInterval(void)
+{
+ AT91C_BASE_TC0->TC_RC = 0;
+ Timer_ConfigurePeriod();
+ TEST_ASSERT_EQUAL(469, AT91C_BASE_TC0->TC_RC);
+}
+
+void testEnableShouldSetEnableFlagForTimer0(void)
+{
+ AT91C_BASE_TC0->TC_CCR = 0;
+ Timer_Enable();
+ TEST_ASSERT_EQUAL_INT(1, AT91C_BASE_TC0->TC_CCR);
+}
+
+void testConfigureInterruptHandler(void)
+{
+ Timer_DisableInterrupt_Expect();
+ Timer_ResetSystemTime_Expect();
+ Timer_ConfigureInterrupt_Expect();
+ Timer_EnableInterrupt_Expect();
+
+ Timer_ConfigureInterruptHandler();
+}
+
+void testStartShouldSetSoftwareTriggerFlag(void)
+{
+ AT91C_BASE_TC0->TC_CCR = 0;
+ Timer_Start();
+ TEST_ASSERT_EQUAL(0x04, AT91C_BASE_TC0->TC_CCR);
+}