summaryrefslogtreecommitdiffstats
path: root/rtemsspec/tests
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-03-08 17:23:24 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-03-10 09:41:34 +0100
commit577769120f4b527e973f248d4641a700125834d4 (patch)
treeba08d902a89555f96a102ec03181e7365546bfc0 /rtemsspec/tests
parentsphinxcontent: Add user-defined section labels (diff)
downloadrtems-central-577769120f4b527e973f248d4641a700125834d4.tar.bz2
membench: New module
Diffstat (limited to 'rtemsspec/tests')
-rw-r--r--rtemsspec/tests/spec-membench/r0.yml13
-rw-r--r--rtemsspec/tests/spec-membench/r1.yml15
-rw-r--r--rtemsspec/tests/spec-membench/t0.yml20
-rw-r--r--rtemsspec/tests/spec-membench/t1.yml20
-rw-r--r--rtemsspec/tests/spec/non-functional-more.yml4
-rw-r--r--rtemsspec/tests/test_membench.py87
6 files changed, 159 insertions, 0 deletions
diff --git a/rtemsspec/tests/spec-membench/r0.yml b/rtemsspec/tests/spec-membench/r0.yml
new file mode 100644
index 00000000..763d4982
--- /dev/null
+++ b/rtemsspec/tests/spec-membench/r0.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links: []
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide benchmark programs to show the static memory usage
+ of features.
+type: requirement
diff --git a/rtemsspec/tests/spec-membench/r1.yml b/rtemsspec/tests/spec-membench/r1.yml
new file mode 100644
index 00000000..62ee3440
--- /dev/null
+++ b/rtemsspec/tests/spec-membench/r1.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: r0
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration.
+type: requirement
diff --git a/rtemsspec/tests/spec-membench/t0.yml b/rtemsspec/tests/spec-membench/t0.yml
new file mode 100644
index 00000000..e4892555
--- /dev/null
+++ b/rtemsspec/tests/spec-membench/t0.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+code: |
+ /* Blue green code */
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: The Blue Green description.
+enabled-by: true
+links:
+- role: validation
+ uid: r1
+test-brief: The Blue Green brief description.
+test-code: |
+ /* Blue green code */
+test-description: The Blue Green description.
+test-includes:
+- blue.h
+test-local-includes:
+- green.h
+test-target: t0.c
+type: test-suite
diff --git a/rtemsspec/tests/spec-membench/t1.yml b/rtemsspec/tests/spec-membench/t1.yml
new file mode 100644
index 00000000..e4892555
--- /dev/null
+++ b/rtemsspec/tests/spec-membench/t1.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+code: |
+ /* Blue green code */
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+description: The Blue Green description.
+enabled-by: true
+links:
+- role: validation
+ uid: r1
+test-brief: The Blue Green brief description.
+test-code: |
+ /* Blue green code */
+test-description: The Blue Green description.
+test-includes:
+- blue.h
+test-local-includes:
+- green.h
+test-target: t0.c
+type: test-suite
diff --git a/rtemsspec/tests/spec/non-functional-more.yml b/rtemsspec/tests/spec/non-functional-more.yml
index ba081e3f..33c5b5d4 100644
--- a/rtemsspec/tests/spec/non-functional-more.yml
+++ b/rtemsspec/tests/spec/non-functional-more.yml
@@ -9,6 +9,10 @@ links:
spec-key: non-functional-type
spec-value: performance-runtime
uid: non-functional
+- role: spec-refinement
+ spec-key: non-functional-type
+ spec-value: quality
+ uid: non-functional
spec-description: null
spec-example: null
spec-info:
diff --git a/rtemsspec/tests/test_membench.py b/rtemsspec/tests/test_membench.py
new file mode 100644
index 00000000..3bc5ecb5
--- /dev/null
+++ b/rtemsspec/tests/test_membench.py
@@ -0,0 +1,87 @@
+# SPDX-License-Identifier: BSD-2-Clause
+""" Unit tests for the rtemsspec.membench module. """
+
+# Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+from rtemsspec.membench import generate
+from rtemsspec.items import ItemCache, ItemMapper
+from rtemsspec.sphinxcontent import SphinxContent
+from rtemsspec.tests.util import create_item_cache_config_and_copy_spec
+
+
+def run_command(args, cwd=None, stdout=None):
+ stdout.extend([
+ " 0 .start 00000708 00100000 00100000 00010000 2**2",
+ " CONTENTS, ALLOC, LOAD, READONLY, CODE",
+ " 2 .text 000090bc 00100740 00100740 00010740 2**6",
+ " CONTENTS, ALLOC, LOAD, READONLY, CODE",
+ " 22 .debug_aranges 000011d8 00000000 00000000 000202e8 2**3"
+ ])
+ return 0
+
+
+def test_membench(tmpdir, monkeypatch):
+ monkeypatch.setattr("rtemsspec.membench.run_command", run_command)
+ item_cache_config = create_item_cache_config_and_copy_spec(
+ tmpdir, "spec-membench", with_spec_types=True)
+ item_cache = ItemCache(item_cache_config)
+ root = item_cache["/r0"]
+ content = SphinxContent()
+ generate(content, root, ItemMapper(root), ["/r0"], "path")
+ assert str(content) == """.. _SectionBenchmarksBasedOnSpecT0:
+
+Benchmarks Based on: spec:/t0
+=============================
+
+The following memory benchmarks are based on the memory benchmark defined by
+:ref:`spec:/t0 <MemBenchmarkT0>`.
+
+.. table::
+ :class: longtable
+
+ =========================== =====
+ spec .text
+ =========================== =====
+ :ref:`/t0 <MemBenchmarkT0>` 38908
+ :ref:`/t1 <MemBenchmarkT1>` +0
+ =========================== =====
+
+.. _MemBenchmarkT0:
+
+Benchmark: spec:/t0
+===================
+
+The Blue Green brief description.
+
+The Blue Green description.
+
+.. _MemBenchmarkT1:
+
+Benchmark: spec:/t1
+===================
+
+The Blue Green brief description.
+
+The Blue Green description.
+"""