summaryrefslogtreecommitdiff
path: root/membench.py
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2023-07-24 08:57:17 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2023-07-24 08:57:49 +0200
commitcf648d658dc3162c8bacb06d351d3a85c0785562 (patch)
tree42e5b652b29b6d62b3600f35f84fa2b162ee6ae2 /membench.py
parent8e2703258f2142413222dfd4e52f789618d29334 (diff)
membench.py: New
Diffstat (limited to 'membench.py')
-rwxr-xr-xmembench.py57
1 files changed, 57 insertions, 0 deletions
diff --git a/membench.py b/membench.py
new file mode 100755
index 00000000..a8e3b4c0
--- /dev/null
+++ b/membench.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python
+# SPDX-License-Identifier: BSD-2-Clause
+""" Generates a memory benchmark report. """
+
+# Copyright (C) 2023 embedded brains GmbH & Co. KG
+#
+# 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.
+
+import sys
+
+from rtemsspec.items import ItemCache, item_is_enabled
+from rtemsspec.membench import generate
+from rtemsspec.sphinxcontent import SphinxContent, SphinxMapper
+from rtemsspec.util import create_argument_parser, init_logging, load_config
+
+
+def main() -> None:
+ """ Generates a memory benchmark report. """
+ parser = create_argument_parser()
+ parser.add_argument(
+ "builddir",
+ metavar="BUILDDIR",
+ nargs=1,
+ help="the build directory containing the memory benchmark executables")
+ args = parser.parse_args(sys.argv[1:])
+ init_logging(args)
+ config = load_config("config.yml")
+ item_cache = ItemCache(config["spec"])
+ item_cache.set_enabled([], item_is_enabled)
+ content = SphinxContent()
+ root = item_cache["/rtems/req/mem-basic"]
+ table_pivots = ["/rtems/req/mem-basic", "/rtems/req/mem-smp-1"]
+ generate(content, root, SphinxMapper(root), table_pivots, args.builddir[0])
+ print(str(content))
+
+
+if __name__ == "__main__":
+ main()