enhance AcPressureTest #6570
This commit is contained in:
parent
edaa711fba
commit
af8f0ab58f
|
@ -17,6 +17,7 @@ namespace {
|
||||||
};
|
};
|
||||||
|
|
||||||
AcPressureTestConfig::AcPressureTestConfig() {
|
AcPressureTestConfig::AcPressureTestConfig() {
|
||||||
|
setAcDelay(0.0f);
|
||||||
setMinAcPressure(TEST_MIN_AC_PRESSURE);
|
setMinAcPressure(TEST_MIN_AC_PRESSURE);
|
||||||
setMaxAcPressure(TEST_MAX_AC_PRESSURE);
|
setMaxAcPressure(TEST_MAX_AC_PRESSURE);
|
||||||
}
|
}
|
||||||
|
@ -38,8 +39,9 @@ namespace {
|
||||||
void AcPressureTest::doTest(const AcPressureTestConfig& config, const std::vector<AcPressureTestData>& testData) {
|
void AcPressureTest::doTest(const AcPressureTestConfig& config, const std::vector<AcPressureTestData>& testData) {
|
||||||
setUpTestConfig(config);
|
setUpTestConfig(config);
|
||||||
|
|
||||||
|
engineConfiguration->acDelay = 0;
|
||||||
Sensor::setMockValue(SensorType::Rpm, 500); // to avoid engineTooSlow
|
Sensor::setMockValue(SensorType::Rpm, 500); // to avoid engineTooSlow
|
||||||
engine->engineModules.get<AcController>()->acButtonState = true;
|
engine->engineState.lua.acRequestState = true; // to emulate pressed A/C button
|
||||||
|
|
||||||
for (const AcPressureTestData& testDataItem: testData) {
|
for (const AcPressureTestData& testDataItem: testData) {
|
||||||
updateAcPressure(testDataItem.acPressure);
|
updateAcPressure(testDataItem.acPressure);
|
||||||
|
@ -53,10 +55,18 @@ namespace {
|
||||||
engine->engineModules.get<AcController>()->acPressureTooHigh,
|
engine->engineModules.get<AcController>()->acPressureTooHigh,
|
||||||
testDataItem.expectedAcPressureTooHigh
|
testDataItem.expectedAcPressureTooHigh
|
||||||
) << testDataItem.context;
|
) << testDataItem.context;
|
||||||
|
const bool shouldAcBeEnabled = !testDataItem.expectedAcPressureTooLow
|
||||||
|
&& !testDataItem.expectedAcPressureTooHigh;
|
||||||
|
EXPECT_EQ(engine->engineModules.get<AcController>()->isAcEnabled(), shouldAcBeEnabled)
|
||||||
|
<< testDataItem.context;
|
||||||
|
EXPECT_EQ(engine->engineModules.get<AcController>()->acCompressorState, shouldAcBeEnabled)
|
||||||
|
<< testDataItem.context;
|
||||||
|
EXPECT_EQ(enginePins.acRelay.getLogicValue(), shouldAcBeEnabled) << testDataItem.context;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AcPressureTest::checkPersistentIndicators() {
|
void AcPressureTest::checkPersistentIndicators() {
|
||||||
|
EXPECT_TRUE(engine->engineModules.get<AcController>()->acButtonState);
|
||||||
EXPECT_FALSE(engine->engineModules.get<AcController>()->engineTooSlow);
|
EXPECT_FALSE(engine->engineModules.get<AcController>()->engineTooSlow);
|
||||||
EXPECT_FALSE(engine->engineModules.get<AcController>()->engineTooFast);
|
EXPECT_FALSE(engine->engineModules.get<AcController>()->engineTooFast);
|
||||||
EXPECT_FALSE(engine->engineModules.get<AcController>()->noClt);
|
EXPECT_FALSE(engine->engineModules.get<AcController>()->noClt);
|
||||||
|
|
|
@ -12,10 +12,19 @@ void AcTestBase::updateAcPressure(float acPressure) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AcTestBase::setUpTestConfig(const AcTestConfig& config) {
|
void AcTestBase::setUpTestConfig(const AcTestConfig& config) {
|
||||||
|
configureAcDelay(config.getAcDelay());
|
||||||
configureMinAcPressure(config.getMinAcPressure());
|
configureMinAcPressure(config.getMinAcPressure());
|
||||||
configureMaxAcPressure(config.getMaxAcPressure());
|
configureMaxAcPressure(config.getMaxAcPressure());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AcTestBase::configureAcDelay(const std::optional<float> acDelay) {
|
||||||
|
if (acDelay.has_value()) {
|
||||||
|
engineConfiguration->acDelay = acDelay.value();
|
||||||
|
} else {
|
||||||
|
ASSERT_EQ(engineConfiguration->acDelay, 0.5); // check default value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void AcTestBase::configureMinAcPressure(const std::optional<uint16_t> minAcPressure) {
|
void AcTestBase::configureMinAcPressure(const std::optional<uint16_t> minAcPressure) {
|
||||||
if (minAcPressure.has_value()) {
|
if (minAcPressure.has_value()) {
|
||||||
engineConfiguration->minAcPressure = minAcPressure.value();
|
engineConfiguration->minAcPressure = minAcPressure.value();
|
||||||
|
|
|
@ -8,12 +8,15 @@
|
||||||
|
|
||||||
class AcTestConfig {
|
class AcTestConfig {
|
||||||
public:
|
public:
|
||||||
|
std::optional<float> getAcDelay() const { return m_acDelay; }
|
||||||
std::optional<uint16_t> getMinAcPressure() const { return m_minAcPressure; }
|
std::optional<uint16_t> getMinAcPressure() const { return m_minAcPressure; }
|
||||||
std::optional<uint16_t> getMaxAcPressure() const { return m_maxAcPressure; }
|
std::optional<uint16_t> getMaxAcPressure() const { return m_maxAcPressure; }
|
||||||
protected:
|
protected:
|
||||||
|
void setAcDelay(const std::optional<float> value) { m_acDelay = value; }
|
||||||
void setMinAcPressure(const std::optional<uint16_t> value) { m_minAcPressure = value; }
|
void setMinAcPressure(const std::optional<uint16_t> value) { m_minAcPressure = value; }
|
||||||
void setMaxAcPressure(const std::optional<uint16_t> value) { m_maxAcPressure = value; }
|
void setMaxAcPressure(const std::optional<uint16_t> value) { m_maxAcPressure = value; }
|
||||||
private:
|
private:
|
||||||
|
std::optional<float> m_acDelay;
|
||||||
std::optional<uint16_t> m_minAcPressure;
|
std::optional<uint16_t> m_minAcPressure;
|
||||||
std::optional<uint16_t> m_maxAcPressure;
|
std::optional<uint16_t> m_maxAcPressure;
|
||||||
};
|
};
|
||||||
|
@ -24,6 +27,7 @@ protected:
|
||||||
|
|
||||||
void setUpTestConfig(const AcTestConfig& config);
|
void setUpTestConfig(const AcTestConfig& config);
|
||||||
private:
|
private:
|
||||||
|
void configureAcDelay(const std::optional<float> acDelay);
|
||||||
void configureMinAcPressure(const std::optional<uint16_t> minAcPressure);
|
void configureMinAcPressure(const std::optional<uint16_t> minAcPressure);
|
||||||
void configureMaxAcPressure(const std::optional<uint16_t> maxAcPressure);
|
void configureMaxAcPressure(const std::optional<uint16_t> maxAcPressure);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue