diff --git a/radio/src/tests/switches.cpp b/radio/src/tests/switches.cpp index f39720d1d..f61f8b6ee 100644 --- a/radio/src/tests/switches.cpp +++ b/radio/src/tests/switches.cpp @@ -482,6 +482,26 @@ TEST(getSwitch, edgeInstant) EXPECT_EQ(getSwitch(SWSRC_SW1), false); EXPECT_EQ(getSwitch(SWSRC_SW2), false); + //test what happens when EDGE condition is true and + //logical switches are reset - the switch should fire again + + simuSetSwitch(0, 1); //SA up + simuSetSwitch(5, 1); //SF up + logicalSwitchesTimerTick(); + evalLogicalSwitches(); + EXPECT_EQ(getSwitch(SWSRC_SW1), false); //switch will not trigger, because SF was already up + EXPECT_EQ(getSwitch(SWSRC_SW2), false); + + logicalSwitchesReset(); + logicalSwitchesTimerTick(); + evalLogicalSwitches(); + EXPECT_EQ(getSwitch(SWSRC_SW1), true); + EXPECT_EQ(getSwitch(SWSRC_SW2), true); + + logicalSwitchesTimerTick(); + evalLogicalSwitches(); + EXPECT_EQ(getSwitch(SWSRC_SW1), false); + EXPECT_EQ(getSwitch(SWSRC_SW2), false); } TEST(getSwitch, edgeRelease)