[rtems-central commit] membench.py: New

Sebastian Huber sebh at rtems.org
Mon Jul 24 06:36:18 UTC 2023


Module:    rtems-central
Branch:    master
Commit:    cf648d658dc3162c8bacb06d351d3a85c0785562
Changeset: http://git.rtems.org/rtems-central/commit/?id=cf648d658dc3162c8bacb06d351d3a85c0785562

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Jul 24 08:57:17 2023 +0200

membench.py: New

---

 membench.py | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

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()



More information about the vc mailing list