From e9d9a6ac52f5afd20ae4ff024fea0e6b1de45467 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Sat, 6 Mar 2021 13:52:29 +0100 Subject: 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(+) create mode 100644 spec-glossary/glossary/feature.yml create mode 100644 spec/dev/clock/req/mem-driver.yml create mode 100644 spec/dev/clock/val/mem-driver.yml create mode 100644 spec/req/mem-benchmark.yml create mode 100644 spec/rtems/barrier/req/mem-wait-rel-del.yml create mode 100644 spec/rtems/barrier/req/mem-wait-rel.yml create mode 100644 spec/rtems/barrier/val/mem-wait-rel-del.yml create mode 100644 spec/rtems/barrier/val/mem-wait-rel.yml create mode 100644 spec/rtems/event/req/mem-snd-rcv.yml create mode 100644 spec/rtems/event/val/mem-snd-rcv.yml create mode 100644 spec/rtems/fatal/req/mem-fatal.yml create mode 100644 spec/rtems/fatal/val/mem-fatal.yml create mode 100644 spec/rtems/part/req/mem-get-ret-del.yml create mode 100644 spec/rtems/part/req/mem-get-ret.yml create mode 100644 spec/rtems/part/val/mem-get-ret-del.yml create mode 100644 spec/rtems/part/val/mem-get-ret.yml create mode 100644 spec/rtems/ratemon/req/mem-period-del.yml create mode 100644 spec/rtems/ratemon/req/mem-period.yml create mode 100644 spec/rtems/ratemon/val/mem-period-del.yml create mode 100644 spec/rtems/ratemon/val/mem-period.yml create mode 100644 spec/rtems/req/mem-basic.yml create mode 100644 spec/rtems/req/mem-smp-1.yml create mode 100644 spec/rtems/req/mem-smp-global-2.yml create mode 100644 spec/rtems/req/mem-smp-global-4.yml create mode 100644 spec/rtems/req/mem-smp-part-2.yml create mode 100644 spec/rtems/req/mem-smp-part-4.yml create mode 100644 spec/rtems/sem/req/mem-obt-rel-del.yml create mode 100644 spec/rtems/sem/req/mem-obt-rel.yml create mode 100644 spec/rtems/sem/val/mem-obt-rel-del.yml create mode 100644 spec/rtems/sem/val/mem-obt-rel.yml create mode 100644 spec/rtems/signal/req/mem-catch-snd.yml create mode 100644 spec/rtems/signal/val/mem-catch-snd.yml create mode 100644 spec/rtems/task/req/mem-del.yml create mode 100644 spec/rtems/task/req/mem-exit.yml create mode 100644 spec/rtems/task/req/mem-restart.yml create mode 100644 spec/rtems/task/req/mem-sus-res.yml create mode 100644 spec/rtems/task/val/mem-del.yml create mode 100644 spec/rtems/task/val/mem-exit.yml create mode 100644 spec/rtems/task/val/mem-restart.yml create mode 100644 spec/rtems/task/val/mem-sus-res.yml create mode 100644 spec/rtems/val/mem-basic.yml create mode 100644 spec/rtems/val/mem-smp-1.yml create mode 100644 spec/rtems/val/mem-smp-global-2.yml create mode 100644 spec/rtems/val/mem-smp-global-4.yml create mode 100644 spec/rtems/val/mem-smp-part-2.yml create mode 100644 spec/rtems/val/mem-smp-part-4.yml diff --git a/config.yml b/config.yml index f15a665c..c2bfd1e6 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 00000000..33232062 --- /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 00000000..f185da49 --- /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 00000000..a125d1a8 --- /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 +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 00000000..f38c400c --- /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 00000000..4db9861a --- /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 00000000..89fdf5be --- /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 00000000..9adcc49f --- /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 +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 00000000..f7c54c15 --- /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 +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 00000000..46939338 --- /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 00000000..6769000c --- /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 +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 00000000..3dca0890 --- /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 00000000..44be873c --- /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 +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 00000000..7395e062 --- /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 00000000..f84d9514 --- /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 00000000..0de17904 --- /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 +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 00000000..d10bbdf2 --- /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 +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 00000000..5fd8c847 --- /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 00000000..5ea9f542 --- /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 00000000..18348cd5 --- /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 +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 00000000..0e960f65 --- /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 +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 00000000..0c2a13a2 --- /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 00000000..2a82a9ee --- /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 00000000..3f56e572 --- /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 00000000..d078da1d --- /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 00000000..9554807a --- /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 00000000..ab7fe306 --- /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 00000000..e997aff4 --- /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 00000000..1224b32c --- /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 00000000..3efc7db9 --- /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 +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 00000000..96ec4734 --- /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 +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 00000000..fea454a6 --- /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 00000000..de3beaab --- /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 +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 00000000..f09c2bc6 --- /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 00000000..669c8db3 --- /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 00000000..42c906ca --- /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 00000000..03f3474a --- /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 00000000..b41a7f24 --- /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 +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 00000000..b325e78e --- /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 +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 00000000..bc5caf56 --- /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 +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 00000000..1e6803fd --- /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 +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 00000000..e7d16050 --- /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 +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 00000000..e8543a48 --- /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 +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 00000000..82da7d1f --- /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 +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 00000000..6503768e --- /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 +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 00000000..4be00a35 --- /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_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 +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 00000000..f6653d03 --- /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_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 +test-description: null +test-includes: +- rtems.h +test-local-includes: [] +test-target: testsuites/membench/mem-rtems-smp-part-4.c +type: test-suite -- cgit v1.2.3