From 5e5978a0f6a3edfbb21d8e88bcbffba9f9361730 Mon Sep 17 00:00:00 2001 From: Andreas Zwinkau Date: Mon, 5 Oct 2026 12:04:30 +0200 Subject: [PATCH 1/4] test: fully verify common status/security attribute requirements --- .../rst/options/test_options_common_attrs.rst | 603 ++++++++++++++++++ 1 file changed, 603 insertions(+) create mode 100644 src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs.rst diff --git a/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs.rst b/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs.rst new file mode 100644 index 000000000..86e6596b7 --- /dev/null +++ b/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs.rst @@ -0,0 +1,603 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +.. test_metadata:: + :id: test_metadata__common_attrs + :fully_verifies_list: tool_req__docs_common_attr_status[version==1], tool_req__docs_common_attr_security[version==1] + :test_type: requirements_based + :derivation_technique: requirements_based + + Tests that the common ``status`` and ``security`` attributes are enforced on + every directive that declares them in the metamodel: + the four requirement types (stkh_req, feat_req, comp_req, aou_req), + the eight architecture element/view types, and - for ``status`` only - + the five safety-analysis types. + + Every directive has its own metamodel regex, + so each one gets at least one invalid-value (negative) case; + the missing-value cases cover the mandatory-attribute mechanism + for all four requirement types. + + +.. stkh_req:: Valid common status and security values + :id: stkh_req__common_attrs__good + :version: 1 + :reqtype: Functional + :safety: QM + :security: YES + :status: valid + :rationale: valid common attributes + :valid_from: v1.0 + :expect_not: does not follow pattern, missing required attribute: `status`, missing required attribute: `security` + + +.. stkh_req:: Invalid common status + :id: stkh_req__common_attrs__bad_status + :version: 1 + :reqtype: Functional + :safety: QM + :security: NO + :status: draft + :rationale: invalid status + :valid_from: v1.0 + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + +.. stkh_req:: Missing common status + :id: stkh_req__common_attrs__missing_status + :version: 1 + :reqtype: Functional + :safety: QM + :security: NO + :rationale: missing status + :valid_from: v1.0 + :expect: is missing required attribute: `status` + + +.. stkh_req:: Invalid common security + :id: stkh_req__common_attrs__bad_security + :version: 1 + :reqtype: Functional + :safety: QM + :security: MAYBE + :status: valid + :rationale: invalid security + :valid_from: v1.0 + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + +.. stkh_req:: Missing common security + :id: stkh_req__common_attrs__missing_security + :version: 1 + :reqtype: Functional + :safety: QM + :status: valid + :rationale: missing security + :valid_from: v1.0 + :expect: is missing required attribute: `security` + + +.. stkh_req:: Valid invalid status and NO security values + :id: stkh_req__common_attrs__invalid_no + :version: 1 + :reqtype: Functional + :safety: QM + :security: NO + :status: invalid + :rationale: both values are allowed + :valid_from: v1.0 + :expect_not: does not follow pattern + + +.. + Support needs used as link targets by the negative fixtures below. + All are valid (`status: valid`, `safety: QM`, `security: NO`), + so they do not interact with the safety/security graph checks. + + +.. feat:: Support feature + :id: feat__attrs_support + :version: 1 + :security: NO + :safety: QM + :status: valid + + +.. logic_arc_int:: Support logical interface + :id: logic_arc_int__attrs_support + :security: NO + :safety: QM + :status: valid + + +.. logic_arc_int_op:: Support logical interface operation + :id: logic_arc_int_op__attrs_support + :security: NO + :safety: QM + :status: valid + :included_by: logic_arc_int__attrs_support + + +.. comp:: Support component + :id: comp__attrs_support + :version: 1 + :security: NO + :safety: QM + :status: valid + :belongs_to: feat__attrs_support + + +.. comp_arc_sta:: Support component package view + :id: comp_arc_sta__attrs_support + :security: NO + :safety: QM + :status: valid + :belongs_to: comp__attrs_support + + +.. comp_arc_dyn:: Support component sequence view + :id: comp_arc_dyn__attrs_support + :security: NO + :safety: QM + :status: valid + :belongs_to: comp__attrs_support + + +.. real_arc_int:: Support interface + :id: real_arc_int__attrs_support + :security: NO + :safety: QM + :status: valid + :language: cpp + + +.. real_arc_int_op:: Support interface operation + :id: real_arc_int_op__attrs_support + :security: NO + :safety: QM + :status: valid + :included_by: real_arc_int__attrs_support + + +.. feat_arc_sta:: Support feature static view + :id: feat_arc_sta__attrs_support + :security: NO + :safety: QM + :status: valid + :includes: logic_arc_int__attrs_support, logic_arc_int_op__attrs_support + :belongs_to: feat__attrs_support + + +.. feat_arc_dyn:: Support feature dynamic view + :id: feat_arc_dyn__attrs_support + :security: NO + :safety: QM + :status: valid + :belongs_to: feat__attrs_support + + +.. + Invalid ``status`` value for every directive that declares it, + i.e. all requirement types, all architecture types and all safety-analysis types. + + +.. feat_req:: Invalid status + :id: feat_req__attrs__bad_status + :reqtype: Functional + :security: NO + :safety: QM + :status: draft + :valid_from: v1.0 + :satisfied_by: feat__attrs_support + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + Negative `status` test for feat_req. + + +.. comp_req:: Invalid status + :id: comp_req__attrs__bad_status + :reqtype: Functional + :security: NO + :safety: QM + :status: draft + :satisfied_by: comp__attrs_support + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + Negative `status` test for comp_req. + + +.. aou_req:: Invalid status + :id: aou_req__attrs__bad_status + :reqtype: Functional + :security: NO + :safety: QM + :status: draft + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + Negative `status` test for aou_req. + + +.. feat:: Invalid status + :id: feat__attrs_bad_status + :version: 1 + :security: NO + :safety: QM + :status: draft + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + +.. feat_arc_sta:: Invalid status + :id: feat_arc_sta__attrs__bad_status + :security: NO + :safety: QM + :status: draft + :includes: logic_arc_int__attrs_support, logic_arc_int_op__attrs_support + :belongs_to: feat__attrs_support + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + +.. feat_arc_dyn:: Invalid status + :id: feat_arc_dyn__attrs__bad_status + :security: NO + :safety: QM + :status: draft + :belongs_to: feat__attrs_support + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + +.. logic_arc_int:: Invalid status + :id: logic_arc_int__attrs__bad_status + :security: NO + :safety: QM + :status: draft + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + +.. logic_arc_int_op:: Invalid status + :id: logic_arc_int_op__attrs__bad_status + :security: NO + :safety: QM + :status: draft + :included_by: logic_arc_int__attrs_support + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + +.. comp:: Invalid status + :id: comp__attrs_bad_status + :version: 1 + :security: NO + :safety: QM + :status: draft + :belongs_to: feat__attrs_support + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + +.. comp_arc_sta:: Invalid status + :id: comp_arc_sta__attrs__bad_status + :security: NO + :safety: QM + :status: draft + :belongs_to: comp__attrs_support + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + +.. comp_arc_dyn:: Invalid status + :id: comp_arc_dyn__attrs__bad_status + :security: NO + :safety: QM + :status: draft + :belongs_to: comp__attrs_support + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + +.. real_arc_int:: Invalid status + :id: real_arc_int__attrs__bad_status + :security: NO + :safety: QM + :status: draft + :language: cpp + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + +.. real_arc_int_op:: Invalid status + :id: real_arc_int_op__attrs__bad_status + :security: NO + :safety: QM + :status: draft + :included_by: real_arc_int__attrs_support + :expect: status (draft): does not follow pattern + :expect_not: security (NO): does not follow pattern + + +.. feat_saf_fmea:: Invalid status + :id: feat_saf_fmea__attrs__bad_status + :fault_id: FD_NEG + :failure_effect: Negative `status` test for feat_saf_fmea. + :sufficient: no + :status: draft + :violates: feat_arc_dyn__attrs_support + :expect: status (draft): does not follow pattern + + +.. comp_saf_fmea:: Invalid status + :id: comp_saf_fmea__attrs__bad_status + :fault_id: FD_NEG + :failure_effect: Negative `status` test for comp_saf_fmea. + :sufficient: no + :status: draft + :violates: comp_arc_dyn__attrs_support + :expect: status (draft): does not follow pattern + + +.. plat_saf_dfa:: Invalid status + :id: plat_saf_dfa__attrs__bad_status + :failure_id: FI_NEG + :failure_effect: Negative `status` test for plat_saf_dfa. + :sufficient: no + :status: draft + :violates: feat_arc_sta__attrs_support + :expect: status (draft): does not follow pattern + + +.. feat_saf_dfa:: Invalid status + :id: feat_saf_dfa__attrs__bad_status + :failure_id: FI_NEG + :failure_effect: Negative `status` test for feat_saf_dfa. + :sufficient: no + :status: draft + :violates: feat_arc_sta__attrs_support + :expect: status (draft): does not follow pattern + + +.. comp_saf_dfa:: Invalid status + :id: comp_saf_dfa__attrs__bad_status + :failure_id: FI_NEG + :failure_effect: Negative `status` test for comp_saf_dfa. + :sufficient: no + :status: draft + :violates: comp_arc_sta__attrs_support + :expect: status (draft): does not follow pattern + + +.. + Missing ``status`` value for all requirement types. + + +.. feat_req:: Missing status + :id: feat_req__attrs__missing_status + :reqtype: Functional + :security: NO + :safety: QM + :valid_from: v1.0 + :satisfied_by: feat__attrs_support + :expect: is missing required attribute: `status` + + Missing `status` test for feat_req. + + +.. comp_req:: Missing status + :id: comp_req__attrs__missing_status + :reqtype: Functional + :security: NO + :safety: QM + :satisfied_by: comp__attrs_support + :expect: is missing required attribute: `status` + + Missing `status` test for comp_req. + + +.. aou_req:: Missing status + :id: aou_req__attrs__missing_status + :reqtype: Functional + :security: NO + :safety: QM + :expect: is missing required attribute: `status` + + Missing `status` test for aou_req. + + +.. + Invalid ``security`` value for every directive that declares it, + i.e. all requirement types and all architecture types. + + +.. feat_req:: Invalid security + :id: feat_req__attrs__bad_security + :reqtype: Functional + :security: MAYBE + :safety: QM + :status: valid + :valid_from: v1.0 + :satisfied_by: feat__attrs_support + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + Negative `security` test for feat_req. + + +.. comp_req:: Invalid security + :id: comp_req__attrs__bad_security + :reqtype: Functional + :security: MAYBE + :safety: QM + :status: valid + :satisfied_by: comp__attrs_support + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + Negative `security` test for comp_req. + + +.. aou_req:: Invalid security + :id: aou_req__attrs__bad_security + :reqtype: Functional + :security: MAYBE + :safety: QM + :status: valid + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + Negative `security` test for aou_req. + + +.. feat:: Invalid security + :id: feat__attrs_bad_security + :version: 1 + :security: MAYBE + :safety: QM + :status: valid + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + +.. feat_arc_sta:: Invalid security + :id: feat_arc_sta__attrs__bad_security + :security: MAYBE + :safety: QM + :status: valid + :includes: logic_arc_int__attrs_support, logic_arc_int_op__attrs_support + :belongs_to: feat__attrs_support + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + +.. feat_arc_dyn:: Invalid security + :id: feat_arc_dyn__attrs__bad_security + :security: MAYBE + :safety: QM + :status: valid + :belongs_to: feat__attrs_support + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + +.. logic_arc_int:: Invalid security + :id: logic_arc_int__attrs__bad_security + :security: MAYBE + :safety: QM + :status: valid + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + +.. logic_arc_int_op:: Invalid security + :id: logic_arc_int_op__attrs__bad_security + :security: MAYBE + :safety: QM + :status: valid + :included_by: logic_arc_int__attrs_support + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + +.. comp:: Invalid security + :id: comp__attrs_bad_security + :version: 1 + :security: MAYBE + :safety: QM + :status: valid + :belongs_to: feat__attrs_support + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + +.. comp_arc_sta:: Invalid security + :id: comp_arc_sta__attrs__bad_security + :security: MAYBE + :safety: QM + :status: valid + :belongs_to: comp__attrs_support + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + +.. comp_arc_dyn:: Invalid security + :id: comp_arc_dyn__attrs__bad_security + :security: MAYBE + :safety: QM + :status: valid + :belongs_to: comp__attrs_support + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + +.. real_arc_int:: Invalid security + :id: real_arc_int__attrs__bad_security + :security: MAYBE + :safety: QM + :status: valid + :language: cpp + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + +.. real_arc_int_op:: Invalid security + :id: real_arc_int_op__attrs__bad_security + :security: MAYBE + :safety: QM + :status: valid + :included_by: real_arc_int__attrs_support + :expect: security (MAYBE): does not follow pattern + :expect_not: status (valid): does not follow pattern + + +.. + Missing ``security`` value for all requirement types. + + +.. feat_req:: Missing security + :id: feat_req__attrs__missing_security + :reqtype: Functional + :safety: QM + :status: valid + :valid_from: v1.0 + :satisfied_by: feat__attrs_support + :expect: is missing required attribute: `security` + + Missing `security` test for feat_req. + + +.. comp_req:: Missing security + :id: comp_req__attrs__missing_security + :reqtype: Functional + :safety: QM + :status: valid + :satisfied_by: comp__attrs_support + :expect: is missing required attribute: `security` + + Missing `security` test for comp_req. + + +.. aou_req:: Missing security + :id: aou_req__attrs__missing_security + :reqtype: Functional + :safety: QM + :status: valid + :expect: is missing required attribute: `security` + + Missing `security` test for aou_req. From 12bc1ea3ab28a57240df1c45cc30b686bcf4f95f Mon Sep 17 00:00:00 2001 From: Andreas Zwinkau Date: Mon, 5 Oct 2026 13:42:51 +0200 Subject: [PATCH 2/4] fix: precommit checks --- .../tests/rst/options/test_options_common_attrs.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs.rst b/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs.rst index 86e6596b7..2c52c8a62 100644 --- a/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs.rst +++ b/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs.rst @@ -14,7 +14,7 @@ .. test_metadata:: :id: test_metadata__common_attrs - :fully_verifies_list: tool_req__docs_common_attr_status[version==1], tool_req__docs_common_attr_security[version==1] + :fully_verifies_list: tool_req__docs_common_attr_status[version==2], tool_req__docs_common_attr_security[version==1] :test_type: requirements_based :derivation_technique: requirements_based From 472a21c1558712292367fb072ab589efbaa3a187 Mon Sep 17 00:00:00 2001 From: Andreas Zwinkau Date: Tue, 6 Oct 2026 11:19:32 +0200 Subject: [PATCH 3/4] test: split separate reqs into separate files --- .../rst/options/test_options_common_attrs.rst | 603 ------------------ .../test_options_common_attrs_security.rst | 88 +++ .../test_options_common_attrs_status.rst | 144 +++++ 3 files changed, 232 insertions(+), 603 deletions(-) delete mode 100644 src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs.rst create mode 100644 src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_security.rst create mode 100644 src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_status.rst diff --git a/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs.rst b/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs.rst deleted file mode 100644 index 2c52c8a62..000000000 --- a/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs.rst +++ /dev/null @@ -1,603 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2026 Contributors to the Eclipse Foundation - # - # See the NOTICE file(s) distributed with this work for additional - # information regarding copyright ownership. - # - # This program and the accompanying materials are made available under the - # terms of the Apache License Version 2.0 which is available at - # https://www.apache.org/licenses/LICENSE-2.0 - # - # SPDX-License-Identifier: Apache-2.0 - # ******************************************************************************* - -.. test_metadata:: - :id: test_metadata__common_attrs - :fully_verifies_list: tool_req__docs_common_attr_status[version==2], tool_req__docs_common_attr_security[version==1] - :test_type: requirements_based - :derivation_technique: requirements_based - - Tests that the common ``status`` and ``security`` attributes are enforced on - every directive that declares them in the metamodel: - the four requirement types (stkh_req, feat_req, comp_req, aou_req), - the eight architecture element/view types, and - for ``status`` only - - the five safety-analysis types. - - Every directive has its own metamodel regex, - so each one gets at least one invalid-value (negative) case; - the missing-value cases cover the mandatory-attribute mechanism - for all four requirement types. - - -.. stkh_req:: Valid common status and security values - :id: stkh_req__common_attrs__good - :version: 1 - :reqtype: Functional - :safety: QM - :security: YES - :status: valid - :rationale: valid common attributes - :valid_from: v1.0 - :expect_not: does not follow pattern, missing required attribute: `status`, missing required attribute: `security` - - -.. stkh_req:: Invalid common status - :id: stkh_req__common_attrs__bad_status - :version: 1 - :reqtype: Functional - :safety: QM - :security: NO - :status: draft - :rationale: invalid status - :valid_from: v1.0 - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - -.. stkh_req:: Missing common status - :id: stkh_req__common_attrs__missing_status - :version: 1 - :reqtype: Functional - :safety: QM - :security: NO - :rationale: missing status - :valid_from: v1.0 - :expect: is missing required attribute: `status` - - -.. stkh_req:: Invalid common security - :id: stkh_req__common_attrs__bad_security - :version: 1 - :reqtype: Functional - :safety: QM - :security: MAYBE - :status: valid - :rationale: invalid security - :valid_from: v1.0 - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - -.. stkh_req:: Missing common security - :id: stkh_req__common_attrs__missing_security - :version: 1 - :reqtype: Functional - :safety: QM - :status: valid - :rationale: missing security - :valid_from: v1.0 - :expect: is missing required attribute: `security` - - -.. stkh_req:: Valid invalid status and NO security values - :id: stkh_req__common_attrs__invalid_no - :version: 1 - :reqtype: Functional - :safety: QM - :security: NO - :status: invalid - :rationale: both values are allowed - :valid_from: v1.0 - :expect_not: does not follow pattern - - -.. - Support needs used as link targets by the negative fixtures below. - All are valid (`status: valid`, `safety: QM`, `security: NO`), - so they do not interact with the safety/security graph checks. - - -.. feat:: Support feature - :id: feat__attrs_support - :version: 1 - :security: NO - :safety: QM - :status: valid - - -.. logic_arc_int:: Support logical interface - :id: logic_arc_int__attrs_support - :security: NO - :safety: QM - :status: valid - - -.. logic_arc_int_op:: Support logical interface operation - :id: logic_arc_int_op__attrs_support - :security: NO - :safety: QM - :status: valid - :included_by: logic_arc_int__attrs_support - - -.. comp:: Support component - :id: comp__attrs_support - :version: 1 - :security: NO - :safety: QM - :status: valid - :belongs_to: feat__attrs_support - - -.. comp_arc_sta:: Support component package view - :id: comp_arc_sta__attrs_support - :security: NO - :safety: QM - :status: valid - :belongs_to: comp__attrs_support - - -.. comp_arc_dyn:: Support component sequence view - :id: comp_arc_dyn__attrs_support - :security: NO - :safety: QM - :status: valid - :belongs_to: comp__attrs_support - - -.. real_arc_int:: Support interface - :id: real_arc_int__attrs_support - :security: NO - :safety: QM - :status: valid - :language: cpp - - -.. real_arc_int_op:: Support interface operation - :id: real_arc_int_op__attrs_support - :security: NO - :safety: QM - :status: valid - :included_by: real_arc_int__attrs_support - - -.. feat_arc_sta:: Support feature static view - :id: feat_arc_sta__attrs_support - :security: NO - :safety: QM - :status: valid - :includes: logic_arc_int__attrs_support, logic_arc_int_op__attrs_support - :belongs_to: feat__attrs_support - - -.. feat_arc_dyn:: Support feature dynamic view - :id: feat_arc_dyn__attrs_support - :security: NO - :safety: QM - :status: valid - :belongs_to: feat__attrs_support - - -.. - Invalid ``status`` value for every directive that declares it, - i.e. all requirement types, all architecture types and all safety-analysis types. - - -.. feat_req:: Invalid status - :id: feat_req__attrs__bad_status - :reqtype: Functional - :security: NO - :safety: QM - :status: draft - :valid_from: v1.0 - :satisfied_by: feat__attrs_support - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - Negative `status` test for feat_req. - - -.. comp_req:: Invalid status - :id: comp_req__attrs__bad_status - :reqtype: Functional - :security: NO - :safety: QM - :status: draft - :satisfied_by: comp__attrs_support - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - Negative `status` test for comp_req. - - -.. aou_req:: Invalid status - :id: aou_req__attrs__bad_status - :reqtype: Functional - :security: NO - :safety: QM - :status: draft - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - Negative `status` test for aou_req. - - -.. feat:: Invalid status - :id: feat__attrs_bad_status - :version: 1 - :security: NO - :safety: QM - :status: draft - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - -.. feat_arc_sta:: Invalid status - :id: feat_arc_sta__attrs__bad_status - :security: NO - :safety: QM - :status: draft - :includes: logic_arc_int__attrs_support, logic_arc_int_op__attrs_support - :belongs_to: feat__attrs_support - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - -.. feat_arc_dyn:: Invalid status - :id: feat_arc_dyn__attrs__bad_status - :security: NO - :safety: QM - :status: draft - :belongs_to: feat__attrs_support - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - -.. logic_arc_int:: Invalid status - :id: logic_arc_int__attrs__bad_status - :security: NO - :safety: QM - :status: draft - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - -.. logic_arc_int_op:: Invalid status - :id: logic_arc_int_op__attrs__bad_status - :security: NO - :safety: QM - :status: draft - :included_by: logic_arc_int__attrs_support - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - -.. comp:: Invalid status - :id: comp__attrs_bad_status - :version: 1 - :security: NO - :safety: QM - :status: draft - :belongs_to: feat__attrs_support - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - -.. comp_arc_sta:: Invalid status - :id: comp_arc_sta__attrs__bad_status - :security: NO - :safety: QM - :status: draft - :belongs_to: comp__attrs_support - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - -.. comp_arc_dyn:: Invalid status - :id: comp_arc_dyn__attrs__bad_status - :security: NO - :safety: QM - :status: draft - :belongs_to: comp__attrs_support - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - -.. real_arc_int:: Invalid status - :id: real_arc_int__attrs__bad_status - :security: NO - :safety: QM - :status: draft - :language: cpp - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - -.. real_arc_int_op:: Invalid status - :id: real_arc_int_op__attrs__bad_status - :security: NO - :safety: QM - :status: draft - :included_by: real_arc_int__attrs_support - :expect: status (draft): does not follow pattern - :expect_not: security (NO): does not follow pattern - - -.. feat_saf_fmea:: Invalid status - :id: feat_saf_fmea__attrs__bad_status - :fault_id: FD_NEG - :failure_effect: Negative `status` test for feat_saf_fmea. - :sufficient: no - :status: draft - :violates: feat_arc_dyn__attrs_support - :expect: status (draft): does not follow pattern - - -.. comp_saf_fmea:: Invalid status - :id: comp_saf_fmea__attrs__bad_status - :fault_id: FD_NEG - :failure_effect: Negative `status` test for comp_saf_fmea. - :sufficient: no - :status: draft - :violates: comp_arc_dyn__attrs_support - :expect: status (draft): does not follow pattern - - -.. plat_saf_dfa:: Invalid status - :id: plat_saf_dfa__attrs__bad_status - :failure_id: FI_NEG - :failure_effect: Negative `status` test for plat_saf_dfa. - :sufficient: no - :status: draft - :violates: feat_arc_sta__attrs_support - :expect: status (draft): does not follow pattern - - -.. feat_saf_dfa:: Invalid status - :id: feat_saf_dfa__attrs__bad_status - :failure_id: FI_NEG - :failure_effect: Negative `status` test for feat_saf_dfa. - :sufficient: no - :status: draft - :violates: feat_arc_sta__attrs_support - :expect: status (draft): does not follow pattern - - -.. comp_saf_dfa:: Invalid status - :id: comp_saf_dfa__attrs__bad_status - :failure_id: FI_NEG - :failure_effect: Negative `status` test for comp_saf_dfa. - :sufficient: no - :status: draft - :violates: comp_arc_sta__attrs_support - :expect: status (draft): does not follow pattern - - -.. - Missing ``status`` value for all requirement types. - - -.. feat_req:: Missing status - :id: feat_req__attrs__missing_status - :reqtype: Functional - :security: NO - :safety: QM - :valid_from: v1.0 - :satisfied_by: feat__attrs_support - :expect: is missing required attribute: `status` - - Missing `status` test for feat_req. - - -.. comp_req:: Missing status - :id: comp_req__attrs__missing_status - :reqtype: Functional - :security: NO - :safety: QM - :satisfied_by: comp__attrs_support - :expect: is missing required attribute: `status` - - Missing `status` test for comp_req. - - -.. aou_req:: Missing status - :id: aou_req__attrs__missing_status - :reqtype: Functional - :security: NO - :safety: QM - :expect: is missing required attribute: `status` - - Missing `status` test for aou_req. - - -.. - Invalid ``security`` value for every directive that declares it, - i.e. all requirement types and all architecture types. - - -.. feat_req:: Invalid security - :id: feat_req__attrs__bad_security - :reqtype: Functional - :security: MAYBE - :safety: QM - :status: valid - :valid_from: v1.0 - :satisfied_by: feat__attrs_support - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - Negative `security` test for feat_req. - - -.. comp_req:: Invalid security - :id: comp_req__attrs__bad_security - :reqtype: Functional - :security: MAYBE - :safety: QM - :status: valid - :satisfied_by: comp__attrs_support - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - Negative `security` test for comp_req. - - -.. aou_req:: Invalid security - :id: aou_req__attrs__bad_security - :reqtype: Functional - :security: MAYBE - :safety: QM - :status: valid - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - Negative `security` test for aou_req. - - -.. feat:: Invalid security - :id: feat__attrs_bad_security - :version: 1 - :security: MAYBE - :safety: QM - :status: valid - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - -.. feat_arc_sta:: Invalid security - :id: feat_arc_sta__attrs__bad_security - :security: MAYBE - :safety: QM - :status: valid - :includes: logic_arc_int__attrs_support, logic_arc_int_op__attrs_support - :belongs_to: feat__attrs_support - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - -.. feat_arc_dyn:: Invalid security - :id: feat_arc_dyn__attrs__bad_security - :security: MAYBE - :safety: QM - :status: valid - :belongs_to: feat__attrs_support - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - -.. logic_arc_int:: Invalid security - :id: logic_arc_int__attrs__bad_security - :security: MAYBE - :safety: QM - :status: valid - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - -.. logic_arc_int_op:: Invalid security - :id: logic_arc_int_op__attrs__bad_security - :security: MAYBE - :safety: QM - :status: valid - :included_by: logic_arc_int__attrs_support - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - -.. comp:: Invalid security - :id: comp__attrs_bad_security - :version: 1 - :security: MAYBE - :safety: QM - :status: valid - :belongs_to: feat__attrs_support - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - -.. comp_arc_sta:: Invalid security - :id: comp_arc_sta__attrs__bad_security - :security: MAYBE - :safety: QM - :status: valid - :belongs_to: comp__attrs_support - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - -.. comp_arc_dyn:: Invalid security - :id: comp_arc_dyn__attrs__bad_security - :security: MAYBE - :safety: QM - :status: valid - :belongs_to: comp__attrs_support - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - -.. real_arc_int:: Invalid security - :id: real_arc_int__attrs__bad_security - :security: MAYBE - :safety: QM - :status: valid - :language: cpp - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - -.. real_arc_int_op:: Invalid security - :id: real_arc_int_op__attrs__bad_security - :security: MAYBE - :safety: QM - :status: valid - :included_by: real_arc_int__attrs_support - :expect: security (MAYBE): does not follow pattern - :expect_not: status (valid): does not follow pattern - - -.. - Missing ``security`` value for all requirement types. - - -.. feat_req:: Missing security - :id: feat_req__attrs__missing_security - :reqtype: Functional - :safety: QM - :status: valid - :valid_from: v1.0 - :satisfied_by: feat__attrs_support - :expect: is missing required attribute: `security` - - Missing `security` test for feat_req. - - -.. comp_req:: Missing security - :id: comp_req__attrs__missing_security - :reqtype: Functional - :safety: QM - :status: valid - :satisfied_by: comp__attrs_support - :expect: is missing required attribute: `security` - - Missing `security` test for comp_req. - - -.. aou_req:: Missing security - :id: aou_req__attrs__missing_security - :reqtype: Functional - :safety: QM - :status: valid - :expect: is missing required attribute: `security` - - Missing `security` test for aou_req. diff --git a/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_security.rst b/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_security.rst new file mode 100644 index 000000000..0966451d2 --- /dev/null +++ b/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_security.rst @@ -0,0 +1,88 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +.. test_metadata:: + :id: test_metadata__common_attrs_security + :fully_verifies_list: tool_req__docs_common_attr_security[version==1] + :test_type: requirements_based + :derivation_technique: requirements_based + + Tests that the common ``security`` attribute is enforced on every directive + that declares it in the metamodel. + + All directives that have ``security`` use the same regex + ``^(YES|NO)$`` — a single equivalence class. + One representative (stkh_req) covers all types for the invalid-value case. + Since ``security`` is mandatory only for requirement types, + the missing-value case is covered only for that class. + + Pseudo-code for generating the test cases:: + + CLASSES = [ + ("req/arch", types=[stkh_req, feat_req, feat, comp, ...], + regex="^(YES|NO)$"), + ] + for class in CLASSES: + representative = class.types[0] + emit_valid_case(representative, value="YES") + emit_invalid_value_case(representative, bad_value="MAYBE") + if class.is_mandatory: + emit_missing_case(representative) + + +.. stkh_req:: Valid security on a requirement type + :id: stkh_req__security__good + :version: 1 + :reqtype: Functional + :safety: QM + :security: YES + :status: valid + :rationale: valid security + :valid_from: v1.0 + :expect_not: does not follow pattern, missing required attribute: `security` + + +.. stkh_req:: Invalid security on a requirement type + :id: stkh_req__security__bad + :version: 1 + :reqtype: Functional + :safety: QM + :security: MAYBE + :status: valid + :rationale: invalid security + :valid_from: v1.0 + :expect: security (MAYBE): does not follow pattern + + +.. stkh_req:: Missing security on a requirement type + :id: stkh_req__security__missing + :version: 1 + :reqtype: Functional + :safety: QM + :status: valid + :rationale: missing security + :valid_from: v1.0 + :expect: is missing required attribute: `security` + + +.. stkh_req:: Valid NO security value + :id: stkh_req__security__no + :version: 1 + :reqtype: Functional + :safety: QM + :security: NO + :status: valid + :rationale: NO is a valid security value + :valid_from: v1.0 + :expect_not: does not follow pattern \ No newline at end of file diff --git a/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_status.rst b/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_status.rst new file mode 100644 index 000000000..029dde280 --- /dev/null +++ b/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_status.rst @@ -0,0 +1,144 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +.. test_metadata:: + :id: test_metadata__common_attrs_status + :fully_verifies_list: tool_req__docs_common_attr_status[version==2] + :test_type: requirements_based + :derivation_technique: requirements_based + + Tests that the common ``status`` attribute is enforced on every directive + that declares it in the metamodel. + + Every directive type has its own metamodel ``status`` regex. + The regex patterns fall into two equivalence classes: + + * ``^(valid|invalid|valid_inspected)$`` — requirement types + (stkh_req, feat_req, comp_req, aou_req) and architecture types + (feat, comp, feat_arc_sta, feat_arc_dyn, comp_arc_sta, comp_arc_dyn, + logic_arc_int, logic_arc_int_op, real_arc_int, real_arc_int_op). + * ``^(valid|invalid)$`` — safety-analysis types + (feat_saf_fmea, comp_saf_fmea, plat_saf_dfa, feat_saf_dfa, + comp_saf_dfa). + + One representative from each class is tested for invalid values. + Since ``status`` is mandatory only for requirement types, + the missing-value case is covered only for that class. + + Pseudo-code for generating the test cases:: + + CLASSES = [ + ("req/arch", types=[stkh_req, feat, ...], regex="^(valid|invalid|valid_inspected)$"), + ("safety", types=[feat_saf_fmea, ...], regex="^(valid|invalid)$"), + ] + for class in CLASSES: + representative = class.types[0] + emit_valid_case(representative) + emit_invalid_value_case(representative, bad_value="draft") + if class.is_mandatory: + emit_missing_case(representative) + + +.. stkh_req:: Valid status on a requirement type + :id: stkh_req__status__good + :version: 1 + :reqtype: Functional + :safety: QM + :security: NO + :status: valid + :rationale: valid status + :valid_from: v1.0 + :expect_not: does not follow pattern, missing required attribute: `status` + + +.. stkh_req:: Invalid status on a requirement type + :id: stkh_req__status__bad + :version: 1 + :reqtype: Functional + :safety: QM + :security: NO + :status: draft + :rationale: invalid status + :valid_from: v1.0 + :expect: status (draft): does not follow pattern + + +.. stkh_req:: Missing status on a requirement type + :id: stkh_req__status__missing + :version: 1 + :reqtype: Functional + :safety: QM + :security: NO + :rationale: missing status + :valid_from: v1.0 + :expect: is missing required attribute: `status` + + +.. stkh_req:: Valid: ``invalid`` and ``valid_inspected`` are also allowed + :id: stkh_req__status__alternatives + :version: 1 + :reqtype: Functional + :safety: QM + :security: NO + :status: valid_inspected + :rationale: valid_inspected is a valid value + :valid_from: v1.0 + :expect_not: does not follow pattern + + +.. feat_saf_fmea:: Invalid status on a safety-analysis type + :id: feat_saf_fmea__status__bad + :fault_id: FD_NEG + :failure_effect: Negative `status` test for feat_saf_fmea. + :sufficient: no + :status: draft + :violates: feat_arc_sta__status_support + :expect: status (draft): does not follow pattern + + +.. + Support needs used as link targets by the negative fixtures above. + All are valid so they do not interact with the safety graph checks. + + +.. feat:: Support feature for status tests + :id: feat__status_support + :version: 1 + :security: NO + :safety: QM + :status: valid + + +.. logic_arc_int:: Support logical interface for status tests + :id: logic_arc_int__status_support + :security: NO + :safety: QM + :status: valid + + +.. logic_arc_int_op:: Support logical interface operation for status tests + :id: logic_arc_int_op__status_support + :security: NO + :safety: QM + :status: valid + :included_by: logic_arc_int__status_support + + +.. feat_arc_sta:: Support feature static view for status tests + :id: feat_arc_sta__status_support + :security: NO + :safety: QM + :status: valid + :includes: logic_arc_int__status_support, logic_arc_int_op__status_support + :belongs_to: feat__status_support \ No newline at end of file From 46fe6d195c3016eb13fe07ec4cb77307be9ac9b9 Mon Sep 17 00:00:00 2001 From: Andreas Zwinkau Date: Tue, 6 Oct 2026 14:29:15 +0200 Subject: [PATCH 4/4] test: revised completely --- .../test_options_common_attrs_security.rst | 167 ++++++++++++++++-- .../test_options_common_attrs_status.rst | 71 ++++++-- 2 files changed, 204 insertions(+), 34 deletions(-) diff --git a/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_security.rst b/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_security.rst index 0966451d2..d41d082a7 100644 --- a/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_security.rst +++ b/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_security.rst @@ -18,27 +18,14 @@ :test_type: requirements_based :derivation_technique: requirements_based - Tests that the common ``security`` attribute is enforced on every directive + Tests that the common ``security`` attribute is enforced on every type that declares it in the metamodel. All directives that have ``security`` use the same regex ``^(YES|NO)$`` — a single equivalence class. - One representative (stkh_req) covers all types for the invalid-value case. - Since ``security`` is mandatory only for requirement types, - the missing-value case is covered only for that class. + One representative (stkh_req) covers all types for the valid-value case. - Pseudo-code for generating the test cases:: - - CLASSES = [ - ("req/arch", types=[stkh_req, feat_req, feat, comp, ...], - regex="^(YES|NO)$"), - ] - for class in CLASSES: - representative = class.types[0] - emit_valid_case(representative, value="YES") - emit_invalid_value_case(representative, bad_value="MAYBE") - if class.is_mandatory: - emit_missing_case(representative) + For the other safety-critical types, we only verify a missing attribute is detected. .. stkh_req:: Valid security on a requirement type @@ -85,4 +72,150 @@ :status: valid :rationale: NO is a valid security value :valid_from: v1.0 - :expect_not: does not follow pattern \ No newline at end of file + :expect_not: does not follow pattern + + +.. feat_req:: Missing security on a feature requirement + :id: feat_req__security__missing + :version: 1 + :reqtype: Functional + :safety: QM + :status: valid + :rationale: missing security + :valid_from: v1.0 + :satisfied_by: feat__security_support + :expect: is missing required attribute: `security` + + +.. comp_req:: Missing security on a component requirement + :id: comp_req__security__missing + :reqtype: Interface + :safety: QM + :status: valid + :satisfied_by: comp__security_support + :expect: is missing required attribute: `security` + + Missing security test for comp_req. + + +.. aou_req:: Missing security on an assumption-of-use requirement + :id: aou_req__security__missing + :reqtype: Functional + :safety: QM + :status: valid + :expect: is missing required attribute: `security` + + Missing security test for aou_req. + + +.. feat_arc_sta:: Missing security on a feature architecture static view + :id: feat_arc_sta__security__missing + :safety: QM + :status: valid + :includes: logic_arc_int__security_support, logic_arc_int_op__security_support + :belongs_to: feat__security_support + :expect: is missing required attribute: `security` + + +.. feat:: Missing security on a feature + :id: feat__security__missing + :safety: QM + :status: valid + :expect: is missing required attribute: `security` + + +.. logic_arc_int:: Missing security on a logical architecture interface + :id: logic_arc_int__security__missing + :safety: QM + :status: valid + :expect: is missing required attribute: `security` + + +.. logic_arc_int_op:: Missing security on a logical architecture interface operation + :id: logic_arc_int_op__security__missing + :safety: QM + :status: valid + :included_by: logic_arc_int__security_support + :expect: is missing required attribute: `security` + + +.. comp_arc_sta:: Missing security on a component architecture static view + :id: comp_arc_sta__security__missing + :safety: QM + :status: valid + :belongs_to: comp__security_support + :expect: is missing required attribute: `security` + + +.. comp:: Missing security on a component + :id: comp__security__missing + :safety: QM + :status: valid + :belongs_to: feat__security_support + :expect: is missing required attribute: `security` + + +.. real_arc_int:: Missing security on a real architecture interface + :id: real_arc_int__security__missing + :safety: QM + :status: valid + :expect: is missing required attribute: `security` + + +.. real_arc_int_op:: Missing security on a real architecture interface operation + :id: real_arc_int_op__security__missing + :safety: QM + :status: valid + :included_by: real_arc_int__security_support + :expect: is missing required attribute: `security` + + +.. + Support needs used as link targets by the negative fixtures above. + All are valid so they do not interact with the security graph checks. + + +.. feat:: Support feature for security tests + :id: feat__security_support + :version: 1 + :security: NO + :safety: QM + :status: valid + + +.. comp:: Support component for security tests + :id: comp__security_support + :version: 1 + :security: NO + :safety: QM + :status: valid + + +.. logic_arc_int:: Support logical interface for security tests + :id: logic_arc_int__security_support + :security: NO + :safety: QM + :status: valid + + +.. logic_arc_int_op:: Support logical interface operation for security tests + :id: logic_arc_int_op__security_support + :security: NO + :safety: QM + :status: valid + :included_by: logic_arc_int__security_support + + +.. real_arc_int:: Support real interface for security tests + :id: real_arc_int__security_support + :security: NO + :safety: QM + :status: valid + + +.. real_arc_int_op:: Support real interface operation for security tests + :id: real_arc_int_op__security_support + :security: NO + :safety: QM + :status: valid + :included_by: real_arc_int__security_support diff --git a/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_status.rst b/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_status.rst index 029dde280..6c968147c 100644 --- a/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_status.rst +++ b/src/extensions/score_metamodel/tests/rst/options/test_options_common_attrs_status.rst @@ -32,22 +32,9 @@ (feat_saf_fmea, comp_saf_fmea, plat_saf_dfa, feat_saf_dfa, comp_saf_dfa). - One representative from each class is tested for invalid values. - Since ``status`` is mandatory only for requirement types, - the missing-value case is covered only for that class. - - Pseudo-code for generating the test cases:: - - CLASSES = [ - ("req/arch", types=[stkh_req, feat, ...], regex="^(valid|invalid|valid_inspected)$"), - ("safety", types=[feat_saf_fmea, ...], regex="^(valid|invalid)$"), - ] - for class in CLASSES: - representative = class.types[0] - emit_valid_case(representative) - emit_invalid_value_case(representative, bad_value="draft") - if class.is_mandatory: - emit_missing_case(representative) + One representative from each class is tested for valid and invalid values. + Missing-attribute is verified on all requirement types and one + representative safety-analysis type. .. stkh_req:: Valid status on a requirement type @@ -107,6 +94,48 @@ :expect: status (draft): does not follow pattern +.. feat_req:: Missing status on a feature requirement + :id: feat_req__status__missing + :version: 1 + :reqtype: Functional + :safety: QM + :security: NO + :rationale: missing status + :valid_from: v1.0 + :satisfied_by: feat__status_support + :expect: is missing required attribute: `status` + + +.. comp_req:: Missing status on a component requirement + :id: comp_req__status__missing + :reqtype: Interface + :safety: QM + :security: NO + :satisfied_by: comp__status_support + :expect: is missing required attribute: `status` + + Missing status test for comp_req. + + +.. aou_req:: Missing status on an assumption-of-use requirement + :id: aou_req__status__missing + :reqtype: Functional + :safety: QM + :security: NO + :expect: is missing required attribute: `status` + + Missing status test for aou_req. + + +.. feat_saf_fmea:: Missing status on a safety-analysis type + :id: feat_saf_fmea__status__missing + :fault_id: FD_NEG + :failure_effect: Negative `status` test for feat_saf_fmea. + :sufficient: no + :violates: feat_arc_sta__status_support + :expect: is missing required attribute: `status` + + .. Support needs used as link targets by the negative fixtures above. All are valid so they do not interact with the safety graph checks. @@ -120,6 +149,14 @@ :status: valid +.. comp:: Support component for status tests + :id: comp__status_support + :version: 1 + :security: NO + :safety: QM + :status: valid + + .. logic_arc_int:: Support logical interface for status tests :id: logic_arc_int__status_support :security: NO @@ -141,4 +178,4 @@ :safety: QM :status: valid :includes: logic_arc_int__status_support, logic_arc_int_op__status_support - :belongs_to: feat__status_support \ No newline at end of file + :belongs_to: feat__status_support