diff --git a/unit_tests/engine_test_helper.cpp b/unit_tests/engine_test_helper.cpp index ea70625522..105a068eb6 100644 --- a/unit_tests/engine_test_helper.cpp +++ b/unit_tests/engine_test_helper.cpp @@ -70,6 +70,12 @@ EngineTestHelper::EngineTestHelper(engine_type_e engineType) : engine (&persiste resetTriggerConfigChangedForUnitTest(); } +void EngineTestHelper::fireRise(int delayMs) { + timeNowUs += MS2US(delayMs); + firePrimaryTriggerRise(); + +} + void EngineTestHelper::firePrimaryTriggerRise() { board_configuration_s * boardConfiguration = &engine.engineConfiguration->bc; engine.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_RISING, &engine, engine.engineConfiguration, &persistentConfig, boardConfiguration); @@ -92,8 +98,8 @@ void EngineTestHelper::fireTriggerEventsWithDuration(int durationMs) { void EngineTestHelper::fireTriggerEvents2(int count, int durationMs) { int durationUs = MS2US(durationMs); for (int i = 0; i < count; i++) { - timeNowUs += durationUs; - firePrimaryTriggerRise(); + + fireRise(durationMs); timeNowUs += durationUs; firePrimaryTriggerFall(); } diff --git a/unit_tests/engine_test_helper.h b/unit_tests/engine_test_helper.h index 07cd482b4a..6364d667d9 100644 --- a/unit_tests/engine_test_helper.h +++ b/unit_tests/engine_test_helper.h @@ -20,11 +20,14 @@ class EngineTestHelper { public: EngineTestHelper(engine_type_e engineType); void applyTriggerShape(); + void fireRise(int delayMs); + void fireFall(int delayMs); + void firePrimaryTriggerRise(); void firePrimaryTriggerFall(); void fireTriggerEvents(int count); - void fireTriggerEventsWithDuration(int durationMs); - void fireTriggerEvents2(int count, int durationMs); + void fireTriggerEventsWithDuration(int delayMs); + void fireTriggerEvents2(int count, int delayMs); void clearQueue(); Engine engine; diff --git a/unit_tests/test_fasterEngineSpinningUp.cpp b/unit_tests/test_fasterEngineSpinningUp.cpp index 9acb7ef349..11892e6528 100644 --- a/unit_tests/test_fasterEngineSpinningUp.cpp +++ b/unit_tests/test_fasterEngineSpinningUp.cpp @@ -43,8 +43,7 @@ void testFasterEngineSpinningUp() { // check all events starting from now int timeStartUs = timeNowUs; // advance 1 revolution - timeNowUs += MS2US(200); - eth.firePrimaryTriggerRise(); + eth.fireRise(200); // check if the mode is changed assertEquals(SPINNING_UP, engine->rpmCalculator.getState()); @@ -66,8 +65,8 @@ void testFasterEngineSpinningUp() { // now clear and advance more eth.clearQueue(); - timeNowUs += MS2US(200); - eth.firePrimaryTriggerRise(); + + eth.fireRise(200); // check if the mode is changed when fully synched assertEquals(CRANKING, engine->rpmCalculator.getState()); diff --git a/unit_tests/test_startOfCrankingPrimingPulse.cpp b/unit_tests/test_startOfCrankingPrimingPulse.cpp index 2bf17647c0..3c5fd6e1c3 100644 --- a/unit_tests/test_startOfCrankingPrimingPulse.cpp +++ b/unit_tests/test_startOfCrankingPrimingPulse.cpp @@ -28,8 +28,8 @@ void testPlainCrankingWithoutAdvancedFeatures() { // still no RPM since need to cycles measure cycle duration assertEqualsM("RPM#1", 0, engine->rpmCalculator.getRpm(PASS_ENGINE_PARAMETER_SIGNATURE)); - timeNowUs += MS2US(200); - eth.firePrimaryTriggerRise(); + + eth.fireRise(200); assertEqualsM("RPM#2", 300, engine->rpmCalculator.getRpm(PASS_ENGINE_PARAMETER_SIGNATURE)); // two simultaneous injections assertEqualsM("plain#2", 4, schedulingQueue.size()); diff --git a/unit_tests/test_trigger_decoder.cpp b/unit_tests/test_trigger_decoder.cpp index d934bbd652..ba679827a2 100644 --- a/unit_tests/test_trigger_decoder.cpp +++ b/unit_tests/test_trigger_decoder.cpp @@ -677,8 +677,7 @@ static void setTestBug299(EngineTestHelper *eth) { /** * Trigger up - scheduling fuel for full engine cycle */ - timeNowUs += MS2US(20); - eth->firePrimaryTriggerRise(); + eth->fireRise(20); // fuel schedule - short pulses. // time...|0.......|10......|20......|30......|40 // inj #0 |.......#|........|.......#|........| @@ -984,8 +983,8 @@ void testFuelSchedulerBug299smallAndMedium(void) { schedulingQueue.executeAll(timeNowUs); engine->periodicFastCallback(PASS_ENGINE_PARAMETER_SIGNATURE); - timeNowUs += MS2US(20); - eth.firePrimaryTriggerRise(); + + eth.fireRise(20); assertEqualsM("Queue.size#05", 7, schedulingQueue.size()); schedulingQueue.executeAll(timeNowUs); @@ -1200,16 +1199,15 @@ void testSparkReverseOrderBug319(void) { timeNowUs = 0; setWholeTimingTable(0 PASS_ENGINE_PARAMETER_SUFFIX); - timeNowUs += MS2US(20); - eth.firePrimaryTriggerRise(); + + eth.fireRise(20); timeNowUs += MS2US(20); eth.firePrimaryTriggerFall(); schedulingQueue.executeAll(timeNowUs); - timeNowUs += MS2US(20); - eth.firePrimaryTriggerRise(); + eth.fireRise(20); timeNowUs += MS2US(20); eth.firePrimaryTriggerFall(); @@ -1221,8 +1219,8 @@ void testSparkReverseOrderBug319(void) { schedulingQueue.executeAll(timeNowUs); printf("***************************************************\r\n"); - timeNowUs += MS2US(20); - eth.firePrimaryTriggerRise(); + + eth.fireRise(20); schedulingQueue.executeAll(timeNowUs); @@ -1240,8 +1238,8 @@ void testSparkReverseOrderBug319(void) { printf("*************************************************** now let's have a good engine cycle and confirm things work\r\n"); - timeNowUs += MS2US(20); - eth.firePrimaryTriggerRise(); + + eth.fireRise(20); schedulingQueue.executeAll(timeNowUs); assertEqualsM("RPM#2", 545, eth.engine.rpmCalculator.getRpm(PASS_ENGINE_PARAMETER_SIGNATURE)); @@ -1255,8 +1253,7 @@ void testSparkReverseOrderBug319(void) { printf("*************************************************** (rpm is back) now let's have a good engine cycle and confirm things work\r\n"); - timeNowUs += MS2US(20); - eth.firePrimaryTriggerRise(); + eth.fireRise(20); schedulingQueue.executeAll(timeNowUs); assertEqualsM("RPM#3", 3000, eth.engine.rpmCalculator.getRpm(PASS_ENGINE_PARAMETER_SIGNATURE)); @@ -1270,8 +1267,7 @@ void testSparkReverseOrderBug319(void) { printf("*************************************************** (rpm is back 2) now let's have a good engine cycle and confirm things work\r\n"); - timeNowUs += MS2US(20); - eth.firePrimaryTriggerRise(); + eth.fireRise(20); schedulingQueue.executeAll(timeNowUs); assertEqualsM("RPM#4", 3000, eth.engine.rpmCalculator.getRpm(PASS_ENGINE_PARAMETER_SIGNATURE)); @@ -1317,8 +1313,8 @@ void testMissedSpark299(void) { schedulingQueue.executeAll(timeNowUs); assertEqualsM("ci#3", 1, eth.engine.triggerCentral.triggerState.currentCycle.current_index); - timeNowUs += MS2US(20); - eth.firePrimaryTriggerRise(); + + eth.fireRise(20); schedulingQueue.executeAll(timeNowUs); timeNowUs += MS2US(20); @@ -1352,15 +1348,15 @@ void testMissedSpark299(void) { setWholeTimingTable(-5 PASS_ENGINE_PARAMETER_SUFFIX); eth.engine.periodicFastCallback(PASS_ENGINE_PARAMETER_SIGNATURE); - timeNowUs += MS2US(20); - eth.firePrimaryTriggerRise(); + + eth.fireRise(20); schedulingQueue.executeAll(timeNowUs); timeNowUs += MS2US(20); eth.firePrimaryTriggerFall(); schedulingQueue.executeAll(timeNowUs); - timeNowUs += MS2US(20); - eth.firePrimaryTriggerRise(); + + eth.fireRise(20); schedulingQueue.executeAll(timeNowUs); timeNowUs += MS2US(20); eth.firePrimaryTriggerFall();