[rtems-central commit] spec: Add memory benchmarks
Sebastian Huber
sebh at rtems.org
Wed Mar 10 09:02:05 UTC 2021
Module: rtems-central
Branch: master
Commit: e9d9a6ac52f5afd20ae4ff024fea0e6b1de45467
Changeset: http://git.rtems.org/rtems-central/commit/?id=e9d9a6ac52f5afd20ae4ff024fea0e6b1de45467
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Sat Mar 6 13:52:29 2021 +0100
spec: Add memory benchmarks
---
config.yml | 2 +
spec-glossary/glossary/feature.yml | 13 +++++
spec/dev/clock/req/mem-driver.yml | 16 ++++++
spec/dev/clock/val/mem-driver.yml | 53 ++++++++++++++++++
spec/req/mem-benchmark.yml | 15 ++++++
spec/rtems/barrier/req/mem-wait-rel-del.yml | 17 ++++++
spec/rtems/barrier/req/mem-wait-rel.yml | 17 ++++++
spec/rtems/barrier/val/mem-wait-rel-del.yml | 59 ++++++++++++++++++++
spec/rtems/barrier/val/mem-wait-rel.yml | 57 ++++++++++++++++++++
spec/rtems/event/req/mem-snd-rcv.yml | 16 ++++++
spec/rtems/event/val/mem-snd-rcv.yml | 53 ++++++++++++++++++
spec/rtems/fatal/req/mem-fatal.yml | 15 ++++++
spec/rtems/fatal/val/mem-fatal.yml | 52 ++++++++++++++++++
spec/rtems/part/req/mem-get-ret-del.yml | 17 ++++++
spec/rtems/part/req/mem-get-ret.yml | 17 ++++++
spec/rtems/part/val/mem-get-ret-del.yml | 59 ++++++++++++++++++++
spec/rtems/part/val/mem-get-ret.yml | 58 ++++++++++++++++++++
spec/rtems/ratemon/req/mem-period-del.yml | 17 ++++++
spec/rtems/ratemon/req/mem-period.yml | 16 ++++++
spec/rtems/ratemon/val/mem-period-del.yml | 57 ++++++++++++++++++++
spec/rtems/ratemon/val/mem-period.yml | 56 +++++++++++++++++++
spec/rtems/req/mem-basic.yml | 15 ++++++
spec/rtems/req/mem-smp-1.yml | 17 ++++++
spec/rtems/req/mem-smp-global-2.yml | 17 ++++++
spec/rtems/req/mem-smp-global-4.yml | 17 ++++++
spec/rtems/req/mem-smp-part-2.yml | 17 ++++++
spec/rtems/req/mem-smp-part-4.yml | 17 ++++++
spec/rtems/sem/req/mem-obt-rel-del.yml | 17 ++++++
spec/rtems/sem/req/mem-obt-rel.yml | 17 ++++++
spec/rtems/sem/val/mem-obt-rel-del.yml | 59 ++++++++++++++++++++
spec/rtems/sem/val/mem-obt-rel.yml | 57 ++++++++++++++++++++
spec/rtems/signal/req/mem-catch-snd.yml | 16 ++++++
spec/rtems/signal/val/mem-catch-snd.yml | 53 ++++++++++++++++++
spec/rtems/task/req/mem-del.yml | 15 ++++++
spec/rtems/task/req/mem-exit.yml | 15 ++++++
spec/rtems/task/req/mem-restart.yml | 15 ++++++
spec/rtems/task/req/mem-sus-res.yml | 16 ++++++
spec/rtems/task/val/mem-del.yml | 53 ++++++++++++++++++
spec/rtems/task/val/mem-exit.yml | 53 ++++++++++++++++++
spec/rtems/task/val/mem-restart.yml | 53 ++++++++++++++++++
spec/rtems/task/val/mem-sus-res.yml | 54 +++++++++++++++++++
spec/rtems/val/mem-basic.yml | 54 +++++++++++++++++++
spec/rtems/val/mem-smp-1.yml | 59 ++++++++++++++++++++
spec/rtems/val/mem-smp-global-2.yml | 59 ++++++++++++++++++++
spec/rtems/val/mem-smp-global-4.yml | 59 ++++++++++++++++++++
spec/rtems/val/mem-smp-part-2.yml | 76 ++++++++++++++++++++++++++
spec/rtems/val/mem-smp-part-4.yml | 84 +++++++++++++++++++++++++++++
47 files changed, 1666 insertions(+)
diff --git a/config.yml b/config.yml
index f15a665..c2bfd1e 100644
--- a/config.yml
+++ b/config.yml
@@ -7,6 +7,7 @@ build:
RTEMS_QUAL = True
RTEMS_QUAL_ONLY = True
BUILD_TESTS = False
+ BUILD_MEMBENCH = True
BUILD_VALIDATIONTESTS = True
doxyfile-template: templates/Doxyfile
enabled:
@@ -44,6 +45,7 @@ build:
uids:
- /build/cpukit/librtemscpu
- /build/cpukit/librtemstest
+ - /build/testsuites/membench/grp
- /build/testsuites/validation/grp
workspace-directory: workspace/rtems
spec:
diff --git a/spec-glossary/glossary/feature.yml b/spec-glossary/glossary/feature.yml
new file mode 100644
index 0000000..3323206
--- /dev/null
+++ b/spec-glossary/glossary/feature.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: ../glossary-general
+term: feature
+text: |
+ A feature is a collection of interfaces together with their implementation
+ provided by the system.
+type: glossary
diff --git a/spec/dev/clock/req/mem-driver.yml b/spec/dev/clock/req/mem-driver.yml
new file mode 100644
index 0000000..f185da4
--- /dev/null
+++ b/spec/dev/clock/req/mem-driver.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: /rtems/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 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
new file mode 100644
index 0000000..a125d1a
--- /dev/null
+++ b/spec/dev/clock/val/mem-driver.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-driver
+test-brief: |
+ 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: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+
+ #define TASK_STORAGE_SIZE \
+ RTEMS_TASK_STORAGE_SIZE( \
+ RTEMS_MINIMUM_STACK_SIZE, \
+ TASK_ATTRIBUTES )
+
+ #define CONFIGURE_APPLICATION_NEEDS_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-target: testsuites/membench/mem-clock-driver.c
+type: test-suite
diff --git a/spec/req/mem-benchmark.yml b/spec/req/mem-benchmark.yml
new file mode 100644
index 0000000..f38c400
--- /dev/null
+++ b/spec/req/mem-benchmark.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: root
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide benchmark programs to show the static memory usage
+ of ${/glossary/feature:/plural}.
+type: requirement
diff --git a/spec/rtems/barrier/req/mem-wait-rel-del.yml b/spec/rtems/barrier/req/mem-wait-rel-del.yml
new file mode 100644
index 0000000..4db9861
--- /dev/null
+++ b/spec/rtems/barrier/req/mem-wait-rel-del.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-barriers:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/wait:/name},
+ ${../if/release:/name}, and ${../if/delete:/name}.
+type: requirement
diff --git a/spec/rtems/barrier/req/mem-wait-rel.yml b/spec/rtems/barrier/req/mem-wait-rel.yml
new file mode 100644
index 0000000..89fdf5b
--- /dev/null
+++ b/spec/rtems/barrier/req/mem-wait-rel.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-barriers:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/wait:/name}, and
+ ${../if/release:/name}.
+type: requirement
diff --git a/spec/rtems/barrier/val/mem-wait-rel-del.yml b/spec/rtems/barrier/val/mem-wait-rel-del.yml
new file mode 100644
index 0000000..9adcc49
--- /dev/null
+++ b/spec/rtems/barrier/val/mem-wait-rel-del.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-wait-rel-del
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-barriers:/name} defined to one and calls to
+ ${../if/create:/name}, ${../if/wait:/name}, ${../if/release:/name}, and
+ ${../if/delete:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_barrier_create( 0, 0, 0, NULL );
+ (void) rtems_barrier_wait( 0, 0 );
+ (void) rtems_barrier_release( 0, NULL );
+ (void) rtems_barrier_delete( 0 );
+ }
+
+ #define CONFIGURE_MAXIMUM_BARRIERS 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-target: testsuites/membench/mem-barrier-wait-rel-del.c
+type: test-suite
diff --git a/spec/rtems/barrier/val/mem-wait-rel.yml b/spec/rtems/barrier/val/mem-wait-rel.yml
new file mode 100644
index 0000000..f7c54c1
--- /dev/null
+++ b/spec/rtems/barrier/val/mem-wait-rel.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-wait-rel
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-barriers:/name} defined to one and calls to
+ ${../if/create:/name}, ${../if/wait:/name}, and ${../if/release:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_barrier_create( 0, 0, 0, NULL );
+ (void) rtems_barrier_wait( 0, 0 );
+ (void) rtems_barrier_release( 0, NULL );
+ }
+
+ #define CONFIGURE_MAXIMUM_BARRIERS 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-target: testsuites/membench/mem-barrier-wait-rel.c
+type: test-suite
diff --git a/spec/rtems/event/req/mem-snd-rcv.yml b/spec/rtems/event/req/mem-snd-rcv.yml
new file mode 100644
index 0000000..4693933
--- /dev/null
+++ b/spec/rtems/event/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/send:/name} and
+ ${../if/receive:/name}.
+type: requirement
diff --git a/spec/rtems/event/val/mem-snd-rcv.yml b/spec/rtems/event/val/mem-snd-rcv.yml
new file mode 100644
index 0000000..6769000
--- /dev/null
+++ b/spec/rtems/event/val/mem-snd-rcv.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-snd-rcv
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with calls to ${../if/send:/name} and ${../if/receive:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_event_send( 0, 0 );
+ (void) rtems_event_receive( 0, 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-target: testsuites/membench/mem-event-snd-rcv.c
+type: test-suite
diff --git a/spec/rtems/fatal/req/mem-fatal.yml b/spec/rtems/fatal/req/mem-fatal.yml
new file mode 100644
index 0000000..3dca089
--- /dev/null
+++ b/spec/rtems/fatal/req/mem-fatal.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/fatal:/name}.
+type: requirement
diff --git a/spec/rtems/fatal/val/mem-fatal.yml b/spec/rtems/fatal/val/mem-fatal.yml
new file mode 100644
index 0000000..44be873
--- /dev/null
+++ b/spec/rtems/fatal/val/mem-fatal.yml
@@ -0,0 +1,52 @@
+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-fatal
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with a call to ${../if/fatal:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ rtems_fatal( 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-target: testsuites/membench/mem-fatal-fatal.c
+type: test-suite
diff --git a/spec/rtems/part/req/mem-get-ret-del.yml b/spec/rtems/part/req/mem-get-ret-del.yml
new file mode 100644
index 0000000..7395e06
--- /dev/null
+++ b/spec/rtems/part/req/mem-get-ret-del.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-partitions:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/get-buffer:/name},
+ ${../if/return-buffer:/name}, and ${../if/delete:/name}.
+type: requirement
diff --git a/spec/rtems/part/req/mem-get-ret.yml b/spec/rtems/part/req/mem-get-ret.yml
new file mode 100644
index 0000000..f84d951
--- /dev/null
+++ b/spec/rtems/part/req/mem-get-ret.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-partitions:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/get-buffer:/name},
+ and ${../if/return-buffer:/name}.
+type: requirement
diff --git a/spec/rtems/part/val/mem-get-ret-del.yml b/spec/rtems/part/val/mem-get-ret-del.yml
new file mode 100644
index 0000000..0de1790
--- /dev/null
+++ b/spec/rtems/part/val/mem-get-ret-del.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-get-ret-del
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-partitions:/name} defined to one and calls
+ to ${../if/create:/name}, ${../if/get-buffer:/name},
+ ${../if/return-buffer:/name}, and ${../if/delete:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_partition_create( 0, NULL, 0, 0, 0, NULL );
+ (void) rtems_partition_get_buffer( 0, NULL );
+ (void) rtems_partition_return_buffer( 0, NULL );
+ (void) rtems_partition_delete( 0 );
+ }
+
+ #define CONFIGURE_MAXIMUM_PARTITIONS 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-target: testsuites/membench/mem-part-get-ret-del.c
+type: test-suite
diff --git a/spec/rtems/part/val/mem-get-ret.yml b/spec/rtems/part/val/mem-get-ret.yml
new file mode 100644
index 0000000..d10bbdf
--- /dev/null
+++ b/spec/rtems/part/val/mem-get-ret.yml
@@ -0,0 +1,58 @@
+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-ret
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-partitions:/name} defined to one and calls
+ to ${../if/create:/name}, ${../if/get-buffer:/name}, and
+ ${../if/return-buffer:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_partition_create( 0, NULL, 0, 0, 0, NULL );
+ (void) rtems_partition_get_buffer( 0, NULL );
+ (void) rtems_partition_return_buffer( 0, NULL );
+ }
+
+ #define CONFIGURE_MAXIMUM_PARTITIONS 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-target: testsuites/membench/mem-part-get-ret.c
+type: test-suite
diff --git a/spec/rtems/ratemon/req/mem-period-del.yml b/spec/rtems/ratemon/req/mem-period-del.yml
new file mode 100644
index 0000000..5fd8c84
--- /dev/null
+++ b/spec/rtems/ratemon/req/mem-period-del.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-periods:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/period:/name}, and
+ ${../if/delete:/name}.
+type: requirement
diff --git a/spec/rtems/ratemon/req/mem-period.yml b/spec/rtems/ratemon/req/mem-period.yml
new file mode 100644
index 0000000..5ea9f54
--- /dev/null
+++ b/spec/rtems/ratemon/req/mem-period.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 ${/acfg/if/max-periods:/name}
+ defined to one and calls to ${../if/create:/name} and ${../if/period:/name}.
+type: requirement
diff --git a/spec/rtems/ratemon/val/mem-period-del.yml b/spec/rtems/ratemon/val/mem-period-del.yml
new file mode 100644
index 0000000..18348cd
--- /dev/null
+++ b/spec/rtems/ratemon/val/mem-period-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-period-del
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-periods:/name} defined to one and calls to
+ ${../if/create:/name}, ${../if/period:/name}, and ${../if/delete:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_rate_monotonic_create( 0, NULL );
+ (void) rtems_rate_monotonic_period( 0, 0 );
+ (void) rtems_rate_monotonic_delete( 0 );
+ }
+
+ #define CONFIGURE_MAXIMUM_PERIODS 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-target: testsuites/membench/mem-ratemon-period-del.c
+type: test-suite
diff --git a/spec/rtems/ratemon/val/mem-period.yml b/spec/rtems/ratemon/val/mem-period.yml
new file mode 100644
index 0000000..0e960f6
--- /dev/null
+++ b/spec/rtems/ratemon/val/mem-period.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-period
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-periods:/name} defined to one and calls to
+ ${../if/create:/name} and ${../if/period:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_rate_monotonic_create( 0, NULL );
+ (void) rtems_rate_monotonic_period( 0, 0 );
+ }
+
+ #define CONFIGURE_MAXIMUM_PERIODS 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-target: testsuites/membench/mem-ratemon-period.c
+type: test-suite
diff --git a/spec/rtems/req/mem-basic.yml b/spec/rtems/req/mem-basic.yml
new file mode 100644
index 0000000..0c2a13a
--- /dev/null
+++ b/spec/rtems/req/mem-basic.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-benchmark
+non-functional-type: quality
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The system shall provide a benchmark program to show the static memory usage
+ of a basic application configuration.
+type: requirement
diff --git a/spec/rtems/req/mem-smp-1.yml b/spec/rtems/req/mem-smp-1.yml
new file mode 100644
index 0000000..2a82a9e
--- /dev/null
+++ b/spec/rtems/req/mem-smp-1.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: 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-processors:/name}
+ defined to one using the SMP EDF scheduler
+ (${/acfg/if/scheduler-edf-smp:/name}).
+type: requirement
diff --git a/spec/rtems/req/mem-smp-global-2.yml b/spec/rtems/req/mem-smp-global-2.yml
new file mode 100644
index 0000000..3f56e57
--- /dev/null
+++ b/spec/rtems/req/mem-smp-global-2.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: 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 ${/acfg/if/max-processors:/name}
+ defined to two using the global SMP EDF scheduler
+ (${/acfg/if/scheduler-edf-smp:/name}).
+type: requirement
diff --git a/spec/rtems/req/mem-smp-global-4.yml b/spec/rtems/req/mem-smp-global-4.yml
new file mode 100644
index 0000000..d078da1
--- /dev/null
+++ b/spec/rtems/req/mem-smp-global-4.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: 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 ${/acfg/if/max-processors:/name}
+ defined to four using the global SMP EDF scheduler
+ (${/acfg/if/scheduler-edf-smp:/name}).
+type: requirement
diff --git a/spec/rtems/req/mem-smp-part-2.yml b/spec/rtems/req/mem-smp-part-2.yml
new file mode 100644
index 0000000..9554807
--- /dev/null
+++ b/spec/rtems/req/mem-smp-part-2.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: 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 ${/acfg/if/max-processors:/name}
+ defined to two using one SMP EDF scheduler for each configured processor
+ (${/acfg/if/scheduler-edf-smp:/name}).
+type: requirement
diff --git a/spec/rtems/req/mem-smp-part-4.yml b/spec/rtems/req/mem-smp-part-4.yml
new file mode 100644
index 0000000..ab7fe30
--- /dev/null
+++ b/spec/rtems/req/mem-smp-part-4.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: 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 ${/acfg/if/max-processors:/name}
+ defined to four using one SMP EDF scheduler for each configured processor
+ (${/acfg/if/scheduler-edf-smp:/name}).
+type: requirement
diff --git a/spec/rtems/sem/req/mem-obt-rel-del.yml b/spec/rtems/sem/req/mem-obt-rel-del.yml
new file mode 100644
index 0000000..e997aff
--- /dev/null
+++ b/spec/rtems/sem/req/mem-obt-rel-del.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-semaphores:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/obtain:/name},
+ ${../if/release:/name}, and ${../if/delete:/name}.
+type: requirement
diff --git a/spec/rtems/sem/req/mem-obt-rel.yml b/spec/rtems/sem/req/mem-obt-rel.yml
new file mode 100644
index 0000000..1224b32
--- /dev/null
+++ b/spec/rtems/sem/req/mem-obt-rel.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-semaphores:/name}
+ defined to one and calls to ${../if/create:/name}, ${../if/obtain:/name}, and
+ ${../if/release:/name}.
+type: requirement
diff --git a/spec/rtems/sem/val/mem-obt-rel-del.yml b/spec/rtems/sem/val/mem-obt-rel-del.yml
new file mode 100644
index 0000000..3efc7db
--- /dev/null
+++ b/spec/rtems/sem/val/mem-obt-rel-del.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-obt-rel-del
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-semaphores:/name} defined to one and calls
+ to ${../if/create:/name}, ${../if/obtain:/name}, ${../if/release:/name}, and
+ ${../if/delete:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_semaphore_create( 0, 0, 0, 0, NULL );
+ (void) rtems_semaphore_obtain( 0, 0, 0 );
+ (void) rtems_semaphore_release( 0 );
+ (void) rtems_semaphore_delete( 0 );
+ }
+
+ #define CONFIGURE_MAXIMUM_SEMAPHORES 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-target: testsuites/membench/mem-sem-obt-rel-del.c
+type: test-suite
diff --git a/spec/rtems/sem/val/mem-obt-rel.yml b/spec/rtems/sem/val/mem-obt-rel.yml
new file mode 100644
index 0000000..96ec473
--- /dev/null
+++ b/spec/rtems/sem/val/mem-obt-rel.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-obt-rel
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-semaphores:/name} defined to one and calls
+ to ${../if/create:/name}, ${../if/obtain:/name}, and ${../if/release:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_semaphore_create( 0, 0, 0, 0, NULL );
+ (void) rtems_semaphore_obtain( 0, 0, 0 );
+ (void) rtems_semaphore_release( 0 );
+ }
+
+ #define CONFIGURE_MAXIMUM_SEMAPHORES 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-target: testsuites/membench/mem-sem-obt-rel.c
+type: test-suite
diff --git a/spec/rtems/signal/req/mem-catch-snd.yml b/spec/rtems/signal/req/mem-catch-snd.yml
new file mode 100644
index 0000000..fea454a
--- /dev/null
+++ b/spec/rtems/signal/req/mem-catch-snd.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/catch:/name} and
+ ${../if/send:/name}.
+type: requirement
diff --git a/spec/rtems/signal/val/mem-catch-snd.yml b/spec/rtems/signal/val/mem-catch-snd.yml
new file mode 100644
index 0000000..de3beaa
--- /dev/null
+++ b/spec/rtems/signal/val/mem-catch-snd.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-catch-snd
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with calls to ${../if/catch:/name} and ${../if/send:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_signal_catch( NULL, 0 );
+ (void) rtems_signal_send( 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-target: testsuites/membench/mem-signal-catch-snd.c
+type: test-suite
diff --git a/spec/rtems/task/req/mem-del.yml b/spec/rtems/task/req/mem-del.yml
new file mode 100644
index 0000000..f09c2bc
--- /dev/null
+++ b/spec/rtems/task/req/mem-del.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/delete:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-exit.yml b/spec/rtems/task/req/mem-exit.yml
new file mode 100644
index 0000000..669c8db
--- /dev/null
+++ b/spec/rtems/task/req/mem-exit.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/exit:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-restart.yml b/spec/rtems/task/req/mem-restart.yml
new file mode 100644
index 0000000..42c906c
--- /dev/null
+++ b/spec/rtems/task/req/mem-restart.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/restart:/name}.
+type: requirement
diff --git a/spec/rtems/task/req/mem-sus-res.yml b/spec/rtems/task/req/mem-sus-res.yml
new file mode 100644
index 0000000..03f3474
--- /dev/null
+++ b/spec/rtems/task/req/mem-sus-res.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/suspend:/name} and
+ ${../if/resume:/name}.
+type: requirement
diff --git a/spec/rtems/task/val/mem-del.yml b/spec/rtems/task/val/mem-del.yml
new file mode 100644
index 0000000..b41a7f2
--- /dev/null
+++ b/spec/rtems/task/val/mem-del.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-del
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with a call to ${../if/delete:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_task_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-target: testsuites/membench/mem-task-del.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-exit.yml b/spec/rtems/task/val/mem-exit.yml
new file mode 100644
index 0000000..b325e78
--- /dev/null
+++ b/spec/rtems/task/val/mem-exit.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-exit
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with a call to ${../if/exit:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ rtems_task_exit();
+
+ }
+
+ #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-target: testsuites/membench/mem-task-exit.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-restart.yml b/spec/rtems/task/val/mem-restart.yml
new file mode 100644
index 0000000..bc5caf5
--- /dev/null
+++ b/spec/rtems/task/val/mem-restart.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-restart
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with a call to ${../if/restart:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_task_restart( 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-target: testsuites/membench/mem-task-restart.c
+type: test-suite
diff --git a/spec/rtems/task/val/mem-sus-res.yml b/spec/rtems/task/val/mem-sus-res.yml
new file mode 100644
index 0000000..1e6803f
--- /dev/null
+++ b/spec/rtems/task/val/mem-sus-res.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-sus-res
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with calls to ${../if/suspend:/name} and ${../if/resume:/name}.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ (void) rtems_task_suspend( 0 );
+ (void) rtems_task_resume( 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-target: testsuites/membench/mem-task-sus-res.c
+type: test-suite
diff --git a/spec/rtems/val/mem-basic.yml b/spec/rtems/val/mem-basic.yml
new file mode 100644
index 0000000..e7d1605
--- /dev/null
+++ b/spec/rtems/val/mem-basic.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-basic
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration.
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #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: |
+ This resource benchmark is configured for exactly one processor, no clock
+ driver, no Newlib reentrancy support, and no file system.
+test-includes:
+- rtems.h
+test-local-includes: []
+test-target: testsuites/membench/mem-rtems-basic.c
+type: test-suite
diff --git a/spec/rtems/val/mem-smp-1.yml b/spec/rtems/val/mem-smp-1.yml
new file mode 100644
index 0000000..e8543a4
--- /dev/null
+++ b/spec/rtems/val/mem-smp-1.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-smp-1
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-processors:/name} defined to one using the
+ SMP EDF scheduler (${/acfg/if/scheduler-edf-smp:/name}).
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #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-target: testsuites/membench/mem-rtems-smp-1.c
+type: test-suite
diff --git a/spec/rtems/val/mem-smp-global-2.yml b/spec/rtems/val/mem-smp-global-2.yml
new file mode 100644
index 0000000..82da7d1
--- /dev/null
+++ b/spec/rtems/val/mem-smp-global-2.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-smp-global-2
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-processors:/name} defined to two using the
+ global SMP EDF scheduler (${/acfg/if/scheduler-edf-smp:/name}).
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #define CONFIGURE_MAXIMUM_PROCESSORS 2
+
+ #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-target: testsuites/membench/mem-rtems-smp-global-2.c
+type: test-suite
diff --git a/spec/rtems/val/mem-smp-global-4.yml b/spec/rtems/val/mem-smp-global-4.yml
new file mode 100644
index 0000000..6503768
--- /dev/null
+++ b/spec/rtems/val/mem-smp-global-4.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-smp-global-4
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-processors:/name} defined to four using the
+ global SMP EDF scheduler (${/acfg/if/scheduler-edf-smp:/name}).
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #define CONFIGURE_MAXIMUM_PROCESSORS 4
+
+ #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-target: testsuites/membench/mem-rtems-smp-global-4.c
+type: test-suite
diff --git a/spec/rtems/val/mem-smp-part-2.yml b/spec/rtems/val/mem-smp-part-2.yml
new file mode 100644
index 0000000..4be00a3
--- /dev/null
+++ b/spec/rtems/val/mem-smp-part-2.yml
@@ -0,0 +1,76 @@
+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-smp-part-2
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-processors:/name} defined to two using one
+ SMP EDF scheduler for each configured processor
+ (${/acfg/if/scheduler-edf-smp:/name}).
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #define CONFIGURE_MAXIMUM_PROCESSORS 2
+
+ #if defined(RTEMS_SMP)
+ #define CONFIGURE_SCHEDULER_EDF_SMP
+
+ #include <rtems/scheduler.h>
+
+ RTEMS_SCHEDULER_EDF_SMP( a );
+
+ RTEMS_SCHEDULER_EDF_SMP( b );
+
+ #define NAME( x ) rtems_build_name( x, ' ', ' ', ' ' )
+
+ #define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
+ RTEMS_SCHEDULER_TABLE_EDF_SMP( a, NAME( 'A' ) ), \
+ RTEMS_SCHEDULER_TABLE_EDF_SMP( b, NAME( 'B' ) )
+
+ #define CONFIGURE_SCHEDULER_ASSIGNMENTS \
+ RTEMS_SCHEDULER_ASSIGN( 0, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY ), \
+ RTEMS_SCHEDULER_ASSIGN( 1, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY )
+ #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-target: testsuites/membench/mem-rtems-smp-part-2.c
+type: test-suite
diff --git a/spec/rtems/val/mem-smp-part-4.yml b/spec/rtems/val/mem-smp-part-4.yml
new file mode 100644
index 0000000..f6653d0
--- /dev/null
+++ b/spec/rtems/val/mem-smp-part-4.yml
@@ -0,0 +1,84 @@
+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-smp-part-4
+test-brief: |
+ This static memory usage benchmark program facilitates a basic application
+ configuration with ${/acfg/if/max-processors:/name} defined to four using one
+ SMP EDF scheduler for each configured processor
+ (${/acfg/if/scheduler-edf-smp:/name}).
+test-code: |
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+
+ /* Nothing to do */
+ }
+
+ #define CONFIGURE_MAXIMUM_PROCESSORS 4
+
+ #if defined(RTEMS_SMP)
+ #define CONFIGURE_SCHEDULER_EDF_SMP
+
+ #include <rtems/scheduler.h>
+
+ RTEMS_SCHEDULER_EDF_SMP( a );
+
+ RTEMS_SCHEDULER_EDF_SMP( b );
+
+ RTEMS_SCHEDULER_EDF_SMP( c );
+
+ RTEMS_SCHEDULER_EDF_SMP( d );
+
+ #define NAME( x ) rtems_build_name( x, ' ', ' ', ' ' )
+
+ #define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
+ RTEMS_SCHEDULER_TABLE_EDF_SMP( a, NAME( 'A' ) ), \
+ RTEMS_SCHEDULER_TABLE_EDF_SMP( b, NAME( 'B' ) ), \
+ RTEMS_SCHEDULER_TABLE_EDF_SMP( c, NAME( 'C' ) ), \
+ RTEMS_SCHEDULER_TABLE_EDF_SMP( d, NAME( 'D' ) )
+
+ #define CONFIGURE_SCHEDULER_ASSIGNMENTS \
+ RTEMS_SCHEDULER_ASSIGN( 0, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY ), \
+ RTEMS_SCHEDULER_ASSIGN( 1, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY ), \
+ RTEMS_SCHEDULER_ASSIGN( 2, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY ), \
+ RTEMS_SCHEDULER_ASSIGN( 3, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY )
+ #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-target: testsuites/membench/mem-rtems-smp-part-4.c
+type: test-suite
More information about the vc
mailing list