tests: reducing code duplication

This commit is contained in:
rusefi 2019-01-19 20:42:29 -05:00
parent ba3ebfb477
commit 082e7d268d
12 changed files with 36 additions and 65 deletions

View File

@ -97,6 +97,9 @@ class Engine;
Engine *engine = &eth.engine; \ Engine *engine = &eth.engine; \
EXPAND_Engine EXPAND_Engine
#define WITH_ENGINE_TEST_HELPER(x) EngineTestHelper eth(x); \
EXPAND_EngineTestHelper;
#define CONFIG(x) engineConfiguration->x #define CONFIG(x) engineConfiguration->x
// todo: fix this! this does not work because of 'prepareVoidConfiguration(&activeConfiguration);' // todo: fix this! this does not work because of 'prepareVoidConfiguration(&activeConfiguration);'
//#define CONFIGB(x) engine->engineConfigurationPtr->bc.x //#define CONFIGB(x) engine->engineConfigurationPtr->bc.x

View File

@ -14,8 +14,7 @@
TEST(big, testAccelEnrichment) { TEST(big, testAccelEnrichment) {
printf("====================================================================================== testAccelEnrichment\r\n"); printf("====================================================================================== testAccelEnrichment\r\n");
EngineTestHelper eth(FORD_ASPIRE_1996); WITH_ENGINE_TEST_HELPER(FORD_ASPIRE_1996);
EXPAND_EngineTestHelper;
engine->rpmCalculator.setRpmValue(600 PASS_ENGINE_PARAMETER_SUFFIX); engine->rpmCalculator.setRpmValue(600 PASS_ENGINE_PARAMETER_SUFFIX);
engine->periodicFastCallback(PASS_ENGINE_PARAMETER_SIGNATURE); engine->periodicFastCallback(PASS_ENGINE_PARAMETER_SIGNATURE);

View File

@ -16,8 +16,7 @@
TEST(misc, testIgnitionPlanning) { TEST(misc, testIgnitionPlanning) {
printf("*************************************************** testIgnitionPlanning\r\n"); printf("*************************************************** testIgnitionPlanning\r\n");
EngineTestHelper eth(FORD_ESCORT_GT); WITH_ENGINE_TEST_HELPER(FORD_ESCORT_GT);
EXPAND_EngineTestHelper;
eth.engine.periodicFastCallback(PASS_ENGINE_PARAMETER_SIGNATURE); eth.engine.periodicFastCallback(PASS_ENGINE_PARAMETER_SIGNATURE);
assertEqualsM("testIgnitionPlanning_AFR", 13.5, eth.engine.engineState.targetAFR); assertEqualsM("testIgnitionPlanning_AFR", 13.5, eth.engine.engineState.targetAFR);
@ -28,8 +27,7 @@ TEST(misc, testIgnitionPlanning) {
TEST(misc, testEngineMath) { TEST(misc, testEngineMath) {
printf("*************************************************** testEngineMath\r\n"); printf("*************************************************** testEngineMath\r\n");
EngineTestHelper eth(FORD_ESCORT_GT); WITH_ENGINE_TEST_HELPER(FORD_ESCORT_GT);
EXPAND_EngineTestHelper;
engineConfiguration->operationMode = FOUR_STROKE_CAM_SENSOR; engineConfiguration->operationMode = FOUR_STROKE_CAM_SENSOR;
@ -88,8 +86,7 @@ TEST(misc, testIgnitionMapGenerator) {
TEST(misc, testMafLookup) { TEST(misc, testMafLookup) {
printf("*************************************************** testMafLookup\r\n"); printf("*************************************************** testMafLookup\r\n");
EngineTestHelper eth(FORD_ESCORT_GT); WITH_ENGINE_TEST_HELPER(FORD_ESCORT_GT);
EXPAND_EngineTestHelper;
setBosch0280218037(config); setBosch0280218037(config);
engine->preCalculate(PASS_ENGINE_PARAMETER_SIGNATURE); engine->preCalculate(PASS_ENGINE_PARAMETER_SIGNATURE);

View File

@ -10,8 +10,7 @@
TEST(sensors, testFasterEngineSpinningUp) { TEST(sensors, testFasterEngineSpinningUp) {
printf("*************************************************** testFasterEngineSpinningUp\r\n"); printf("*************************************************** testFasterEngineSpinningUp\r\n");
EngineTestHelper eth(TEST_ENGINE); WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
EXPAND_EngineTestHelper
// turn on FasterEngineSpinUp mode // turn on FasterEngineSpinUp mode
engineConfiguration->bc.isFasterEngineSpinUpEnabled = true; engineConfiguration->bc.isFasterEngineSpinUpEnabled = true;
eth.firePrimaryTriggerRise(); eth.firePrimaryTriggerRise();

View File

@ -20,8 +20,7 @@ extern float testMafValue;
TEST(misc, testMafFuelMath) { TEST(misc, testMafFuelMath) {
printf("====================================================================================== testMafFuelMath\r\n"); printf("====================================================================================== testMafFuelMath\r\n");
EngineTestHelper eth(FORD_ASPIRE_1996); WITH_ENGINE_TEST_HELPER(FORD_ASPIRE_1996);
EXPAND_EngineTestHelper;
engineConfiguration->fuelAlgorithm = LM_REAL_MAF; engineConfiguration->fuelAlgorithm = LM_REAL_MAF;
engineConfiguration->injector.flow = 200; engineConfiguration->injector.flow = 200;
@ -36,8 +35,7 @@ TEST(misc, testFuelMap) {
printf("====================================================================================== testFuelMap\r\n"); printf("====================================================================================== testFuelMap\r\n");
printf("Setting up FORD_ASPIRE_1996\r\n"); printf("Setting up FORD_ASPIRE_1996\r\n");
EngineTestHelper eth(FORD_ASPIRE_1996); WITH_ENGINE_TEST_HELPER(FORD_ASPIRE_1996);
EXPAND_EngineTestHelper;
printf("Filling fuel map\r\n"); printf("Filling fuel map\r\n");
for (int k = 0; k < FUEL_LOAD_COUNT; k++) { for (int k = 0; k < FUEL_LOAD_COUNT; k++) {
@ -164,8 +162,7 @@ static void confgiureFordAspireTriggerShape(TriggerShape * s) {
TEST(misc, testAngleResolver) { TEST(misc, testAngleResolver) {
printf("*************************************************** testAngleResolver\r\n"); printf("*************************************************** testAngleResolver\r\n");
EngineTestHelper eth(FORD_ASPIRE_1996); WITH_ENGINE_TEST_HELPER(FORD_ASPIRE_1996);
EXPAND_EngineTestHelper;
engineConfiguration->globalTriggerAngleOffset = 175; engineConfiguration->globalTriggerAngleOffset = 175;

View File

@ -95,8 +95,7 @@ static void testExpression2(float selfValue, const char *line, float expected) {
ASSERT_TRUE(element != NULL) << "Not NULL expected"; ASSERT_TRUE(element != NULL) << "Not NULL expected";
LECalculator c; LECalculator c;
EngineTestHelper eth(FORD_INLINE_6_1995); WITH_ENGINE_TEST_HELPER(FORD_INLINE_6_1995);
EXPAND_EngineTestHelper;
assertEqualsM(line, expected, c.getValue2(selfValue, element PASS_ENGINE_PARAMETER_SUFFIX)); assertEqualsM(line, expected, c.getValue2(selfValue, element PASS_ENGINE_PARAMETER_SUFFIX));
} }
@ -110,8 +109,7 @@ TEST(misc, testLogicExpressions) {
testParsing(); testParsing();
EngineTestHelper eth(FORD_INLINE_6_1995); WITH_ENGINE_TEST_HELPER(FORD_INLINE_6_1995);
EXPAND_EngineTestHelper;
LECalculator c; LECalculator c;

View File

@ -14,8 +14,7 @@
TEST(maf2map, util) { TEST(maf2map, util) {
EngineTestHelper eth(FORD_ASPIRE_1996); WITH_ENGINE_TEST_HELPER(FORD_ASPIRE_1996);
EXPAND_EngineTestHelper;
engineConfiguration->fuelAlgorithm = LM_REAL_MAF; engineConfiguration->fuelAlgorithm = LM_REAL_MAF;
@ -26,6 +25,6 @@ TEST(maf2map, util) {
TEST(maf2map, integrated) { TEST(maf2map, integrated) {
EngineTestHelper eth(MIATA_NA6_VAF); WITH_ENGINE_TEST_HELPER(MIATA_NA6_VAF);
} }

View File

@ -13,8 +13,7 @@
static ThermistorConf tc; static ThermistorConf tc;
TEST(sensors, mapDecoding) { TEST(sensors, mapDecoding) {
EngineTestHelper eth(FORD_INLINE_6_1995); WITH_ENGINE_TEST_HELPER(FORD_INLINE_6_1995);
EXPAND_EngineTestHelper;
air_pressure_sensor_config_s s; air_pressure_sensor_config_s s;
s.type = MT_DENSO183; s.type = MT_DENSO183;
@ -30,8 +29,7 @@ TEST(sensors, mapDecoding) {
TEST(sensors, tps) { TEST(sensors, tps) {
print("************************************************** testTps\r\n"); print("************************************************** testTps\r\n");
EngineTestHelper eth(DODGE_RAM); WITH_ENGINE_TEST_HELPER(DODGE_RAM);
EXPAND_EngineTestHelper;
engineConfiguration->tpsMax = 193; engineConfiguration->tpsMax = 193;
engineConfiguration->tpsMin = 43; engineConfiguration->tpsMin = 43;

View File

@ -11,8 +11,7 @@
TEST(big, testSpeedDensity) { TEST(big, testSpeedDensity) {
printf("*************************************************** testSpeedDensity\r\n"); printf("*************************************************** testSpeedDensity\r\n");
EngineTestHelper eth(FORD_INLINE_6_1995); WITH_ENGINE_TEST_HELPER(FORD_INLINE_6_1995);
EXPAND_EngineTestHelper;
engineConfiguration->trigger.customTotalToothCount = 8; engineConfiguration->trigger.customTotalToothCount = 8;
eth.applyTriggerShape(); eth.applyTriggerShape();

View File

@ -10,8 +10,7 @@
TEST(engine, testPlainCrankingWithoutAdvancedFeatures) { TEST(engine, testPlainCrankingWithoutAdvancedFeatures) {
printf("*************************************************** testPlainCrankingWithoutAdvancedFeatures\r\n"); printf("*************************************************** testPlainCrankingWithoutAdvancedFeatures\r\n");
EngineTestHelper eth(TEST_ENGINE); WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
EXPAND_EngineTestHelper
setupSimpleTestEngineWithMafAndTT_ONE_trigger(&eth); setupSimpleTestEngineWithMafAndTT_ONE_trigger(&eth);
ASSERT_EQ( 0, engine->rpmCalculator.getRpm(PASS_ENGINE_PARAMETER_SIGNATURE)) << "RPM=0"; ASSERT_EQ( 0, engine->rpmCalculator.getRpm(PASS_ENGINE_PARAMETER_SIGNATURE)) << "RPM=0";
@ -34,8 +33,7 @@ TEST(engine, testPlainCrankingWithoutAdvancedFeatures) {
TEST(engine, testStartOfCrankingPrimingPulse) { TEST(engine, testStartOfCrankingPrimingPulse) {
printf("*************************************************** testStartOfCrankingPrimingPulse\r\n"); printf("*************************************************** testStartOfCrankingPrimingPulse\r\n");
EngineTestHelper eth(TEST_ENGINE); WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
EXPAND_EngineTestHelper
engineConfiguration->startOfCrankingPrimingPulse = 4; engineConfiguration->startOfCrankingPrimingPulse = 4;

View File

@ -46,8 +46,7 @@ void sendOutConfirmation(char *value, int i) {
} }
static int getTriggerZeroEventIndex(engine_type_e engineType) { static int getTriggerZeroEventIndex(engine_type_e engineType) {
EngineTestHelper eth(engineType); WITH_ENGINE_TEST_HELPER(engineType);
EXPAND_EngineTestHelper;
initDataStructures(PASS_ENGINE_PARAMETER_SIGNATURE); initDataStructures(PASS_ENGINE_PARAMETER_SIGNATURE);
@ -61,8 +60,7 @@ static void testDodgeNeonDecoder(void) {
ASSERT_EQ( 8, getTriggerZeroEventIndex(DODGE_NEON_1995)) << "DODGE_NEON_1995: trigger zero index"; ASSERT_EQ( 8, getTriggerZeroEventIndex(DODGE_NEON_1995)) << "DODGE_NEON_1995: trigger zero index";
EngineTestHelper eth(DODGE_NEON_1995); WITH_ENGINE_TEST_HELPER(DODGE_NEON_1995);
EXPAND_EngineTestHelper;
TriggerShape * shape = &eth.engine.triggerCentral.triggerShape; TriggerShape * shape = &eth.engine.triggerCentral.triggerShape;
ASSERT_EQ(8, shape->getTriggerShapeSynchPointIndex()); ASSERT_EQ(8, shape->getTriggerShapeSynchPointIndex());
@ -114,8 +112,7 @@ static void assertTriggerPosition(event_trigger_position_s *position, int eventI
TEST(misc, testSomethingWeird) { TEST(misc, testSomethingWeird) {
printf("*************************************************** testSomethingWeird\r\n"); printf("*************************************************** testSomethingWeird\r\n");
EngineTestHelper eth(FORD_INLINE_6_1995); WITH_ENGINE_TEST_HELPER(FORD_INLINE_6_1995);
EXPAND_EngineTestHelper;
TriggerState state_; TriggerState state_;
TriggerState *sta = &state_; TriggerState *sta = &state_;
@ -154,8 +151,7 @@ TEST(misc, test1995FordInline6TriggerDecoder) {
ASSERT_EQ( 0, getTriggerZeroEventIndex(FORD_INLINE_6_1995)) << "triggerIndex "; ASSERT_EQ( 0, getTriggerZeroEventIndex(FORD_INLINE_6_1995)) << "triggerIndex ";
EngineTestHelper eth(FORD_INLINE_6_1995); WITH_ENGINE_TEST_HELPER(FORD_INLINE_6_1995);
EXPAND_EngineTestHelper;
TriggerShape * shape = &engine->triggerCentral.triggerShape; TriggerShape * shape = &engine->triggerCentral.triggerShape;
@ -197,8 +193,7 @@ TEST(misc, testFordAspire) {
ASSERT_EQ( 4, getTriggerZeroEventIndex(FORD_ASPIRE_1996)) << "getTriggerZeroEventIndex"; ASSERT_EQ( 4, getTriggerZeroEventIndex(FORD_ASPIRE_1996)) << "getTriggerZeroEventIndex";
EngineTestHelper eth(FORD_ASPIRE_1996); WITH_ENGINE_TEST_HELPER(FORD_ASPIRE_1996);
EXPAND_EngineTestHelper;
ASSERT_EQ( 4, TRIGGER_SHAPE(getTriggerShapeSynchPointIndex())) << "getTriggerShapeSynchPointIndex"; ASSERT_EQ( 4, TRIGGER_SHAPE(getTriggerShapeSynchPointIndex())) << "getTriggerShapeSynchPointIndex";
@ -220,8 +215,7 @@ TEST(misc, testFordAspire) {
static void testTriggerDecoder2(const char *msg, engine_type_e type, int synchPointIndex, float channel1duty, float channel2duty) { static void testTriggerDecoder2(const char *msg, engine_type_e type, int synchPointIndex, float channel1duty, float channel2duty) {
printf("====================================================================================== testTriggerDecoder2 msg=%s\r\n", msg); printf("====================================================================================== testTriggerDecoder2 msg=%s\r\n", msg);
EngineTestHelper eth(type); WITH_ENGINE_TEST_HELPER(type);
EXPAND_EngineTestHelper;
TriggerShape *t = &ENGINE(triggerCentral.triggerShape); TriggerShape *t = &ENGINE(triggerCentral.triggerShape);
@ -242,8 +236,7 @@ static void testTriggerDecoder3(const char *msg, engine_type_e type, int synchPo
TEST(misc, testStartupFuelPumping) { TEST(misc, testStartupFuelPumping) {
printf("*************************************************** testStartupFuelPumping\r\n"); printf("*************************************************** testStartupFuelPumping\r\n");
EngineTestHelper eth(FORD_INLINE_6_1995); WITH_ENGINE_TEST_HELPER(FORD_INLINE_6_1995);
EXPAND_EngineTestHelper;
StartupFuelPumping sf; StartupFuelPumping sf;
@ -295,8 +288,7 @@ extern EnginePins enginePins;
TEST(misc, testRpmCalculator) { TEST(misc, testRpmCalculator) {
printf("*************************************************** testRpmCalculator\r\n"); printf("*************************************************** testRpmCalculator\r\n");
EngineTestHelper eth(FORD_INLINE_6_1995); WITH_ENGINE_TEST_HELPER(FORD_INLINE_6_1995);
EXPAND_EngineTestHelper;
IgnitionEventList *ilist = &engine->ignitionEvents; IgnitionEventList *ilist = &engine->ignitionEvents;
ASSERT_EQ( 0, ilist->isReady) << "size #1"; ASSERT_EQ( 0, ilist->isReady) << "size #1";
@ -507,8 +499,7 @@ TEST(misc, testTriggerDecoder) {
testTriggerDecoder2("testMitsu", MITSU_4G93, 0, 0.3553, 0.3752); testTriggerDecoder2("testMitsu", MITSU_4G93, 0, 0.3553, 0.3752);
{ {
EngineTestHelper eth(MITSU_4G93); WITH_ENGINE_TEST_HELPER(MITSU_4G93);
EXPAND_EngineTestHelper;
// TriggerShape *t = &eth.engine.triggerShape; // TriggerShape *t = &eth.engine.triggerShape;
@ -551,8 +542,7 @@ TEST(misc, testTriggerDecoder) {
{ {
printTriggerDebug = true; printTriggerDebug = true;
EngineTestHelper eth(DODGE_NEON_2003_CAM); WITH_ENGINE_TEST_HELPER(DODGE_NEON_2003_CAM);
EXPAND_EngineTestHelper;
printf("!!!!!!!!!!!!!!!!!! Now trying with only rising edges !!!!!!!!!!!!!!!!!\r\n"); printf("!!!!!!!!!!!!!!!!!! Now trying with only rising edges !!!!!!!!!!!!!!!!!\r\n");
engineConfiguration->useOnlyRisingEdgeForTrigger = true; engineConfiguration->useOnlyRisingEdgeForTrigger = true;
@ -704,8 +694,7 @@ static void assertInjectors(const char *msg, int value0, int value1) {
TEST(big, testFuelSchedulerBug299smallAndMedium) { TEST(big, testFuelSchedulerBug299smallAndMedium) {
printf("*************************************************** testFuelSchedulerBug299 small to medium\r\n"); printf("*************************************************** testFuelSchedulerBug299 small to medium\r\n");
EngineTestHelper eth(TEST_ENGINE); WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
EXPAND_EngineTestHelper
setTestBug299(&eth); setTestBug299(&eth);
FuelSchedule * t; FuelSchedule * t;
@ -956,8 +945,7 @@ static void setInjectionMode(int value DECLARE_ENGINE_PARAMETER_SUFFIX) {
TEST(big, testDifferentInjectionModes) { TEST(big, testDifferentInjectionModes) {
printf("*************************************************** testDifferentInjectionModes\r\n"); printf("*************************************************** testDifferentInjectionModes\r\n");
EngineTestHelper eth(TEST_ENGINE); WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
EXPAND_EngineTestHelper
setTestBug299(&eth); setTestBug299(&eth);
ASSERT_EQ( 4, engine->executor.size()) << "Lqs#0"; ASSERT_EQ( 4, engine->executor.size()) << "Lqs#0";
@ -988,8 +976,7 @@ TEST(big, testDifferentInjectionModes) {
TEST(big, testFuelSchedulerBug299smallAndLarge) { TEST(big, testFuelSchedulerBug299smallAndLarge) {
printf("*************************************************** testFuelSchedulerBug299 small to large\r\n"); printf("*************************************************** testFuelSchedulerBug299 small to large\r\n");
EngineTestHelper eth(TEST_ENGINE); WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
EXPAND_EngineTestHelper
setTestBug299(&eth); setTestBug299(&eth);
ASSERT_EQ( 4, engine->executor.size()) << "Lqs#0"; ASSERT_EQ( 4, engine->executor.size()) << "Lqs#0";
@ -1101,8 +1088,7 @@ TEST(big, testFuelSchedulerBug299smallAndLarge) {
TEST(big, testSparkReverseOrderBug319) { TEST(big, testSparkReverseOrderBug319) {
printf("*************************************************** testSparkReverseOrderBug319 small to medium\r\n"); printf("*************************************************** testSparkReverseOrderBug319 small to medium\r\n");
EngineTestHelper eth(TEST_ENGINE); WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
EXPAND_EngineTestHelper
engineConfiguration->useOnlyRisingEdgeForTrigger = false; engineConfiguration->useOnlyRisingEdgeForTrigger = false;
engineConfiguration->isInjectionEnabled = false; engineConfiguration->isInjectionEnabled = false;
@ -1208,8 +1194,7 @@ TEST(big, testSparkReverseOrderBug319) {
TEST(big, testMissedSpark299) { TEST(big, testMissedSpark299) {
printf("*************************************************** testMissedSpark299\r\n"); printf("*************************************************** testMissedSpark299\r\n");
EngineTestHelper eth(TEST_ENGINE); WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
EXPAND_EngineTestHelper
engineConfiguration->ignitionMode = IM_WASTED_SPARK; engineConfiguration->ignitionMode = IM_WASTED_SPARK;
engineConfiguration->useOnlyRisingEdgeForTrigger = false; engineConfiguration->useOnlyRisingEdgeForTrigger = false;
setupSimpleTestEngineWithMafAndTT_ONE_trigger(&eth); setupSimpleTestEngineWithMafAndTT_ONE_trigger(&eth);

View File

@ -170,8 +170,7 @@ static void testNoiselessDecoderProcedure(EngineTestHelper &eth, int errorTolera
TEST(big, testNoiselessDecoder) { TEST(big, testNoiselessDecoder) {
printf("====================================================================================== testNoiselessDecoder\r\n"); printf("====================================================================================== testNoiselessDecoder\r\n");
EngineTestHelper eth(TEST_ENGINE); WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
EXPAND_EngineTestHelper
engineConfiguration->ignitionMode = IM_WASTED_SPARK; engineConfiguration->ignitionMode = IM_WASTED_SPARK;
engineConfiguration->useOnlyRisingEdgeForTrigger = true; engineConfiguration->useOnlyRisingEdgeForTrigger = true;