On Fri, Nov 13, 2020 at 2:47 AM Sebastian Huber <sebastian.hu...@embedded-brains.de> wrote: > > Add items to specify runtime performance requirements. > > Update #3715. > --- > > You find an updated document here: > > https://ftp.rtems.org/pub/rtems/people/sebh/eng.pdf > > eng/req/items.rst | 616 +++++++++++++++++++++++++++++++++++++--------- > 1 file changed, 503 insertions(+), 113 deletions(-) > > diff --git a/eng/req/items.rst b/eng/req/items.rst > index 9d3822b..e811213 100644 > --- a/eng/req/items.rst > +++ b/eng/req/items.rst > @@ -109,8 +109,14 @@ The specification item types have the following > hierarchy: > > * :ref:`SpecTypeNonFunctionalRequirementItemType` > > + * :ref:`SpecTypeGenericNonFunctionalRequirementItemType` > + > + * :ref:`SpecTypeRuntimePerformanceRequirementItemType` > + > * :ref:`SpecTypeRequirementValidationItemType` > > + * :ref:`SpecTypeRuntimeMeasurementTestItemType` > + > * :ref:`SpecTypeSpecificationItemType` > > * :ref:`SpecTypeTestCaseItemType` > @@ -183,6 +189,8 @@ This type is refined by the following types: > > * :ref:`SpecTypeRequirementValidationItemType` > > +* :ref:`SpecTypeRuntimeMeasurementTestItemType` > + > * :ref:`SpecTypeSpecificationItemType` > > * :ref:`SpecTypeTestCaseItemType` > @@ -1729,8 +1737,8 @@ test-cleanup > action loop body after the test post-condition checks. > > test-context > - The attribute value shall be a list. Each list element shall be an > - :ref:`SpecTypeActionRequirementTestContextMember`. > + The attribute value shall be a list. Each list element shall be a > + :ref:`SpecTypeTestContextMember`. > > test-context-support > The attribute value shall be an optional string. If the value is present, > @@ -1758,12 +1766,10 @@ test-prepare > the test action loop body before the test pre-condition preparations. > > test-setup > - The attribute value shall be an > - :ref:`SpecTypeActionRequirementTestFixtureMethod`. > + The attribute value shall be a :ref:`SpecTypeTestSupportMethod`. > > test-stop > - The attribute value shall be an > - :ref:`SpecTypeActionRequirementTestFixtureMethod`. > + The attribute value shall be a :ref:`SpecTypeTestSupportMethod`. > > test-support > The attribute value shall be an optional string. If the value is present, > @@ -1775,8 +1781,7 @@ test-target > generated test case source file. > > test-teardown > - The attribute value shall be an > - :ref:`SpecTypeActionRequirementTestFixtureMethod`. > + The attribute value shall be a :ref:`SpecTypeTestSupportMethod`. > > transition-map > The attribute value shall be a list. Each list element shall be an > @@ -1943,8 +1948,213 @@ attributes specifies a non-functional requirement. > All explicit attributes > shall be specified. The explicit attributes for this type are: > > non-functional-type > - The attribute value shall be a > :ref:`SpecTypeRequirementNonFunctionalType`. > - It shall be the non-functional type of the requirement. > + The attribute value shall be a :ref:`SpecTypeName`. It shall be the > + non-functional type of the requirement. > + > +This type is refined by the following types: > + > +* :ref:`SpecTypeGenericNonFunctionalRequirementItemType` > + > +* :ref:`SpecTypeRuntimePerformanceRequirementItemType` > + > +.. _SpecTypeGenericNonFunctionalRequirementItemType: > + > +Generic Non-Functional Requirement Item Type > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +This type refines the following types: > + > +* :ref:`SpecTypeNonFunctionalRequirementItemType` though the through?
> + ``non-functional-type`` attribute if the value is ``build-configuration`` > + > +* :ref:`SpecTypeNonFunctionalRequirementItemType` though the > + ``non-functional-type`` attribute if the value is ``constraint`` > + > +* :ref:`SpecTypeNonFunctionalRequirementItemType` though the > + ``non-functional-type`` attribute if the value is ``design`` > + > +* :ref:`SpecTypeNonFunctionalRequirementItemType` though the > + ``non-functional-type`` attribute if the value is ``documentation`` > + > +* :ref:`SpecTypeNonFunctionalRequirementItemType` though the > + ``non-functional-type`` attribute if the value is ``interface`` > + > +* :ref:`SpecTypeNonFunctionalRequirementItemType` though the > + ``non-functional-type`` attribute if the value is ``interface-requirement`` > + > +* :ref:`SpecTypeNonFunctionalRequirementItemType` though the > + ``non-functional-type`` attribute if the value is ``maintainability`` > + > +* :ref:`SpecTypeNonFunctionalRequirementItemType` though the > + ``non-functional-type`` attribute if the value is ``performance`` > + Is there a specific kind of performance (metric) in mind? latency vs throughput? Or does it not matter > +* :ref:`SpecTypeNonFunctionalRequirementItemType` though the > + ``non-functional-type`` attribute if the value is ``portability`` > + > +* :ref:`SpecTypeNonFunctionalRequirementItemType` though the > + ``non-functional-type`` attribute if the value is ``quality`` > + > +* :ref:`SpecTypeNonFunctionalRequirementItemType` though the > + ``non-functional-type`` attribute if the value is ``reliability`` > + > +* :ref:`SpecTypeNonFunctionalRequirementItemType` though the > + ``non-functional-type`` attribute if the value is ``resource`` > + > +* :ref:`SpecTypeNonFunctionalRequirementItemType` though the > + ``non-functional-type`` attribute if the value is ``safety`` > + > +Items of this type state a non-functional requirement with the non-functional > +type defined by the specification type refinement. > + > +.. _SpecTypeRuntimePerformanceRequirementItemType: > + > +Runtime Performance Requirement Item Type > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +This type refines the :ref:`SpecTypeNonFunctionalRequirementItemType` though > +the ``non-functional-type`` attribute if the value is > ``performance-runtime``. > +The item shall have exactly one link with the > +:ref:`SpecTypeRuntimeMeasurementRequestLinkRole`. A requirement text > processor > +shall support a substitution of ${.:/limit-kind}: > + > +* For a :ref:`SpecTypeRuntimeMeasurementValueKind` of ``min-lower-bound`` or > + ``min-upper-bound``, the substitution of ${.:/limit-kind} shall be > + ``"minimum"``. > + > +* For a :ref:`SpecTypeRuntimeMeasurementValueKind` of ``mean-lower-bound`` or > + ``mean-upper-bound``, the substitution of ${.:/limit-kind} shall be > + ``"mean"``. > + > +* For a :ref:`SpecTypeRuntimeMeasurementValueKind` of ``max-lower-bound`` or > + ``max-upper-bound``, the substitution of ${.:/limit-kind} shall be > + ``"maximum"``. > + > +A requirement text processor shall support a substitution of > +${.:/limit-condition}: > + > +* For a :ref:`SpecTypeRuntimeMeasurementValueKind` of ``min-lower-bound``, > + ``mean-lower-bound``, or ``max-lower-bound``, the substitution of > + ${.:/limit-condition} shall be ``"greater than or equal to <value>"`` with > + <value> being the value of the corresponding entry in the > + :ref:`SpecTypeRuntimeMeasurementValueTable`. > + > +* For a :ref:`SpecTypeRuntimeMeasurementValueKind` of ``min-upper-bound``, > + ``mean-upper-bound``, or ``max-upper-bound``, the substitution of > + ${.:/limit-condition} shall be ``"less than or equal to <value>"`` with > + <value> being the value of the corresponding entry in the > + :ref:`SpecTypeRuntimeMeasurementValueTable`. > + > +A requirement text processor shall support a substitution of > ${.:/environment}. > +The value of the substitution shall be ``"<environment> environment"`` with > +<environment> being the environment of the corresponding entry in the > +:ref:`SpecTypeRuntimeMeasurementEnvironmentTable`. > + > +This set of attributes specifies non-functional runtime performance > +requirements and the corresponding validation test code. Along with the > +requirement, the test code to execute a measure runtime request is specified. > +All explicit attributes shall be specified. The explicit attributes for this > +type are: > + > +limits > + The attribute value shall be a > :ref:`SpecTypeRuntimePerformanceLimitTable`. > + > +params > + The attribute value shall be a > + :ref:`SpecTypeRuntimePerformanceParameterSet`. > + > +test-body > + The attribute value shall be a :ref:`SpecTypeTestSupportMethod`. It shall > + provide the code of the measure runtime body handler. In contrast to > other > + methods, this method is mandatory. > + > +test-cleanup > + The attribute value shall be a :ref:`SpecTypeTestSupportMethod`. It may > + provide the code to clean up the measure runtime request. This method is > + called before the cleanup method of the corresponding > + :ref:`SpecTypeRuntimeMeasurementTestItemType` item and after the request. > + > +test-prepare > + The attribute value shall be a :ref:`SpecTypeTestSupportMethod`. It may > + provide the code to prepare the measure runtime request. This method is > + called after the prepare method of the corresponding > + :ref:`SpecTypeRuntimeMeasurementTestItemType` item and before the > request. > + > +test-setup > + The attribute value shall be a :ref:`SpecTypeTestSupportMethod`. It may > + provide the code of the measure runtime setup handler. > + > +test-teardown > + The attribute value shall be a :ref:`SpecTypeTestSupportMethod`. It may > + provide the code of the measure runtime teardown handler. > + > +Please have a look at the following example: > + > +.. code-block:: yaml > + > + SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause > + copyrights: > + - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) > + enabled-by: true > + links: > + - role: runtime-measurement-request > + uid: ../val/performance > + limits: > + sparc/leon3: > + DirtyCache: > + max-upper-bound: 0.000005 > + mean-upper-bound: 0.000005 > + FullCache: > + max-upper-bound: 0.000005 > + mean-upper-bound: 0.000005 > + HotCache: > + max-upper-bound: 0.000005 > + mean-upper-bound: 0.000005 > + Load/1: > + max-upper-bound: 0.00001 > + mean-upper-bound: 0.00001 > + Load/2: > + max-upper-bound: 0.00001 > + mean-upper-bound: 0.00001 > + Load/3: > + max-upper-bound: 0.00001 > + mean-upper-bound: 0.00001 > + Load/4: > + max-upper-bound: 0.00001 > + mean-upper-bound: 0.00001 > + params: {} > + rationale: null > + references: [] > + test-body: > + brief: | > + Get a buffer. > + code: | > + ctx->status = rtems_partition_get_buffer( ctx->part_many, > &ctx->buffer ); > + description: null > + test-cleanup: null > + test-prepare: null > + test-setup: null > + test-teardown: > + brief: | > + Return the buffer. > + code: | > + rtems_status_code sc; > + > + T_quiet_rsc_success( ctx->status ); > + > + sc = rtems_partition_return_buffer( ctx->part_many, ctx->buffer ); > + T_quiet_rsc_success( sc ); > + > + return tic == toc; > + description: null > + text: | > + When a partition has exactly > ${../val/performance:/params/buffer-count} free > + buffers, the ${.:limit-kind} runtime of exactly > + ${../val/performance:/params/sample-count} successful calls to > + ${../if/get-buffer:/name} in the ${.:/environment} shall be > + ${.:limit-condition}. > + non-functional-type: performance-runtime > + requirement-type: non-functional > + type: requirement > > .. _SpecTypeRequirementValidationItemType: > > @@ -1974,6 +2184,76 @@ text > * *By review of design*: A rationale shall be provided to demonstrate how > the requirement is satisfied implicitly by the software design. > > +.. _SpecTypeRuntimeMeasurementTestItemType: > + > +Runtime Measurement Test Item Type > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +This type refines the :ref:`SpecTypeRootItemType` though the ``type`` > attribute > +if the value is ``runtime-measurement-test``. This set of attributes > specifies > +a runtime measurement test case. All explicit attributes shall be specified. > +The explicit attributes for this type are: > + > +params > + The attribute value shall be a > + :ref:`SpecTypeRuntimeMeasurementParameterSet`. > + > +test-brief > + The attribute value shall be an optional string. If the value is present, > + then it shall be the test case brief description. > + > +test-cleanup > + The attribute value shall be a :ref:`SpecTypeTestSupportMethod`. If the > + value is present, then it shall be the measure runtime request cleanup > + method. The method is called after each measure runtime request. > + > +test-context > + The attribute value shall be a list. Each list element shall be a > + :ref:`SpecTypeTestContextMember`. > + > +test-context-support > + The attribute value shall be an optional string. 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. > + > +test-description > + The attribute value shall be an optional string. If the value is present, > + then it shall be the test case description. > + > +test-includes > + The attribute value shall be a list of strings. It shall be a list of > + header files included via ``#include <...>``. > + > +test-local-includes > + The attribute value shall be a list of strings. It shall be a list of > + header files included via ``#include "..."``. > + > +test-prepare > + The attribute value shall be a :ref:`SpecTypeTestSupportMethod`. If the > + value is present, then it shall be the measure runtime request prepare > + method. The method is called before each measure runtime request. > + > +test-setup > + The attribute value shall be a :ref:`SpecTypeTestSupportMethod`. If the > + value is present, then it shall be the test case setup fixture method. > + > +test-stop > + The attribute value shall be a :ref:`SpecTypeTestSupportMethod`. If the > + value is present, then it shall be the test case stop fixture method. > + > +test-support > + The attribute value shall be an optional string. If the value is present, > + then it shall be the test case support code. The support code is placed > at > + file scope before the test case code. > + > +test-target > + The attribute value shall be a string. It shall be the path to the > + generated test case source file. > + > +test-teardown > + The attribute value shall be a :ref:`SpecTypeTestSupportMethod`. If the > + value is present, then it shall be the test case teardown fixture method. > + > .. _SpecTypeSpecificationItemType: > > Specification Item Type > @@ -2207,14 +2487,14 @@ test-epilogue > then it shall be the test epilogue code. The epilogue code is placed in > the > test condition preparation or check before the state-specific code. The > code may use a local variable ``ctx`` which points to the test context, > see > - :ref:`SpecTypeActionRequirementTestContextMember`. > + :ref:`SpecTypeTestContextMember`. > > test-prologue > The attribute value shall be an optional string. If the value is present, > then it shall be the test prologue code. The prologue code is placed in > the > test condition preparation or check after the state-specific code. The > code may use a local variable ``ctx`` which points to the test context, > see > - :ref:`SpecTypeActionRequirementTestContextMember`. > + :ref:`SpecTypeTestContextMember`. > > This type is used by the following types: > > @@ -2283,7 +2563,7 @@ test-code > The attribute value shall be a string. It shall be the test code to > prepare > or check the state of the condition. The code may use a local variable > ``ctx`` which points to the test context, see > - :ref:`SpecTypeActionRequirementTestContextMember`. > + :ref:`SpecTypeTestContextMember`. > > text > The attribute value shall be a :ref:`SpecTypeRequirementText`. It shall > @@ -2293,66 +2573,6 @@ This type is used by the following types: > > * :ref:`SpecTypeActionRequirementCondition` > > -.. _SpecTypeActionRequirementTestContextMember: > - > -Action Requirement Test Context Member > -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > - > -A value of this type shall be of one of the following variants: > - > -* The value may be a set of attributes. This set of attributes defines an > - action requirement test context member. All explicit attributes shall be > - specified. The explicit attributes for this type are: > - > - brief > - The attribute value shall be an optional string. It shall be the test > - context member brief description. > - > - description > - The attribute value shall be an optional string. It shall be the test > - context member description. > - > - member > - The attribute value shall be a string. It shall be the test context > - member definition. It shall be a valid C structure member definition > - without a trailing ``;``. > - > -* There may by be no value (null). > - > -This type is used by the following types: > - > -* :ref:`SpecTypeActionRequirementItemType` > - > -.. _SpecTypeActionRequirementTestFixtureMethod: > - > -Action Requirement Test Fixture Method > -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > - > -A value of this type shall be of one of the following variants: > - > -* The value may be a set of attributes. This set of attributes defines an > - action requirement test fixture method. All explicit attributes shall be > - specified. The explicit attributes for this type are: > - > - brief > - The attribute value shall be an optional string. It shall be the test > - fixture method brief description. > - > - code > - The attribute value shall be a string. It shall be the test fixture > - method code. The code may use a local variable ``ctx`` which points to > - the test context, see > :ref:`SpecTypeActionRequirementTestContextMember`. > - > - description > - The attribute value shall be an optional string. It shall be the test > - fixture method description. > - > -* There may by be no value (null). > - > -This type is used by the following types: > - > -* :ref:`SpecTypeActionRequirementItemType` > - > .. _SpecTypeActionRequirementTransition: > > Action Requirement Transition > @@ -3977,6 +4197,8 @@ This type is refined by the following types: > > * :ref:`SpecTypeRequirementValidationLinkRole` > > +* :ref:`SpecTypeRuntimeMeasurementRequestLinkRole` > + > * :ref:`SpecTypeSpecificationMemberLinkRole` > > * :ref:`SpecTypeSpecificationRefinementLinkRole` > @@ -4013,10 +4235,16 @@ This type is used by the following types: > > * :ref:`SpecTypeLink` > > +* :ref:`SpecTypeNonFunctionalRequirementItemType` > + > * :ref:`SpecTypeRequirementItemType` > > * :ref:`SpecTypeRootItemType` > > +* :ref:`SpecTypeRuntimeMeasurementParameterSet` > + > +* :ref:`SpecTypeRuntimePerformanceParameterSet` > + > * :ref:`SpecTypeSpecificationAttributeValue` > > * :ref:`SpecTypeSpecificationExplicitAttributes` > @@ -4050,44 +4278,6 @@ value is ``placement-order``. This link role defines > the placement order of > items in a container item (for example an interface function in a header file > or a documentation section). > > -.. _SpecTypeRequirementNonFunctionalType: > - > -Requirement Non-Functional Type > -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > - > -The value shall be a string. This type shall be used for non-functional > -requirement types. The value shall be an element of > - > -* "``build-configuration``", > - > -* "``constraint``", > - > -* "``design``", > - > -* "``documentation``", > - > -* "``interface``", > - > -* "``interface-requirement``", > - > -* "``maintainability``", > - > -* "``performance``", > - > -* "``portability``", > - > -* "``quality``", > - > -* "``reliability``", > - > -* "``resource``", and > - > -* "``safety``". > - > -This type is used by the following types: > - > -* :ref:`SpecTypeNonFunctionalRequirementItemType` > - > .. _SpecTypeRequirementReference: > > Requirement Reference > @@ -4313,6 +4503,140 @@ This type is used by the following types: > > * :ref:`SpecTypeRequirementValidationItemType` > > +.. _SpecTypeRuntimeMeasurementEnvironment: > + > +Runtime Measurement Environment > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +The value shall be a string. It specifies the runtime measurement > environment. > +The value > + > +* shall be an element of > + > + * "``FullCache``", > + > + * "``HotCache``", and > + > + * "``DirtyCache``", > + > +* or, shall match with the regular expression "``^Load/[1-9][0-9]*$``". > + > +This type is used by the following types: > + > +* :ref:`SpecTypeRuntimeMeasurementEnvironmentTable` > + > +.. _SpecTypeRuntimeMeasurementEnvironmentTable: > + > +Runtime Measurement Environment Table > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +This set of attributes provides runtime performance limits for a set of > runtime > +measurement environments. Generic attributes may be specified. Each generic > +attribute key shall be a :ref:`SpecTypeRuntimeMeasurementEnvironment`. Each > +generic attribute value shall be a > :ref:`SpecTypeRuntimeMeasurementValueTable`. > + > +This type is used by the following types: > + > +* :ref:`SpecTypeRuntimePerformanceLimitTable` > + > +.. _SpecTypeRuntimeMeasurementParameterSet: > + > +Runtime Measurement Parameter Set > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +This set of attributes defines parameters of the runtime measurement test > case. > +All explicit attributes shall be specified. The explicit attributes for this > +type are: > + > +sample-count > + The attribute value shall be an integer number. It shall be the sample > + count of the runtime measurement context. > + > +In addition to the explicit attributes, generic attributes may be specified. > +Each generic attribute key shall be a :ref:`SpecTypeName`. The attribute > value > +may have any type. > + > +This type is used by the following types: > + > +* :ref:`SpecTypeRuntimeMeasurementTestItemType` > + > +.. _SpecTypeRuntimeMeasurementRequestLinkRole: > + > +Runtime Measurement Request Link Role > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +This type refines the :ref:`SpecTypeLink` though the ``role`` attribute if > the > +value is ``runtime-measurement-request``. It defines the runtime measurement > +request role of links. The link target shall be a > +:ref:`SpecTypeRuntimeMeasurementTestItemType` item. > + > +.. _SpecTypeRuntimeMeasurementValueKind: > + > +Runtime Measurement Value Kind > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +The value shall be a string. It specifies the kind of a runtime measurement > +value. The value shall be an element of > + > +* "``max-lower-bound``", > + > +* "``max-upper-bound``", > + > +* "``mean-lower-bound``", > + > +* "``mean-upper-bound``", > + > +* "``min-lower-bound``", and > + > +* "``min-upper-bound``". > + > +This type is used by the following types: > + > +* :ref:`SpecTypeRuntimeMeasurementValueTable` > + > +.. _SpecTypeRuntimeMeasurementValueTable: > + > +Runtime Measurement Value Table > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +This set of attributes provides a set of runtime measurement values each of a > +specified kind. The unit of the values shall be one second. Generic > attributes > +may be specified. Each generic attribute key shall be a > +:ref:`SpecTypeRuntimeMeasurementValueKind`. Each generic attribute value > shall > +be a floating-point number. > + > +This type is used by the following types: > + > +* :ref:`SpecTypeRuntimeMeasurementEnvironmentTable` > + > +.. _SpecTypeRuntimePerformanceLimitTable: > + > +Runtime Performance Limit Table > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +This set of attributes provides runtime performance limits for BSP variants > +specified by ``"<arch>/<bsp>"`` with <arch> being the architecture of the BSP > +and <bsp> being the base name of the BSP. Generic attributes may be > specified. > +Each generic attribute key shall be a string. Each generic attribute value > +shall be a :ref:`SpecTypeRuntimeMeasurementEnvironmentTable`. > + > +This type is used by the following types: > + > +* :ref:`SpecTypeRuntimePerformanceRequirementItemType` > + > +.. _SpecTypeRuntimePerformanceParameterSet: > + > +Runtime Performance Parameter Set > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +This set of attributes defines parameters of the runtime performance > +requirement. Generic attributes may be specified. Each generic attribute key > +shall be a :ref:`SpecTypeName`. The attribute value may have any type. > + > +This type is used by the following types: > + > +* :ref:`SpecTypeRuntimePerformanceRequirementItemType` > + > .. _SpecTypeSPDXLicenseIdentifier: > > SPDX License Identifier > @@ -4932,6 +5256,38 @@ This type is used by the following types: > > * :ref:`SpecTypeTestCaseAction` > > +.. _SpecTypeTestContextMember: > + > +Test Context Member > +^^^^^^^^^^^^^^^^^^^ > + > +A value of this type shall be of one of the following variants: > + > +* The value may be a set of attributes. This set of attributes defines an > + action requirement test context member. All explicit attributes shall be > + specified. The explicit attributes for this type are: > + > + brief > + The attribute value shall be an optional string. It shall be the test > + context member brief description. > + > + description > + The attribute value shall be an optional string. It shall be the test > + context member description. > + > + member > + The attribute value shall be a string. It shall be the test context > + member definition. It shall be a valid C structure member definition > + without a trailing ``;``. > + > +* There may by be no value (null). > + > +This type is used by the following types: > + > +* :ref:`SpecTypeActionRequirementItemType` > + > +* :ref:`SpecTypeRuntimeMeasurementTestItemType` > + > .. _SpecTypeTestHeader: > > Test Header > @@ -4986,8 +5342,8 @@ Test Run Parameter > This set of attributes specifies a parameter for the test run function. In > case > this parameter is used in an :ref:`SpecTypeActionRequirementItemType` item, > then the parameter is also added as a member to the test context, see > -:ref:`SpecTypeActionRequirementTestContextMember`. All explicit attributes > -shall be specified. The explicit attributes for this type are: > +:ref:`SpecTypeTestContextMember`. All explicit attributes shall be specified. > +The explicit attributes for this type are: > > description > The attribute value shall be a string. It shall be the description of the > @@ -5008,6 +5364,40 @@ This type is used by the following types: > > * :ref:`SpecTypeTestHeader` > > +.. _SpecTypeTestSupportMethod: > + > +Test Support Method > +^^^^^^^^^^^^^^^^^^^ > + > +A value of this type shall be of one of the following variants: > + > +* The value may be a set of attributes. This set of attributes defines an > + action requirement test support method. All explicit attributes shall be > + specified. The explicit attributes for this type are: > + > + brief > + The attribute value shall be an optional string. It shall be the test > + support method brief description. > + > + code > + The attribute value shall be a string. It shall be the test support > + method code. The code may use a local variable ``ctx`` which points to > + the test context, see :ref:`SpecTypeTestContextMember`. > + > + description > + The attribute value shall be an optional string. It shall be the test > + support method description. > + > +* There may by be no value (null). > + > +This type is used by the following types: > + > +* :ref:`SpecTypeActionRequirementItemType` > + > +* :ref:`SpecTypeRuntimeMeasurementTestItemType` > + > +* :ref:`SpecTypeRuntimePerformanceRequirementItemType` > + > .. _SpecTypeUID: > > UID > -- > 2.26.2 > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel