diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-03-08 17:23:24 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-03-10 09:41:34 +0100 |
commit | 577769120f4b527e973f248d4641a700125834d4 (patch) | |
tree | ba08d902a89555f96a102ec03181e7365546bfc0 /rtemsspec/tests | |
parent | sphinxcontent: Add user-defined section labels (diff) | |
download | rtems-central-577769120f4b527e973f248d4641a700125834d4.tar.bz2 |
membench: New module
Diffstat (limited to 'rtemsspec/tests')
-rw-r--r-- | rtemsspec/tests/spec-membench/r0.yml | 13 | ||||
-rw-r--r-- | rtemsspec/tests/spec-membench/r1.yml | 15 | ||||
-rw-r--r-- | rtemsspec/tests/spec-membench/t0.yml | 20 | ||||
-rw-r--r-- | rtemsspec/tests/spec-membench/t1.yml | 20 | ||||
-rw-r--r-- | rtemsspec/tests/spec/non-functional-more.yml | 4 | ||||
-rw-r--r-- | rtemsspec/tests/test_membench.py | 87 |
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. +""" |