From 6f45d0fd4668d75df2ac2109f458e3948beb50e1 Mon Sep 17 00:00:00 2001 From: Matthew Kennedy Date: Thu, 19 May 2022 06:43:42 -0700 Subject: [PATCH] Fix trigger error indicator (#4185) * test and fix * more shards! --- firmware/controllers/trigger/trigger_decoder.h | 2 +- unit_tests/run_sharded_tests.sh | 4 ++-- unit_tests/tests/trigger/test_trigger_decoder_2.cpp | 5 +++++ 3 files changed, 8 insertions(+), 3 deletions(-) mode change 100644 => 100755 unit_tests/run_sharded_tests.sh diff --git a/firmware/controllers/trigger/trigger_decoder.h b/firmware/controllers/trigger/trigger_decoder.h index 8da83e977d..948a2bf889 100644 --- a/firmware/controllers/trigger/trigger_decoder.h +++ b/firmware/controllers/trigger/trigger_decoder.h @@ -150,7 +150,7 @@ public: ); bool someSortOfTriggerError() const { - return m_timeSinceDecodeError.getElapsedSeconds(1); + return !m_timeSinceDecodeError.getElapsedSeconds(1); } protected: diff --git a/unit_tests/run_sharded_tests.sh b/unit_tests/run_sharded_tests.sh old mode 100644 new mode 100755 index 9e1aafb16a..ec95cba0b0 --- a/unit_tests/run_sharded_tests.sh +++ b/unit_tests/run_sharded_tests.sh @@ -5,8 +5,8 @@ set -e -export GTEST_TOTAL_SHARDS=500 -for IDX in {0..499} +export GTEST_TOTAL_SHARDS=600 +for IDX in {0..599} do export GTEST_SHARD_INDEX=$IDX build/rusefi_test diff --git a/unit_tests/tests/trigger/test_trigger_decoder_2.cpp b/unit_tests/tests/trigger/test_trigger_decoder_2.cpp index d53cb86639..8e740e7b79 100644 --- a/unit_tests/tests/trigger/test_trigger_decoder_2.cpp +++ b/unit_tests/tests/trigger/test_trigger_decoder_2.cpp @@ -85,6 +85,8 @@ TEST(TriggerDecoder, FindsFirstSyncPoint) { doTooth(dut, shape, cfg, t); EXPECT_TRUE(dut.getShaftSynchronized()); EXPECT_EQ(2, dut.currentCycle.current_index); + + EXPECT_FALSE(dut.someSortOfTriggerError()); } @@ -130,6 +132,7 @@ TEST(TriggerDecoder, FindsSyncPointMultipleRevolutions) { doTooth(dut, shape, cfg, t); EXPECT_TRUE(dut.getShaftSynchronized()); EXPECT_EQ(0, dut.currentCycle.current_index); + EXPECT_FALSE(dut.someSortOfTriggerError()); } } @@ -216,6 +219,7 @@ TEST(TriggerDecoder, NotEnoughTeeth_CausesError) { doTooth(dut, shape, cfg, t); EXPECT_TRUE(dut.getShaftSynchronized()); EXPECT_EQ(2, dut.currentCycle.current_index); + EXPECT_FALSE(dut.someSortOfTriggerError()); // Missing tooth, but it comes early - not enough teeth have happened yet! t += MS2NT(2); @@ -224,4 +228,5 @@ TEST(TriggerDecoder, NotEnoughTeeth_CausesError) { // Sync is lost until we get to another sync point EXPECT_FALSE(dut.getShaftSynchronized()); EXPECT_EQ(0, dut.currentCycle.current_index); + EXPECT_TRUE(dut.someSortOfTriggerError()); }