unit tests progress

This commit is contained in:
rusefi 2019-09-19 08:05:23 -04:00
parent 8dcb2d9690
commit bda089011c
3 changed files with 25 additions and 18 deletions

View File

@ -151,6 +151,14 @@ public:
float fsioIdleOffset = 0;
float fsioIdleMinValue = 0;
#if EFI_UNIT_TEST
float mockFan = 0;
float mockRpm = 0;
float mockCrankingRpm = 0;
float mockTimeSinceBoot = 0;
int mockAcToggle = 0;
#endif
#if EFI_ENABLE_ENGINE_WARNING
/**
* Shall we purposely miss on some cylinders in order to attract driver's attention to some problem

View File

@ -19,10 +19,10 @@ TEST(idle, fsioPidParameters) {
// todo finish this unit test!
engineConfiguration->useFSIO12ForIdleOffset = true;
setFsioExpression(QUOTE(MAGIC_OFFSET_FOR_IDLE_OFFSET), "\"ac_on_switch cfg_idleRpmPid_offset cfg_idleRpmPid2_offset if" PASS_ENGINE_PARAMETER_SUFFIX);
setFsioExpression(QUOTE(MAGIC_OFFSET_FOR_IDLE_OFFSET), "ac_on_switch cfg_idleRpmPid_offset cfg_idleRpmPid2_offset if" PASS_ENGINE_PARAMETER_SUFFIX);
engineConfiguration->useFSIO13ForIdleMinValue = true;
setFsioExpression(QUOTE(MAGIC_OFFSET_FOR_IDLE_MIN_VALUE), "\"ac_on_switch cfg_idleRpmPid_minValue cfg_idleRpmPid2_minValue if" PASS_ENGINE_PARAMETER_SUFFIX);
setFsioExpression(QUOTE(MAGIC_OFFSET_FOR_IDLE_MIN_VALUE), "ac_on_switch cfg_idleRpmPid_minValue cfg_idleRpmPid2_minValue if" PASS_ENGINE_PARAMETER_SUFFIX);
eth.engine.periodicSlowCallback(PASS_ENGINE_PARAMETER_SIGNATURE);
}

View File

@ -14,30 +14,29 @@
#define TEST_POOL_SIZE 256
static float mockFan;
static float mockRpm;
static float mockCrankingRpm;
static float mockTimeSinceBoot;
float getEngineValue(le_action_e action DECLARE_ENGINE_PARAMETER_SUFFIX) {
switch(action) {
case LE_METHOD_FAN:
return mockFan;
return engine->fsioState.mockFan;
case LE_METHOD_COOLANT:
return engine->sensors.clt;
case LE_METHOD_RPM:
return mockRpm;
return engine->fsioState.mockRpm;
case LE_METHOD_CRANKING_RPM:
return mockCrankingRpm;
return engine->fsioState.mockCrankingRpm;
case LE_METHOD_TIME_SINCE_BOOT:
return mockTimeSinceBoot;
return engine->fsioState.mockTimeSinceBoot;
case FSIO_SETTING_FANONTEMPERATURE:
case FSIO_SETTING_FANOFFTEMPERATURE:
return 0;
case LE_METHOD_VBATT:
return 12;
case LE_METHOD_IS_COOLANT_BROKEN:
case FSIO_SETTING_IDLERPMPID_MINVALUE:
case FSIO_SETTING_IDLERPMPID2_MINVALUE:
return 0;
case LE_METHOD_AC_TOGGLE:
return engine->fsioState.mockAcToggle;
default:
firmwareError(OBD_PCM_Processor_Fault, "FSIO: No mock value for %d", action);
return NAN;
@ -181,7 +180,6 @@ TEST(fsio, testLogicExpressions) {
* fan = (not fan && coolant > 90) OR (fan && coolant > 85)
* fan = fan NOT coolant 90 AND more fan coolant 85 more AND OR
*/
mockFan = 0;
{
WITH_ENGINE_TEST_HELPER(FORD_INLINE_6_1995);
@ -225,11 +223,12 @@ TEST(fsio, testLogicExpressions) {
testExpression(FAN_CONTROL_LOGIC, 1);
{
mockRpm = 900;
mockCrankingRpm = 200;
testExpression("rpm", 900);
testExpression("cranking_rpm", 200);
testExpression(STARTER_BLOCK, 0);
testExpression("rpm cranking_rpm > ", 1);
WITH_ENGINE_TEST_HELPER(FORD_INLINE_6_1995);
engine->fsioState.mockRpm = 900;
engine->fsioState.mockCrankingRpm = 200;
testExpression2(0, "rpm", 900, engine);
testExpression2(0, "cranking_rpm", 200, engine);
testExpression2(0, STARTER_BLOCK, 0, engine);
testExpression2(0, "rpm cranking_rpm > ", 1, engine);
}
}