mirror of https://github.com/rusefi/rusefi.git
parent
b29da1f253
commit
4aaa56436c
|
@ -11,6 +11,17 @@ import org.junit.Test;
|
||||||
public class SdCardFieldsGeneratorTest {
|
public class SdCardFieldsGeneratorTest {
|
||||||
@Test
|
@Test
|
||||||
public void outputs() {
|
public void outputs() {
|
||||||
|
Actor actor = new Actor() {
|
||||||
|
@Override
|
||||||
|
public void act(ReaderState state) {
|
||||||
|
state.variableRegistry.register("PACK_MULT_PERCENT", 100);
|
||||||
|
state.variableRegistry.register("GAUGE_NAME_RPM", "\"hello\"");
|
||||||
|
state.variableRegistry.register("GAUGE_NAME_GEAR_RATIO", "ra");
|
||||||
|
state.variableRegistry.register("GAUGE_NAME_CPU_TEMP", "te");
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
String test = "struct_no_prefix output_channels_s\n" +
|
String test = "struct_no_prefix output_channels_s\n" +
|
||||||
"\tfloat autoscale internalMcuTemperature\n" +
|
"\tfloat autoscale internalMcuTemperature\n" +
|
||||||
"uint16_t autoscale RPMValue;@@GAUGE_NAME_RPM@@;\"RPM\",1, 0, 0, 8000, 2\n" +
|
"uint16_t autoscale RPMValue;@@GAUGE_NAME_RPM@@;\"RPM\",1, 0, 0, 8000, 2\n" +
|
||||||
|
@ -20,51 +31,59 @@ public class SdCardFieldsGeneratorTest {
|
||||||
"\tuint16_t autoscale speedToRpmRatio;@@GAUGE_NAME_GEAR_RATIO@@;\"value\",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0\n" +
|
"\tuint16_t autoscale speedToRpmRatio;@@GAUGE_NAME_GEAR_RATIO@@;\"value\",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0\n" +
|
||||||
"end_struct";
|
"end_struct";
|
||||||
|
|
||||||
ReaderState state = new ReaderState();
|
processAndAssert(test, "\t{engine->outputChannels.internalMcuTemperature, \"internalMcuTemperature\", \"\", 0},\n" +
|
||||||
state.variableRegistry.register("PACK_MULT_PERCENT", 100);
|
"\t{engine->outputChannels.RPMValue, \"hello\", \"RPM\", 2},\n" +
|
||||||
state.variableRegistry.register("GAUGE_NAME_RPM", "\"hello\"");
|
"\t{engine->outputChannels.rpmAcceleration, \"dRPM\", \"RPM/s\", 2},\n" +
|
||||||
state.variableRegistry.register("GAUGE_NAME_GEAR_RATIO", "ra");
|
"\t{engine->outputChannels.speedToRpmRatio, \"ra\", \"value\", 0},\n" +
|
||||||
state.variableRegistry.register("GAUGE_NAME_CPU_TEMP", "te");
|
"", actor);
|
||||||
|
|
||||||
|
|
||||||
SdCardFieldsConsumer consumer = new SdCardFieldsConsumer(LazyFile.TEST);
|
|
||||||
state.readBufferedReader(test, consumer);
|
|
||||||
assertEquals(
|
|
||||||
"\t{engine->outputChannels.internalMcuTemperature, \"internalMcuTemperature\", \"\", 0},\n" +
|
|
||||||
"\t{engine->outputChannels.RPMValue, \"hello\", \"RPM\", 2},\n" +
|
|
||||||
"\t{engine->outputChannels.rpmAcceleration, \"dRPM\", \"RPM/s\", 2},\n" +
|
|
||||||
"\t{engine->outputChannels.speedToRpmRatio, \"ra\", \"value\", 0},\n" +
|
|
||||||
""
|
|
||||||
, consumer.getBody());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void bitAndAlignment() {
|
public void bitAndAlignment() {
|
||||||
String test = "struct_no_prefix output_channels_s\n" +
|
processAndAssert("struct_no_prefix output_channels_s\n" +
|
||||||
"uint16_t autoscale RPMValue;feee;\"RPM\",1, 0, 0, 8000, 2\n" +
|
"uint16_t autoscale RPMValue;feee;\"RPM\",1, 0, 0, 8000, 2\n" +
|
||||||
"bit sd_logging_internal\n" +
|
"bit sd_logging_internal\n" +
|
||||||
"end_struct";
|
"end_struct", "\t{engine->outputChannels.RPMValue, \"feee\", \"RPM\", 2},\n", readerState -> {
|
||||||
|
|
||||||
ReaderState state = new ReaderState();
|
});
|
||||||
|
|
||||||
SdCardFieldsConsumer consumer = new SdCardFieldsConsumer(LazyFile.TEST);
|
|
||||||
state.readBufferedReader(test, consumer);
|
|
||||||
assertEquals("\t{engine->outputChannels.RPMValue, \"feee\", \"RPM\", 2},\n", consumer.getBody());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void array() {
|
public void array() {
|
||||||
String test = "struct_no_prefix output_channels_s\n" +
|
processAndAssert("struct_no_prefix output_channels_s\n" +
|
||||||
"uint16_t[4 iterate] recentErrorCode;;\"error\", 1, 0, 0, 0, 0\n" +
|
"uint16_t[4 iterate] recentErrorCode;;\"error\", 1, 0, 0, 0, 0\n" +
|
||||||
"end_struct";
|
"end_struct", "\t{engine->outputChannels.recentErrorCode[0], \"recentErrorCode 1\", \"error\", 0},\n" +
|
||||||
|
|
||||||
ReaderState state = new ReaderState();
|
|
||||||
|
|
||||||
SdCardFieldsConsumer consumer = new SdCardFieldsConsumer(LazyFile.TEST);
|
|
||||||
state.readBufferedReader(test, consumer);
|
|
||||||
assertEquals("\t{engine->outputChannels.recentErrorCode[0], \"recentErrorCode 1\", \"error\", 0},\n" +
|
|
||||||
"\t{engine->outputChannels.recentErrorCode[1], \"recentErrorCode 2\", \"error\", 0},\n" +
|
"\t{engine->outputChannels.recentErrorCode[1], \"recentErrorCode 2\", \"error\", 0},\n" +
|
||||||
"\t{engine->outputChannels.recentErrorCode[2], \"recentErrorCode 3\", \"error\", 0},\n" +
|
"\t{engine->outputChannels.recentErrorCode[2], \"recentErrorCode 3\", \"error\", 0},\n" +
|
||||||
"\t{engine->outputChannels.recentErrorCode[3], \"recentErrorCode 4\", \"error\", 0},\n", consumer.getBody());
|
"\t{engine->outputChannels.recentErrorCode[3], \"recentErrorCode 4\", \"error\", 0},\n", readerState -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void bitAndAlignment2() {
|
||||||
|
processAndAssert("struct_no_prefix output_channels_s\n" +
|
||||||
|
" struct pid_status_s\n" +
|
||||||
|
" \tfloat pTerm;;\"\", 1, 0, -50000, 50000, 2\n" +
|
||||||
|
" end_struct\n" +
|
||||||
|
"\tpid_status_s alternatorStatus\n" +
|
||||||
|
"end_struct",
|
||||||
|
"\t{engine->outputChannels.pTerm, \"alternatorStatus.pTerm\", \"\", 2},\n",
|
||||||
|
readerState -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Actor {
|
||||||
|
void act(ReaderState readerState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void processAndAssert(String input, String expectedOutput, Actor actor) {
|
||||||
|
ReaderState state = new ReaderState();
|
||||||
|
actor.act(state);
|
||||||
|
|
||||||
|
SdCardFieldsConsumer consumer = new SdCardFieldsConsumer(LazyFile.TEST);
|
||||||
|
state.readBufferedReader(input, consumer);
|
||||||
|
assertEquals(expectedOutput, consumer.getBody());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue