summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-08-04 06:58:34 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-08-07 11:12:24 +0200
commit6135d0a6de5a6a11e0fd5c97a9fa5d5ab4ebd630 (patch)
tree7ce3dd28346a49e36f9e11bb8eb81b8f83585e4e
parentvalidation: Fix N/A scope description (diff)
downloadrtems-central-6135d0a6de5a6a11e0fd5c97a9fa5d5ab4ebd630.tar.bz2
validation: Move action code to separate function
-rw-r--r--rtemsspec/tests/test_validation.py16
-rw-r--r--rtemsspec/validation.py10
2 files changed, 22 insertions, 4 deletions
diff --git a/rtemsspec/tests/test_validation.py b/rtemsspec/tests/test_validation.py
index 7c7c2425..b0a7a3ef 100644
--- a/rtemsspec/tests/test_validation.py
+++ b/rtemsspec/tests/test_validation.py
@@ -726,6 +726,13 @@ static const struct {
}
};
+static void ClassicTaskIdentification_Action(
+ ClassicTaskIdentification_Context *ctx
+)
+{
+ ctx->status = rtems_task_ident( ctx->name, ctx->node, ctx->id );
+}
+
/**
* @fn void T_case_body_ClassicTaskIdentification( void )
*
@@ -786,7 +793,7 @@ T_TEST_CASE_FIXTURE(
ClassicTaskIdentification_Pre_Name_Prepare( ctx, ctx->pcs[ 0 ] );
ClassicTaskIdentification_Pre_Node_Prepare( ctx, ctx->pcs[ 1 ] );
ClassicTaskIdentification_Pre_Id_Prepare( ctx, ctx->pcs[ 2 ] );
- ctx->status = rtems_task_ident( ctx->name, ctx->node, ctx->id );
+ ClassicTaskIdentification_Action( ctx );
ClassicTaskIdentification_Post_Status_Check(
ctx,
ClassicTaskIdentification_TransitionMap[ index ][ 0 ]
@@ -1409,6 +1416,11 @@ static const struct {
}
};
+static void Action2_Action( Action2_Context *ctx )
+{
+ /* Action */
+}
+
static T_fixture_node Action2_Node;
void Action2_Run( int *a, int b, int *c )
@@ -1452,7 +1464,7 @@ void Action2_Run( int *a, int b, int *c )
Action2_Pre_A_Prepare( ctx, ctx->pcs[ 0 ] );
Action2_Pre_B_Prepare( ctx, ctx->pcs[ 1 ] );
- /* Action */
+ Action2_Action( ctx );
Action2_Post_A_Check(
ctx,
Action2_TransitionMap[ index ][ 0 ]
diff --git a/rtemsspec/validation.py b/rtemsspec/validation.py
index cf3053ae..f7952052 100644
--- a/rtemsspec/validation.py
+++ b/rtemsspec/validation.py
@@ -472,12 +472,17 @@ class _TestDirectiveItem(_TestItem):
content.append(["\n }, {\n".join(info_elements), " }", "};"])
def _add_action(self, content: CContent) -> None:
+ with content.function("static void", f"{self.ident}_Action",
+ [f"{self.context} *ctx"]):
+ content.append(self.substitute_code(self["test-action"]))
+
+ def _add_loop_body(self, content: CContent) -> None:
with content.condition(f"{self.ident}_TransitionInfo[ index ].Skip"):
content.append(["++index;", "continue;"])
content.add_blank_line()
for index, enum in enumerate(self._pre_index_to_enum):
content.append(f"{enum[0]}_Prepare( ctx, ctx->pcs[ {index} ] );")
- content.append(self.substitute_code(self["test-action"]))
+ content.append(f"{self.ident}_Action( ctx );")
transition_map = f"{self.ident}_TransitionMap"
for index, enum in enumerate(self._post_index_to_enum):
content.append([
@@ -505,7 +510,7 @@ class _TestDirectiveItem(_TestItem):
content.lines[-1] += ";"
self._add_for_loops(content, index + 1)
else:
- self._add_action(content)
+ self._add_loop_body(content)
def _add_test_case(self, content: CContent, header: Dict[str,
Any]) -> None:
@@ -637,6 +642,7 @@ class _TestDirectiveItem(_TestItem):
f" .initial_context = &{self.ident}_Instance", "};"
])
self._add_transition_map(content)
+ self._add_action(content)
self._add_test_case(content, header)
content.add("/** @} */")