diff --git a/unit_tests/tests/ac/ac_test_base.h b/unit_tests/tests/ac/ac_test_base.h index 2b3144a147..9f873ed10f 100644 --- a/unit_tests/tests/ac/ac_test_base.h +++ b/unit_tests/tests/ac/ac_test_base.h @@ -24,7 +24,7 @@ private: std::optional m_AcPressureEnableHysteresis; }; -class AcTestBase : public TestBase { +class AcTestBase : public TestBase<> { protected: void updateAcPressure(float acPressure); diff --git a/unit_tests/tests/actuators/boost/boost_test_base.h b/unit_tests/tests/actuators/boost/boost_test_base.h index f095fc1c52..e6fbecd8da 100644 --- a/unit_tests/tests/actuators/boost/boost_test_base.h +++ b/unit_tests/tests/actuators/boost/boost_test_base.h @@ -6,7 +6,7 @@ #include "util/test_base.h" -class BoostTestBase : public TestBase { +class BoostTestBase : public TestBase<> { protected: using ValueByIndexRetriever = std::function(int)>; diff --git a/unit_tests/tests/actuators/test_alternator_voltage_target_set_point.cpp b/unit_tests/tests/actuators/test_alternator_voltage_target_set_point.cpp index 45ff5dcfd3..3cf99a3b0d 100644 --- a/unit_tests/tests/actuators/test_alternator_voltage_target_set_point.cpp +++ b/unit_tests/tests/actuators/test_alternator_voltage_target_set_point.cpp @@ -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; diff --git a/unit_tests/tests/ignition_injection/test_fuel_differential_pressure.cpp b/unit_tests/tests/ignition_injection/test_fuel_differential_pressure.cpp index 4962126010..d9917e504e 100644 --- a/unit_tests/tests/ignition_injection/test_fuel_differential_pressure.cpp +++ b/unit_tests/tests/ignition_injection/test_fuel_differential_pressure.cpp @@ -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; diff --git a/unit_tests/tests/ignition_injection/test_staged_injection.cpp b/unit_tests/tests/ignition_injection/test_staged_injection.cpp index d0600c557f..fad51f3d7f 100644 --- a/unit_tests/tests/ignition_injection/test_staged_injection.cpp +++ b/unit_tests/tests/ignition_injection/test_staged_injection.cpp @@ -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; }; diff --git a/unit_tests/tests/launch/launch_test_base.h b/unit_tests/tests/launch/launch_test_base.h index cf7fd611fe..8c41e4cbfe 100644 --- a/unit_tests/tests/launch/launch_test_base.h +++ b/unit_tests/tests/launch/launch_test_base.h @@ -19,7 +19,7 @@ private: bool m_satisfyActivationSwithSpeedAndTpsConditions { false }; }; -class LaunchTestBase : public TestBase { +class LaunchTestBase : public TestBase<> { protected: void setUpTestConfig(const LaunchTestConfig& config); diff --git a/unit_tests/tests/launch/test_launch_target_skip_ratio.cpp b/unit_tests/tests/launch/test_launch_target_skip_ratio.cpp index 5b7b7fac6f..50b3f3a51f 100644 --- a/unit_tests/tests/launch/test_launch_target_skip_ratio.cpp +++ b/unit_tests/tests/launch/test_launch_target_skip_ratio.cpp @@ -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; }; diff --git a/unit_tests/tests/nitrous_control/nitrous_test_base.h b/unit_tests/tests/nitrous_control/nitrous_test_base.h index f1d3f878d4..a6fe521aa2 100644 --- a/unit_tests/tests/nitrous_control/nitrous_test_base.h +++ b/unit_tests/tests/nitrous_control/nitrous_test_base.h @@ -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; diff --git a/unit_tests/tests/nitrous_control/test_nitrous_afr_condition.cpp b/unit_tests/tests/nitrous_control/test_nitrous_afr_condition.cpp index f47e304d69..c9aeca78a4 100644 --- a/unit_tests/tests/nitrous_control/test_nitrous_afr_condition.cpp +++ b/unit_tests/tests/nitrous_control/test_nitrous_afr_condition.cpp @@ -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; diff --git a/unit_tests/tests/nitrous_control/test_nitrous_arming.cpp b/unit_tests/tests/nitrous_control/test_nitrous_arming.cpp index e4d931641c..f662bb0863 100644 --- a/unit_tests/tests/nitrous_control/test_nitrous_arming.cpp +++ b/unit_tests/tests/nitrous_control/test_nitrous_arming.cpp @@ -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; diff --git a/unit_tests/tests/nitrous_control/test_nitrous_clt_condition.cpp b/unit_tests/tests/nitrous_control/test_nitrous_clt_condition.cpp index 4fca4af6cc..0ca135d4d2 100644 --- a/unit_tests/tests/nitrous_control/test_nitrous_clt_condition.cpp +++ b/unit_tests/tests/nitrous_control/test_nitrous_clt_condition.cpp @@ -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; diff --git a/unit_tests/tests/nitrous_control/test_nitrous_map_condition.cpp b/unit_tests/tests/nitrous_control/test_nitrous_map_condition.cpp index e99eecb639..15d6aa1233 100644 --- a/unit_tests/tests/nitrous_control/test_nitrous_map_condition.cpp +++ b/unit_tests/tests/nitrous_control/test_nitrous_map_condition.cpp @@ -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; diff --git a/unit_tests/tests/nitrous_control/test_nitrous_rpm_condition.cpp b/unit_tests/tests/nitrous_control/test_nitrous_rpm_condition.cpp index 2949147c3b..fc2cc3d386 100644 --- a/unit_tests/tests/nitrous_control/test_nitrous_rpm_condition.cpp +++ b/unit_tests/tests/nitrous_control/test_nitrous_rpm_condition.cpp @@ -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; diff --git a/unit_tests/tests/nitrous_control/test_nitrous_speed_condition.cpp b/unit_tests/tests/nitrous_control/test_nitrous_speed_condition.cpp index 364e7e8119..f8cfbf14f3 100644 --- a/unit_tests/tests/nitrous_control/test_nitrous_speed_condition.cpp +++ b/unit_tests/tests/nitrous_control/test_nitrous_speed_condition.cpp @@ -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; diff --git a/unit_tests/tests/nitrous_control/test_nitrous_tps_condition.cpp b/unit_tests/tests/nitrous_control/test_nitrous_tps_condition.cpp index a42587062f..8b55aad9e4 100644 --- a/unit_tests/tests/nitrous_control/test_nitrous_tps_condition.cpp +++ b/unit_tests/tests/nitrous_control/test_nitrous_tps_condition.cpp @@ -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; diff --git a/unit_tests/tests/shift_torque_reduction/flat_shift_condition_test_base.h b/unit_tests/tests/shift_torque_reduction/flat_shift_condition_test_base.h index eae72b01a5..a7809781fc 100644 --- a/unit_tests/tests/shift_torque_reduction/flat_shift_condition_test_base.h +++ b/unit_tests/tests/shift_torque_reduction/flat_shift_condition_test_base.h @@ -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; diff --git a/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_app_condition.cpp b/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_app_condition.cpp index 1c8d2aff4c..1e0b5762e4 100644 --- a/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_app_condition.cpp +++ b/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_app_condition.cpp @@ -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 rpm, bool expectedAppCondition, const char* context); }; diff --git a/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_flat_shift_condition.cpp b/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_flat_shift_condition.cpp index 4fa9440cc9..9a72a63094 100644 --- a/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_flat_shift_condition.cpp +++ b/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_flat_shift_condition.cpp @@ -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; diff --git a/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_rpm_condition.cpp b/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_rpm_condition.cpp index 434701b573..d647d69f15 100644 --- a/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_rpm_condition.cpp +++ b/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_rpm_condition.cpp @@ -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); }; diff --git a/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_time_condition.cpp b/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_time_condition.cpp index 01de1958f0..d023317878 100644 --- a/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_time_condition.cpp +++ b/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_time_condition.cpp @@ -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, diff --git a/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_trigger_pin_state.cpp b/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_trigger_pin_state.cpp index 86b8411ff9..1f043ce9dd 100644 --- a/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_trigger_pin_state.cpp +++ b/unit_tests/tests/shift_torque_reduction/test_shift_torque_reduction_trigger_pin_state.cpp @@ -17,7 +17,7 @@ namespace { const bool torqueReductionTriggerPinState; }; - class ShiftTorqueReductionTriggerPinTest : public TestBase { + class ShiftTorqueReductionTriggerPinTest : public TestBase<> { protected: void checkShiftTorqueReductionState(const ShiftTorqueReductionTriggerPinTestData& expected); void checkShiftTorqueReductionStateAfterPeriodicFastCallback( diff --git a/unit_tests/tests/util/test_base.cpp b/unit_tests/tests/util/test_base.cpp index f31aa59e27..f52ea0a7e4 100644 --- a/unit_tests/tests/util/test_base.cpp +++ b/unit_tests/tests/util/test_base.cpp @@ -5,153 +5,3 @@ #include "pch.h" #include "test_base.h" - -void TestBase::SetUp() { - eth = std::make_unique(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 speed, void (TestBase::* const postAction)()) { - updateSensor(SensorType::VehicleSpeed, speed, postAction); -} - -void TestBase::updateRpm(const std::optional rpm, void (TestBase::* const postAction)()) { - updateSensor(SensorType::Rpm, rpm, postAction); -} - -void TestBase::updateApp(const std::optional app, void (TestBase::* const postAction)()) { - updateSensor(SensorType::DriverThrottleIntent, app, postAction); -} - -void TestBase::updateClt(const std::optional clt, void (TestBase::* const postAction)()) { - updateSensor(SensorType::Clt, clt, postAction); -} - -void TestBase::updateMap(const std::optional map, void (TestBase::* const postAction)()) { - updateSensor(SensorType::Map, map, postAction); -} - -void TestBase::updateLambda1(std::optional lambda1, void (TestBase::* const postAction)()) { - updateSensor(SensorType::Lambda1, lambda1, postAction); -} - -void TestBase::updateSensor( - const SensorType sensor, - const std::optional sensorReading, - void (TestBase::* const postAction)() -) { - if (sensorReading.has_value()) { - Sensor::setMockValue(sensor, sensorReading.value()); - } else { - Sensor::resetMockValue(sensor); - } - (this->*postAction)(); -} \ No newline at end of file diff --git a/unit_tests/tests/util/test_base.h b/unit_tests/tests/util/test_base.h index 528e717069..8835106217 100644 --- a/unit_tests/tests/util/test_base.h +++ b/unit_tests/tests/util/test_base.h @@ -10,7 +10,8 @@ #include "test_lua_script_executor.h" #include "engine_config.h" -class TestBase : public testing::Test { +template +class TestBase : public GtestBase { protected: void SetUp() override; void TearDown() override; @@ -42,6 +43,4 @@ private: std::unique_ptr eth; }; -template ModuleType& TestBase::getModule() { - return engine->module().unmock(); -} +#include "test_base.hpp" // template methods implementation \ No newline at end of file diff --git a/unit_tests/tests/util/test_base.hpp b/unit_tests/tests/util/test_base.hpp new file mode 100644 index 0000000000..151b37d010 --- /dev/null +++ b/unit_tests/tests/util/test_base.hpp @@ -0,0 +1,171 @@ +template +template +ModuleType& TestBase::getModule() { + return engine->module().unmock(); +} + +template +void TestBase::SetUp() { + eth = std::make_unique(engine_type_e::TEST_ENGINE); +} + +template +void TestBase::TearDown() { + eth.reset(); +} + +template +TestEngineConfiguration& TestBase::getTestEngineConfiguration() { + return TestEngineConfiguration::getInstance(); +} + +template +TestPersistentConfiguration& TestBase::getTestPersistentConfiguration() { + return TestPersistentConfiguration::getInstance(); +} + +template +TestLuaScriptExecutor& TestBase::getTestLuaScriptExecutor() { + return TestLuaScriptExecutor::getInstance(); +} + +template +TestEngineState& TestBase::getTestEngineState() { + return TestEngineState::getInstance(); +} + +template +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()); +} + +template +void TestBase::periodicFastCallback() { + // run the ignition math + engine->periodicFastCallback(); +} + +template void +TestBase::periodicSlowCallback() { + engine->periodicSlowCallback(); +} + +template +void TestBase::updateVehicleSpeed(const std::optional speed, void (TestBase::* const postAction)()) { + updateSensor(SensorType::VehicleSpeed, speed, postAction); +} + +template +void TestBase::updateRpm(const std::optional rpm, void (TestBase::* const postAction)()) { + updateSensor(SensorType::Rpm, rpm, postAction); +} + +template +void TestBase::updateApp(const std::optional app, void (TestBase::* const postAction)()) { + updateSensor(SensorType::DriverThrottleIntent, app, postAction); +} + +template +void TestBase::updateClt(const std::optional clt, void (TestBase::* const postAction)()) { + updateSensor(SensorType::Clt, clt, postAction); +} + +template +void TestBase::updateMap(const std::optional map, void (TestBase::* const postAction)()) { + updateSensor(SensorType::Map, map, postAction); +} + +template +void TestBase::updateLambda1(std::optional lambda1, void (TestBase::* const postAction)()) { + updateSensor(SensorType::Lambda1, lambda1, postAction); +} + +template +void TestBase::updateSensor( + const SensorType sensor, + const std::optional sensorReading, + void (TestBase::* const postAction)() +) { + if (sensorReading.has_value()) { + Sensor::setMockValue(sensor, sensorReading.value()); + } else { + Sensor::resetMockValue(sensor); + } + (this->*postAction)(); +} \ No newline at end of file