only: setTimeNowUs(): replace global fiddling with a function call

This commit is contained in:
rusefi 2024-04-27 10:06:14 -04:00
parent b5e3694647
commit 302b11abee
5 changed files with 22 additions and 8 deletions

View File

@ -48,3 +48,8 @@ efitimems_t getTimeNowMs();
* @brief Current system time in seconds (32 bits) * @brief Current system time in seconds (32 bits)
*/ */
efitimesec_t getTimeNowS(); efitimesec_t getTimeNowS();
#if EFI_UNIT_TEST
void setTimeNowUs(int us);
void advanceTimeUs(int us);
#endif

View File

@ -73,7 +73,7 @@ namespace chibios_rt {
} }
#endif #endif
#define UNIT_TEST_BUSY_WAIT_CALLBACK() { timeNowUs++; } #define UNIT_TEST_BUSY_WAIT_CALLBACK() { advanceTimeUs(1); }
#define chsnprintf snprintf #define chsnprintf snprintf
#define chvsnprintf vsnprintf #define chvsnprintf vsnprintf

View File

@ -12,6 +12,16 @@ efitimems_t getTimeNowMs() {
return US2MS(getTimeNowUs()); return US2MS(getTimeNowUs());
} }
extern int timeNowUs;
void setTimeNowUs(int us) {
timeNowUs = us;
}
void advanceTimeUs(int us) {
timeNowUs += us;
}
void initLogging(LoggingWithStorage *logging, const char *name) { void initLogging(LoggingWithStorage *logging, const char *name) {
} }

View File

@ -32,7 +32,7 @@ extern int minCrankingRpm;
EngineTestHelperBase::EngineTestHelperBase(Engine * eng, engine_configuration_s * econfig, persistent_config_s * pers) { EngineTestHelperBase::EngineTestHelperBase(Engine * eng, engine_configuration_s * econfig, persistent_config_s * pers) {
// todo: make this not a global variable, we need currentTimeProvider interface on engine // todo: make this not a global variable, we need currentTimeProvider interface on engine
timeNowUs = 0; setTimeNowUs(0);
minCrankingRpm = 0; minCrankingRpm = 0;
EnableToothLogger(); EnableToothLogger();
if (engine || engineConfiguration || config) { if (engine || engineConfiguration || config) {
@ -227,7 +227,7 @@ void EngineTestHelper::clearQueue() {
} }
int EngineTestHelper::executeActions() { int EngineTestHelper::executeActions() {
return engine.executor.executeAll(timeNowUs); return engine.executor.executeAll(getTimeNowUs());
} }
void EngineTestHelper::moveTimeForwardMs(float deltaTimeMs) { void EngineTestHelper::moveTimeForwardMs(float deltaTimeMs) {
@ -242,7 +242,7 @@ void EngineTestHelper::moveTimeForwardUs(int deltaTimeUs) {
if (printTriggerDebug || printFuelDebug) { if (printTriggerDebug || printFuelDebug) {
printf("moveTimeForwardUs %.1fms\r\n", deltaTimeUs / 1000.0); printf("moveTimeForwardUs %.1fms\r\n", deltaTimeUs / 1000.0);
} }
timeNowUs += deltaTimeUs; advanceTimeUs(deltaTimeUs);
} }
void EngineTestHelper::moveTimeForwardAndInvokeEventsSec(int deltaTimeSeconds) { void EngineTestHelper::moveTimeForwardAndInvokeEventsSec(int deltaTimeSeconds) {

View File

@ -165,8 +165,7 @@ TEST(fuelCut, delay) {
const float normalInjDuration = 1.5f; const float normalInjDuration = 1.5f;
extern int timeNowUs; setTimeNowUs(1e6);
timeNowUs = 1e6;
// process // process
eth.engine.periodicFastCallback(); eth.engine.periodicFastCallback();
@ -182,14 +181,14 @@ TEST(fuelCut, delay) {
EXPECT_NORMAL(); EXPECT_NORMAL();
// Change nothing else, but advance time and update again // Change nothing else, but advance time and update again
timeNowUs += 0.9e6; advanceTimeUs(0.9e6);
eth.engine.periodicFastCallback(); eth.engine.periodicFastCallback();
// too soon, still no cut // too soon, still no cut
EXPECT_NORMAL(); EXPECT_NORMAL();
// Change nothing else, but advance time and update again // Change nothing else, but advance time and update again
timeNowUs += 0.2e6; advanceTimeUs(0.2e6);
eth.engine.periodicFastCallback(); eth.engine.periodicFastCallback();
// Should now be cut! // Should now be cut!