[rtems-central commit] generate_membench.py: Add benchmarks

Sebastian Huber sebh at rtems.org
Thu Sep 30 10:43:02 UTC 2021


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

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Thu Sep 30 10:57:24 2021 +0200

generate_membench.py: Add benchmarks

---

 generate_membench.py                               | 312 +++++++++++++++++++--
 spec/dev/clock/req/mem-driver.yml                  |   2 +-
 spec/dev/clock/val/mem-driver.yml                  |   2 +-
 spec/rtems/clock/req/mem-get-uptime.yml            |  16 ++
 spec/rtems/clock/req/mem-set-get-tod.yml           |  16 ++
 spec/rtems/clock/req/mem-set.yml                   |  15 +
 spec/rtems/clock/val/mem-get-uptime.yml            |  53 ++++
 spec/rtems/clock/val/mem-set-get-tod.yml           |  54 ++++
 spec/rtems/clock/val/mem-set.yml                   |  53 ++++
 spec/rtems/message/req/mem-bcst-rcv.yml            |  16 ++
 spec/rtems/message/req/mem-snd-rcv-del.yml         |  16 ++
 spec/rtems/message/req/mem-snd-rcv.yml             |  16 ++
 spec/rtems/message/req/mem-ugt-rcv.yml             |  16 ++
 spec/rtems/message/val/mem-bcst-rcv.yml            |  56 ++++
 spec/rtems/message/val/mem-snd-rcv-del.yml         |  57 ++++
 spec/rtems/message/val/mem-snd-rcv.yml             |  56 ++++
 spec/rtems/message/val/mem-ugt-rcv.yml             |  56 ++++
 spec/rtems/scheduler/req/mem-add-cpu.yml           |  16 ++
 spec/rtems/scheduler/req/mem-rm-cpu.yml            |  16 ++
 spec/rtems/scheduler/val/mem-add-cpu.yml           |  59 ++++
 spec/rtems/scheduler/val/mem-rm-cpu.yml            |  59 ++++
 .../rtems/task/req/{mem-del.yml => mem-delete.yml} |   0
 spec/rtems/task/req/mem-get-affinity.yml           |  16 ++
 spec/rtems/task/req/mem-get-priority.yml           |  16 ++
 spec/rtems/task/req/mem-get-scheduler.yml          |  16 ++
 spec/rtems/task/req/mem-mode.yml                   |  15 +
 spec/rtems/task/req/mem-set-affinity.yml           |  16 ++
 spec/rtems/task/req/mem-set-priority.yml           |  16 ++
 spec/rtems/task/req/mem-set-scheduler.yml          |  16 ++
 spec/rtems/task/req/mem-wake-after.yml             |  16 ++
 spec/rtems/task/req/mem-wake-when.yml              |  15 +
 .../rtems/task/val/{mem-del.yml => mem-delete.yml} |   7 +-
 spec/rtems/task/val/mem-exit.yml                   |   1 -
 spec/rtems/task/val/mem-get-affinity.yml           |  53 ++++
 spec/rtems/task/val/mem-get-priority.yml           |  53 ++++
 spec/rtems/task/val/mem-get-scheduler.yml          |  53 ++++
 spec/rtems/task/val/mem-mode.yml                   |  53 ++++
 spec/rtems/task/val/mem-restart.yml                |   1 -
 spec/rtems/task/val/mem-set-affinity.yml           |  53 ++++
 spec/rtems/task/val/mem-set-priority.yml           |  53 ++++
 spec/rtems/task/val/mem-set-scheduler.yml          |  53 ++++
 spec/rtems/task/val/mem-sus-res.yml                |   1 -
 spec/rtems/task/val/mem-wake-after.yml             |  53 ++++
 spec/rtems/task/val/mem-wake-when.yml              |  53 ++++
 spec/rtems/timer/req/mem-after.yml                 |  16 ++
 spec/rtems/timer/req/mem-cancel.yml                |  16 ++
 spec/rtems/timer/req/mem-delete.yml                |  16 ++
 spec/rtems/timer/req/mem-reset.yml                 |  16 ++
 spec/rtems/timer/req/mem-srv-after.yml             |  16 ++
 spec/rtems/timer/req/mem-srv-init.yml              |  16 ++
 spec/rtems/timer/req/mem-srv-when.yml              |  16 ++
 spec/rtems/timer/req/mem-when.yml                  |  16 ++
 spec/rtems/timer/val/mem-after.yml                 |  55 ++++
 spec/rtems/timer/val/mem-cancel.yml                |  54 ++++
 spec/rtems/timer/val/mem-delete.yml                |  54 ++++
 spec/rtems/timer/val/mem-reset.yml                 |  54 ++++
 spec/rtems/timer/val/mem-srv-after.yml             |  55 ++++
 spec/rtems/timer/val/mem-srv-init.yml              |  53 ++++
 spec/rtems/timer/val/mem-srv-when.yml              |  55 ++++
 spec/rtems/timer/val/mem-when.yml                  |  55 ++++
 spec/rtems/userext/req/mem-create.yml              |  17 ++
 spec/rtems/userext/req/mem-delete.yml              |  17 ++
 spec/rtems/userext/val/mem-create.yml              |  56 ++++
 spec/rtems/userext/val/mem-delete.yml              |  57 ++++
 64 files changed, 2275 insertions(+), 26 deletions(-)

diff --git a/generate_membench.py b/generate_membench.py
index a80fc65..ccd0c3c 100755
--- a/generate_membench.py
+++ b/generate_membench.py
@@ -75,6 +75,14 @@ _CONFIG_DEFAULT = """#define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
 
 #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE"""
 
+_CONFIG_SMP_1 = """#define CONFIGURE_MAXIMUM_PROCESSORS 1
+
+#if defined(RTEMS_SMP)
+#define CONFIGURE_SCHEDULER_EDF_SMP
+#endif
+
+""" + _CONFIG_DEFAULT
+
 _TEXT = ("The system shall provide a benchmark program to show the static "
          "memory usage of")
 
@@ -100,13 +108,7 @@ ${/acfg/if/max-processors:/name} defined to one using the SMP EDF scheduler
 (${/acfg/if/scheduler-edf-smp:/name})""",
         None,
         """/* Nothing to do */""",
-        """#define CONFIGURE_MAXIMUM_PROCESSORS 1
-
-#if defined(RTEMS_SMP)
-#define CONFIGURE_SCHEDULER_EDF_SMP
-#endif
-
-""" + _CONFIG_DEFAULT),
+        _CONFIG_SMP_1),
     _Test(
         "rtems",
         "smp-global-2",
@@ -215,7 +217,7 @@ RTEMS_SCHEDULER_EDF_SMP( d );
         "dev/clock",
         "driver",
         ["/rtems/req/mem-basic"],
-        """"a basic application configuration with the clock driver enabled
+        """a basic application configuration with the clock driver enabled
 (${/acfg/if/appl-needs-clock-driver:/name})""",
         None,
         """/* Nothing to do */""",
@@ -223,6 +225,34 @@ RTEMS_SCHEDULER_EDF_SMP( d );
             "CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER",
             "CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER")),
     _Test(
+        "rtems/clock",
+        "set",
+        _LINKS_BASIC,
+        """a basic application configuration with a
+call to ${../if/set:/name}""",
+        None,
+        "(void) rtems_clock_set( NULL );",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/clock",
+        "set-get-tod",
+        _LINKS_BASIC,
+        """a basic application configuration with calls to
+${../if/set:/name} and ${../if/get-tod:/name}""",
+        None,
+        """(void) rtems_clock_set( NULL );
+(void) rtems_clock_get_tod( NULL );""",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/clock",
+        "get-uptime",
+        _LINKS_BASIC,
+        """a basic application configuration with a
+call to ${../if/get-uptime:/name}""",
+        None,
+        "(void) rtems_clock_get_uptime( NULL );",
+        _CONFIG_DEFAULT),
+    _Test(
         "rtems/barrier",
         "wait-rel",
         _LINKS_BASIC,
@@ -272,6 +302,55 @@ ${../if/fatal:/name}""",
         "rtems_fatal( 0, 0 );",
         _CONFIG_DEFAULT),
     _Test(
+        "rtems/message",
+        "snd-rcv",
+        _LINKS_BASIC,
+        """a basic application configuration with calls to
+${../if/construct:/name}, ${../if/send:/name}, and
+${../if/receive:/name}""",
+        None,
+        """(void) rtems_message_queue_construct( NULL, NULL );
+(void) rtems_message_queue_send( 0, NULL, 0 );
+(void) rtems_message_queue_receive( 0, NULL, NULL, 0, 0 );""",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/message",
+        "ugt-rcv",
+        _LINKS_BASIC,
+        """a basic application configuration with calls to
+${../if/construct:/name}, ${../if/urgent:/name}, and
+${../if/receive:/name}""",
+        None,
+        """(void) rtems_message_queue_construct( NULL, NULL );
+(void) rtems_message_queue_urgent( 0, NULL, 0 );
+(void) rtems_message_queue_receive( 0, NULL, NULL, 0, 0 );""",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/message",
+        "bcst-rcv",
+        _LINKS_BASIC,
+        """a basic application configuration with calls to
+${../if/construct:/name}, ${../if/broadcast:/name}, and
+${../if/receive:/name}""",
+        None,
+        """(void) rtems_message_queue_construct( NULL, NULL );
+(void) rtems_message_queue_broadcast( 0, NULL, 0, NULL );
+(void) rtems_message_queue_receive( 0, NULL, NULL, 0, 0 );""",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/message",
+        "snd-rcv-del",
+        _LINKS_BASIC,
+        """a basic application configuration with calls to
+${../if/construct:/name}, ${../if/send:/name},
+${../if/receive:/name}, and ${../if/delete:/name}""",
+        None,
+        """(void) rtems_message_queue_construct( NULL, NULL );
+(void) rtems_message_queue_send( 0, NULL, 0 );
+(void) rtems_message_queue_receive( 0, NULL, NULL, 0, 0 );
+(void) rtems_message_queue_delete( 0 );""",
+        _CONFIG_DEFAULT),
+    _Test(
         "rtems/part",
         "get-ret",
         _LINKS_BASIC,
@@ -331,6 +410,24 @@ ${../if/delete:/name}""",
 
 """ + _CONFIG_DEFAULT),
     _Test(
+        "rtems/scheduler",
+        "add-cpu",
+        ["../../req/mem-smp-1"],
+        """a basic application configuration with a
+call to ${../if/add-processor:/name}""",
+        None,
+        "(void) rtems_scheduler_add_processor( 0, 0 );",
+        _CONFIG_SMP_1),
+    _Test(
+        "rtems/scheduler",
+        "rm-cpu",
+        ["../../req/mem-smp-1"],
+        """a basic application configuration with a
+call to ${../if/remove-processor:/name}""",
+        None,
+        "(void) rtems_scheduler_remove_processor( 0, 0 );",
+        _CONFIG_SMP_1),
+    _Test(
         "rtems/sem",
         "obt-rel",
         _LINKS_BASIC,
@@ -372,13 +469,12 @@ and ${../if/send:/name}""",
         _CONFIG_DEFAULT),
     _Test(
         "rtems/task",
-        "del",
+        "delete",
         _LINKS_BASIC,
         """a basic application configuration with a
 call to ${../if/delete:/name}""",
         None,
-        """(void) rtems_task_delete( 0 );
-""",
+        "(void) rtems_task_delete( 0 );",
         _CONFIG_DEFAULT),
     _Test(
         "rtems/task",
@@ -387,8 +483,7 @@ call to ${../if/delete:/name}""",
         """a basic application configuration with a
 call to ${../if/exit:/name}""",
         None,
-        """rtems_task_exit();
-""",
+        "rtems_task_exit();",
         _CONFIG_DEFAULT),
     _Test(
         "rtems/task",
@@ -397,8 +492,7 @@ call to ${../if/exit:/name}""",
         """a basic application configuration with a
 call to ${../if/restart:/name}""",
         None,
-        """(void) rtems_task_restart( 0, 0 );
-""",
+        "(void) rtems_task_restart( 0, 0 );",
         _CONFIG_DEFAULT),
     _Test(
         "rtems/task",
@@ -408,9 +502,193 @@ call to ${../if/restart:/name}""",
 calls to ${../if/suspend:/name} and ${../if/resume:/name}""",
         None,
         """(void) rtems_task_suspend( 0 );
-(void) rtems_task_resume( 0 );
-""",
+(void) rtems_task_resume( 0 );""",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/task",
+        "set-priority",
+        _LINKS_BASIC,
+        """a basic application configuration with a
+call to ${../if/set-priority:/name}""",
+        None,
+        "(void) rtems_task_set_priority( 0, 0, NULL );",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/task",
+        "get-priority",
+        _LINKS_BASIC,
+        """a basic application configuration with a
+call to ${../if/get-priority:/name}""",
+        None,
+        "(void) rtems_task_get_priority( 0, 0, NULL );",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/task",
+        "mode",
+        _LINKS_BASIC,
+        """a basic application configuration with a
+call to ${../if/mode:/name}""",
+        None,
+        "(void) rtems_task_mode( 0, 0, 0 );",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/task",
+        "wake-after",
+        _LINKS_BASIC,
+        """a basic application configuration with a
+call to ${../if/wake-after:/name}""",
+        None,
+        "(void) rtems_task_wake_after( 0 );",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/task",
+        "wake-when",
+        _LINKS_BASIC,
+        """a basic application configuration with a
+call to ${../if/wake-when:/name}""",
+        None,
+        "(void) rtems_task_wake_when( NULL );",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/task",
+        "set-scheduler",
+        _LINKS_BASIC,
+        """a basic application configuration with a
+call to ${../if/set-scheduler:/name}""",
+        None,
+        "(void) rtems_task_set_scheduler( 0, 0, 0 );",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/task",
+        "get-scheduler",
+        _LINKS_BASIC,
+        """a basic application configuration with a
+call to ${../if/get-scheduler:/name}""",
+        None,
+        "(void) rtems_task_get_scheduler( 0, NULL );",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/task",
+        "set-affinity",
+        _LINKS_BASIC,
+        """a basic application configuration with a
+call to ${../if/set-affinity:/name}""",
+        None,
+        "(void) rtems_task_set_affinity( 0, 0, NULL );",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/task",
+        "get-affinity",
+        _LINKS_BASIC,
+        """a basic application configuration with a
+call to ${../if/get-affinity:/name}""",
+        None,
+        "(void) rtems_task_get_affinity( 0, 0, NULL );",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/timer",
+        "after",
+        _LINKS_BASIC,
+        """a basic application configuration with calls to
+${../if/create:/name} and ${../if/fire-after:/name}""",
+        None,
+        """(void) rtems_timer_create( 0, NULL );
+(void) rtems_timer_fire_after( 0, 0, NULL, NULL );""",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/timer",
+        "when",
+        _LINKS_BASIC,
+        """a basic application configuration with calls to
+${../if/create:/name} and ${../if/fire-when:/name}""",
+        None,
+        """(void) rtems_timer_create( 0, NULL );
+(void) rtems_timer_fire_when( 0, NULL, NULL, NULL );""",
         _CONFIG_DEFAULT),
+    _Test(
+        "rtems/timer",
+        "cancel",
+        _LINKS_BASIC,
+        """a basic application configuration with calls to
+${../if/create:/name} and ${../if/cancel:/name}""",
+        None,
+        """(void) rtems_timer_create( 0, NULL );
+(void) rtems_timer_cancel( 0 );""",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/timer",
+        "reset",
+        _LINKS_BASIC,
+        """a basic application configuration with calls to
+${../if/create:/name} and ${../if/reset:/name}""",
+        None,
+        """(void) rtems_timer_create( 0, NULL );
+(void) rtems_timer_reset( 0 );""",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/timer",
+        "delete",
+        _LINKS_BASIC,
+        """a basic application configuration with calls to
+${../if/create:/name} and ${../if/delete:/name}""",
+        None,
+        """(void) rtems_timer_create( 0, NULL );
+(void) rtems_timer_delete( 0 );""",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/timer",
+        "srv-init",
+        _LINKS_BASIC,
+        """a basic application configuration with a call to
+${../if/initiate-server:/name}""",
+        None,
+        "(void) rtems_timer_initiate_server( 0, 0, 0 );",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/timer",
+        "srv-after",
+        _LINKS_BASIC,
+        """a basic application configuration with calls to
+${../if/create:/name} and ${../if/server-fire-after:/name}""",
+        None,
+        """(void) rtems_timer_create( 0, NULL );
+(void) rtems_timer_server_fire_after( 0, 0, NULL, NULL );""",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/timer",
+        "srv-when",
+        _LINKS_BASIC,
+        """a basic application configuration with calls to
+${../if/create:/name} and ${../if/server-fire-when:/name}""",
+        None,
+        """(void) rtems_timer_create( 0, NULL );
+(void) rtems_timer_server_fire_when( 0, NULL, NULL, NULL );""",
+        _CONFIG_DEFAULT),
+    _Test(
+        "rtems/userext",
+        "create",
+        _LINKS_BASIC,
+        """a basic application configuration with
+${/acfg/if/max-user-extensions:/name} defined to one and a call to
+${../if/create:/name}""",
+        None,
+        "(void) rtems_extension_create( 0, NULL, NULL );",
+        """#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 1
+
+""" + _CONFIG_DEFAULT),
+    _Test(
+        "rtems/userext",
+        "delete",
+        _LINKS_BASIC,
+        """a basic application configuration with
+${/acfg/if/max-user-extensions:/name} defined to one and calls to
+${../if/create:/name} and ${../if/delete:/name}""",
+        None,
+        """(void) rtems_extension_create( 0, NULL, NULL );
+(void) rtems_extension_delete( 0 );""",
+        """#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 1
+
+""" + _CONFIG_DEFAULT),
 ]  # yapf: disable
 
 
diff --git a/spec/dev/clock/req/mem-driver.yml b/spec/dev/clock/req/mem-driver.yml
index f185da4..ce822bf 100644
--- a/spec/dev/clock/req/mem-driver.yml
+++ b/spec/dev/clock/req/mem-driver.yml
@@ -11,6 +11,6 @@ references: []
 requirement-type: non-functional
 text: |
   The system shall provide a benchmark program to show the static memory usage
-  of "a basic application configuration with the clock driver enabled
+  of a basic application configuration with the clock driver enabled
   (${/acfg/if/appl-needs-clock-driver:/name}).
 type: requirement
diff --git a/spec/dev/clock/val/mem-driver.yml b/spec/dev/clock/val/mem-driver.yml
index da09fc0..6d3cb0d 100644
--- a/spec/dev/clock/val/mem-driver.yml
+++ b/spec/dev/clock/val/mem-driver.yml
@@ -6,7 +6,7 @@ links:
 - role: validation
   uid: ../req/mem-driver
 test-brief: |
-  This static memory usage benchmark program facilitates "a basic application
+  This static memory usage benchmark program facilitates a basic application
   configuration with the clock driver enabled
   (${/acfg/if/appl-needs-clock-driver:/name}).
 test-code: |
diff --git a/spec/rtems/clock/req/mem-get-uptime.yml b/spec/rtems/clock/req/mem-get-uptime.yml
new file mode 100644
index 0000000..7be6106
--- /dev/null
+++ b/spec/rtems/clock/req/mem-get-uptime.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with a call to
+  ${../if/get-uptime:/name}.
+type: requirement
diff --git a/spec/rtems/clock/req/mem-set-get-tod.yml b/spec/rtems/clock/req/mem-set-get-tod.yml
new file mode 100644
index 0000000..785ba45
--- /dev/null
+++ b/spec/rtems/clock/req/mem-set-get-tod.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with calls to ${../if/set:/name} and
+  ${../if/get-tod:/name}.
+type: requirement
diff --git a/spec/rtems/clock/req/mem-set.yml b/spec/rtems/clock/req/mem-set.yml
new file mode 100644
index 0000000..71500ea
--- /dev/null
+++ b/spec/rtems/clock/req/mem-set.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: ../../req/mem-basic
+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 with a call to ${../if/set:/name}.
+type: requirement
diff --git a/spec/rtems/clock/val/mem-get-uptime.yml b/spec/rtems/clock/val/mem-get-uptime.yml
new file mode 100644
index 0000000..e1fabf8
--- /dev/null
+++ b/spec/rtems/clock/val/mem-get-uptime.yml
@@ -0,0 +1,53 @@
+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: validation
+  uid: ../req/mem-get-uptime
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/get-uptime:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_clock_get_uptime( NULL );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemGetUptime
+test-target: testsuites/membench/mem-clock-get-uptime.c
+type: test-suite
diff --git a/spec/rtems/clock/val/mem-set-get-tod.yml b/spec/rtems/clock/val/mem-set-get-tod.yml
new file mode 100644
index 0000000..cb297d7
--- /dev/null
+++ b/spec/rtems/clock/val/mem-set-get-tod.yml
@@ -0,0 +1,54 @@
+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: validation
+  uid: ../req/mem-set-get-tod
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with calls to ${../if/set:/name} and ${../if/get-tod:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_clock_set( NULL );
+    (void) rtems_clock_get_tod( NULL );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemSetGetTod
+test-target: testsuites/membench/mem-clock-set-get-tod.c
+type: test-suite
diff --git a/spec/rtems/clock/val/mem-set.yml b/spec/rtems/clock/val/mem-set.yml
new file mode 100644
index 0000000..9b01feb
--- /dev/null
+++ b/spec/rtems/clock/val/mem-set.yml
@@ -0,0 +1,53 @@
+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: validation
+  uid: ../req/mem-set
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/set:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_clock_set( NULL );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemSet
+test-target: testsuites/membench/mem-clock-set.c
+type: test-suite
diff --git a/spec/rtems/message/req/mem-bcst-rcv.yml b/spec/rtems/message/req/mem-bcst-rcv.yml
new file mode 100644
index 0000000..cb4c44b
--- /dev/null
+++ b/spec/rtems/message/req/mem-bcst-rcv.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with calls to ${../if/construct:/name},
+  ${../if/broadcast:/name}, and ${../if/receive:/name}.
+type: requirement
diff --git a/spec/rtems/message/req/mem-snd-rcv-del.yml b/spec/rtems/message/req/mem-snd-rcv-del.yml
new file mode 100644
index 0000000..4ee92ba
--- /dev/null
+++ b/spec/rtems/message/req/mem-snd-rcv-del.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with calls to ${../if/construct:/name},
+  ${../if/send:/name}, ${../if/receive:/name}, and ${../if/delete:/name}.
+type: requirement
diff --git a/spec/rtems/message/req/mem-snd-rcv.yml b/spec/rtems/message/req/mem-snd-rcv.yml
new file mode 100644
index 0000000..ef61678
--- /dev/null
+++ b/spec/rtems/message/req/mem-snd-rcv.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with calls to ${../if/construct:/name},
+  ${../if/send:/name}, and ${../if/receive:/name}.
+type: requirement
diff --git a/spec/rtems/message/req/mem-ugt-rcv.yml b/spec/rtems/message/req/mem-ugt-rcv.yml
new file mode 100644
index 0000000..b1edbcc
--- /dev/null
+++ b/spec/rtems/message/req/mem-ugt-rcv.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with calls to ${../if/construct:/name},
+  ${../if/urgent:/name}, and ${../if/receive:/name}.
+type: requirement
diff --git a/spec/rtems/message/val/mem-bcst-rcv.yml b/spec/rtems/message/val/mem-bcst-rcv.yml
new file mode 100644
index 0000000..390a043
--- /dev/null
+++ b/spec/rtems/message/val/mem-bcst-rcv.yml
@@ -0,0 +1,56 @@
+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: validation
+  uid: ../req/mem-bcst-rcv
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with calls to ${../if/construct:/name},
+  ${../if/broadcast:/name}, and ${../if/receive:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_message_queue_construct( NULL, NULL );
+    (void) rtems_message_queue_broadcast( 0, NULL, 0, NULL );
+    (void) rtems_message_queue_receive( 0, NULL, NULL, 0, 0 );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemBcstRcv
+test-target: testsuites/membench/mem-message-bcst-rcv.c
+type: test-suite
diff --git a/spec/rtems/message/val/mem-snd-rcv-del.yml b/spec/rtems/message/val/mem-snd-rcv-del.yml
new file mode 100644
index 0000000..e26b3f1
--- /dev/null
+++ b/spec/rtems/message/val/mem-snd-rcv-del.yml
@@ -0,0 +1,57 @@
+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: validation
+  uid: ../req/mem-snd-rcv-del
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with calls to ${../if/construct:/name}, ${../if/send:/name},
+  ${../if/receive:/name}, and ${../if/delete:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_message_queue_construct( NULL, NULL );
+    (void) rtems_message_queue_send( 0, NULL, 0 );
+    (void) rtems_message_queue_receive( 0, NULL, NULL, 0, 0 );
+    (void) rtems_message_queue_delete( 0 );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemSndRcvDel
+test-target: testsuites/membench/mem-message-snd-rcv-del.c
+type: test-suite
diff --git a/spec/rtems/message/val/mem-snd-rcv.yml b/spec/rtems/message/val/mem-snd-rcv.yml
new file mode 100644
index 0000000..ebcd6c8
--- /dev/null
+++ b/spec/rtems/message/val/mem-snd-rcv.yml
@@ -0,0 +1,56 @@
+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: validation
+  uid: ../req/mem-snd-rcv
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with calls to ${../if/construct:/name}, ${../if/send:/name},
+  and ${../if/receive:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_message_queue_construct( NULL, NULL );
+    (void) rtems_message_queue_send( 0, NULL, 0 );
+    (void) rtems_message_queue_receive( 0, NULL, NULL, 0, 0 );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemSndRcv
+test-target: testsuites/membench/mem-message-snd-rcv.c
+type: test-suite
diff --git a/spec/rtems/message/val/mem-ugt-rcv.yml b/spec/rtems/message/val/mem-ugt-rcv.yml
new file mode 100644
index 0000000..780b6be
--- /dev/null
+++ b/spec/rtems/message/val/mem-ugt-rcv.yml
@@ -0,0 +1,56 @@
+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: validation
+  uid: ../req/mem-ugt-rcv
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with calls to ${../if/construct:/name}, ${../if/urgent:/name},
+  and ${../if/receive:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_message_queue_construct( NULL, NULL );
+    (void) rtems_message_queue_urgent( 0, NULL, 0 );
+    (void) rtems_message_queue_receive( 0, NULL, NULL, 0, 0 );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemUgtRcv
+test-target: testsuites/membench/mem-message-ugt-rcv.c
+type: test-suite
diff --git a/spec/rtems/scheduler/req/mem-add-cpu.yml b/spec/rtems/scheduler/req/mem-add-cpu.yml
new file mode 100644
index 0000000..376e391
--- /dev/null
+++ b/spec/rtems/scheduler/req/mem-add-cpu.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-smp-1
+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 with a call to
+  ${../if/add-processor:/name}.
+type: requirement
diff --git a/spec/rtems/scheduler/req/mem-rm-cpu.yml b/spec/rtems/scheduler/req/mem-rm-cpu.yml
new file mode 100644
index 0000000..0cd3277
--- /dev/null
+++ b/spec/rtems/scheduler/req/mem-rm-cpu.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-smp-1
+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 with a call to
+  ${../if/remove-processor:/name}.
+type: requirement
diff --git a/spec/rtems/scheduler/val/mem-add-cpu.yml b/spec/rtems/scheduler/val/mem-add-cpu.yml
new file mode 100644
index 0000000..27511fc
--- /dev/null
+++ b/spec/rtems/scheduler/val/mem-add-cpu.yml
@@ -0,0 +1,59 @@
+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: validation
+  uid: ../req/mem-add-cpu
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/add-processor:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_scheduler_add_processor( 0, 0 );
+  }
+
+  #define CONFIGURE_MAXIMUM_PROCESSORS 1
+
+  #if defined(RTEMS_SMP)
+  #define CONFIGURE_SCHEDULER_EDF_SMP
+  #endif
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemAddCpu
+test-target: testsuites/membench/mem-scheduler-add-cpu.c
+type: test-suite
diff --git a/spec/rtems/scheduler/val/mem-rm-cpu.yml b/spec/rtems/scheduler/val/mem-rm-cpu.yml
new file mode 100644
index 0000000..4466739
--- /dev/null
+++ b/spec/rtems/scheduler/val/mem-rm-cpu.yml
@@ -0,0 +1,59 @@
+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: validation
+  uid: ../req/mem-rm-cpu
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/remove-processor:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_scheduler_remove_processor( 0, 0 );
+  }
+
+  #define CONFIGURE_MAXIMUM_PROCESSORS 1
+
+  #if defined(RTEMS_SMP)
+  #define CONFIGURE_SCHEDULER_EDF_SMP
+  #endif
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemRmCpu
+test-target: testsuites/membench/mem-scheduler-rm-cpu.c
+type: test-suite
diff --git a/spec/rtems/task/req/mem-del.yml b/spec/rtems/task/req/mem-delete.yml
similarity index 100%
rename from spec/rtems/task/req/mem-del.yml
rename to spec/rtems/task/req/mem-delete.yml
diff --git a/spec/rtems/task/req/mem-get-affinity.yml b/spec/rtems/task/req/mem-get-affinity.yml
new file mode 100644
index 0000000..0643b45
--- /dev/null
+++ b/spec/rtems/task/req/mem-get-affinity.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with a call to
+  ${../if/get-affinity:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-get-priority.yml b/spec/rtems/task/req/mem-get-priority.yml
new file mode 100644
index 0000000..78b8c53
--- /dev/null
+++ b/spec/rtems/task/req/mem-get-priority.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with a call to
+  ${../if/get-priority:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-get-scheduler.yml b/spec/rtems/task/req/mem-get-scheduler.yml
new file mode 100644
index 0000000..a3cb6db
--- /dev/null
+++ b/spec/rtems/task/req/mem-get-scheduler.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with a call to
+  ${../if/get-scheduler:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-mode.yml b/spec/rtems/task/req/mem-mode.yml
new file mode 100644
index 0000000..e939e18
--- /dev/null
+++ b/spec/rtems/task/req/mem-mode.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: ../../req/mem-basic
+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 with a call to ${../if/mode:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-set-affinity.yml b/spec/rtems/task/req/mem-set-affinity.yml
new file mode 100644
index 0000000..cb68b89
--- /dev/null
+++ b/spec/rtems/task/req/mem-set-affinity.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with a call to
+  ${../if/set-affinity:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-set-priority.yml b/spec/rtems/task/req/mem-set-priority.yml
new file mode 100644
index 0000000..0cdb248
--- /dev/null
+++ b/spec/rtems/task/req/mem-set-priority.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with a call to
+  ${../if/set-priority:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-set-scheduler.yml b/spec/rtems/task/req/mem-set-scheduler.yml
new file mode 100644
index 0000000..d174ee1
--- /dev/null
+++ b/spec/rtems/task/req/mem-set-scheduler.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with a call to
+  ${../if/set-scheduler:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-wake-after.yml b/spec/rtems/task/req/mem-wake-after.yml
new file mode 100644
index 0000000..cc5ecaf
--- /dev/null
+++ b/spec/rtems/task/req/mem-wake-after.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with a call to
+  ${../if/wake-after:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-wake-when.yml b/spec/rtems/task/req/mem-wake-when.yml
new file mode 100644
index 0000000..5603446
--- /dev/null
+++ b/spec/rtems/task/req/mem-wake-when.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: ../../req/mem-basic
+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 with a call to ${../if/wake-when:/name}.
+type: requirement
diff --git a/spec/rtems/task/val/mem-del.yml b/spec/rtems/task/val/mem-delete.yml
similarity index 92%
rename from spec/rtems/task/val/mem-del.yml
rename to spec/rtems/task/val/mem-delete.yml
index bea76be..e04de19 100644
--- a/spec/rtems/task/val/mem-del.yml
+++ b/spec/rtems/task/val/mem-delete.yml
@@ -4,7 +4,7 @@ copyrights:
 enabled-by: true
 links:
 - role: validation
-  uid: ../req/mem-del
+  uid: ../req/mem-delete
 test-brief: |
   This static memory usage benchmark program facilitates a basic application
   configuration with a call to ${../if/delete:/name}.
@@ -14,7 +14,6 @@ test-code: |
     (void) arg;
 
     (void) rtems_task_delete( 0 );
-    
   }
 
   #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
@@ -49,6 +48,6 @@ test-description: null
 test-includes:
 - rtems.h
 test-local-includes: []
-test-suite-name: MemDel
-test-target: testsuites/membench/mem-task-del.c
+test-suite-name: MemDelete
+test-target: testsuites/membench/mem-task-delete.c
 type: test-suite
diff --git a/spec/rtems/task/val/mem-exit.yml b/spec/rtems/task/val/mem-exit.yml
index 061e9e1..5f1c167 100644
--- a/spec/rtems/task/val/mem-exit.yml
+++ b/spec/rtems/task/val/mem-exit.yml
@@ -14,7 +14,6 @@ test-code: |
     (void) arg;
 
     rtems_task_exit();
-    
   }
 
   #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
diff --git a/spec/rtems/task/val/mem-get-affinity.yml b/spec/rtems/task/val/mem-get-affinity.yml
new file mode 100644
index 0000000..4f0f365
--- /dev/null
+++ b/spec/rtems/task/val/mem-get-affinity.yml
@@ -0,0 +1,53 @@
+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: validation
+  uid: ../req/mem-get-affinity
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/get-affinity:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_task_get_affinity( 0, 0, NULL );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemGetAffinity
+test-target: testsuites/membench/mem-task-get-affinity.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-get-priority.yml b/spec/rtems/task/val/mem-get-priority.yml
new file mode 100644
index 0000000..2451741
--- /dev/null
+++ b/spec/rtems/task/val/mem-get-priority.yml
@@ -0,0 +1,53 @@
+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: validation
+  uid: ../req/mem-get-priority
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/get-priority:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_task_get_priority( 0, 0, NULL );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemGetPriority
+test-target: testsuites/membench/mem-task-get-priority.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-get-scheduler.yml b/spec/rtems/task/val/mem-get-scheduler.yml
new file mode 100644
index 0000000..e139c85
--- /dev/null
+++ b/spec/rtems/task/val/mem-get-scheduler.yml
@@ -0,0 +1,53 @@
+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: validation
+  uid: ../req/mem-get-scheduler
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/get-scheduler:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_task_get_scheduler( 0, NULL );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemGetScheduler
+test-target: testsuites/membench/mem-task-get-scheduler.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-mode.yml b/spec/rtems/task/val/mem-mode.yml
new file mode 100644
index 0000000..8f05a3d
--- /dev/null
+++ b/spec/rtems/task/val/mem-mode.yml
@@ -0,0 +1,53 @@
+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: validation
+  uid: ../req/mem-mode
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/mode:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_task_mode( 0, 0, 0 );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemMode
+test-target: testsuites/membench/mem-task-mode.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-restart.yml b/spec/rtems/task/val/mem-restart.yml
index 403c950..68fd7e2 100644
--- a/spec/rtems/task/val/mem-restart.yml
+++ b/spec/rtems/task/val/mem-restart.yml
@@ -14,7 +14,6 @@ test-code: |
     (void) arg;
 
     (void) rtems_task_restart( 0, 0 );
-    
   }
 
   #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
diff --git a/spec/rtems/task/val/mem-set-affinity.yml b/spec/rtems/task/val/mem-set-affinity.yml
new file mode 100644
index 0000000..eb17c66
--- /dev/null
+++ b/spec/rtems/task/val/mem-set-affinity.yml
@@ -0,0 +1,53 @@
+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: validation
+  uid: ../req/mem-set-affinity
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/set-affinity:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_task_set_affinity( 0, 0, NULL );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemSetAffinity
+test-target: testsuites/membench/mem-task-set-affinity.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-set-priority.yml b/spec/rtems/task/val/mem-set-priority.yml
new file mode 100644
index 0000000..51db969
--- /dev/null
+++ b/spec/rtems/task/val/mem-set-priority.yml
@@ -0,0 +1,53 @@
+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: validation
+  uid: ../req/mem-set-priority
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/set-priority:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_task_set_priority( 0, 0, NULL );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemSetPriority
+test-target: testsuites/membench/mem-task-set-priority.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-set-scheduler.yml b/spec/rtems/task/val/mem-set-scheduler.yml
new file mode 100644
index 0000000..44a7ce0
--- /dev/null
+++ b/spec/rtems/task/val/mem-set-scheduler.yml
@@ -0,0 +1,53 @@
+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: validation
+  uid: ../req/mem-set-scheduler
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/set-scheduler:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_task_set_scheduler( 0, 0, 0 );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemSetScheduler
+test-target: testsuites/membench/mem-task-set-scheduler.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-sus-res.yml b/spec/rtems/task/val/mem-sus-res.yml
index c60a697..c9e3a4e 100644
--- a/spec/rtems/task/val/mem-sus-res.yml
+++ b/spec/rtems/task/val/mem-sus-res.yml
@@ -15,7 +15,6 @@ test-code: |
 
     (void) rtems_task_suspend( 0 );
     (void) rtems_task_resume( 0 );
-    
   }
 
   #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
diff --git a/spec/rtems/task/val/mem-wake-after.yml b/spec/rtems/task/val/mem-wake-after.yml
new file mode 100644
index 0000000..79f8bf9
--- /dev/null
+++ b/spec/rtems/task/val/mem-wake-after.yml
@@ -0,0 +1,53 @@
+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: validation
+  uid: ../req/mem-wake-after
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/wake-after:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_task_wake_after( 0 );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemWakeAfter
+test-target: testsuites/membench/mem-task-wake-after.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-wake-when.yml b/spec/rtems/task/val/mem-wake-when.yml
new file mode 100644
index 0000000..5485144
--- /dev/null
+++ b/spec/rtems/task/val/mem-wake-when.yml
@@ -0,0 +1,53 @@
+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: validation
+  uid: ../req/mem-wake-when
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/wake-when:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_task_wake_when( NULL );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemWakeWhen
+test-target: testsuites/membench/mem-task-wake-when.c
+type: test-suite
diff --git a/spec/rtems/timer/req/mem-after.yml b/spec/rtems/timer/req/mem-after.yml
new file mode 100644
index 0000000..25afc60
--- /dev/null
+++ b/spec/rtems/timer/req/mem-after.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with calls to ${../if/create:/name} and
+  ${../if/fire-after:/name}.
+type: requirement
diff --git a/spec/rtems/timer/req/mem-cancel.yml b/spec/rtems/timer/req/mem-cancel.yml
new file mode 100644
index 0000000..c8772de
--- /dev/null
+++ b/spec/rtems/timer/req/mem-cancel.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with calls to ${../if/create:/name} and
+  ${../if/cancel:/name}.
+type: requirement
diff --git a/spec/rtems/timer/req/mem-delete.yml b/spec/rtems/timer/req/mem-delete.yml
new file mode 100644
index 0000000..d2f277c
--- /dev/null
+++ b/spec/rtems/timer/req/mem-delete.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with calls to ${../if/create:/name} and
+  ${../if/delete:/name}.
+type: requirement
diff --git a/spec/rtems/timer/req/mem-reset.yml b/spec/rtems/timer/req/mem-reset.yml
new file mode 100644
index 0000000..a97ca88
--- /dev/null
+++ b/spec/rtems/timer/req/mem-reset.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with calls to ${../if/create:/name} and
+  ${../if/reset:/name}.
+type: requirement
diff --git a/spec/rtems/timer/req/mem-srv-after.yml b/spec/rtems/timer/req/mem-srv-after.yml
new file mode 100644
index 0000000..565ef74
--- /dev/null
+++ b/spec/rtems/timer/req/mem-srv-after.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with calls to ${../if/create:/name} and
+  ${../if/server-fire-after:/name}.
+type: requirement
diff --git a/spec/rtems/timer/req/mem-srv-init.yml b/spec/rtems/timer/req/mem-srv-init.yml
new file mode 100644
index 0000000..2d574d4
--- /dev/null
+++ b/spec/rtems/timer/req/mem-srv-init.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with a call to
+  ${../if/initiate-server:/name}.
+type: requirement
diff --git a/spec/rtems/timer/req/mem-srv-when.yml b/spec/rtems/timer/req/mem-srv-when.yml
new file mode 100644
index 0000000..fe3229c
--- /dev/null
+++ b/spec/rtems/timer/req/mem-srv-when.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with calls to ${../if/create:/name} and
+  ${../if/server-fire-when:/name}.
+type: requirement
diff --git a/spec/rtems/timer/req/mem-when.yml b/spec/rtems/timer/req/mem-when.yml
new file mode 100644
index 0000000..29d2f63
--- /dev/null
+++ b/spec/rtems/timer/req/mem-when.yml
@@ -0,0 +1,16 @@
+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: ../../req/mem-basic
+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 with calls to ${../if/create:/name} and
+  ${../if/fire-when:/name}.
+type: requirement
diff --git a/spec/rtems/timer/val/mem-after.yml b/spec/rtems/timer/val/mem-after.yml
new file mode 100644
index 0000000..6c45393
--- /dev/null
+++ b/spec/rtems/timer/val/mem-after.yml
@@ -0,0 +1,55 @@
+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: validation
+  uid: ../req/mem-after
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with calls to ${../if/create:/name} and
+  ${../if/fire-after:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_timer_create( 0, NULL );
+    (void) rtems_timer_fire_after( 0, 0, NULL, NULL );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemAfter
+test-target: testsuites/membench/mem-timer-after.c
+type: test-suite
diff --git a/spec/rtems/timer/val/mem-cancel.yml b/spec/rtems/timer/val/mem-cancel.yml
new file mode 100644
index 0000000..719dcf9
--- /dev/null
+++ b/spec/rtems/timer/val/mem-cancel.yml
@@ -0,0 +1,54 @@
+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: validation
+  uid: ../req/mem-cancel
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with calls to ${../if/create:/name} and ${../if/cancel:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_timer_create( 0, NULL );
+    (void) rtems_timer_cancel( 0 );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemCancel
+test-target: testsuites/membench/mem-timer-cancel.c
+type: test-suite
diff --git a/spec/rtems/timer/val/mem-delete.yml b/spec/rtems/timer/val/mem-delete.yml
new file mode 100644
index 0000000..c68383d
--- /dev/null
+++ b/spec/rtems/timer/val/mem-delete.yml
@@ -0,0 +1,54 @@
+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: validation
+  uid: ../req/mem-delete
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with calls to ${../if/create:/name} and ${../if/delete:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_timer_create( 0, NULL );
+    (void) rtems_timer_delete( 0 );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemDelete
+test-target: testsuites/membench/mem-timer-delete.c
+type: test-suite
diff --git a/spec/rtems/timer/val/mem-reset.yml b/spec/rtems/timer/val/mem-reset.yml
new file mode 100644
index 0000000..c65d650
--- /dev/null
+++ b/spec/rtems/timer/val/mem-reset.yml
@@ -0,0 +1,54 @@
+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: validation
+  uid: ../req/mem-reset
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with calls to ${../if/create:/name} and ${../if/reset:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_timer_create( 0, NULL );
+    (void) rtems_timer_reset( 0 );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemReset
+test-target: testsuites/membench/mem-timer-reset.c
+type: test-suite
diff --git a/spec/rtems/timer/val/mem-srv-after.yml b/spec/rtems/timer/val/mem-srv-after.yml
new file mode 100644
index 0000000..0fb409c
--- /dev/null
+++ b/spec/rtems/timer/val/mem-srv-after.yml
@@ -0,0 +1,55 @@
+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: validation
+  uid: ../req/mem-srv-after
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with calls to ${../if/create:/name} and
+  ${../if/server-fire-after:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_timer_create( 0, NULL );
+    (void) rtems_timer_server_fire_after( 0, 0, NULL, NULL );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemSrvAfter
+test-target: testsuites/membench/mem-timer-srv-after.c
+type: test-suite
diff --git a/spec/rtems/timer/val/mem-srv-init.yml b/spec/rtems/timer/val/mem-srv-init.yml
new file mode 100644
index 0000000..3979298
--- /dev/null
+++ b/spec/rtems/timer/val/mem-srv-init.yml
@@ -0,0 +1,53 @@
+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: validation
+  uid: ../req/mem-srv-init
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with a call to ${../if/initiate-server:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_timer_initiate_server( 0, 0, 0 );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemSrvInit
+test-target: testsuites/membench/mem-timer-srv-init.c
+type: test-suite
diff --git a/spec/rtems/timer/val/mem-srv-when.yml b/spec/rtems/timer/val/mem-srv-when.yml
new file mode 100644
index 0000000..26db4b9
--- /dev/null
+++ b/spec/rtems/timer/val/mem-srv-when.yml
@@ -0,0 +1,55 @@
+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: validation
+  uid: ../req/mem-srv-when
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with calls to ${../if/create:/name} and
+  ${../if/server-fire-when:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_timer_create( 0, NULL );
+    (void) rtems_timer_server_fire_when( 0, NULL, NULL, NULL );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemSrvWhen
+test-target: testsuites/membench/mem-timer-srv-when.c
+type: test-suite
diff --git a/spec/rtems/timer/val/mem-when.yml b/spec/rtems/timer/val/mem-when.yml
new file mode 100644
index 0000000..f3b2890
--- /dev/null
+++ b/spec/rtems/timer/val/mem-when.yml
@@ -0,0 +1,55 @@
+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: validation
+  uid: ../req/mem-when
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with calls to ${../if/create:/name} and
+  ${../if/fire-when:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_timer_create( 0, NULL );
+    (void) rtems_timer_fire_when( 0, NULL, NULL, NULL );
+  }
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemWhen
+test-target: testsuites/membench/mem-timer-when.c
+type: test-suite
diff --git a/spec/rtems/userext/req/mem-create.yml b/spec/rtems/userext/req/mem-create.yml
new file mode 100644
index 0000000..c8361e3
--- /dev/null
+++ b/spec/rtems/userext/req/mem-create.yml
@@ -0,0 +1,17 @@
+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: ../../req/mem-basic
+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 with
+  ${/acfg/if/max-user-extensions:/name} defined to one and a call to
+  ${../if/create:/name}.
+type: requirement
diff --git a/spec/rtems/userext/req/mem-delete.yml b/spec/rtems/userext/req/mem-delete.yml
new file mode 100644
index 0000000..6628a8d
--- /dev/null
+++ b/spec/rtems/userext/req/mem-delete.yml
@@ -0,0 +1,17 @@
+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: ../../req/mem-basic
+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 with
+  ${/acfg/if/max-user-extensions:/name} defined to one and calls to
+  ${../if/create:/name} and ${../if/delete:/name}.
+type: requirement
diff --git a/spec/rtems/userext/val/mem-create.yml b/spec/rtems/userext/val/mem-create.yml
new file mode 100644
index 0000000..2c4f6a3
--- /dev/null
+++ b/spec/rtems/userext/val/mem-create.yml
@@ -0,0 +1,56 @@
+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: validation
+  uid: ../req/mem-create
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with ${/acfg/if/max-user-extensions:/name} defined to one and a
+  call to ${../if/create:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_extension_create( 0, NULL, NULL );
+  }
+
+  #define CONFIGURE_MAXIMUM_USER_EXTENSIONS 1
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemCreate
+test-target: testsuites/membench/mem-userext-create.c
+type: test-suite
diff --git a/spec/rtems/userext/val/mem-delete.yml b/spec/rtems/userext/val/mem-delete.yml
new file mode 100644
index 0000000..80b078c
--- /dev/null
+++ b/spec/rtems/userext/val/mem-delete.yml
@@ -0,0 +1,57 @@
+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: validation
+  uid: ../req/mem-delete
+test-brief: |
+  This static memory usage benchmark program facilitates a basic application
+  configuration with ${/acfg/if/max-user-extensions:/name} defined to one and
+  calls to ${../if/create:/name} and ${../if/delete:/name}.
+test-code: |
+  static void Init( rtems_task_argument arg )
+  {
+    (void) arg;
+
+    (void) rtems_extension_create( 0, NULL, NULL );
+    (void) rtems_extension_delete( 0 );
+  }
+
+  #define CONFIGURE_MAXIMUM_USER_EXTENSIONS 1
+
+  #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+  #define TASK_STORAGE_SIZE \
+    RTEMS_TASK_STORAGE_SIZE( \
+      RTEMS_MINIMUM_STACK_SIZE, \
+      TASK_ATTRIBUTES   )
+
+  #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+  #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 0
+
+  #define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+  #define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+  #define CONFIGURE_MAXIMUM_TASKS 1
+
+  #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+  #define CONFIGURE_INIT_TASK_ATTRIBUTES TASK_ATTRIBUTES
+
+  #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
+
+  #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE TASK_STORAGE_SIZE
+
+  #define CONFIGURE_INIT
+
+  #include <rtems/confdefs.h>
+test-description: null
+test-includes:
+- rtems.h
+test-local-includes: []
+test-suite-name: MemDelete
+test-target: testsuites/membench/mem-userext-delete.c
+type: test-suite



More information about the vc mailing list