[rtems-central commit] validation: Add nested test case remarks

Sebastian Huber sebh at rtems.org
Tue Nov 28 13:05:16 UTC 2023


Module:    rtems-central
Branch:    master
Commit:    14c4f4151cbf3f6234e321c01fc6a11469f48c17
Changeset: http://git.rtems.org/rtems-central/commit/?id=14c4f4151cbf3f6234e321c01fc6a11469f48c17

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Nov 22 15:00:38 2023 +0100

validation: Add nested test case remarks

---

 rtemsspec/tests/test_validation.py | 18 ++++++++++++++++++
 rtemsspec/validation.py            | 17 +++++++++++++----
 2 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/rtemsspec/tests/test_validation.py b/rtemsspec/tests/test_validation.py
index 74f23f91..539f6070 100644
--- a/rtemsspec/tests/test_validation.py
+++ b/rtemsspec/tests/test_validation.py
@@ -1468,6 +1468,11 @@ static void Tc7_Action_0( void )
 
 static T_fixture_node Tc7_Node;
 
+static T_remark Tc7_Remark = {
+  .next = NULL,
+  .remark = "Tc7"
+};
+
 void Tc7_Run( void )
 {
   T_push_fixture( &Tc7_Node, &T_empty_fixture );
@@ -1476,6 +1481,7 @@ void Tc7_Run( void )
 
   Tc7_Action_0();
 
+  T_add_remark( &Tc7_Remark );
   T_pop_fixture();
 }
 
@@ -1521,6 +1527,11 @@ static void Tc8_Action_0( Tc8_Context *ctx )
 
 static T_fixture_node Tc8_Node;
 
+static T_remark Tc8_Remark = {
+  .next = NULL,
+  .remark = "Tc8"
+};
+
 void Tc8_Run( void )
 {
   Tc8_Context *ctx;
@@ -1531,6 +1542,7 @@ void Tc8_Run( void )
 
   Tc8_Action_0( ctx );
 
+  T_add_remark( &Tc8_Remark );
   T_pop_fixture();
 }
 
@@ -2363,6 +2375,11 @@ static void Action2_TestVariant( Action2_Context *ctx )
 
 static T_fixture_node Action2_Node;
 
+static T_remark Action2_Remark = {
+  .next = NULL,
+  .remark = "Action2"
+};
+
 void Action2_Run( int *a, int b, int *c )
 {
   Action2_Context *ctx;
@@ -2406,6 +2423,7 @@ void Action2_Run( int *a, int b, int *c )
     }
   }
 
+  T_add_remark( &Action2_Remark );
   T_pop_fixture();
 }
 
diff --git a/rtemsspec/validation.py b/rtemsspec/validation.py
index 501aadd5..a78dfabf 100644
--- a/rtemsspec/validation.py
+++ b/rtemsspec/validation.py
@@ -434,6 +434,17 @@ class _TestItem:
                 for param in header["run-params"]
             ])
 
+    def _add_fixture_node_and_remark(self, content: CContent,
+                                     epilogue: CContent) -> None:
+        content.add(f"static T_fixture_node {self.ident}_Node;")
+        content.add([
+            f"static T_remark {self.ident}_Remark = {{", "  .next = NULL,",
+            f"  .remark = \"{self.ident}\"", "};"
+        ])
+        epilogue.call_function(None, "T_add_remark", [f"&{self.ident}_Remark"])
+        epilogue.gap = False
+        epilogue.add("T_pop_fixture();")
+
     def _add_runner_prologue_and_epilogue(self, content: CContent,
                                           prologue: CContent,
                                           epilogue: CContent,
@@ -450,10 +461,9 @@ class _TestItem:
                                    [f"\"{self.ident}\"", fixture])
             epilogue.add("T_case_end();")
         else:
-            content.add(f"static T_fixture_node {self.ident}_Node;")
             prologue.call_function(result, "T_push_fixture",
                                    [f"&{self.ident}_Node", fixture])
-            epilogue.add("T_pop_fixture();")
+            self._add_fixture_node_and_remark(content, epilogue)
 
     def generate(self, content: CContent, base_directory: str,
                  test_case_to_suites: _CaseToSuite) -> None:
@@ -764,7 +774,6 @@ class _ActionRequirementTestItem(_TestItem):
         if self._pre_co_skip:
             map_members_initialization.append("ctx->Map.skip = false;")
         if header:
-            content.add(f"static T_fixture_node {self.ident}_Node;")
             ret = "void"
             name = f"{self.ident}_Run"
             params = self._get_run_params(header)
@@ -773,7 +782,7 @@ class _ActionRequirementTestItem(_TestItem):
             prologue.call_function("ctx =", "T_push_fixture",
                                    [f"&{self.ident}_Node", f"&{fixture}"])
             prologue.append(map_members_initialization)
-            epilogue.add("T_pop_fixture();")
+            self._add_fixture_node_and_remark(content, epilogue)
             align = True
         else:
             with content.function_block(



More information about the vc mailing list