From 0aa8693f21f111473d48816f0191526e192ba25f Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 7 Jul 2021 23:55:33 -0400 Subject: [PATCH] Matt has CUSTOM_ERR_VVT_OUT_OF_RANGE warning #2921 --- unit_tests/engine_test_helper.cpp | 10 ++++++++++ unit_tests/engine_test_helper.h | 1 + .../tests/trigger/test_nissan_vq_vvt.cpp | 20 +++++++++++++------ 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/unit_tests/engine_test_helper.cpp b/unit_tests/engine_test_helper.cpp index 9757c8d794..cacbc523c0 100644 --- a/unit_tests/engine_test_helper.cpp +++ b/unit_tests/engine_test_helper.cpp @@ -378,6 +378,16 @@ void EngineTestHelper::setTriggerType(trigger_type_e trigger DECLARE_ENGINE_PARA applyTriggerWaveform(); } +void EngineTestHelper::executeUntil(int timeUs) { + scheduling_s *head; + while ((head = engine.executor.getHead()) != nullptr) { + if (head->momentX > timeUs) { + break; + } + setTimeAndInvokeEventsUs(head->momentX); + } +} + void setupSimpleTestEngineWithMafAndTT_ONE_trigger(EngineTestHelper *eth, injection_mode_e injectionMode) { setupSimpleTestEngineWithMaf(eth, injectionMode, TT_ONE); } diff --git a/unit_tests/engine_test_helper.h b/unit_tests/engine_test_helper.h index 5566a340f6..eac1363819 100644 --- a/unit_tests/engine_test_helper.h +++ b/unit_tests/engine_test_helper.h @@ -58,6 +58,7 @@ public: void smartFireFall(float delayMs); void moveTimeForwardAndInvokeEventsUs(int deltaTimeUs); void setTimeAndInvokeEventsUs(int timeNowUs); + void executeUntil(int timeUs); void moveTimeForwardAndInvokeEventsSec(int deltaTimeSeconds); void smartFireTriggerEvents2(int count, float delayMs); diff --git a/unit_tests/tests/trigger/test_nissan_vq_vvt.cpp b/unit_tests/tests/trigger/test_nissan_vq_vvt.cpp index 81677b1a15..8fbc4ab075 100644 --- a/unit_tests/tests/trigger/test_nissan_vq_vvt.cpp +++ b/unit_tests/tests/trigger/test_nissan_vq_vvt.cpp @@ -108,17 +108,25 @@ TEST(nissan, vq_vvt) { PASS_ENGINE_PARAMETER_SUFFIX); } + eth.executeUntil(1473000); + ASSERT_EQ(0, GET_RPM()); + + eth.executeUntil(1475000); + ASSERT_EQ(167, GET_RPM()); + TriggerCentral *tc = &engine->triggerCentral; + + eth.executeUntil(3593000); + ASSERT_TRUE(tc->vvtState[0][0].getShaftSynchronized()); + scheduling_s *head; while ((head = engine->executor.getHead()) != nullptr) { eth.setTimeAndInvokeEventsUs(head->momentX); + + ASSERT_TRUE(tc->vvtState[0][0].getShaftSynchronized()); + // let's celebrate that vvtPosition stays the same + ASSERT_NEAR(-testVvtOffset, tc->vvtPosition[0][0], EPS2D); } - ASSERT_EQ(167, GET_RPM()); - - TriggerCentral *tc = &engine->triggerCentral; - - - ASSERT_TRUE(tc->vvtState[0][0].getShaftSynchronized()); ASSERT_TRUE(tc->vvtState[1][0].getShaftSynchronized()); ASSERT_NEAR(-testVvtOffset, tc->vvtPosition[0][0], EPS2D);