When using Ceedling 1.0.1 on some test code I find that the second run is somehow corrupted. The first clean pass works as expected, but for some reason when the same code is processed a second time the intermediate files are changed and cannot compile.
For example I have a test
void testMyTask(void)
{
struct myStruct value1 = {
.some_member = 1u,
};
struct pb pB = validPB;
thing.memberValue = false;
thing.sub_member.flag = 0u;
....
which translates itself to (it appears to translate false to 0 and drops the semicolon)
void testMyTask(void)
{
struct myStruct value1 = {
.some_member = 1u,
};
struct p pB = validPB;
thing.memberValue =
0
thing.sub_member.flag = 0u;
...
}
The first run it successfully understands the intermediate code, but on the second pass it is confused by the missing semicolon.
The workaround we use is to always run clean tests (which gets slow really fast with a comprehensive test suite), is there a more efficient work around or a known configuration fix I need to apply?
A partial configuration for the tests: (project.yml.template)
:project:
:use_exceptions: FALSE
:use_test_preprocessor: :all
:use_auxiliary_dependencies: TRUE
:use_deep_dependencies: TRUE
:build_root: {PLATFORM_DIR}
:test_file_prefix: Test
:plugins:
:enabled:
- report_tests_pretty_stdout
- module_generator
- report_tests_teamcity_stdout
- gcov
:cmock:
:mock_prefix: Mock
:when_no_prototypes: :warn
:enforce_strict_ordering: TRUE
:callback_include_count: TRUE
:plugins:
- :ignore
- :callback
- :return_thru_ptr
- :ignore_arg
- :expect_any_args
:treat_as:
uint8: HEX8
uint16: HEX16
uint32: UINT32
int8: INT8
bool: UINT8
:c_calling_conventions:
- __stdcall
When using Ceedling 1.0.1 on some test code I find that the second run is somehow corrupted. The first clean pass works as expected, but for some reason when the same code is processed a second time the intermediate files are changed and cannot compile.
For example I have a test
which translates itself to (it appears to translate false to 0 and drops the semicolon)
The first run it successfully understands the intermediate code, but on the second pass it is confused by the missing semicolon.
The workaround we use is to always run clean tests (which gets slow really fast with a comprehensive test suite), is there a more efficient work around or a known configuration fix I need to apply?
A partial configuration for the tests: (project.yml.template)