diff --git a/unit_tests/tests/trigger/test_real_noisy_trigger.cpp b/unit_tests/tests/trigger/test_real_noisy_trigger.cpp index c5e9ac038c..ede832a593 100644 --- a/unit_tests/tests/trigger/test_real_noisy_trigger.cpp +++ b/unit_tests/tests/trigger/test_real_noisy_trigger.cpp @@ -31,10 +31,15 @@ static void testNoOverdwell(const char* file, bool instantRpm) { std::vector coilStartTimes(12); engine->onIgnitionEvent = [&](IgnitionEvent* event, bool state) { + efitick_t startTime = coilStartTimes[event->coilIndex]; + if (state) { coilStartTimes[event->coilIndex] = getTimeNowNt(); + } else if (startTime == 0) { + printf("Interesting: goes LOW without ever going HIGH %d\n", event->coilIndex); } else { - auto actualDwell = 1e-3 * NT2USF(getTimeNowNt() - coilStartTimes[event->coilIndex]); + auto actualDwell = 1e-3 * NT2USF(getTimeNowNt() - startTime); + coilStartTimes[event->coilIndex] = 0; EXPECT_LT(actualDwell, 50) << "Overdwell on cylinder " << (int)event->coilIndex << " of " << actualDwell << " ms"; }