diff --git a/unit_tests/test_trigger_decoder.cpp b/unit_tests/test_trigger_decoder.cpp index e6c26180cf..abd94be7e9 100644 --- a/unit_tests/test_trigger_decoder.cpp +++ b/unit_tests/test_trigger_decoder.cpp @@ -1251,14 +1251,32 @@ void testMissedSpark299(void) { timeNow += MS2US(20); eth.firePrimaryTriggerRise(); schedulingQueue.executeAll(timeNow); + assertEqualsM("ci#0", 0, eth.engine.triggerCentral.triggerState.currentCycle.current_index); + + timeNow += MS2US(20); + eth.firePrimaryTriggerFall(); + schedulingQueue.executeAll(timeNow); + assertEqualsM("ci#1", 1, eth.engine.triggerCentral.triggerState.currentCycle.current_index); + + timeNow += MS2US(20); + eth.firePrimaryTriggerRise(); + schedulingQueue.executeAll(timeNow); + assertEqualsM("ci#2", 0, eth.engine.triggerCentral.triggerState.currentCycle.current_index); + + timeNow += MS2US(20); + eth.firePrimaryTriggerFall(); + schedulingQueue.executeAll(timeNow); + assertEqualsM("ci#3", 1, eth.engine.triggerCentral.triggerState.currentCycle.current_index); timeNow += MS2US(20); eth.firePrimaryTriggerRise(); schedulingQueue.executeAll(timeNow); timeNow += MS2US(20); - eth.firePrimaryTriggerRise(); + eth.firePrimaryTriggerFall(); schedulingQueue.executeAll(timeNow); + assertEqualsM("ci#5", 1, eth.engine.triggerCentral.triggerState.currentCycle.current_index); + printf("*************************************************** testMissedSpark299 start\r\n"); @@ -1271,10 +1289,16 @@ void testMissedSpark299(void) { timeNow += MS2US(20); eth.firePrimaryTriggerRise(); schedulingQueue.executeAll(timeNow); + timeNow += MS2US(20); + eth.firePrimaryTriggerFall(); + schedulingQueue.executeAll(timeNow); timeNow += MS2US(20); eth.firePrimaryTriggerRise(); schedulingQueue.executeAll(timeNow); + timeNow += MS2US(20); + eth.firePrimaryTriggerFall(); + schedulingQueue.executeAll(timeNow); setWholeTimingTable(-5 PASS_ENGINE_PARAMETER); eth.engine.periodicFastCallback(PASS_ENGINE_PARAMETER_F); @@ -1282,16 +1306,16 @@ void testMissedSpark299(void) { timeNow += MS2US(20); eth.firePrimaryTriggerRise(); schedulingQueue.executeAll(timeNow); -// timeNow += MS2US(20); -// eth.firePrimaryTriggerFall(); -// schedulingQueue.executeAll(timeNow); + timeNow += MS2US(20); + eth.firePrimaryTriggerFall(); + schedulingQueue.executeAll(timeNow); timeNow += MS2US(20); eth.firePrimaryTriggerRise(); schedulingQueue.executeAll(timeNow); -// timeNow += MS2US(20); -// eth.firePrimaryTriggerFall(); -// schedulingQueue.executeAll(timeNow); + timeNow += MS2US(20); + eth.firePrimaryTriggerFall(); + schedulingQueue.executeAll(timeNow); assertEqualsM("warningCounter#1", 8, warningCounter); }