[rtems-central commit] spec: Add application configuration requirements

Sebastian Huber sebh at rtems.org
Tue Sep 28 09:14:44 UTC 2021


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

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Sep 28 08:34:13 2021 +0200

spec: Add application configuration requirements

---

 spec/acfg/val/acfg.yml                             | 238 +++++++++++++++++++++
 spec/rtems/config/req/get-idle-task-stack-size.yml |  15 ++
 spec/rtems/config/req/get-idle-task.yml            |  15 ++
 spec/rtems/config/req/get-interrupt-stack-size.yml |  15 ++
 spec/rtems/config/req/get-maximum-barriers.yml     |  16 ++
 spec/rtems/config/req/get-maximum-extensions.yml   |  16 ++
 .../config/req/get-maximum-message-queues.yml      |  16 ++
 spec/rtems/config/req/get-maximum-partitions.yml   |  16 ++
 spec/rtems/config/req/get-maximum-periods.yml      |  16 ++
 spec/rtems/config/req/get-maximum-processors.yml   |  15 ++
 spec/rtems/config/req/get-maximum-semaphores.yml   |  16 ++
 spec/rtems/config/req/get-maximum-tasks.yml        |  16 ++
 spec/rtems/config/req/get-maximum-timers.yml       |  16 ++
 .../rtems/config/req/get-microseconds-per-tick.yml |  16 ++
 .../rtems/config/req/get-milliseconds-per-tick.yml |  16 ++
 spec/rtems/config/req/get-nanoseconds-per-tick.yml |  16 ++
 spec/rtems/config/req/get-stack-allocate-hook.yml  |  15 ++
 .../req/get-stack-allocator-avoids-work-space.yml  |  16 ++
 spec/rtems/config/req/get-stack-free-hook.yml      |  15 ++
 spec/rtems/config/req/get-ticks-per-timeslice.yml  |  16 ++
 spec/testsuites/terminate.yml                      |   2 -
 spec/testsuites/validation-0.yml                   |   2 +
 22 files changed, 538 insertions(+), 2 deletions(-)

diff --git a/spec/acfg/val/acfg.yml b/spec/acfg/val/acfg.yml
new file mode 100644
index 0000000..00f7875
--- /dev/null
+++ b/spec/acfg/val/acfg.yml
@@ -0,0 +1,238 @@
+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: []
+test-actions:
+- action-brief: |
+    Check the effect of application configuration options.
+  action-code: |
+    /* Nothing to do */
+  checks:
+  - brief: |
+      Check that the configured
+      ${/acfg/if/min-tasks-with-user-provided-storage:/name} value reduced the
+      stack space size.
+    code: |
+      T_eq_uptr(
+        _Stack_Space_size,
+        RTEMS_ALIGN_UP( HEAP_BLOCK_HEADER_SIZE, CPU_HEAP_ALIGNMENT )
+      );
+    links:
+    - role: validation
+      uid: ../if/min-tasks-with-user-provided-storage
+  - brief: |
+      Check the configured ${/acfg/if/max-barriers:/name} value.
+    code: |
+      T_eq_u32(
+        rtems_configuration_get_maximum_barriers(),
+        TEST_MAXIMUM_BARRIERS
+      );
+    links:
+    - role: validation
+      uid: ../if/max-barriers
+    - role: validation
+      uid: /rtems/config/if/get-maximum-barriers
+  - brief: |
+      Check the configured ${/acfg/if/max-user-extensions:/name} value.
+    code: |
+      T_eq_u32(
+        rtems_configuration_get_maximum_extensions(),
+        TEST_MAXIMUM_USER_EXTENSIONS
+      );
+    links:
+    - role: validation
+      uid: ../if/max-user-extensions
+    - role: validation
+      uid: /rtems/config/if/get-maximum-extensions
+  - brief: |
+      Check the configured ${/acfg/if/max-message-queues:/name} value.
+    code: |
+      T_eq_u32(
+        rtems_configuration_get_maximum_message_queues(),
+        TEST_MAXIMUM_MESSAGE_QUEUES
+      );
+    links:
+    - role: validation
+      uid: ../if/max-message-queues
+    - role: validation
+      uid: /rtems/config/if/get-maximum-message-queues
+  - brief: |
+      Check the configured ${/acfg/if/max-partitions:/name} value.
+    code: |
+      T_eq_u32(
+        rtems_configuration_get_maximum_partitions(),
+        TEST_MAXIMUM_PARTITIONS
+      );
+    links:
+    - role: validation
+      uid: ../if/max-partitions
+    - role: validation
+      uid: /rtems/config/if/get-maximum-partitions
+  - brief: |
+      Check the configured ${/acfg/if/max-periods:/name} value.
+    code: |
+      T_eq_u32(
+        rtems_configuration_get_maximum_periods(),
+        TEST_MAXIMUM_PERIODS
+      );
+    links:
+    - role: validation
+      uid: ../if/max-periods
+    - role: validation
+      uid: /rtems/config/if/get-maximum-periods
+  - brief: |
+      Check the configured ${/acfg/if/max-processors:/name} value.
+    code: |
+      T_eq_u32(
+        rtems_configuration_get_maximum_processors(),
+      #if defined(RTEMS_SMP)
+        5
+      #else
+        1
+      #endif
+      );
+    links:
+    - role: validation
+      uid: ../if/max-processors
+    - role: validation
+      uid: /rtems/config/if/get-maximum-processors
+  - brief: |
+      Check the configured ${/acfg/if/max-semaphores:/name} value.
+    code: |
+      T_eq_u32(
+        rtems_configuration_get_maximum_semaphores(),
+        TEST_MAXIMUM_SEMAPHORES
+      );
+    links:
+    - role: validation
+      uid: ../if/max-semaphores
+    - role: validation
+      uid: /rtems/config/if/get-maximum-semaphores
+  - brief: |
+      Check the configured ${/acfg/if/max-tasks:/name} value.
+    code: |
+      T_eq_u32(
+        rtems_configuration_get_maximum_tasks(),
+        TEST_MAXIMUM_TASKS
+      );
+    links:
+    - role: validation
+      uid: ../if/max-tasks
+    - role: validation
+      uid: /rtems/config/if/get-maximum-tasks
+  - brief: |
+      Check the configured ${/acfg/if/max-timers:/name} value.
+    code: |
+      T_eq_u32(
+        rtems_configuration_get_maximum_timers(),
+        TEST_MAXIMUM_TIMERS
+      );
+    links:
+    - role: validation
+      uid: ../if/max-timers
+    - role: validation
+      uid: /rtems/config/if/get-maximum-timers
+  - brief: |
+      Check the configured ${/acfg/if/microseconds-per-tick:/name} value in
+      microseconds.
+    code: |
+      T_eq_u32(
+        rtems_configuration_get_microseconds_per_tick(),
+        TEST_MICROSECONDS_PER_TICK
+      );
+    links:
+    - role: validation
+      uid: ../if/microseconds-per-tick
+    - role: validation
+      uid: /rtems/config/if/get-microseconds-per-tick
+  - brief: |
+      Check the configured ${/acfg/if/microseconds-per-tick:/name} value in
+      milliseconds.
+    code: |
+      T_eq_u32(
+        rtems_configuration_get_milliseconds_per_tick(),
+        TEST_MICROSECONDS_PER_TICK / 1000
+      );
+    links:
+    - role: validation
+      uid: ../if/microseconds-per-tick
+    - role: validation
+      uid: /rtems/config/if/get-milliseconds-per-tick
+  - brief: |
+      Check the configured ${/acfg/if/microseconds-per-tick:/name} value in
+      nanoseconds.
+    code: |
+      T_eq_u32(
+        rtems_configuration_get_nanoseconds_per_tick(),
+        TEST_MICROSECONDS_PER_TICK * 1000
+      );
+    links:
+    - role: validation
+      uid: ../if/microseconds-per-tick
+    - role: validation
+      uid: /rtems/config/if/get-nanoseconds-per-tick
+  - brief: |
+      Check the configured ${/acfg/if/task-stack-allocator:/name} hook.
+    code: |
+      T_eq_ptr(
+        rtems_configuration_get_stack_allocate_hook(),
+        test_task_stack_allocate
+      );
+    links:
+    - role: validation
+      uid: ../if/task-stack-allocator
+    - role: validation
+      uid: /rtems/config/if/get-stack-allocate-hook
+  - brief: |
+      Check the configured ${/acfg/if/task-stack-no-workspace:/name} value.
+    code: |
+      T_true( rtems_configuration_get_stack_allocator_avoids_work_space() );
+    links:
+    - role: validation
+      uid: ../if/task-stack-no-workspace
+    - role: validation
+      uid: /rtems/config/if/get-stack-allocator-avoids-work-space
+  - brief: |
+      Check the configured ${/acfg/if/task-stack-deallocator:/name} hook.
+    code: |
+      T_eq_ptr(
+        rtems_configuration_get_stack_free_hook(),
+        test_task_stack_deallocate
+      );
+    links:
+    - role: validation
+      uid: ../if/task-stack-deallocator
+    - role: validation
+      uid: /rtems/config/if/get-stack-free-hook
+  - brief: |
+      Check the configured ${/acfg/if/ticks-per-time-slice:/name} value.
+    code: |
+      T_eq_u32(
+        rtems_configuration_get_ticks_per_timeslice(),
+        TEST_TICKS_PER_TIMESLICE
+      );
+    links:
+    - role: validation
+      uid: ../if/ticks-per-time-slice
+    - role: validation
+      uid: /rtems/config/if/get-ticks-per-timeslice
+  links: []
+test-brief: |
+  Tests the effect of application configuration options.
+test-context: []
+test-context-support: null
+test-description: null
+test-header: null
+test-includes:
+- rtems.h
+- rtems/score/heap.h
+test-local-includes:
+- ts-config.h
+- tx-support.h
+test-setup: null
+test-stop: null
+test-support: null
+test-target: testsuites/validation/tc-acfg.c
+test-teardown: null
+type: test-case
diff --git a/spec/rtems/config/req/get-idle-task-stack-size.yml b/spec/rtems/config/req/get-idle-task-stack-size.yml
new file mode 100644
index 0000000..8502a44
--- /dev/null
+++ b/spec/rtems/config/req/get-idle-task-stack-size.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-idle-task-stack-size
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-idle-task-stack-size:/name} directive shall return the IDLE
+  task stack size configured by ${/acfg/if/idle-task-stack-size:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-idle-task.yml b/spec/rtems/config/req/get-idle-task.yml
new file mode 100644
index 0000000..88208c8
--- /dev/null
+++ b/spec/rtems/config/req/get-idle-task.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-idle-task
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-idle-task:/name} directive shall return the IDLE task body
+  configured by ${/acfg/if/idle-task-body:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-interrupt-stack-size.yml b/spec/rtems/config/req/get-interrupt-stack-size.yml
new file mode 100644
index 0000000..0191557
--- /dev/null
+++ b/spec/rtems/config/req/get-interrupt-stack-size.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-interrupt-stack-size
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-interrupt-stack-size:/name} directive shall return the
+  interrupt stack size configured by ${/acfg/if/interrupt-stack-size:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-maximum-barriers.yml b/spec/rtems/config/req/get-maximum-barriers.yml
new file mode 100644
index 0000000..09cd799
--- /dev/null
+++ b/spec/rtems/config/req/get-maximum-barriers.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-maximum-barriers
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-maximum-barriers:/name} directive shall return the maximum
+  number of Classic API Barriers that can be concurrently active configured by
+  ${/acfg/if/max-barriers:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-maximum-extensions.yml b/spec/rtems/config/req/get-maximum-extensions.yml
new file mode 100644
index 0000000..d9aac20
--- /dev/null
+++ b/spec/rtems/config/req/get-maximum-extensions.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-maximum-extensions
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-maximum-extensions:/name} directive shall return the maximum
+  number of Classic API User Extensions that can be concurrently active
+  configured by ${/acfg/if/max-user-extensions:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-maximum-message-queues.yml b/spec/rtems/config/req/get-maximum-message-queues.yml
new file mode 100644
index 0000000..ea87d2e
--- /dev/null
+++ b/spec/rtems/config/req/get-maximum-message-queues.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-maximum-message-queues
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-maximum-message-queues:/name} directive shall return the
+  maximum number of Classic API Message Queues that can be concurrently active
+  configured by ${/acfg/if/max-message-queues:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-maximum-partitions.yml b/spec/rtems/config/req/get-maximum-partitions.yml
new file mode 100644
index 0000000..8a99e00
--- /dev/null
+++ b/spec/rtems/config/req/get-maximum-partitions.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-maximum-partitions
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-maximum-partitions:/name} directive shall return the maximum
+  number of Classic API Partitions that can be concurrently active configured
+  by ${/acfg/if/max-partitions:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-maximum-periods.yml b/spec/rtems/config/req/get-maximum-periods.yml
new file mode 100644
index 0000000..fca759c
--- /dev/null
+++ b/spec/rtems/config/req/get-maximum-periods.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-maximum-periods
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-maximum-periods:/name} directive shall return the maximum
+  number of Classic API Periods that can be concurrently active configured by
+  ${/acfg/if/max-periods:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-maximum-processors.yml b/spec/rtems/config/req/get-maximum-processors.yml
new file mode 100644
index 0000000..00ac633
--- /dev/null
+++ b/spec/rtems/config/req/get-maximum-processors.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-maximum-processors
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-maximum-processors:/name} directive shall return the maximum
+  number of processors configured by ${/acfg/if/max-processors:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-maximum-semaphores.yml b/spec/rtems/config/req/get-maximum-semaphores.yml
new file mode 100644
index 0000000..d8dd775
--- /dev/null
+++ b/spec/rtems/config/req/get-maximum-semaphores.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-maximum-semaphores
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-maximum-semaphores:/name} directive shall return the maximum
+  number of Classic API Semaphores that can be concurrently active configured
+  by ${/acfg/if/max-semaphores:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-maximum-tasks.yml b/spec/rtems/config/req/get-maximum-tasks.yml
new file mode 100644
index 0000000..8215991
--- /dev/null
+++ b/spec/rtems/config/req/get-maximum-tasks.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-maximum-tasks
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-maximum-tasks:/name} directive shall return the maximum
+  number of Classic API Tasks that can be concurrently active configured by
+  ${/acfg/if/max-tasks:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-maximum-timers.yml b/spec/rtems/config/req/get-maximum-timers.yml
new file mode 100644
index 0000000..71e8901
--- /dev/null
+++ b/spec/rtems/config/req/get-maximum-timers.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-maximum-timers
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-maximum-timers:/name} directive shall return the maximum
+  number of Classic API Timers that can be concurrently active configured by
+  ${/acfg/if/max-timers:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-microseconds-per-tick.yml b/spec/rtems/config/req/get-microseconds-per-tick.yml
new file mode 100644
index 0000000..8d36b75
--- /dev/null
+++ b/spec/rtems/config/req/get-microseconds-per-tick.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-microseconds-per-tick
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-microseconds-per-tick:/name} directive shall return the
+  ${/glossary/clock-tick:/term} interval in microseconds configured by
+  ${/acfg/if/microseconds-per-tick:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-milliseconds-per-tick.yml b/spec/rtems/config/req/get-milliseconds-per-tick.yml
new file mode 100644
index 0000000..34bb8a5
--- /dev/null
+++ b/spec/rtems/config/req/get-milliseconds-per-tick.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-milliseconds-per-tick
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-milliseconds-per-tick:/name} directive shall return the
+  ${/glossary/clock-tick:/term} interval in milliseconds configured by
+  ${/acfg/if/microseconds-per-tick:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-nanoseconds-per-tick.yml b/spec/rtems/config/req/get-nanoseconds-per-tick.yml
new file mode 100644
index 0000000..ad82916
--- /dev/null
+++ b/spec/rtems/config/req/get-nanoseconds-per-tick.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-nanoseconds-per-tick
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-nanoseconds-per-tick:/name} directive shall return the
+  ${/glossary/clock-tick:/term} interval in nanoseconds configured by
+  ${/acfg/if/microseconds-per-tick:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-stack-allocate-hook.yml b/spec/rtems/config/req/get-stack-allocate-hook.yml
new file mode 100644
index 0000000..f3cc964
--- /dev/null
+++ b/spec/rtems/config/req/get-stack-allocate-hook.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-stack-allocate-hook
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-stack-allocate-hook:/name} directive shall return the task
+  stack allocator hook configured by ${/acfg/if/task-stack-allocator:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-stack-allocator-avoids-work-space.yml b/spec/rtems/config/req/get-stack-allocator-avoids-work-space.yml
new file mode 100644
index 0000000..dd5916a
--- /dev/null
+++ b/spec/rtems/config/req/get-stack-allocator-avoids-work-space.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-stack-allocator-avoids-work-space
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-stack-allocator-avoids-work-space:/name} directive shall
+  return the option value configured by
+  ${/acfg/if/task-stack-no-workspace:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-stack-free-hook.yml b/spec/rtems/config/req/get-stack-free-hook.yml
new file mode 100644
index 0000000..c2824e7
--- /dev/null
+++ b/spec/rtems/config/req/get-stack-free-hook.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-stack-free-hook
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-stack-free-hook:/name} directive shall return the task stack
+  free hook configured by ${/acfg/if/task-stack-deallocator:/name}.
+type: requirement
diff --git a/spec/rtems/config/req/get-ticks-per-timeslice.yml b/spec/rtems/config/req/get-ticks-per-timeslice.yml
new file mode 100644
index 0000000..df2716f
--- /dev/null
+++ b/spec/rtems/config/req/get-ticks-per-timeslice.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: interface-function
+  uid: ../if/get-ticks-per-timeslice
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+  The ${../if/get-ticks-per-timeslice:/name} directive shall return the number
+  of ${/glossary/clock-tick:/plural} per timeslice configured by
+  ${/acfg/if/ticks-per-time-slice:/name}.
+type: requirement
diff --git a/spec/testsuites/terminate.yml b/spec/testsuites/terminate.yml
index 8ac5466..fdf3635 100644
--- a/spec/testsuites/terminate.yml
+++ b/spec/testsuites/terminate.yml
@@ -5,8 +5,6 @@ enabled-by: true
 links:
 - role: requirement-refinement
   uid: /req/test-suites
-- role: validation
-  uid: /acfg/req/disable-bsp-settings
 test-brief: |
   This validation test suite contains a test case for the system termination
   procedure.
diff --git a/spec/testsuites/validation-0.yml b/spec/testsuites/validation-0.yml
index 2204e86..85447c6 100644
--- a/spec/testsuites/validation-0.yml
+++ b/spec/testsuites/validation-0.yml
@@ -5,6 +5,8 @@ enabled-by: true
 links:
 - role: requirement-refinement
   uid: /req/test-suites
+- role: validation
+  uid: /acfg/if/appl-needs-clock-driver
 test-brief: |
   This general purpose validation test suite provides enough resources to run
   basic tests for all specified managers and functions.



More information about the vc mailing list