Patched from High Repo.
This commit is contained in:
parent
d1b6c828cb
commit
0eb4acc3f5
|
@ -37,28 +37,52 @@ TEST(test_ADC, FirstTest)
|
||||||
CHECK(true);
|
CHECK(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ADCStoresPortState(void){
|
|
||||||
mock().expectOneCall("RegEdit_ReadReg")
|
|
||||||
.withPointerParameter("reg", (void *) &PORTA.OUT)
|
|
||||||
.andReturnValue(0xFF);
|
|
||||||
|
|
||||||
mock().expectOneCall("RegEdit_ReadReg")
|
TEST(test_ADC, ADC_SetupSetsRegisters)
|
||||||
.withPointerParameter("reg", (void *) &PORTA.DIR)
|
{
|
||||||
.andReturnValue(0xFF);
|
//Clears control register A for ADC0
|
||||||
|
mock().expectOneCall("RegEdit_SetNum")
|
||||||
|
.withPointerParameter("reg", (void *) &ADC0.CTRLA)
|
||||||
|
.withUnsignedIntParameter("num", 0x00);
|
||||||
|
|
||||||
|
//Sets The sample accumulation number to 32.
|
||||||
|
mock().expectOneCall("RegEdit_SetNum")
|
||||||
|
.withPointerParameter("reg", (void *) &ADC0.CTRLB)
|
||||||
|
.withUnsignedIntParameter("num", 0x5);
|
||||||
|
|
||||||
|
//Sets the voltage reference to VDD or VCC.
|
||||||
|
mock().expectOneCall("RegEdit_SetBit")
|
||||||
|
.withPointerParameter("reg", (void *) &ADC0.CTRLC)
|
||||||
|
.withUnsignedIntParameter("bit_num", 4);
|
||||||
|
|
||||||
|
//Sets the pre-scalar for the adc sample rate.
|
||||||
|
mock().expectOneCall("RegEdit_SetBit")
|
||||||
|
.withPointerParameter("reg", (void *) &ADC0.CTRLC)
|
||||||
|
.withUnsignedIntParameter("bit_num", 2);
|
||||||
|
|
||||||
|
//Setup an Initalization delay.
|
||||||
|
mock().expectOneCall("RegEdit_OR_Num")
|
||||||
|
.withPointerParameter("reg", (void *) &ADC0.CTRLD)
|
||||||
|
.withUnsignedIntParameter("num", (2<<5));
|
||||||
|
|
||||||
|
//Set the bit for ADC variation during readings.
|
||||||
|
mock().expectOneCall("RegEdit_SetBit")
|
||||||
|
.withPointerParameter("reg", (void *) &ADC0.CTRLD)
|
||||||
|
.withUnsignedIntParameter("bit_num", 4);
|
||||||
|
|
||||||
|
ADC_Setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(test_ADC, ADC_InitPortAPin7UsesCorrectRegisters)
|
TEST(test_ADC, ADC_InitPortAPin7UsesCorrectRegisters)
|
||||||
{
|
{
|
||||||
ADCStoresPortState();
|
|
||||||
|
|
||||||
//Check for setting the direction to input.
|
//Check for setting the direction to input.
|
||||||
mock().expectOneCall("RegEdit_SetBit")
|
mock().expectOneCall("RegEdit_ClearBit")
|
||||||
.withPointerParameter("reg", (void *) &PORTA.DIRCLR)
|
.withPointerParameter("reg", (void *) &PORTA.DIR)
|
||||||
.withUnsignedIntParameter("bit_num", 7);
|
.withUnsignedIntParameter("bit_num", 7);
|
||||||
|
|
||||||
//Check that the pullup is off
|
//Check that the pullup is off
|
||||||
mock().expectOneCall("RegEdit_SetBit")
|
mock().expectOneCall("RegEdit_ClearBit")
|
||||||
.withPointerParameter("reg", (void *) &PORTA.OUTCLR)
|
.withPointerParameter("reg", (void *) &PORTA.OUT)
|
||||||
.withUnsignedIntParameter("bit_num", 7);
|
.withUnsignedIntParameter("bit_num", 7);
|
||||||
|
|
||||||
//Set the ISC(input sense config) to disable digital input
|
//Set the ISC(input sense config) to disable digital input
|
||||||
|
@ -74,16 +98,14 @@ TEST(test_ADC, ADC_InitPortAPin7UsesCorrectRegisters)
|
||||||
TEST(test_ADC, ADC_InitPortAPin0UsesCorrectRegisters)
|
TEST(test_ADC, ADC_InitPortAPin0UsesCorrectRegisters)
|
||||||
{
|
{
|
||||||
|
|
||||||
ADCStoresPortState();
|
|
||||||
|
|
||||||
//Check for setting the direction to input.
|
//Check for setting the direction to input.
|
||||||
mock().expectOneCall("RegEdit_SetBit")
|
mock().expectOneCall("RegEdit_ClearBit")
|
||||||
.withPointerParameter("reg", (void *) &PORTA.DIRCLR)
|
.withPointerParameter("reg", (void *) &PORTA.DIR)
|
||||||
.withUnsignedIntParameter("bit_num", 0);
|
.withUnsignedIntParameter("bit_num", 0);
|
||||||
|
|
||||||
//Check that the pullup is off
|
//Check that the pullup is off
|
||||||
mock().expectOneCall("RegEdit_SetBit")
|
mock().expectOneCall("RegEdit_ClearBit")
|
||||||
.withPointerParameter("reg", (void *) &PORTA.OUTCLR)
|
.withPointerParameter("reg", (void *) &PORTA.OUT)
|
||||||
.withUnsignedIntParameter("bit_num", 0);
|
.withUnsignedIntParameter("bit_num", 0);
|
||||||
|
|
||||||
//Set the ISC(input sense config) to disable digital input
|
//Set the ISC(input sense config) to disable digital input
|
||||||
|
@ -92,6 +114,7 @@ TEST(test_ADC, ADC_InitPortAPin0UsesCorrectRegisters)
|
||||||
.withPointerParameter("reg", (void *) &PORTA.PIN0CTRL)
|
.withPointerParameter("reg", (void *) &PORTA.PIN0CTRL)
|
||||||
.withUnsignedIntParameter("bit_num", PORT_ISC_INPUT_DISABLE_gc);
|
.withUnsignedIntParameter("bit_num", PORT_ISC_INPUT_DISABLE_gc);
|
||||||
|
|
||||||
|
|
||||||
ADC_Init(0);
|
ADC_Init(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,51 +124,45 @@ TEST(test_ADC, ADC_InitDoesNothingOnHighPinNumbers)
|
||||||
ADC_Init(8);
|
ADC_Init(8);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(test_ADC, ADC_EnableSuccessOnPin7)
|
TEST(test_ADC, ADC_EnablePasses)
|
||||||
{
|
{
|
||||||
|
|
||||||
//Set the MUXPOS or the ADC pin stuff.
|
|
||||||
mock().expectOneCall("RegEdit_OR_Num")
|
|
||||||
.withPointerParameter("reg", (void *) &ADC0.MUXPOS)
|
|
||||||
.withUnsignedIntParameter("num", ADC_MUXPOS_AIN7_gc);
|
|
||||||
|
|
||||||
mock().expectOneCall("RegEdit_SetBit")
|
mock().expectOneCall("RegEdit_SetBit")
|
||||||
.withPointerParameter("reg", (void *) &ADC0.CTRLA)
|
.withPointerParameter("reg", (void *) &ADC0.CTRLA)
|
||||||
.withUnsignedIntParameter("bit_num", 0);
|
.withUnsignedIntParameter("bit_num", 0);
|
||||||
|
|
||||||
ADC_Enable(7);
|
ADC_Enable();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST(test_ADC, ADC_EnableNothingOnHighPinNumbers)
|
|
||||||
{
|
|
||||||
|
|
||||||
mock().expectNoCall("RegEdit_SetBit");
|
|
||||||
ADC_Enable(8);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(test_ADC, ADC_DisablePasses)
|
TEST(test_ADC, ADC_DisablePasses)
|
||||||
{
|
{
|
||||||
//Clears the muxpos register
|
|
||||||
mock().expectOneCall("RegEdit_ClearRegister")
|
|
||||||
.withPointerParameter("reg", (void *) &ADC0.MUXPOS);
|
|
||||||
|
|
||||||
mock().expectOneCall("RegEdit_ClearBit")
|
mock().expectOneCall("RegEdit_ClearBit")
|
||||||
.withPointerParameter("reg", (void *) &ADC0.CTRLA)
|
.withPointerParameter("reg", (void *) &ADC0.CTRLA)
|
||||||
.withUnsignedIntParameter("bit_num", 0);
|
.withUnsignedIntParameter("bit_num", 0);
|
||||||
|
|
||||||
mock().expectOneCall("RegEdit_SetNum")
|
|
||||||
.withPointerParameter("reg", (void*) &PORTA.OUT)
|
|
||||||
.ignoreOtherParameters();
|
|
||||||
|
|
||||||
mock().expectOneCall("RegEdit_SetNum")
|
|
||||||
.withPointerParameter("reg", (void*) &PORTA.DIR)
|
|
||||||
.ignoreOtherParameters();
|
|
||||||
|
|
||||||
ADC_Disable();
|
ADC_Disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(test_ADC, ADC_SetPinSetsRightRegisters)
|
||||||
|
{
|
||||||
|
//It clears existing MUXPOS register values.
|
||||||
|
mock().expectOneCall("RegEdit_ClearRegister")
|
||||||
|
.withPointerParameter("reg", (void *) &ADC0.MUXPOS);
|
||||||
|
|
||||||
|
//It Correctly sets the pin number.
|
||||||
|
mock().expectOneCall("RegEdit_SetNum")
|
||||||
|
.withPointerParameter("reg", (void *) &ADC0.MUXPOS)
|
||||||
|
.withUnsignedIntParameter("num", 4);
|
||||||
|
|
||||||
|
ADC_SetPin(4);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TEST(test_ADC, ADC_SetPinFailsOnInvalidPin)
|
||||||
|
{
|
||||||
|
ADC_SetPin(8);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static uint16_t ADC_ReadValueFake(uint8_t pin_num)
|
static uint16_t ADC_ReadValueFake(uint8_t pin_num)
|
||||||
|
|
|
@ -30,17 +30,16 @@ TEST_GROUP(test_MockADC)
|
||||||
TEST(test_MockADC, ADC_InitExpects)
|
TEST(test_MockADC, ADC_InitExpects)
|
||||||
{
|
{
|
||||||
mock().expectOneCall("ADC_Init")
|
mock().expectOneCall("ADC_Init")
|
||||||
.withUnsignedIntParameter("pin_num", 0x2);
|
.withUnsignedIntParameter("pin_num", 7);
|
||||||
|
|
||||||
ADC_Init(0x2);
|
ADC_Init(7);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(test_MockADC, ADC_EnableExpects)
|
TEST(test_MockADC, ADC_EnableExpects)
|
||||||
{
|
{
|
||||||
mock().expectOneCall("ADC_Enable")
|
mock().expectOneCall("ADC_Enable");
|
||||||
.withUnsignedIntParameter("pin_num", 0x2);
|
|
||||||
|
|
||||||
ADC_Enable(0x2);
|
ADC_Enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -84,3 +83,12 @@ TEST(test_MockADC, MockADC_PushValueDoesntOverflowArray)
|
||||||
CHECK_TRUE(MockADC_GetIndex() <= 255);
|
CHECK_TRUE(MockADC_GetIndex() <= 255);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(test_MockADC, MockADC_SetupSetsGlobal)
|
||||||
|
{
|
||||||
|
CHECK_FALSE(MockADC_IsSetup());
|
||||||
|
|
||||||
|
ADC_Setup();
|
||||||
|
|
||||||
|
CHECK_TRUE(MockADC_IsSetup());
|
||||||
|
}
|
||||||
|
|
|
@ -38,8 +38,7 @@ static void ZCDSetupExpectations(void)
|
||||||
mock().expectOneCall("ADC_Init")
|
mock().expectOneCall("ADC_Init")
|
||||||
.withUnsignedIntParameter("pin_num", 7);
|
.withUnsignedIntParameter("pin_num", 7);
|
||||||
|
|
||||||
mock().expectOneCall("ADC_Enable")
|
mock().expectOneCall("ADC_Enable");
|
||||||
.withUnsignedIntParameter("pin_num", 7);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue