Fixing RTE Checkpoint ID feature
* Add possibility to generate the data type in RteDummy. * Scheduling functions should include Rte_Type.h when generateRteCheckpintIds is true. Change-Id: I1a3d8f6f5cfe8bc431553a9a4d32f8c57c22a77a
This commit is contained in:
parent
55f9545791
commit
2a7fb908c4
@ -66,10 +66,19 @@ class RteDummy(ProblemLogger):
|
||||
|
||||
def _get_nvm_header_dummy(self):
|
||||
"""Get NVM dummy header code."""
|
||||
typedefs = []
|
||||
struct_defines = []
|
||||
function_declarations = []
|
||||
include_name = self.build_cfg.get_composition_config("softwareComponentName")
|
||||
function_name = self.build_cfg.get_composition_config("compositionName")
|
||||
if function_name is None:
|
||||
function_name = include_name
|
||||
prefix = self.build_cfg.get_scheduler_prefix()
|
||||
|
||||
if self.build_cfg.get_code_generation_config("generateRteCheckpointIds"):
|
||||
typedefs.append(f"typedef UInt8 {function_name}FctList;")
|
||||
typedefs.append("")
|
||||
|
||||
for memory_area in self.nvm_def._nvm_memory_areas:
|
||||
nvm_name = f"{prefix}{memory_area}"
|
||||
function_prefix = f"Rte_Call_{self.nvm_port_pattern.format(NvName=nvm_name)}"
|
||||
@ -102,7 +111,7 @@ class RteDummy(ProblemLogger):
|
||||
)
|
||||
struct_defines.append(f"}} dt_{nvm_name};\n")
|
||||
|
||||
return "\n".join(struct_defines + function_declarations)
|
||||
return "\n".join(typedefs + struct_defines + function_declarations)
|
||||
|
||||
def _generate_nvm_source_dummy(self):
|
||||
"""Generate NVM source dummy code."""
|
||||
|
@ -90,7 +90,13 @@ class SchedFuncs(ProblemLogger):
|
||||
else:
|
||||
init_call_s += f' RESTART_{unit_name}();\n'
|
||||
else:
|
||||
includes = f'#include "Rte_{include_name}.h"\n\n' if generate_rte_checkpoint_calls else ""
|
||||
includes = ""
|
||||
if generate_rte_checkpoint_calls:
|
||||
includes += f'#include "Rte_{include_name}.h"\n'
|
||||
if generate_rte_checkpoint_ids:
|
||||
includes += '#include "Rte_Type.h"\n'
|
||||
if includes:
|
||||
includes += '\n'
|
||||
ext_def_str = ""
|
||||
ext_def_rte_str = ""
|
||||
call_str = f'#include "{build_defs.CVC_CODE_START}"\n'
|
||||
|
@ -10,6 +10,15 @@ from unittest.mock import MagicMock, patch, mock_open
|
||||
from powertrain_build.rte_dummy import RteDummy
|
||||
|
||||
|
||||
def mock_get_composition_config(key):
|
||||
"""Function to mock BuildProjConfig.get_composition_config."""
|
||||
return {
|
||||
"nvmPortPattern": "PS_DUMMY_SwcNv_{NvName}",
|
||||
"compositionName": "testName",
|
||||
"softwareComponentName": "testName_SC",
|
||||
}[key]
|
||||
|
||||
|
||||
def mock_get_nvm_areas_index(memory_area):
|
||||
"""Return the index of the given memory area."""
|
||||
return {"NVM_LIST_8": 0, "NVM_LIST_16": 1}[memory_area]
|
||||
@ -22,7 +31,8 @@ class TestRteDummy(unittest.TestCase):
|
||||
"""Set-up mocks and common variables and data structures for all tests in the test case."""
|
||||
self.build_cfg = MagicMock()
|
||||
self.build_cfg.get_scheduler_prefix.return_value = "DUMMY_"
|
||||
self.build_cfg.get_composition_config.return_value = "PS_DUMMY_SwcNv_{NvName}"
|
||||
self.build_cfg.get_composition_config.side_effect = mock_get_composition_config
|
||||
self.build_cfg.get_code_generation_config.return_value = True
|
||||
self.nvm_def = MagicMock()
|
||||
self.nvm_def._get_nvm_areas_index.side_effect = mock_get_nvm_areas_index
|
||||
self.nvm_def.struct_member_prefix = "e_"
|
||||
@ -78,6 +88,7 @@ class TestRteDummy(unittest.TestCase):
|
||||
"#define TRUE 1U\n\n"
|
||||
),
|
||||
( # header content
|
||||
"typedef UInt8 testNameFctList;\n\n"
|
||||
"typedef struct\n"
|
||||
"{\n"
|
||||
" UInt8 e_dummy;\n"
|
||||
|
Loading…
x
Reference in New Issue
Block a user