From 71fdfe6756378c53fa4c23e37744cf64ea2c7aa9 Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 25 Jun 2021 01:31:53 -0400 Subject: [PATCH] giving unit tests a chance to use tdcMarkCallback --- firmware/controllers/algo/engine.h | 3 +++ firmware/controllers/engine_cycle/rpm_calculator.cpp | 2 +- firmware/controllers/trigger/trigger_central.cpp | 2 -- .../tests/ignition_injection/injection_mode_transition.cpp | 1 + .../tests/ignition_injection/test_one_cylinder_logic.cpp | 1 + .../ignition_injection/test_startOfCrankingPrimingPulse.cpp | 1 + unit_tests/tests/trigger/test_fasterEngineSpinningUp.cpp | 1 + unit_tests/tests/trigger/test_trigger_decoder.cpp | 5 +++++ 8 files changed, 13 insertions(+), 3 deletions(-) diff --git a/firmware/controllers/algo/engine.h b/firmware/controllers/algo/engine.h index c574839b43..a6246c18d9 100644 --- a/firmware/controllers/algo/engine.h +++ b/firmware/controllers/algo/engine.h @@ -185,6 +185,9 @@ public: * this is based on isEngineChartEnabled and engineSnifferRpmThreshold settings */ bool isEngineChartEnabled = false; + + bool tdcMarkEnabled = true; // used by unit tests only + /** * this is based on sensorChartMode and sensorSnifferRpmThreshold settings */ diff --git a/firmware/controllers/engine_cycle/rpm_calculator.cpp b/firmware/controllers/engine_cycle/rpm_calculator.cpp index fafae41354..4543afb3f2 100644 --- a/firmware/controllers/engine_cycle/rpm_calculator.cpp +++ b/firmware/controllers/engine_cycle/rpm_calculator.cpp @@ -352,7 +352,7 @@ static void onTdcCallback(Engine *engine) { void tdcMarkCallback( uint32_t index0, efitick_t edgeTimestamp DECLARE_ENGINE_PARAMETER_SUFFIX) { bool isTriggerSynchronizationPoint = index0 == 0; - if (isTriggerSynchronizationPoint && ENGINE(isEngineChartEnabled)) { + if (isTriggerSynchronizationPoint && ENGINE(isEngineChartEnabled) && ENGINE(tdcMarkEnabled)) { // two instances of scheduling_s are needed to properly handle event overlap int revIndex2 = getRevolutionCounter() % 2; int rpm = GET_RPM(); diff --git a/firmware/controllers/trigger/trigger_central.cpp b/firmware/controllers/trigger/trigger_central.cpp index a642e9e10e..e8087cc5e8 100644 --- a/firmware/controllers/trigger/trigger_central.cpp +++ b/firmware/controllers/trigger/trigger_central.cpp @@ -548,9 +548,7 @@ void TriggerCentral::handleShaftSignal(trigger_event_e signal, efitick_t timesta rpmShaftPositionCallback(signal, triggerIndexForListeners, timestamp PASS_ENGINE_PARAMETER_SUFFIX); -#if !EFI_UNIT_TEST tdcMarkCallback(triggerIndexForListeners, timestamp PASS_ENGINE_PARAMETER_SUFFIX); -#endif #if !EFI_UNIT_TEST #if EFI_MAP_AVERAGING diff --git a/unit_tests/tests/ignition_injection/injection_mode_transition.cpp b/unit_tests/tests/ignition_injection/injection_mode_transition.cpp index 93ad6a2ee1..11146189e6 100644 --- a/unit_tests/tests/ignition_injection/injection_mode_transition.cpp +++ b/unit_tests/tests/ignition_injection/injection_mode_transition.cpp @@ -29,6 +29,7 @@ static void doRevolution(EngineTestHelper& eth, int periodMs) { // https://github.com/rusefi/rusefi/issues/1592 TEST(fuelControl, transitionIssue1592) { WITH_ENGINE_TEST_HELPER(TEST_ENGINE); + ENGINE(tdcMarkEnabled) = false; setupSimpleTestEngineWithMafAndTT_ONE_trigger(ð, IM_SEQUENTIAL); EXPECT_CALL(eth.mockAirmass, getAirmass(400)) diff --git a/unit_tests/tests/ignition_injection/test_one_cylinder_logic.cpp b/unit_tests/tests/ignition_injection/test_one_cylinder_logic.cpp index e300b381b5..399fa9449f 100644 --- a/unit_tests/tests/ignition_injection/test_one_cylinder_logic.cpp +++ b/unit_tests/tests/ignition_injection/test_one_cylinder_logic.cpp @@ -8,6 +8,7 @@ TEST(issues, issueOneCylinderSpecialCase968) { WITH_ENGINE_TEST_HELPER(GY6_139QMB); + ENGINE(tdcMarkEnabled) = false; // set injection_mode 1 engineConfiguration->injectionMode = IM_SEQUENTIAL; diff --git a/unit_tests/tests/ignition_injection/test_startOfCrankingPrimingPulse.cpp b/unit_tests/tests/ignition_injection/test_startOfCrankingPrimingPulse.cpp index 12c54b7436..cf8664160b 100644 --- a/unit_tests/tests/ignition_injection/test_startOfCrankingPrimingPulse.cpp +++ b/unit_tests/tests/ignition_injection/test_startOfCrankingPrimingPulse.cpp @@ -10,6 +10,7 @@ TEST(engine, testPlainCrankingWithoutAdvancedFeatures) { WITH_ENGINE_TEST_HELPER(TEST_ENGINE); + ENGINE(tdcMarkEnabled) = false; engineConfiguration->cranking.baseFuel = 12; setupSimpleTestEngineWithMafAndTT_ONE_trigger(ð); diff --git a/unit_tests/tests/trigger/test_fasterEngineSpinningUp.cpp b/unit_tests/tests/trigger/test_fasterEngineSpinningUp.cpp index 920aa3eef2..2b1b693261 100644 --- a/unit_tests/tests/trigger/test_fasterEngineSpinningUp.cpp +++ b/unit_tests/tests/trigger/test_fasterEngineSpinningUp.cpp @@ -9,6 +9,7 @@ TEST(cranking, testFasterEngineSpinningUp) { WITH_ENGINE_TEST_HELPER(TEST_ENGINE); + ENGINE(tdcMarkEnabled) = false; // turn on FasterEngineSpinUp mode engineConfiguration->isFasterEngineSpinUpEnabled = true; engineConfiguration->cranking.baseFuel = 12; diff --git a/unit_tests/tests/trigger/test_trigger_decoder.cpp b/unit_tests/tests/trigger/test_trigger_decoder.cpp index e4cd5b9574..3b4f5b197f 100644 --- a/unit_tests/tests/trigger/test_trigger_decoder.cpp +++ b/unit_tests/tests/trigger/test_trigger_decoder.cpp @@ -298,6 +298,8 @@ extern bool_t debugSignalExecutor; TEST(misc, testRpmCalculator) { WITH_ENGINE_TEST_HELPER(FORD_INLINE_6_1995); + ENGINE(tdcMarkEnabled) = false; + // These tests were written when the default target AFR was 14.0, so replicate that engineConfiguration->stoichRatioPrimary = 140; @@ -689,6 +691,7 @@ void doTestFuelSchedulerBug299smallAndMedium(int startUpDelayMs) { printf("*************************************************** testFuelSchedulerBug299 small to medium\r\n"); WITH_ENGINE_TEST_HELPER(TEST_ENGINE); + ENGINE(tdcMarkEnabled) = false; eth.moveTimeForwardMs(startUpDelayMs); // nice to know that same test works the same with different anount of idle time on start setTestBug299(ð); @@ -987,6 +990,7 @@ TEST(big, testSequential) { TEST(big, testFuelSchedulerBug299smallAndLarge) { WITH_ENGINE_TEST_HELPER(TEST_ENGINE); + ENGINE(tdcMarkEnabled) = false; setTestBug299(ð); ASSERT_EQ( 4, engine->executor.size()) << "Lqs#0"; @@ -1101,6 +1105,7 @@ TEST(big, testSparkReverseOrderBug319) { printf("*************************************************** testSparkReverseOrderBug319 small to medium\r\n"); WITH_ENGINE_TEST_HELPER(TEST_ENGINE); + ENGINE(tdcMarkEnabled) = false; engineConfiguration->useOnlyRisingEdgeForTrigger = false; engineConfiguration->isInjectionEnabled = false;