The Big Refactoring of 2019: scheduler should not be global #655
This commit is contained in:
parent
def54ae1ea
commit
5e896ce279
|
@ -28,11 +28,11 @@ EngineTestHelper::EngineTestHelper(engine_type_e engineType) : engine (&persiste
|
|||
testMafValue = 0;
|
||||
memset(&activeConfiguration, 0, sizeof(activeConfiguration));
|
||||
|
||||
schedulingQueue.clear();
|
||||
enginePins.reset();
|
||||
|
||||
persistent_config_s *config = &persistentConfig;
|
||||
Engine *engine = &this->engine;
|
||||
engine->executor.clear();
|
||||
engine->setConfig(config);
|
||||
engine_configuration_s *engineConfiguration = engine->engineConfigurationPtr;
|
||||
board_configuration_s * boardConfiguration = &persistentConfig.engineConfiguration.bc;
|
||||
|
|
|
@ -30,6 +30,10 @@ void TestExecutor::clear() {
|
|||
schedulingQueue.clear();
|
||||
}
|
||||
|
||||
int TestExecutor::size() {
|
||||
return schedulingQueue.size();
|
||||
}
|
||||
|
||||
void TestExecutor::scheduleByTimestamp(scheduling_s *scheduling, efitimeus_t timeUs, schfunc_t callback, void *param) {
|
||||
if (debugSignalExecutor) {
|
||||
printf("scheduleByTime %d\r\n", timeUs);
|
||||
|
|
|
@ -16,6 +16,7 @@ public:
|
|||
void scheduleByTimestamp(scheduling_s *scheduling, efitimeus_t timeUs, schfunc_t callback, void *param);
|
||||
void scheduleForLater(scheduling_s *scheduling, int delayUs, schfunc_t callback, void *param);
|
||||
void clear();
|
||||
int size();
|
||||
};
|
||||
|
||||
#endif /* GLOBAL_EXECUTION_QUEUE_H_ */
|
||||
|
|
|
@ -37,7 +37,7 @@ void testFasterEngineSpinningUp() {
|
|||
// check RPM
|
||||
assertEqualsM("RPM=0", 0, engine->rpmCalculator.getRpm(PASS_ENGINE_PARAMETER_SIGNATURE));
|
||||
// the queue should be empty, no trigger events yet
|
||||
assertEqualsM("plain#1", 0, schedulingQueue.size());
|
||||
assertEqualsM("plain#1", 0, engine->executor.size());
|
||||
|
||||
// check all events starting from now
|
||||
int timeStartUs = timeNowUs;
|
||||
|
|
|
@ -48,7 +48,7 @@ static void test100dutyCycle() {
|
|||
TestExecutor executor;
|
||||
SimplePwm pwm("test PWM1");
|
||||
OutputPin pin;
|
||||
schedulingQueue.clear();
|
||||
executor.clear();
|
||||
|
||||
startSimplePwm(&pwm, "unit_test",
|
||||
&executor,
|
||||
|
@ -76,7 +76,7 @@ static void testSwitchToNanPeriod() {
|
|||
TestExecutor executor;
|
||||
SimplePwm pwm("test PWM1");
|
||||
OutputPin pin;
|
||||
schedulingQueue.clear();
|
||||
executor.clear();
|
||||
|
||||
startSimplePwm(&pwm, "unit_test",
|
||||
&executor,
|
||||
|
@ -115,7 +115,7 @@ void testPwmGenerator() {
|
|||
TestExecutor executor;
|
||||
SimplePwm pwm("test PWM3");
|
||||
OutputPin pin;
|
||||
schedulingQueue.clear();
|
||||
executor.clear();
|
||||
|
||||
startSimplePwm(&pwm,
|
||||
"unit_test",
|
||||
|
|
|
@ -17,7 +17,7 @@ void testSpeedDensity(void) {
|
|||
printf("*************************************************** testSpeedDensity\r\n");
|
||||
EngineTestHelper eth(FORD_INLINE_6_1995);
|
||||
EXPAND_EngineTestHelper;
|
||||
schedulingQueue.clear(); // todo: there must be a better place for this
|
||||
engine->executor.clear(); // todo: there must be a better place for this
|
||||
|
||||
engineConfiguration->trigger.customTotalToothCount = 8;
|
||||
eth.applyTriggerShape();
|
||||
|
|
|
@ -304,10 +304,10 @@ extern EnginePins enginePins;
|
|||
void testRpmCalculator(void) {
|
||||
printf("*************************************************** testRpmCalculator\r\n");
|
||||
timeNowUs = 0;
|
||||
schedulingQueue.clear();
|
||||
|
||||
EngineTestHelper eth(FORD_INLINE_6_1995);
|
||||
EXPAND_EngineTestHelper;
|
||||
engine->executor.clear();
|
||||
IgnitionEventList *ilist = &engine->ignitionEvents;
|
||||
assertEqualsM("size #1", 0, ilist->isReady);
|
||||
|
||||
|
@ -417,23 +417,23 @@ void testRpmCalculator(void) {
|
|||
|
||||
assertEqualsM("index #4", 6, eth.engine.triggerCentral.triggerState.getCurrentIndex());
|
||||
assertEqualsM("queue size 4", 4, schedulingQueue.size());
|
||||
schedulingQueue.clear();
|
||||
engine->executor.clear();
|
||||
|
||||
eth.fireFall(5);
|
||||
assertEqualsM("queue size 5", 2, schedulingQueue.size());
|
||||
// todo: assert queue elements
|
||||
schedulingQueue.clear();
|
||||
engine->executor.clear();
|
||||
|
||||
|
||||
eth.fireRise(5);
|
||||
assertEqualsM("queue size 6", 2, schedulingQueue.size());
|
||||
assertEqualsM("6/0", start + 40944, schedulingQueue.getForUnitText(0)->momentX);
|
||||
assertEqualsM("6/1", start + 41444, schedulingQueue.getForUnitText(1)->momentX);
|
||||
schedulingQueue.clear();
|
||||
engine->executor.clear();
|
||||
|
||||
eth.fireFall(5);
|
||||
assertEqualsM("queue size 7", 0, schedulingQueue.size());
|
||||
schedulingQueue.clear();
|
||||
engine->executor.clear();
|
||||
|
||||
timeNowUs += 5000; // 5ms
|
||||
eth.firePrimaryTriggerRise();
|
||||
|
@ -442,17 +442,17 @@ void testRpmCalculator(void) {
|
|||
assertEqualsM("8/0", start + 53333 - 1515, schedulingQueue.getForUnitText(0)->momentX);
|
||||
assertEqualsM2("8/1", start + 54277, schedulingQueue.getForUnitText(1)->momentX, 0);
|
||||
assertEqualsM2("8/2", start + 54777, schedulingQueue.getForUnitText(2)->momentX, 0);
|
||||
schedulingQueue.clear();
|
||||
engine->executor.clear();
|
||||
|
||||
|
||||
eth.fireFall(5);
|
||||
assertEqualsM("queue size 9", 0, schedulingQueue.size());
|
||||
schedulingQueue.clear();
|
||||
engine->executor.clear();
|
||||
|
||||
|
||||
eth.fireRise(5);
|
||||
assertEqualsM("queue size 10", 0, schedulingQueue.size());
|
||||
schedulingQueue.clear();
|
||||
engine->executor.clear();
|
||||
}
|
||||
|
||||
void testTriggerDecoder(void) {
|
||||
|
|
|
@ -175,10 +175,10 @@ static void testNoiselessDecoderProcedure(EngineTestHelper ð, int errorTolera
|
|||
void testNoiselessDecoder(void) {
|
||||
printf("====================================================================================== testNoiselessDecoder\r\n");
|
||||
timeNowUs = 0;
|
||||
schedulingQueue.clear();
|
||||
|
||||
EngineTestHelper eth(TEST_ENGINE);
|
||||
EXPAND_EngineTestHelper
|
||||
engine->executor.clear();
|
||||
|
||||
engineConfiguration->ignitionMode = IM_WASTED_SPARK;
|
||||
engineConfiguration->useOnlyRisingEdgeForTrigger = true;
|
||||
|
|
Loading…
Reference in New Issue