mirror of https://github.com/rusefi/rusefi.git
parent
b29da1f253
commit
4aaa56436c
|
@ -11,6 +11,17 @@ import org.junit.Test;
|
|||
public class SdCardFieldsGeneratorTest {
|
||||
@Test
|
||||
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" +
|
||||
"\tfloat autoscale internalMcuTemperature\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" +
|
||||
"end_struct";
|
||||
|
||||
ReaderState state = new ReaderState();
|
||||
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");
|
||||
|
||||
|
||||
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());
|
||||
processAndAssert(test, "\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" +
|
||||
"", actor);
|
||||
}
|
||||
|
||||
@Test
|
||||
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" +
|
||||
"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
|
||||
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" +
|
||||
"end_struct";
|
||||
|
||||
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" +
|
||||
"end_struct", "\t{engine->outputChannels.recentErrorCode[0], \"recentErrorCode 1\", \"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[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