From 82426ed3a2434541026a817b21f655d7af84a698 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 4 Aug 2020 09:14:52 +0200 Subject: validation: Add test context support --- rtemsspec/tests/spec-validation/action2.yml | 2 ++ rtemsspec/tests/spec-validation/directive.yml | 1 + rtemsspec/tests/test_validation.py | 2 ++ rtemsspec/validation.py | 1 + spec/req/rtems/ident-local.yml | 1 + spec/req/rtems/ident.yml | 1 + spec/req/rtems/tasks/ident.yml | 1 + spec/spec/requirement-action.yml | 7 +++++++ 8 files changed, 16 insertions(+) diff --git a/rtemsspec/tests/spec-validation/action2.yml b/rtemsspec/tests/spec-validation/action2.yml index 4cb5e6a4..dcb88080 100644 --- a/rtemsspec/tests/spec-validation/action2.yml +++ b/rtemsspec/tests/spec-validation/action2.yml @@ -94,6 +94,8 @@ test-context: Context member description. member: | int member +test-context-support: | + /* Context support code */ test-description: | Test description. test-header: diff --git a/rtemsspec/tests/spec-validation/directive.yml b/rtemsspec/tests/spec-validation/directive.yml index 333a47f8..59fadab8 100644 --- a/rtemsspec/tests/spec-validation/directive.yml +++ b/rtemsspec/tests/spec-validation/directive.yml @@ -190,6 +190,7 @@ test-context: description: null member: | rtems_id id_remote_task +test-context-support: null test-description: Test rtems_task_ident() description. test-header: null test-includes: diff --git a/rtemsspec/tests/test_validation.py b/rtemsspec/tests/test_validation.py index a1b3979b..88995fba 100644 --- a/rtemsspec/tests/test_validation.py +++ b/rtemsspec/tests/test_validation.py @@ -1159,6 +1159,8 @@ void Action2_Run( int *a, int b, int *c ); * @{ */ +/* Context support code */ + /** * @brief Test context for Action 2 test case. */ diff --git a/rtemsspec/validation.py b/rtemsspec/validation.py index c93ed96c..6f93b472 100644 --- a/rtemsspec/validation.py +++ b/rtemsspec/validation.py @@ -301,6 +301,7 @@ class _TestDirectiveItem(_TestItem): content.add("};") def _add_context(self, content: CContent, header: Dict[str, Any]) -> None: + content.add(self.substitute_code(self["test-context-support"])) with content.doxygen_block(): content.add_brief_description( f"Test context for {self.name} test case.") diff --git a/spec/req/rtems/ident-local.yml b/spec/req/rtems/ident-local.yml index a6ef3a80..146842e7 100644 --- a/spec/req/rtems/ident-local.yml +++ b/spec/req/rtems/ident-local.yml @@ -103,6 +103,7 @@ test-context: - brief: null description: null member: rtems_id id_value +test-context-support: null test-description: null test-header: code: | diff --git a/spec/req/rtems/ident.yml b/spec/req/rtems/ident.yml index 978bd5f3..0ee60c8f 100644 --- a/spec/req/rtems/ident.yml +++ b/spec/req/rtems/ident.yml @@ -163,6 +163,7 @@ test-context: - brief: null description: null member: rtems_id id_remote_object +test-context-support: null test-description: null test-header: code: | diff --git a/spec/req/rtems/tasks/ident.yml b/spec/req/rtems/tasks/ident.yml index c9b4c1f8..27b80b60 100644 --- a/spec/req/rtems/tasks/ident.yml +++ b/spec/req/rtems/tasks/ident.yml @@ -70,6 +70,7 @@ test-context: - brief: null description: null member: rtems_id id_local_object +test-context-support: null test-description: null test-header: null test-includes: [] diff --git a/spec/spec/requirement-action.yml b/spec/spec/requirement-action.yml index 093ef671..184a7b06 100644 --- a/spec/spec/requirement-action.yml +++ b/spec/spec/requirement-action.yml @@ -93,6 +93,7 @@ spec-example: | - brief: null description: null member: option_type option + test-context-support: null test-description: null test-header: null test-includes: [] @@ -161,6 +162,12 @@ spec-info: test-context: description: null spec-type: requirement-action-test-context-list + test-context-support: + description: | + If the value is present, then it shall be the test context support + code. The context support code is placed at file scope before the + test context definition. + spec-type: optional-str test-description: description: | If the value is present, then it shall be the test case description. -- cgit v1.2.3