| Line | Branch | Decision | Exec | Source |
|---|---|---|---|---|
| 1 | #include "pch.h" | |||
| 2 | ||||
| 3 | #include "launch_control.h" | |||
| 4 | ||||
| 5 | 4 | TEST(LaunchControl, TpsCondition) { | ||
| 6 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
| 7 | ||||
| 8 |
1/1✓ Branch 2 taken 1 time.
|
1 | LaunchControlBase dut; | |
| 9 | ||||
| 10 | 1 | engineConfiguration->launchTpsThreshold = 10; | ||
| 11 | ||||
| 12 | // Should return false with failed sensor | |||
| 13 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::resetMockValue(SensorType::DriverThrottleIntent); | |
| 14 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_FALSE(dut.isInsideTpsCondition()); | |
| 15 | ||||
| 16 | // Should return false when throttle is closed | |||
| 17 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::DriverThrottleIntent, 5.0f); | |
| 18 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_FALSE(dut.isInsideTpsCondition()); | |
| 19 | ||||
| 20 | // Should return true when throttle is opened past the threshold | |||
| 21 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::DriverThrottleIntent, 20.0f); | |
| 22 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_TRUE(dut.isInsideTpsCondition()); | |
| 23 | 2 | } | ||
| 24 | ||||
| 25 | ||||
| 26 | 4 | TEST(LaunchControl, VSSCondition) { | ||
| 27 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
| 28 | ||||
| 29 |
1/1✓ Branch 2 taken 1 time.
|
1 | LaunchControlBase dut; | |
| 30 | ||||
| 31 | // Test Speed threshold | |||
| 32 | 1 | engineConfiguration->launchActivationMode = ALWAYS_ACTIVE_LAUNCH; | ||
| 33 | 1 | engineConfiguration->launchSpeedThreshold = 30; | ||
| 34 | ||||
| 35 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::VehicleSpeed, 10.0); | |
| 36 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_TRUE(dut.isInsideSpeedCondition()); | |
| 37 | ||||
| 38 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::VehicleSpeed, 40.0); | |
| 39 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_FALSE(dut.isInsideSpeedCondition()); | |
| 40 | ||||
| 41 | 2 | } | ||
| 42 | ||||
| 43 | 4 | TEST(LaunchControl, ZeroVSSCondition) { | ||
| 44 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
| 45 | ||||
| 46 |
1/1✓ Branch 2 taken 1 time.
|
1 | LaunchControlBase dut; | |
| 47 | ||||
| 48 | // Test Speed threshold | |||
| 49 | 1 | engineConfiguration->launchActivationMode = ALWAYS_ACTIVE_LAUNCH; | ||
| 50 | 1 | engineConfiguration->launchSpeedThreshold = 0; | ||
| 51 | ||||
| 52 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::VehicleSpeed, 10.0); | |
| 53 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_TRUE(dut.isInsideSpeedCondition()); | |
| 54 | 2 | } | ||
| 55 | ||||
| 56 | 4 | TEST(LaunchControl, VSSConditionWithSwitch) { | ||
| 57 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
| 58 | ||||
| 59 |
1/1✓ Branch 2 taken 1 time.
|
1 | LaunchControlBase dut; | |
| 60 | ||||
| 61 | // Test Speed threshold | |||
| 62 | 1 | engineConfiguration->launchActivationMode = SWITCH_INPUT_LAUNCH; | ||
| 63 | 1 | engineConfiguration->launchActivatePin = Gpio::G1; | ||
| 64 |
1/1✓ Branch 1 taken 1 time.
|
1 | setMockState(engineConfiguration->launchActivatePin, true); | |
| 65 | 1 | engineConfiguration->launchSpeedThreshold = 30; | ||
| 66 | ||||
| 67 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::VehicleSpeed, 10.0); | |
| 68 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_TRUE(dut.isInsideSpeedCondition()); | |
| 69 | ||||
| 70 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::VehicleSpeed, 40.0); | |
| 71 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_FALSE(dut.isInsideSpeedCondition()); | |
| 72 | 2 | } | ||
| 73 | ||||
| 74 | 4 | TEST(LaunchControl, RPMCondition) { | ||
| 75 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
| 76 | ||||
| 77 |
1/1✓ Branch 2 taken 1 time.
|
1 | LaunchControlBase dut; | |
| 78 | ||||
| 79 | 1 | engineConfiguration->launchRpm = 3000; | ||
| 80 | ||||
| 81 |
2/6✓ Branch 3 taken 1 time.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 time.
✗ Branch 11 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
|
1 | EXPECT_EQ(engineConfiguration->launchRpmWindow, 500); | |
| 82 | ||||
| 83 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(dut.calculateRPMLaunchCondition(2499), LaunchCondition::NotMet); | |
| 84 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(dut.calculateRPMLaunchCondition(2500), LaunchCondition::PreLaunch); | |
| 85 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(dut.calculateRPMLaunchCondition(2900), LaunchCondition::PreLaunch); | |
| 86 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(dut.calculateRPMLaunchCondition(2999), LaunchCondition::PreLaunch); | |
| 87 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(dut.calculateRPMLaunchCondition(3000), LaunchCondition::Launch); | |
| 88 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(dut.calculateRPMLaunchCondition(3100), LaunchCondition::Launch); | |
| 89 | 2 | } | ||
| 90 | ||||
| 91 | 4 | TEST(LaunchControl, SwitchInputCondition) { | ||
| 92 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
| 93 | ||||
| 94 |
1/1✓ Branch 2 taken 1 time.
|
1 | LaunchControlBase dut; | |
| 95 | ||||
| 96 | //activation based on VSS | |||
| 97 | 1 | engineConfiguration->launchActivationMode = ALWAYS_ACTIVE_LAUNCH; | ||
| 98 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_TRUE(dut.isInsideSwitchCondition()); | |
| 99 | ||||
| 100 | //active by switch | |||
| 101 | 1 | engineConfiguration->launchActivationMode = SWITCH_INPUT_LAUNCH; | ||
| 102 | 1 | engineConfiguration->launchActivatePin = Gpio::G1; | ||
| 103 |
1/1✓ Branch 1 taken 1 time.
|
1 | setMockState(engineConfiguration->launchActivatePin, true); | |
| 104 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_TRUE(dut.isInsideSwitchCondition()); | |
| 105 | ||||
| 106 |
1/1✓ Branch 1 taken 1 time.
|
1 | setMockState(engineConfiguration->launchActivatePin, false); | |
| 107 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_FALSE(dut.isInsideSwitchCondition()); | |
| 108 | ||||
| 109 | //by clutch | |||
| 110 | 1 | engineConfiguration->launchActivationMode = CLUTCH_INPUT_LAUNCH; | ||
| 111 | 1 | engineConfiguration->clutchDownPin = Gpio::G2; | ||
| 112 | 1 | engineConfiguration->clutchDownPinMode = PI_PULLUP; | ||
| 113 |
1/1✓ Branch 1 taken 1 time.
|
1 | setMockState(engineConfiguration->clutchDownPin, true); | |
| 114 |
1/1✓ Branch 1 taken 1 time.
|
1 | engine->updateSwitchInputs(); | |
| 115 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_TRUE(dut.isInsideSwitchCondition()); | |
| 116 | ||||
| 117 |
1/1✓ Branch 1 taken 1 time.
|
1 | setMockState(engineConfiguration->clutchDownPin, false); | |
| 118 |
1/1✓ Branch 1 taken 1 time.
|
1 | engine->updateSwitchInputs(); | |
| 119 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_FALSE(dut.isInsideSwitchCondition()); | |
| 120 | ||||
| 121 | 1 | engineConfiguration->clutchDownPinMode = PI_INVERTED_PULLDOWN; | ||
| 122 |
1/1✓ Branch 1 taken 1 time.
|
1 | setMockState(engineConfiguration->clutchDownPin, false); | |
| 123 |
1/1✓ Branch 1 taken 1 time.
|
1 | engine->updateSwitchInputs(); | |
| 124 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_TRUE(dut.isInsideSwitchCondition()); | |
| 125 | ||||
| 126 |
1/1✓ Branch 1 taken 1 time.
|
1 | setMockState(engineConfiguration->clutchDownPin, true); | |
| 127 |
1/1✓ Branch 1 taken 1 time.
|
1 | engine->updateSwitchInputs(); | |
| 128 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_FALSE(dut.isInsideSwitchCondition()); | |
| 129 | ||||
| 130 | 2 | } | ||
| 131 | ||||
| 132 | 4 | TEST(LaunchControl, CombinedCondition) { | ||
| 133 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
| 134 | ||||
| 135 |
1/1✓ Branch 2 taken 1 time.
|
1 | LaunchControlBase dut; | |
| 136 | ||||
| 137 | //check VSS normal usage | |||
| 138 | 1 | engineConfiguration->launchActivationMode = ALWAYS_ACTIVE_LAUNCH; | ||
| 139 | ||||
| 140 | 1 | engineConfiguration->launchRpm = 3000; | ||
| 141 | 1 | engineConfiguration->launchTpsThreshold = 10; | ||
| 142 | //valid TPS | |||
| 143 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::DriverThrottleIntent, 20.0f); | |
| 144 | ||||
| 145 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::VehicleSpeed, 10.0); | |
| 146 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::Rpm, 1200); | |
| 147 | ||||
| 148 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(dut.calculateLaunchCondition(1200), LaunchCondition::NotMet); | |
| 149 | ||||
| 150 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::Rpm, 3200); | |
| 151 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(dut.calculateLaunchCondition(3200), LaunchCondition::Launch); | |
| 152 | ||||
| 153 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::VehicleSpeed, 40.0); | |
| 154 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(dut.calculateLaunchCondition(3200), LaunchCondition::NotMet); | |
| 155 | 2 | } | ||
| 156 | ||||
| 157 | 1 | static void setDefaultLaunchParameters() { | ||
| 158 | 1 | engineConfiguration->launchRpm = 4000; // Rpm to trigger Launch condition | ||
| 159 | // engineConfiguration->launchTimingRetard = 10; // retard in absolute degrees ATDC | |||
| 160 | 1 | engineConfiguration->launchRpmWindow = 500; // RPM window (Launch RPM - Window) for transitioning to full retard | ||
| 161 | 1 | engineConfiguration->launchSparkCutEnable = true; | ||
| 162 | 1 | engineConfiguration->launchFuelCutEnable = false; | ||
| 163 | 1 | engineConfiguration->launchSpeedThreshold = 10; //maximum speed allowed before disable launch | ||
| 164 | 1 | engineConfiguration->launchFuelAdderPercent = 10; // Extra fuel in % when launch are triggered | ||
| 165 | // engineConfiguration->launchBoostDuty = 70; // boost valve duty cycle at launch | |||
| 166 | // engineConfiguration->enableLaunchRetard = true; | |||
| 167 | 1 | engineConfiguration->launchSmoothRetard = true; //interpolates the advance linear from launchrpm to fully retarded at launchtimingrpmrange | ||
| 168 | 1 | } | ||
| 169 | ||||
| 170 | 4 | TEST(LaunchControl, CompleteRun) { | ||
| 171 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
| 172 | ||||
| 173 | //load default config | |||
| 174 | 1 | setDefaultLaunchParameters(); | ||
| 175 | ||||
| 176 | //check VSS normal usage | |||
| 177 | 1 | engineConfiguration->launchActivationMode = ALWAYS_ACTIVE_LAUNCH; | ||
| 178 | 1 | engineConfiguration->launchSpeedThreshold = 30; | ||
| 179 | ||||
| 180 | 1 | engineConfiguration->launchRpm = 3000; | ||
| 181 | 1 | engineConfiguration->launchTpsThreshold = 10; | ||
| 182 | 1 | engineConfiguration->launchControlEnabled = true; | ||
| 183 | //valid TPS | |||
| 184 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::DriverThrottleIntent, 20.0f); | |
| 185 | ||||
| 186 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::VehicleSpeed, 10.0); | |
| 187 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::Rpm, 1200); | |
| 188 | ||||
| 189 |
1/1✓ Branch 1 taken 1 time.
|
1 | engine->launchController.update(); | |
| 190 | ||||
| 191 | ||||
| 192 | //check if we have some sort of cut? we should not have at this point | |||
| 193 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_FALSE(engine->launchController.isLaunchSparkRpmRetardCondition()); | |
| 194 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_FALSE(engine->launchController.isLaunchFuelRpmRetardCondition()); | |
| 195 | ||||
| 196 | ||||
| 197 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::Rpm, 3510); | |
| 198 | //update condition check | |||
| 199 |
1/1✓ Branch 1 taken 1 time.
|
1 | engine->launchController.update(); | |
| 200 | ||||
| 201 | ||||
| 202 |
1/1✓ Branch 1 taken 1 time.
|
1 | eth.moveTimeForwardAndInvokeEventsSec(3); | |
| 203 |
1/1✓ Branch 1 taken 1 time.
|
1 | engine->launchController.update(); | |
| 204 | ||||
| 205 | ||||
| 206 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_TRUE(engine->launchController.isLaunchSparkRpmRetardCondition()); | |
| 207 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_FALSE(engine->launchController.isLaunchFuelRpmRetardCondition()); | |
| 208 | ||||
| 209 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::VehicleSpeed, 40.0); | |
| 210 |
1/1✓ Branch 1 taken 1 time.
|
1 | engine->launchController.update(); | |
| 211 | ||||
| 212 | ||||
| 213 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_FALSE(engine->launchController.isLaunchSparkRpmRetardCondition()); | |
| 214 |
2/7✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_FALSE(engine->launchController.isLaunchFuelRpmRetardCondition()); | |
| 215 | ||||
| 216 | 2 | } | ||
| 217 | ||||
| 218 | 4 | TEST(LaunchControl, hardSkip) { | ||
| 219 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
| 220 | ||||
| 221 |
1/1✓ Branch 2 taken 1 time.
|
1 | SoftSparkLimiter hardSparkLimiter(true); | |
| 222 |
3/9✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✓ Branch 33 taken 1 time.
✗ Branch 34 not taken.
|
1 | ASSERT_FALSE(hardSparkLimiter.shouldSkip()); | |
| 223 | ||||
| 224 | ||||
| 225 |
1/1✓ Branch 1 taken 1 time.
|
1 | hardSparkLimiter.updateTargetSkipRatio(1.0f, 0.0f); | |
| 226 | // open question if we need special handling of '1' or random would just work? | |||
| 227 |
3/9✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✓ Branch 33 taken 1 time.
✗ Branch 34 not taken.
|
1 | ASSERT_TRUE(hardSparkLimiter.shouldSkip()); | |
| 228 | ||||
| 229 | 1 | int counter = 0; | ||
| 230 |
1/1✓ Branch 1 taken 1 time.
|
1 | hardSparkLimiter.updateTargetSkipRatio(0.5f, 0.0f); | |
| 231 |
2/2✓ Branch 0 taken 1000 times.
✓ Branch 1 taken 1 time.
|
2/2✓ Decision 'true' taken 1000 times.
✓ Decision 'false' taken 1 time.
|
1001 | for (int i =0;i<1000;i++) { |
| 232 |
3/3✓ Branch 1 taken 1000 times.
✓ Branch 3 taken 524 times.
✓ Branch 4 taken 476 times.
|
2/2✓ Decision 'true' taken 524 times.
✓ Decision 'false' taken 476 times.
|
1000 | if (hardSparkLimiter.shouldSkip()) { |
| 233 | 524 | counter++; | ||
| 234 | } | |||
| 235 | ||||
| 236 | } | |||
| 237 |
4/14✓ Branch 2 taken 1 time.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 24 not taken.
✗ Branch 28 not taken.
✗ Branch 31 not taken.
✓ Branch 40 taken 1 time.
✗ Branch 41 not taken.
|
1 | ASSERT_TRUE(counter > 400 && counter < 600) << "How good is random " << counter; | |
| 238 | 1 | } | ||
| 239 | ||||
| 240 | ||||
| 241 | ||||
| 242 | ||||
| 243 | ||||
| 244 | ||||
| 245 | ||||
| 246 | ||||
| 247 | ||||
| 248 | ||||
| 249 | ||||
| 250 | ||||
| 251 |