From 935622a4e2205344f9940eaabb65e42c82afbd80 Mon Sep 17 00:00:00 2001 From: rusefi Date: Thu, 16 Nov 2017 10:29:40 -0500 Subject: [PATCH] mock TPS refactoring --- firmware/controllers/sensors/tps.cpp | 14 ++++++++++++-- firmware/controllers/sensors/tps.h | 1 + unit_tests/test_trigger_decoder.cpp | 12 +++++------- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/firmware/controllers/sensors/tps.cpp b/firmware/controllers/sensors/tps.cpp index d367683307..d3e77e459d 100644 --- a/firmware/controllers/sensors/tps.cpp +++ b/firmware/controllers/sensors/tps.cpp @@ -9,11 +9,20 @@ #include "allsensors.h" #if !EFI_PROD_CODE - int mockTps; + static int mockTps; #endif EXTERN_ENGINE; +/** + * this allows unit tests to simulate TPS position + */ +void setMockTpsPosition(percent_t tpsPosition) { +#if !EFI_PROD_CODE + mockTps = TPS_TS_CONVERSION * tpsPosition; +#endif +} + /** * We are using one instance for read and another for modification, this is how we get lock-free thread-safety * @@ -94,8 +103,9 @@ float getTPSVoltage(DECLARE_ENGINE_PARAMETER_SIGNATURE) { */ int getTPS12bitAdc(DECLARE_ENGINE_PARAMETER_SIGNATURE) { #if !EFI_PROD_CODE - if (mockTps != MOCK_UNDEFINED) + if (mockTps != MOCK_UNDEFINED) { return mockTps; + } #endif if (engineConfiguration->tpsAdcChannel == EFI_ADC_NONE) return -1; diff --git a/firmware/controllers/sensors/tps.h b/firmware/controllers/sensors/tps.h index 526d58661b..ee88a53f5f 100644 --- a/firmware/controllers/sensors/tps.h +++ b/firmware/controllers/sensors/tps.h @@ -30,6 +30,7 @@ int getTPS12bitAdc(DECLARE_ENGINE_PARAMETER_SIGNATURE); float getTPSVoltage(DECLARE_ENGINE_PARAMETER_SIGNATURE); percent_t getTpsValue(int adc DECLARE_ENGINE_PARAMETER_SUFFIX); void setBosch0280750009(DECLARE_ENGINE_PARAMETER_SIGNATURE); +void setMockTpsPosition(percent_t tpsPosition); typedef struct { efitimeus_t prevTime; diff --git a/unit_tests/test_trigger_decoder.cpp b/unit_tests/test_trigger_decoder.cpp index 2b1fbf56d8..a434e70e99 100644 --- a/unit_tests/test_trigger_decoder.cpp +++ b/unit_tests/test_trigger_decoder.cpp @@ -240,8 +240,6 @@ static void testTriggerDecoder3(const char *msg, engine_type_e type, int synchPo extern EventQueue schedulingQueue; -extern int mockTps; - void testStartupFuelPumping(void) { printf("*************************************************** testStartupFuelPumping\r\n"); EngineTestHelper eth(FORD_INLINE_6_1995); @@ -254,11 +252,11 @@ void testStartupFuelPumping(void) { engine->engineConfiguration->tpsMin = 0; engine->engineConfiguration->tpsMax = 10; - mockTps = TPS_TS_CONVERSION * 6; + setMockTpsPosition(6); sf.update(PASS_ENGINE_PARAMETER_SIGNATURE); assertEqualsM("pc#1", 1, sf.pumpsCounter); - mockTps = TPS_TS_CONVERSION * 3; + setMockTpsPosition(3); sf.update(PASS_ENGINE_PARAMETER_SIGNATURE); assertEqualsM("pumpsCounter#2", 1, sf.pumpsCounter); @@ -269,16 +267,16 @@ void testStartupFuelPumping(void) { sf.update(PASS_ENGINE_PARAMETER_SIGNATURE); assertEqualsM("pc#4", 0, sf.pumpsCounter); - mockTps = TPS_TS_CONVERSION * 7; + setMockTpsPosition(7); engine->rpmCalculator.mockRpm = 0; sf.update(PASS_ENGINE_PARAMETER_SIGNATURE); assertEqualsM("pc#5", 1, sf.pumpsCounter); - mockTps = TPS_TS_CONVERSION * 3; + setMockTpsPosition(3); sf.update(PASS_ENGINE_PARAMETER_SIGNATURE); assertEqualsM("pc#6", 1, sf.pumpsCounter); - mockTps = TPS_TS_CONVERSION * 7; + setMockTpsPosition(7); sf.update(PASS_ENGINE_PARAMETER_SIGNATURE); assertEqualsM("pc#7", 2, sf.pumpsCounter); }