summaryrefslogtreecommitdiffstats
path: root/spec/spec/requirement-performance-runtime.yml
diff options
context:
space:
mode:
Diffstat (limited to 'spec/spec/requirement-performance-runtime.yml')
-rw-r--r--spec/spec/requirement-performance-runtime.yml155
1 files changed, 155 insertions, 0 deletions
diff --git a/spec/spec/requirement-performance-runtime.yml b/spec/spec/requirement-performance-runtime.yml
new file mode 100644
index 00000000..6dc19d9c
--- /dev/null
+++ b/spec/spec/requirement-performance-runtime.yml
@@ -0,0 +1,155 @@
+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: spec-member
+ uid: root
+- role: spec-refinement
+ spec-key: non-functional-type
+ spec-value: performance-runtime
+ uid: requirement-non-functional
+spec-description: |
+ The item shall have exactly one link with the
+ ${runtime-measurement-request-role:/spec-name}. A requirement text processor
+ shall support a substitution of $${.:/limit-kind}:
+
+ * For a ${requirement-performance-runtime-kind:/spec-name} of
+ ``min-lower-bound`` or ``min-upper-bound``, the substitution of
+ $${.:/limit-kind} shall be ``"minimum"``.
+
+ * For a ${requirement-performance-runtime-kind:/spec-name} of
+ ``mean-lower-bound`` or ``mean-upper-bound``, the substitution of
+ $${.:/limit-kind} shall be ``"mean"``.
+
+ * For a ${requirement-performance-runtime-kind:/spec-name} 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 ${requirement-performance-runtime-kind:/spec-name} 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
+ ${requirement-performance-runtime-values:/spec-name}.
+
+ * For a ${requirement-performance-runtime-kind:/spec-name} 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
+ ${requirement-performance-runtime-values:/spec-name}.
+
+ 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 ${requirement-performance-runtime-envs:/spec-name}.
+spec-example: |
+ 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
+spec-info:
+ dict:
+ attributes:
+ limits:
+ description: null
+ spec-type: requirement-performance-runtime-limits
+ params:
+ description: null
+ spec-type: requirement-performance-runtime-params
+ test-body:
+ description: |
+ It shall provide the code of the measure runtime body handler. In
+ contrast to other methods, this method is mandatory.
+ spec-type: test-support-method
+ test-setup:
+ description: |
+ It may provide the code of the measure runtime setup handler.
+ spec-type: test-support-method
+ test-teardown:
+ description: |
+ It may provide the code of the measure runtime teardown handler.
+ spec-type: test-support-method
+ test-prepare:
+ description: |
+ It may provide the code to prepare the measure runtime request. This
+ method is called after the prepare method of the corresponding
+ ${runtime-measurement-test:/spec-name} item and before the request.
+ spec-type: test-support-method
+ test-cleanup:
+ description: |
+ It may provide the code to clean up the measure runtime request.
+ This method is called before the cleanup method of the corresponding
+ ${runtime-measurement-test:/spec-name} item and after the request.
+ spec-type: test-support-method
+ description: |
+ 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.
+ mandatory-attributes: all
+spec-name: Runtime Performance Requirement Item Type
+spec-type: requirement-performance-runtime
+type: spec