diff --git a/unit_tests/engine_test_helper.cpp b/unit_tests/engine_test_helper.cpp index aa40b58c64..87b659428a 100644 --- a/unit_tests/engine_test_helper.cpp +++ b/unit_tests/engine_test_helper.cpp @@ -119,10 +119,24 @@ void EngineTestHelper::moveTimeForwardUs(int deltaTimeUs) { timeNowUs += deltaTimeUs; } +efitimeus_t EngineTestHelper::getTimeNowUs(void) { + return timeNowUs; +} + void EngineTestHelper::fireTriggerEvents(int count) { fireTriggerEvents2(count, 5); // 5ms } +void EngineTestHelper::assertInjectorUpEvent(const char *msg, int eventIndex, efitime_t momentX, long injectorIndex) { + InjectionSignalPair *pair = &engine.fuelActuators[injectorIndex]; + ::assertEvent(&engine.executor, msg, eventIndex, (void*)seTurnPinHigh, timeNowUs, momentX, (long)pair); +} + +void EngineTestHelper::assertInjectorDownEvent(const char *msg, int eventIndex, efitime_t momentX, long injectorIndex) { + InjectionSignalPair *pair = &engine.fuelActuators[injectorIndex]; + ::assertEvent(&engine.executor, msg, eventIndex, (void*)seTurnPinLow, timeNowUs, momentX, (long)pair); +} + void EngineTestHelper::applyTriggerShape() { Engine *engine = &this->engine; EXPAND_Engine diff --git a/unit_tests/engine_test_helper.h b/unit_tests/engine_test_helper.h index 41491de43a..8286139566 100644 --- a/unit_tests/engine_test_helper.h +++ b/unit_tests/engine_test_helper.h @@ -31,8 +31,14 @@ public: void fireTriggerEvents2(int count, int delayMs); void clearQueue(); + scheduling_s * assertEvent5(TestExecutor *executor, const char *msg, int index, void *callback, efitime_t start, efitime_t momentX); + void assertEvent(TestExecutor *executor, const char *msg, int index, void *callback, efitime_t start, efitime_t momentX, long param); + void assertInjectorUpEvent(const char *msg, int eventIndex, efitime_t momentX, long injectorIndex); + void assertInjectorDownEvent(const char *msg, int eventIndex, efitime_t momentX, long injectorIndex); + int executeActions(); void moveTimeForwardUs(int deltaTimeUs); + efitimeus_t getTimeNowUs(void); Engine engine; persistent_config_s persistentConfig; diff --git a/unit_tests/tests/test_fasterEngineSpinningUp.cpp b/unit_tests/tests/test_fasterEngineSpinningUp.cpp index 93f1b9c090..961b08a5ca 100644 --- a/unit_tests/tests/test_fasterEngineSpinningUp.cpp +++ b/unit_tests/tests/test_fasterEngineSpinningUp.cpp @@ -38,7 +38,7 @@ void testFasterEngineSpinningUp() { assertEqualsM("plain#1", 0, engine->executor.size()); // check all events starting from now - int timeStartUs = timeNowUs; + int timeStartUs = eth.getTimeNowUs(); // advance 1 revolution eth.fireRise(200); @@ -75,8 +75,8 @@ void testFasterEngineSpinningUp() { // two simultaneous injections assertEqualsM("plain#2", 4, engine->executor.size()); // check real events - assertEvent5(&engine->executor, "inj start#2", 0, (void*)startSimultaniousInjection, timeNowUs, 97975); - assertEvent5(&engine->executor, "inj end#2", 1, (void*)endSimultaniousInjection, timeNowUs, 100000); + assertEvent5(&engine->executor, "inj start#2", 0, (void*)startSimultaniousInjection, eth.getTimeNowUs(), 97975); + assertEvent5(&engine->executor, "inj end#2", 1, (void*)endSimultaniousInjection, eth.getTimeNowUs(), 100000); // skip, clear & advance 1 more revolution at higher RPM eth.fireFall(60); diff --git a/unit_tests/tests/test_trigger_decoder.cpp b/unit_tests/tests/test_trigger_decoder.cpp index ecc58358e1..2413ce5b65 100644 --- a/unit_tests/tests/test_trigger_decoder.cpp +++ b/unit_tests/tests/test_trigger_decoder.cpp @@ -341,7 +341,7 @@ void testRpmCalculator(void) { timeNowUs += MS2US(5); // 5ms - int start = timeNowUs; + int start = eth.getTimeNowUs(); assertEqualsM("start value", 485000, start); // todo: why is this required here? we already have one 'prepareOutputSignals' in constructor, what's wrong with it? @@ -410,7 +410,7 @@ void testRpmCalculator(void) { assertEqualsM("fuel #3", 4.5450, eth.engine.injectionDuration); assertEquals(1500, eth.engine.rpmCalculator.rpmValue); - assertInjectorUpEvent("ev 0/2", 0, -4849, 2 PASS_ENGINE_PARAMETER_SUFFIX); + eth.assertInjectorUpEvent("ev 0/2", 0, -4849, 2); assertEqualsM("index #4", 6, eth.engine.triggerCentral.triggerState.getCurrentIndex()); @@ -692,7 +692,7 @@ static void setTestBug299(EngineTestHelper *eth) { assertEqualsM("rev cnt#3", 3, engine->rpmCalculator.getRevolutionCounter()); assertInjectorUpEvent("setTestBug299: 1@0", 0, MS2US(8.5), 0 PASS_ENGINE_PARAMETER_SUFFIX); assertInjectorDownEvent("@1", 1, MS2US(10), 0 PASS_ENGINE_PARAMETER_SUFFIX); - assertInjectorUpEvent("1@2", 2, MS2US(18.5), 1 PASS_ENGINE_PARAMETER_SUFFIX); + eth->assertInjectorUpEvent("1@2", 2, MS2US(18.5), 1); assertInjectorDownEvent("1@3", 3, MS2US(20), 1 PASS_ENGINE_PARAMETER_SUFFIX); assertEqualsM("exec#0", 0, eth->executeActions());