only:refactoring: convert `TestBase` class into template to make base GoogleTest class customizable #7117
This commit is contained in:
parent
f048161b7d
commit
2dbdad0698
|
@ -24,7 +24,7 @@ private:
|
|||
std::optional<float> m_AcPressureEnableHysteresis;
|
||||
};
|
||||
|
||||
class AcTestBase : public TestBase {
|
||||
class AcTestBase : public TestBase<> {
|
||||
protected:
|
||||
void updateAcPressure(float acPressure);
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#include "util/test_base.h"
|
||||
|
||||
class BoostTestBase : public TestBase {
|
||||
class BoostTestBase : public TestBase<> {
|
||||
protected:
|
||||
using ValueByIndexRetriever = std::function<std::optional<float>(int)>;
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace {
|
|||
using AlternatorVoltageTargetValues = float[ALTERNATOR_VOLTAGE_TARGET_SIZE][ALTERNATOR_VOLTAGE_TARGET_SIZE];
|
||||
using AlternatorVoltageTargetBins = uint16_t[ALTERNATOR_VOLTAGE_TARGET_SIZE];
|
||||
|
||||
class AlternatorVoltageTargetSetPointTest : public TestBase {
|
||||
class AlternatorVoltageTargetSetPointTest : public TestBase<> {
|
||||
protected:
|
||||
virtual void SetUp() override;
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ namespace {
|
|||
.setFuelReferencePressure(TEST_PRIMARY_INJECTOR_FUEL_REFERENCE_PRESSURE)
|
||||
.setSecondaryInjectorFuelReferencePressure(TEST_SECONDARY_INJECTOR_FUEL_REFERENCE_PRESSURE);
|
||||
|
||||
class FuelDifferentialPressureTest : public TestBase {
|
||||
class FuelDifferentialPressureTest : public TestBase<> {
|
||||
protected:
|
||||
void SetUp() override;
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace {
|
|||
.setInjectorSecondaryFlow(TEST_SECONDARY_INJECTOR_FLOW)
|
||||
.setInjectorSecondaryBattLagCorr(TEST_SECONDARY_INJECTOR_BATT_LAG_CORR_CURVE);
|
||||
|
||||
class StagedInjectionTest : public TestBase {
|
||||
class StagedInjectionTest : public TestBase<> {
|
||||
protected:
|
||||
void SetUp() override;
|
||||
};
|
||||
|
|
|
@ -19,7 +19,7 @@ private:
|
|||
bool m_satisfyActivationSwithSpeedAndTpsConditions { false };
|
||||
};
|
||||
|
||||
class LaunchTestBase : public TestBase {
|
||||
class LaunchTestBase : public TestBase<> {
|
||||
protected:
|
||||
void setUpTestConfig(const LaunchTestConfig& config);
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ namespace {
|
|||
constexpr float TEST_LUA_SOFT_SPARK_SKIP = 239.0f;
|
||||
constexpr float TEST_LUA_HARD_SPARK_SKIP = 174.0f;
|
||||
|
||||
class LaunchTargetSkipRatioTest : public TestBase {
|
||||
class LaunchTargetSkipRatioTest : public TestBase<> {
|
||||
protected:
|
||||
void SetUp() override;
|
||||
};
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#include "util/test_base.h"
|
||||
|
||||
class NitrousTestBase : public TestBase {
|
||||
class NitrousTestBase : public TestBase<> {
|
||||
protected:
|
||||
static constexpr switch_input_pin_e TEST_NITROUS_CONTROL_ARMING_PIN = Gpio::A13;
|
||||
static constexpr uint16_t TEST_MIN_VEHICLE_SPEED = 25;
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace {
|
|||
const char* const context;
|
||||
};
|
||||
|
||||
class NitrousAfrConditionTest : public TestBase {
|
||||
class NitrousAfrConditionTest : public TestBase<> {
|
||||
protected:
|
||||
static constexpr float TEST_DEFAULT_LAMBDA1 = engine_configuration_defaults::NITROUS_MAXIMUM_AFR / STOICH_RATIO;
|
||||
|
||||
|
|
|
@ -7,8 +7,7 @@
|
|||
#include "util/test_base.h"
|
||||
|
||||
namespace {
|
||||
class NitrousArmingTest: public TestBase
|
||||
{
|
||||
class NitrousArmingTest: public TestBase<> {
|
||||
protected:
|
||||
static constexpr switch_input_pin_e TEST_NITROUS_CONTROL_ARMING_PIN = Gpio::A13;
|
||||
static constexpr lua_gauge_e TEST_NITROUS_LUA_GAUGE = LUA_GAUGE_3;
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace {
|
|||
const char* const context;
|
||||
};
|
||||
|
||||
class NitrousCltConditionTest : public TestBase {
|
||||
class NitrousCltConditionTest : public TestBase<> {
|
||||
protected:
|
||||
static constexpr uint8_t TEST_MIN_CLT = 51;
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace {
|
|||
const char* const context;
|
||||
};
|
||||
|
||||
class NitrousMapConditionTest : public TestBase {
|
||||
class NitrousMapConditionTest : public TestBase<> {
|
||||
protected:
|
||||
static constexpr int TEST_MAX_MAP = 45;
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace {
|
|||
const char* const context;
|
||||
};
|
||||
|
||||
class NitrousRpmConditionTest : public TestBase {
|
||||
class NitrousRpmConditionTest : public TestBase<> {
|
||||
protected:
|
||||
static constexpr uint16_t TEST_ACTIVATION_RPM = 239;
|
||||
static constexpr uint16_t TEST_DEACTIVATION_RPM = 932;
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace {
|
|||
const char* const context;
|
||||
};
|
||||
|
||||
class NitrousSpeedConditionTest : public TestBase {
|
||||
class NitrousSpeedConditionTest : public TestBase<> {
|
||||
protected:
|
||||
static constexpr uint16_t TEST_MIN_VEHICLE_SPEED = 33;
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace {
|
|||
const char* const context;
|
||||
};
|
||||
|
||||
class NitrousTpsConditionTest : public TestBase {
|
||||
class NitrousTpsConditionTest : public TestBase<> {
|
||||
protected:
|
||||
static constexpr int TEST_MIN_TPS = 34;
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#include "util/test_base.h"
|
||||
|
||||
class FlatShiftConditionTestBase : public TestBase {
|
||||
class FlatShiftConditionTestBase : public TestBase<> {
|
||||
protected:
|
||||
static constexpr switch_input_pin_e TEST_TORQUE_REDUCTION_BUTTON_PIN = Gpio::G10;
|
||||
static constexpr float TEST_TORQUE_REDUCTION_ARMING_APP = 7.89;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
namespace {
|
||||
constexpr float TEST_TORQUE_REDUCTION_ARMING_APP = 17.0f;
|
||||
|
||||
class ShiftTorqueReductionAppConditionTest : public TestBase {
|
||||
class ShiftTorqueReductionAppConditionTest : public TestBase<> {
|
||||
protected:
|
||||
void checkAppCondition(std::optional<float> rpm, bool expectedAppCondition, const char* context);
|
||||
};
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "util/test_base.h"
|
||||
|
||||
namespace {
|
||||
class ShiftTorqueReductionFlatShiftConditionTest : public TestBase {
|
||||
class ShiftTorqueReductionFlatShiftConditionTest : public TestBase<> {
|
||||
protected:
|
||||
static constexpr switch_input_pin_e TEST_TORQUE_REDUCTION_BUTTON_PIN = Gpio::E13;
|
||||
static constexpr float TEST_TORQUE_REDUCTION_TIME = 123.45f;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
namespace {
|
||||
constexpr float TEST_TORQUE_REDUCTION_ARMING_RPM = 239.0f;
|
||||
|
||||
class ShiftTorqueReductionRpmConditionTest : public TestBase {
|
||||
class ShiftTorqueReductionRpmConditionTest : public TestBase<> {
|
||||
protected:
|
||||
void checkRpmCondition(float rpm, bool expectedRpmCondition, const char* context);
|
||||
};
|
||||
|
|
|
@ -11,7 +11,7 @@ namespace {
|
|||
constexpr float TEST_TORQUE_REDUCTION_TIME = 239.17;
|
||||
constexpr float IMMEDIATELY = 0.0f;
|
||||
|
||||
class ShiftTorqueReductionTimeConditionTest : public TestBase {
|
||||
class ShiftTorqueReductionTimeConditionTest : public TestBase<> {
|
||||
protected:
|
||||
void waitAndCheckTimeCondition(
|
||||
float timeoutInMs,
|
||||
|
|
|
@ -17,7 +17,7 @@ namespace {
|
|||
const bool torqueReductionTriggerPinState;
|
||||
};
|
||||
|
||||
class ShiftTorqueReductionTriggerPinTest : public TestBase {
|
||||
class ShiftTorqueReductionTriggerPinTest : public TestBase<> {
|
||||
protected:
|
||||
void checkShiftTorqueReductionState(const ShiftTorqueReductionTriggerPinTestData& expected);
|
||||
void checkShiftTorqueReductionStateAfterPeriodicFastCallback(
|
||||
|
|
|
@ -5,153 +5,3 @@
|
|||
#include "pch.h"
|
||||
|
||||
#include "test_base.h"
|
||||
|
||||
void TestBase::SetUp() {
|
||||
eth = std::make_unique<EngineTestHelper>(engine_type_e::TEST_ENGINE);
|
||||
}
|
||||
|
||||
void TestBase::TearDown() {
|
||||
eth.reset();
|
||||
}
|
||||
|
||||
TestEngineConfiguration& TestBase::getTestEngineConfiguration() {
|
||||
return TestEngineConfiguration::getInstance();
|
||||
}
|
||||
|
||||
TestPersistentConfiguration& TestBase::getTestPersistentConfiguration() {
|
||||
return TestPersistentConfiguration::getInstance();
|
||||
}
|
||||
|
||||
TestLuaScriptExecutor& TestBase::getTestLuaScriptExecutor() {
|
||||
return TestLuaScriptExecutor::getInstance();
|
||||
}
|
||||
|
||||
TestEngineState& TestBase::getTestEngineState() {
|
||||
return TestEngineState::getInstance();
|
||||
}
|
||||
|
||||
void TestBase::setUpEngineConfiguration(const EngineConfig& config) {
|
||||
// Other Sensor Inputs
|
||||
getTestEngineConfiguration().configureClutchDownPin(config.getClutchDownPin());
|
||||
|
||||
// Launch Control
|
||||
getTestEngineConfiguration().configureLaunchActivatePin(config.getLaunchActivatePin());
|
||||
getTestEngineConfiguration().configureLaunchActivateInverted(config.getLaunchActivateInverted());
|
||||
getTestEngineConfiguration().configureLaunchControlEnabled(config.getLaunchControlEnabled());
|
||||
getTestEngineConfiguration().configureLaunchRpm(config.getLaunchRpm());
|
||||
getTestEngineConfiguration().configureLaunchRpmWindow(config.getLaunchRpmWindow());
|
||||
getTestEngineConfiguration().configureLaunchCorrectionsEndRpm(config.getLaunchCorrectionsEndRpm());
|
||||
getTestEngineConfiguration().configureIgnitionRetardEnable(config.getIgnitionRetardEnable());
|
||||
getTestEngineConfiguration().configureIgnitionRetard(config.getIgnitionRetard());
|
||||
getTestEngineConfiguration().configureSmoothRetardMode(config.getSmoothRetardMode());
|
||||
getTestEngineConfiguration().configureEnableIgnitionCut(config.getEnableIgnitionCut());
|
||||
getTestEngineConfiguration().configureInitialIgnitionCutPercent(config.getInitialIgnitionCut());
|
||||
getTestEngineConfiguration().configureFinalIgnitionCutPercentBeforeLaunch(config.getFinalIgnitionCutBeforeLaunch());
|
||||
|
||||
// Shift Torque Reduction (Flat Shift)
|
||||
getTestEngineConfiguration().configureTorqueReductionEnabled(config.getTorqueReductionEnabled());
|
||||
getTestEngineConfiguration().configureTorqueReductionActivationMode(config.getTorqueReductionActivationMode());
|
||||
getTestEngineConfiguration().configureTorqueReductionTriggerPin(config.getTorqueReductionTriggerPin());
|
||||
getTestEngineConfiguration().configureTorqueReductionButtonInverted(config.getTorqueReductionTriggerPinInverted());
|
||||
getTestEngineConfiguration().configureLimitTorqueReductionTime(config.getLimitTorqueReductionTime());
|
||||
getTestEngineConfiguration().configureTorqueReductionTime(config.getTorqueReductionTime());
|
||||
getTestEngineConfiguration().configureTorqueReductionArmingRpm(config.getTorqueReductionArmingRpm());
|
||||
getTestEngineConfiguration().configureTorqueReductionArmingApp(config.getTorqueReductionArmingApp());
|
||||
getTestEngineConfiguration().configureTorqueReductionIgnitionCut(config.getTorqueReductionIgnitionCut());
|
||||
getTestEngineConfiguration().configureTorqueReductionIgnitionRetard(config.getTorqueReductionIgnitionRetard());
|
||||
|
||||
getTestEngineConfiguration().configureFuelPressureSensorMode(config.getFuelPressureSensorMode());
|
||||
|
||||
// Injector
|
||||
getTestEngineConfiguration().configureInjectorFlowAsMassFlow(config.getInjectorFlowAsMassFlow());
|
||||
getTestEngineConfiguration().configureInjectorFlow(config.getInjectorFlow());
|
||||
getTestEngineConfiguration().configureInjectorBattLagCorr(config.getInjectorBattLagCorr());
|
||||
getTestEngineConfiguration().configureFuelReferencePressure(config.getFuelReferencePressure());
|
||||
getTestEngineConfiguration().configureInjectorCompensationMode(config.getInjectorCompensationMode());
|
||||
|
||||
// Secondary injector
|
||||
getTestEngineConfiguration().configureInjectorSecondaryFlow(config.getInjectorSecondaryFlow());
|
||||
getTestEngineConfiguration().configureInjectorSecondaryBattLagCorr(config.getInjectorSecondaryBattLagCorr());
|
||||
getTestEngineConfiguration().configureSecondaryInjectorFuelReferencePressure(
|
||||
config.getSecondaryInjectorFuelReferencePressure()
|
||||
);
|
||||
getTestEngineConfiguration().configureSecondaryInjectorCompensationMode(
|
||||
config.getSecondaryInjectorCompensationMode()
|
||||
);
|
||||
|
||||
// Staged injection
|
||||
getTestEngineConfiguration().configureEnableStagedInjection(config.getStagedInjectionEnabled());
|
||||
|
||||
// Nitrous control
|
||||
getTestEngineConfiguration().configureNitrousControlEnabled(config.getNitrousControlEnabled());
|
||||
getTestEngineConfiguration().configureNitrousControlArmingMethod(config.getNitrousControlArmingMethod());
|
||||
getTestEngineConfiguration().configureNitrousControlTriggerPin(config.getNitrousControlTriggerPin());
|
||||
getTestEngineConfiguration().configureNitrousControlTriggerPinInverted(
|
||||
config.getNitrousControlTriggerPinInverted()
|
||||
);
|
||||
getTestEngineConfiguration().configureNitrousControlTriggerPinMode(config.getNitrousControlTriggerPinMode());
|
||||
getTestEngineConfiguration().configureNitrousLuaGauge(config.getNitrousLuaGauge());
|
||||
getTestEngineConfiguration().configureNitrousLuaGaugeMeaning(config.getNitrousLuaGaugeMeaning());
|
||||
getTestEngineConfiguration().configureNitrousLuaGaugeArmingValue(config.getNitrousLuaGaugeArmingValue());
|
||||
|
||||
getTestEngineConfiguration().configureNitrousMinimumVehicleSpeed(config.getNitrousMinimumVehicleSpeed());
|
||||
getTestEngineConfiguration().configureNitrousMinimumTps(config.getNitrousMinimumTps());
|
||||
getTestEngineConfiguration().configureNitrousMinimumClt(config.getNitrousMinimumClt());
|
||||
getTestEngineConfiguration().configureNitrousMaximumMap(config.getNitrousMaximumMap());
|
||||
getTestEngineConfiguration().configureNitrousMaximumAfr(config.getNitrousMaximumAfr());
|
||||
getTestEngineConfiguration().configureNitrousActivationRpm(config.getNitrousActivationRpm());
|
||||
getTestEngineConfiguration().configureNitrousDeactivationRpm(config.getNitrousDeactivationRpm());
|
||||
getTestEngineConfiguration().configureNitrousDeactivationRpmWindow(
|
||||
config.getNitrousDeactivationRpmWindow()
|
||||
);
|
||||
getTestEngineConfiguration().configureNitrousFuelAdderPercent(
|
||||
config.getNitrousFuelAdderPercent()
|
||||
);
|
||||
getTestEngineConfiguration().configureNitrousIgnitionRetard(config.getNitrousIgnitionRetard());
|
||||
}
|
||||
|
||||
void TestBase::periodicFastCallback() {
|
||||
// run the ignition math
|
||||
engine->periodicFastCallback();
|
||||
}
|
||||
|
||||
void TestBase::periodicSlowCallback() {
|
||||
engine->periodicSlowCallback();
|
||||
}
|
||||
|
||||
void TestBase::updateVehicleSpeed(const std::optional<float> speed, void (TestBase::* const postAction)()) {
|
||||
updateSensor(SensorType::VehicleSpeed, speed, postAction);
|
||||
}
|
||||
|
||||
void TestBase::updateRpm(const std::optional<float> rpm, void (TestBase::* const postAction)()) {
|
||||
updateSensor(SensorType::Rpm, rpm, postAction);
|
||||
}
|
||||
|
||||
void TestBase::updateApp(const std::optional<float> app, void (TestBase::* const postAction)()) {
|
||||
updateSensor(SensorType::DriverThrottleIntent, app, postAction);
|
||||
}
|
||||
|
||||
void TestBase::updateClt(const std::optional<float> clt, void (TestBase::* const postAction)()) {
|
||||
updateSensor(SensorType::Clt, clt, postAction);
|
||||
}
|
||||
|
||||
void TestBase::updateMap(const std::optional<float> map, void (TestBase::* const postAction)()) {
|
||||
updateSensor(SensorType::Map, map, postAction);
|
||||
}
|
||||
|
||||
void TestBase::updateLambda1(std::optional<float> lambda1, void (TestBase::* const postAction)()) {
|
||||
updateSensor(SensorType::Lambda1, lambda1, postAction);
|
||||
}
|
||||
|
||||
void TestBase::updateSensor(
|
||||
const SensorType sensor,
|
||||
const std::optional<float> sensorReading,
|
||||
void (TestBase::* const postAction)()
|
||||
) {
|
||||
if (sensorReading.has_value()) {
|
||||
Sensor::setMockValue(sensor, sensorReading.value());
|
||||
} else {
|
||||
Sensor::resetMockValue(sensor);
|
||||
}
|
||||
(this->*postAction)();
|
||||
}
|
|
@ -10,7 +10,8 @@
|
|||
#include "test_lua_script_executor.h"
|
||||
#include "engine_config.h"
|
||||
|
||||
class TestBase : public testing::Test {
|
||||
template <class GtestBase = testing::Test>
|
||||
class TestBase : public GtestBase {
|
||||
protected:
|
||||
void SetUp() override;
|
||||
void TearDown() override;
|
||||
|
@ -42,6 +43,4 @@ private:
|
|||
std::unique_ptr<EngineTestHelper> eth;
|
||||
};
|
||||
|
||||
template<typename ModuleType> ModuleType& TestBase::getModule() {
|
||||
return engine->module<ModuleType>().unmock();
|
||||
}
|
||||
#include "test_base.hpp" // template methods implementation
|
|
@ -0,0 +1,171 @@
|
|||
template<class GtestBase>
|
||||
template<typename ModuleType>
|
||||
ModuleType& TestBase<GtestBase>::getModule() {
|
||||
return engine->module<ModuleType>().unmock();
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
void TestBase<GtestBase>::SetUp() {
|
||||
eth = std::make_unique<EngineTestHelper>(engine_type_e::TEST_ENGINE);
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
void TestBase<GtestBase>::TearDown() {
|
||||
eth.reset();
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
TestEngineConfiguration& TestBase<GtestBase>::getTestEngineConfiguration() {
|
||||
return TestEngineConfiguration::getInstance();
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
TestPersistentConfiguration& TestBase<GtestBase>::getTestPersistentConfiguration() {
|
||||
return TestPersistentConfiguration::getInstance();
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
TestLuaScriptExecutor& TestBase<GtestBase>::getTestLuaScriptExecutor() {
|
||||
return TestLuaScriptExecutor::getInstance();
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
TestEngineState& TestBase<GtestBase>::getTestEngineState() {
|
||||
return TestEngineState::getInstance();
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
void TestBase<GtestBase>::setUpEngineConfiguration(const EngineConfig& config) {
|
||||
// Other Sensor Inputs
|
||||
getTestEngineConfiguration().configureClutchDownPin(config.getClutchDownPin());
|
||||
|
||||
// Launch Control
|
||||
getTestEngineConfiguration().configureLaunchActivatePin(config.getLaunchActivatePin());
|
||||
getTestEngineConfiguration().configureLaunchActivateInverted(config.getLaunchActivateInverted());
|
||||
getTestEngineConfiguration().configureLaunchControlEnabled(config.getLaunchControlEnabled());
|
||||
getTestEngineConfiguration().configureLaunchRpm(config.getLaunchRpm());
|
||||
getTestEngineConfiguration().configureLaunchRpmWindow(config.getLaunchRpmWindow());
|
||||
getTestEngineConfiguration().configureLaunchCorrectionsEndRpm(config.getLaunchCorrectionsEndRpm());
|
||||
getTestEngineConfiguration().configureIgnitionRetardEnable(config.getIgnitionRetardEnable());
|
||||
getTestEngineConfiguration().configureIgnitionRetard(config.getIgnitionRetard());
|
||||
getTestEngineConfiguration().configureSmoothRetardMode(config.getSmoothRetardMode());
|
||||
getTestEngineConfiguration().configureEnableIgnitionCut(config.getEnableIgnitionCut());
|
||||
getTestEngineConfiguration().configureInitialIgnitionCutPercent(config.getInitialIgnitionCut());
|
||||
getTestEngineConfiguration().configureFinalIgnitionCutPercentBeforeLaunch(config.getFinalIgnitionCutBeforeLaunch());
|
||||
|
||||
// Shift Torque Reduction (Flat Shift)
|
||||
getTestEngineConfiguration().configureTorqueReductionEnabled(config.getTorqueReductionEnabled());
|
||||
getTestEngineConfiguration().configureTorqueReductionActivationMode(config.getTorqueReductionActivationMode());
|
||||
getTestEngineConfiguration().configureTorqueReductionTriggerPin(config.getTorqueReductionTriggerPin());
|
||||
getTestEngineConfiguration().configureTorqueReductionButtonInverted(config.getTorqueReductionTriggerPinInverted());
|
||||
getTestEngineConfiguration().configureLimitTorqueReductionTime(config.getLimitTorqueReductionTime());
|
||||
getTestEngineConfiguration().configureTorqueReductionTime(config.getTorqueReductionTime());
|
||||
getTestEngineConfiguration().configureTorqueReductionArmingRpm(config.getTorqueReductionArmingRpm());
|
||||
getTestEngineConfiguration().configureTorqueReductionArmingApp(config.getTorqueReductionArmingApp());
|
||||
getTestEngineConfiguration().configureTorqueReductionIgnitionCut(config.getTorqueReductionIgnitionCut());
|
||||
getTestEngineConfiguration().configureTorqueReductionIgnitionRetard(config.getTorqueReductionIgnitionRetard());
|
||||
|
||||
getTestEngineConfiguration().configureFuelPressureSensorMode(config.getFuelPressureSensorMode());
|
||||
|
||||
// Injector
|
||||
getTestEngineConfiguration().configureInjectorFlowAsMassFlow(config.getInjectorFlowAsMassFlow());
|
||||
getTestEngineConfiguration().configureInjectorFlow(config.getInjectorFlow());
|
||||
getTestEngineConfiguration().configureInjectorBattLagCorr(config.getInjectorBattLagCorr());
|
||||
getTestEngineConfiguration().configureFuelReferencePressure(config.getFuelReferencePressure());
|
||||
getTestEngineConfiguration().configureInjectorCompensationMode(config.getInjectorCompensationMode());
|
||||
|
||||
// Secondary injector
|
||||
getTestEngineConfiguration().configureInjectorSecondaryFlow(config.getInjectorSecondaryFlow());
|
||||
getTestEngineConfiguration().configureInjectorSecondaryBattLagCorr(config.getInjectorSecondaryBattLagCorr());
|
||||
getTestEngineConfiguration().configureSecondaryInjectorFuelReferencePressure(
|
||||
config.getSecondaryInjectorFuelReferencePressure()
|
||||
);
|
||||
getTestEngineConfiguration().configureSecondaryInjectorCompensationMode(
|
||||
config.getSecondaryInjectorCompensationMode()
|
||||
);
|
||||
|
||||
// Staged injection
|
||||
getTestEngineConfiguration().configureEnableStagedInjection(config.getStagedInjectionEnabled());
|
||||
|
||||
// Nitrous control
|
||||
getTestEngineConfiguration().configureNitrousControlEnabled(config.getNitrousControlEnabled());
|
||||
getTestEngineConfiguration().configureNitrousControlArmingMethod(config.getNitrousControlArmingMethod());
|
||||
getTestEngineConfiguration().configureNitrousControlTriggerPin(config.getNitrousControlTriggerPin());
|
||||
getTestEngineConfiguration().configureNitrousControlTriggerPinInverted(
|
||||
config.getNitrousControlTriggerPinInverted()
|
||||
);
|
||||
getTestEngineConfiguration().configureNitrousControlTriggerPinMode(config.getNitrousControlTriggerPinMode());
|
||||
getTestEngineConfiguration().configureNitrousLuaGauge(config.getNitrousLuaGauge());
|
||||
getTestEngineConfiguration().configureNitrousLuaGaugeMeaning(config.getNitrousLuaGaugeMeaning());
|
||||
getTestEngineConfiguration().configureNitrousLuaGaugeArmingValue(config.getNitrousLuaGaugeArmingValue());
|
||||
|
||||
getTestEngineConfiguration().configureNitrousMinimumVehicleSpeed(config.getNitrousMinimumVehicleSpeed());
|
||||
getTestEngineConfiguration().configureNitrousMinimumTps(config.getNitrousMinimumTps());
|
||||
getTestEngineConfiguration().configureNitrousMinimumClt(config.getNitrousMinimumClt());
|
||||
getTestEngineConfiguration().configureNitrousMaximumMap(config.getNitrousMaximumMap());
|
||||
getTestEngineConfiguration().configureNitrousMaximumAfr(config.getNitrousMaximumAfr());
|
||||
getTestEngineConfiguration().configureNitrousActivationRpm(config.getNitrousActivationRpm());
|
||||
getTestEngineConfiguration().configureNitrousDeactivationRpm(config.getNitrousDeactivationRpm());
|
||||
getTestEngineConfiguration().configureNitrousDeactivationRpmWindow(
|
||||
config.getNitrousDeactivationRpmWindow()
|
||||
);
|
||||
getTestEngineConfiguration().configureNitrousFuelAdderPercent(
|
||||
config.getNitrousFuelAdderPercent()
|
||||
);
|
||||
getTestEngineConfiguration().configureNitrousIgnitionRetard(config.getNitrousIgnitionRetard());
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
void TestBase<GtestBase>::periodicFastCallback() {
|
||||
// run the ignition math
|
||||
engine->periodicFastCallback();
|
||||
}
|
||||
|
||||
template<class GtestBase> void
|
||||
TestBase<GtestBase>::periodicSlowCallback() {
|
||||
engine->periodicSlowCallback();
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
void TestBase<GtestBase>::updateVehicleSpeed(const std::optional<float> speed, void (TestBase::* const postAction)()) {
|
||||
updateSensor(SensorType::VehicleSpeed, speed, postAction);
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
void TestBase<GtestBase>::updateRpm(const std::optional<float> rpm, void (TestBase::* const postAction)()) {
|
||||
updateSensor(SensorType::Rpm, rpm, postAction);
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
void TestBase<GtestBase>::updateApp(const std::optional<float> app, void (TestBase::* const postAction)()) {
|
||||
updateSensor(SensorType::DriverThrottleIntent, app, postAction);
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
void TestBase<GtestBase>::updateClt(const std::optional<float> clt, void (TestBase::* const postAction)()) {
|
||||
updateSensor(SensorType::Clt, clt, postAction);
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
void TestBase<GtestBase>::updateMap(const std::optional<float> map, void (TestBase::* const postAction)()) {
|
||||
updateSensor(SensorType::Map, map, postAction);
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
void TestBase<GtestBase>::updateLambda1(std::optional<float> lambda1, void (TestBase::* const postAction)()) {
|
||||
updateSensor(SensorType::Lambda1, lambda1, postAction);
|
||||
}
|
||||
|
||||
template<class GtestBase>
|
||||
void TestBase<GtestBase>::updateSensor(
|
||||
const SensorType sensor,
|
||||
const std::optional<float> sensorReading,
|
||||
void (TestBase::* const postAction)()
|
||||
) {
|
||||
if (sensorReading.has_value()) {
|
||||
Sensor::setMockValue(sensor, sensorReading.value());
|
||||
} else {
|
||||
Sensor::resetMockValue(sensor);
|
||||
}
|
||||
(this->*postAction)();
|
||||
}
|
Loading…
Reference in New Issue