GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/launch/test_retard_threshold_rpm.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 38 0 38
Functions: 100.0% 9 0 9
Branches: 34.8% 16 0 46
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 //
2 // Created by kifir on 5/22/24.
3 //
4 // Tests for ticket https://github.com/rusefi/rusefi/issues/6533
5 //
6
7 #include "pch.h"
8
9 constexpr int TEST_LAUNCH_RPM = 2500;
10 constexpr int TEST_LAUNCH_RPM_WINDOW = 1000;
11
12 2 static void setUpTestParameters() {
13 2 engineConfiguration->launchControlEnabled = true;
14 2 engineConfiguration->launchRpm = TEST_LAUNCH_RPM;
15 2 engineConfiguration->launchRpmWindow = TEST_LAUNCH_RPM_WINDOW;
16 2 engineConfiguration->launchSparkCutEnable = true;
17
18 2 engineConfiguration->launchActivationMode = ALWAYS_ACTIVE_LAUNCH; // to satisfy activateSwitchCondition
19 2 engineConfiguration->launchSpeedThreshold = 0; // to satisfy speedCondition
20 2 Sensor::setMockValue(SensorType::DriverThrottleIntent, 1.7); // to satisfy tpsCondition
21 2 }
22
23 4 static void updateRpm(const int rpm) {
24 4 Sensor::setMockValue(SensorType::Rpm, rpm);
25 4 engine->launchController.update();
26
27 //isn't retardThresholdRpm redundant? Shold we use engineConfiguration->launchRpm instead?
28
2/6
✓ Branch 2 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 4 times.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
4 EXPECT_EQ(engine->launchController.retardThresholdRpm, engineConfiguration->launchRpm);
29 4 }
30
31 2 static void testRetardThresholdRpm() {
32 2 updateRpm(TEST_LAUNCH_RPM);
33
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
2 EXPECT_TRUE(engine->launchController.isLaunchCondition);
34
2/7
✓ Branch 3 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
2 EXPECT_FALSE(engine->launchController.isLaunchSparkRpmRetardCondition());
35
36 2 updateRpm(TEST_LAUNCH_RPM + 1);
37
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
2 EXPECT_TRUE(engine->launchController.isLaunchCondition);
38
2/7
✓ Branch 3 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
2 EXPECT_TRUE(engine->launchController.isLaunchSparkRpmRetardCondition());
39 2 }
40
41 4 TEST(rpmCondition, retardThresholdRpmWithDisabledLaunchRetard) {
42
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth(engine_type_e::TEST_ENGINE);
43
1/1
✓ Branch 1 taken 1 time.
1 setUpTestParameters();
44
45
2/8
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✓ Branch 30 taken 1 time.
✗ Branch 31 not taken.
1 ASSERT_FALSE(engineConfiguration->enableLaunchRetard); // default value
46
47
1/1
✓ Branch 1 taken 1 time.
1 testRetardThresholdRpm();
48 1 }
49
50 4 TEST(rpmCondition, retardThresholdRpmWithEnabledLaunchRetard) {
51
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth(engine_type_e::TEST_ENGINE);
52
1/1
✓ Branch 1 taken 1 time.
1 setUpTestParameters();
53
54 1 engineConfiguration->enableLaunchRetard = true;
55
56
1/1
✓ Branch 1 taken 1 time.
1 testRetardThresholdRpm();
57 2 }
58