parent
cf5c411fce
commit
3913ec4f71
Binary file not shown.
|
@ -291,7 +291,8 @@ public class ReaderState {
|
||||||
if (log.debugEnabled())
|
if (log.debugEnabled())
|
||||||
log.debug("Need to align before " + cf.getName());
|
log.debug("Need to align before " + cf.getName());
|
||||||
structure.addAlignmentFill(state, getPrimitiveSize);
|
structure.addAlignmentFill(state, getPrimitiveSize);
|
||||||
} else {
|
} else if (getPrimitiveSize == null) {
|
||||||
|
// we are here for struct members
|
||||||
structure.addAlignmentFill(state, 4);
|
structure.addAlignmentFill(state, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@ import com.rusefi.output.BaseCHeaderConsumer;
|
||||||
import com.rusefi.output.ConfigStructure;
|
import com.rusefi.output.ConfigStructure;
|
||||||
import com.rusefi.output.JavaFieldsConsumer;
|
import com.rusefi.output.JavaFieldsConsumer;
|
||||||
import com.rusefi.output.TSProjectConsumer;
|
import com.rusefi.output.TSProjectConsumer;
|
||||||
import org.junit.Ignore;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -79,16 +78,18 @@ public class ConfigFieldParserTest {
|
||||||
@Test
|
@Test
|
||||||
public void testCustomEnum() throws IOException {
|
public void testCustomEnum() throws IOException {
|
||||||
String test = "struct pid_s\n" +
|
String test = "struct pid_s\n" +
|
||||||
"#define ego_sensor_e_size 4\n" +
|
|
||||||
"#define ego_sensor_e_enum \"BPSX\", \"Innovate\", \"14Point7\"\n" +
|
"#define ego_sensor_e_enum \"BPSX\", \"Innovate\", \"14Point7\"\n" +
|
||||||
"custom ego_sensor_e @@ego_sensor_e_size@@ bits, S32, @OFFSET@, [0:1], @@ego_sensor_e_enum@@\n" +
|
"custom ego_sensor_e 1 bits, S32, @OFFSET@, [0:1], @@ego_sensor_e_enum@@\n" +
|
||||||
"ego_sensor_e afr_type;\n" +
|
"ego_sensor_e afr_type;\n" +
|
||||||
|
"int8_t int\n" +
|
||||||
"end_struct\n";
|
"end_struct\n";
|
||||||
ReaderState state = new ReaderState();
|
ReaderState state = new ReaderState();
|
||||||
|
|
||||||
TestTSProjectConsumer tsProjectConsumer = new TestTSProjectConsumer("", state);
|
TestTSProjectConsumer tsProjectConsumer = new TestTSProjectConsumer("", state);
|
||||||
state.readBufferedReader(test, (tsProjectConsumer));
|
state.readBufferedReader(test, (tsProjectConsumer));
|
||||||
assertEquals("afr_type = bits, S32, 0, [0:1], \"BPSX\", \"Innovate\", \"14Point7\", \"INVALID\"\n" +
|
assertEquals("afr_type = bits, S32, 0, [0:1], \"BPSX\", \"Innovate\", \"14Point7\", \"INVALID\"\n" +
|
||||||
|
"int = scalar, S08, 1, \"\", 1, 0, 0, 100, 0\n" +
|
||||||
|
"alignmentFill_at_2 = array, U08, 2, [2], \"units\", 1, 0, -20, 100, 0\n" +
|
||||||
"; total TS size = 4\n", tsProjectConsumer.getContent());
|
"; total TS size = 4\n", tsProjectConsumer.getContent());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -544,23 +545,17 @@ public class ConfigFieldParserTest {
|
||||||
"\t */\n" +
|
"\t */\n" +
|
||||||
"\tint8_t byte1 = (int8_t)0;\n" +
|
"\tint8_t byte1 = (int8_t)0;\n" +
|
||||||
"\t/**\n" +
|
"\t/**\n" +
|
||||||
"\t * need 4 byte alignment\n" +
|
|
||||||
"\tunits\n" +
|
|
||||||
"\t * offset 1\n" +
|
"\t * offset 1\n" +
|
||||||
"\t */\n" +
|
"\t */\n" +
|
||||||
"\tuint8_t alignmentFill_at_1[3];\n" +
|
|
||||||
"\t/**\n" +
|
|
||||||
"\t * offset 4\n" +
|
|
||||||
"\t */\n" +
|
|
||||||
"\tint8_t byte2 = (int8_t)0;\n" +
|
"\tint8_t byte2 = (int8_t)0;\n" +
|
||||||
"\t/**\n" +
|
"\t/**\n" +
|
||||||
"\t * need 4 byte alignment\n" +
|
"\t * need 4 byte alignment\n" +
|
||||||
"\tunits\n" +
|
"\tunits\n" +
|
||||||
"\t * offset 5\n" +
|
"\t * offset 2\n" +
|
||||||
"\t */\n" +
|
"\t */\n" +
|
||||||
"\tuint8_t alignmentFill_at_5[3];\n" +
|
"\tuint8_t alignmentFill_at_2[2];\n" +
|
||||||
"};\n" +
|
"};\n" +
|
||||||
"static_assert(sizeof(pid_s) == 8);\n" +
|
"static_assert(sizeof(pid_s) == 4);\n" +
|
||||||
"\n",
|
"\n",
|
||||||
consumer.getContent());
|
consumer.getContent());
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,11 +37,10 @@ public class JavaSensorsConsumerTest {
|
||||||
"alignmentFill_at_10(\"need 4 byte alignment\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 10, 1.0, -20.0, 100.0, \"units\"),\n" +
|
"alignmentFill_at_10(\"need 4 byte alignment\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 10, 1.0, -20.0, 100.0, \"units\"),\n" +
|
||||||
"luaTimingMult(\"luaTimingMult\", SensorCategory.SENSOR_INPUTS, FieldType.INT, 12, 1.0, -1.0, -1.0, \"\"),\n" +
|
"luaTimingMult(\"luaTimingMult\", SensorCategory.SENSOR_INPUTS, FieldType.INT, 12, 1.0, -1.0, -1.0, \"\"),\n" +
|
||||||
"vehicleSpeedKph(\"vehicleSpeedKph\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 16, 1.0, -1.0, -1.0, \"\"),\n" +
|
"vehicleSpeedKph(\"vehicleSpeedKph\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 16, 1.0, -1.0, -1.0, \"\"),\n" +
|
||||||
"alignmentFill_at_17(\"need 4 byte alignment\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 17, 1.0, -20.0, 100.0, \"units\"),\n" +
|
"internalMcuTemperature(\"mcu\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 17, 1.0, 0.0, 0.0, \"deg C\"),\n" +
|
||||||
"internalMcuTemperature(\"mcu\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 20, 1.0, 0.0, 0.0, \"deg C\"),\n" +
|
"alignmentFill_at_18(\"need 4 byte alignment\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 18, 1.0, -20.0, 100.0, \"units\"),\n",
|
||||||
"alignmentFill_at_21(\"need 4 byte alignment\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 21, 1.0, -20.0, 100.0, \"units\"),\n",
|
|
||||||
javaSensorsConsumer.getContent());
|
javaSensorsConsumer.getContent());
|
||||||
assertEquals(24, javaSensorsConsumer.sensorTsPosition);
|
assertEquals(20, javaSensorsConsumer.sensorTsPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue