From 4347c5c82eb0dff1dccfdb2cd1d94588c145558b Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 29 Feb 2024 01:33:42 -0500 Subject: [PATCH] maximumIgnitionTiming does not account timing_offset_cylinder #5894 only: TDD progress --- .../test_odd_firing_engine.cpp | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/unit_tests/tests/ignition_injection/test_odd_firing_engine.cpp b/unit_tests/tests/ignition_injection/test_odd_firing_engine.cpp index 4a62958b5d..854ddba9fc 100644 --- a/unit_tests/tests/ignition_injection/test_odd_firing_engine.cpp +++ b/unit_tests/tests/ignition_injection/test_odd_firing_engine.cpp @@ -5,6 +5,7 @@ TEST(OddFire, hd) { EngineTestHelper eth(engine_type_e::HARLEY); engineConfiguration->cranking.rpm = 100; + engineConfiguration->vvtMode[0] = VVT_SINGLE_TOOTH; // need to avoid engine phase sync requirement float cylinderOne = 19; float cylinderTwo = 13; engineConfiguration->timing_offset_cylinder[0] = cylinderOne; @@ -18,21 +19,31 @@ TEST(OddFire, hd) { eth.setTriggerType(trigger_type_e::TT_HALF_MOON); eth.fireTriggerEvents2(2 /* count */ , 60 /* ms */); + LimpState limitedSparkState = getLimpManager()->allowIgnition(); + ASSERT_TRUE(limitedSparkState.value); + ASSERT_EQ(limitedSparkState.reason, ClearReason::None); - float expectedAngle = 180 - cylinderOne - timing; +// ASSERT_NEAR(-220.0, eth.timeToAngle(-73.333333), EPS3D); +// ASSERT_NEAR(-200.0, eth.timeToAngle(-66.66666), EPS3D); +// ASSERT_NEAR(160.0, eth.timeToAngle(53.333333), EPS3D); +// ASSERT_NEAR(-168.0, eth.timeToAngle(-56.0), EPS3D); + + float expectedAngle3 = -180 - cylinderOne - timing; + + ASSERT_EQ( 8, engine->executor.size()); + eth.assertEvent5("spark down#3", 3, (void*)fireSparkAndPrepareNextSchedule, eth.angleToTimeUs(expectedAngle3)); + + float expectedAngle7 = -180 - cylinderOne - timing; + eth.assertEvent5("spark down#7", 3, (void*)fireSparkAndPrepareNextSchedule, eth.angleToTimeUs(expectedAngle7)); - ASSERT_EQ( 2, engine->executor.size()); - eth.assertEvent5("spark down#0", 1, (void*)fireSparkAndPrepareNextSchedule, eth.angleToTimeUs(expectedAngle)); eth.assertRpm( 500, "spinning-RPM#1"); engine->executor.executeAll(eth.getTimeNowUs() + MS2US(1000000)); - ASSERT_NEAR(-200.0, eth.timeToAngle(-66.66666), EPS3D); - ASSERT_NEAR(160.0, eth.timeToAngle(53.333333), EPS3D); - expectedAngle = 180 - cylinderOne - timing; + expectedAngle3 = 180 - cylinderOne - timing; eth.fireTriggerEvents2(2 /* count */ , 60 /* ms */); - ASSERT_EQ( 2, engine->executor.size()); - eth.assertEvent5("spark down#0", 1, (void*)fireSparkAndPrepareNextSchedule, eth.angleToTimeUs(expectedAngle)); + ASSERT_EQ( 4, engine->executor.size()); + eth.assertEvent5("spark down2#3", 3, (void*)fireSparkAndPrepareNextSchedule, eth.angleToTimeUs(expectedAngle3)); }