summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2022-02-22 10:00:45 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2022-02-23 09:18:17 +0100
commit6e6439456e7b53bcb050078445604b734e618371 (patch)
treebae872248eb1bf3e5d181b1b54e79fd584a2966f
parentspec: Improve requirement wording (diff)
downloadrtems-central-6e6439456e7b53bcb050078445604b734e618371.tar.bz2
spec: Clarify scheduler configuration
-rw-r--r--spec/acfg/constraint/scheduler-assignments-macros.yml15
-rw-r--r--spec/acfg/constraint/scheduler-table-entry-count.yml12
-rw-r--r--spec/acfg/constraint/scheduler-table-entry-macros.yml37
-rw-r--r--spec/acfg/if/header-confdefs.yml (renamed from spec/acfg/if/header.yml)0
-rw-r--r--spec/acfg/if/header-scheduler.yml17
-rw-r--r--spec/acfg/if/scheduler-assign-no-scheduler.yml14
-rw-r--r--spec/acfg/if/scheduler-assign-processor-mandatory.yml14
-rw-r--r--spec/acfg/if/scheduler-assign-processor-optional.yml14
-rw-r--r--spec/acfg/if/scheduler-assign.yml14
-rw-r--r--spec/acfg/if/scheduler-assignments.yml3
-rw-r--r--spec/acfg/if/scheduler-table-entries.yml29
-rw-r--r--spec/acfg/req/scheduler-assign-attributes.yml19
-rw-r--r--spec/acfg/req/scheduler-assign-no-scheduler.yml19
-rw-r--r--spec/acfg/req/scheduler-assign-processor-mandatory.yml20
-rw-r--r--spec/acfg/req/scheduler-assign-processor-optional.yml20
-rw-r--r--spec/acfg/req/scheduler-assign-scheduler.yml19
-rw-r--r--spec/acfg/req/scheduler-assignments.yml2
-rw-r--r--spec/acfg/req/scheduler-table-entries.yml17
-rw-r--r--spec/acfg/val/acfg.yml15
-rw-r--r--spec/rtems/scheduler/val/smp-only.yml77
-rw-r--r--spec/score/smp/val/fatal-boot-processor-not-assigned-to-scheduler.yml4
-rw-r--r--spec/score/smp/val/fatal-mandatory-processor-not-present.yml4
-rw-r--r--spec/score/smp/val/fatal-start-of-mandatory-processor-failed.yml4
-rw-r--r--spec/score/smp/val/start-of-optional-processor-failed.yml2
-rw-r--r--spec/testsuites/validation-smp-only-1.yml2
-rw-r--r--spec/testsuites/validation-smp-only-2.yml2
26 files changed, 377 insertions, 18 deletions
diff --git a/spec/acfg/constraint/scheduler-assignments-macros.yml b/spec/acfg/constraint/scheduler-assignments-macros.yml
index 6099c34b..3bd90cca 100644
--- a/spec/acfg/constraint/scheduler-assignments-macros.yml
+++ b/spec/acfg/constraint/scheduler-assignments-macros.yml
@@ -1,6 +1,6 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
-- Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2020, 2022 embedded brains GmbH (http://www.embedded-brains.de)
enabled-by: true
links:
- role: requirement-refinement
@@ -10,7 +10,18 @@ text: |
The value of the application configuration option shall be a list of the
following macros:
- * ``RTEMS_SCHEDULER_ASSIGN( processor_index, attributes )``
+ * ``RTEMS_SCHEDULER_ASSIGN( scheduler_index, attributes )``
* ``RTEMS_SCHEDULER_ASSIGN_NO_SCHEDULER``
+
+ The ``scheduler_index`` macro parameter shall be a valid index of the
+ scheduler table defined by the ${../if/scheduler-table-entries:/name}
+ application configuration option.
+
+ The ``attributes`` macro parameter shall be set to exactly one of the
+ following constants:
+
+ * ``RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY``
+
+ * ``RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL``
type: constraint
diff --git a/spec/acfg/constraint/scheduler-table-entry-count.yml b/spec/acfg/constraint/scheduler-table-entry-count.yml
new file mode 100644
index 00000000..5b2b4143
--- /dev/null
+++ b/spec/acfg/constraint/scheduler-table-entry-count.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: /req/usage-constraints
+rationale: null
+text: |
+ Where the system was build with SMP support enabled, the table shall have one
+ or more entries, otherwise it shall have exactly one entry.
+type: constraint
diff --git a/spec/acfg/constraint/scheduler-table-entry-macros.yml b/spec/acfg/constraint/scheduler-table-entry-macros.yml
new file mode 100644
index 00000000..2c38af39
--- /dev/null
+++ b/spec/acfg/constraint/scheduler-table-entry-macros.yml
@@ -0,0 +1,37 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: /req/usage-constraints
+rationale: null
+text: |
+ The value of the application configuration option shall be a list of the
+ following macros:
+
+ * ``RTEMS_SCHEDULER_TABLE_CBS( name, obj_name )``
+
+ * ``RTEMS_SCHEDULER_TABLE_EDF( name, obj_name )``
+
+ * ``RTEMS_SCHEDULER_TABLE_EDF_SMP( name, obj_name )``
+
+ * ``RTEMS_SCHEDULER_TABLE_PRIORITY_AFFINITY_SMP( name, obj_name )``
+
+ * ``RTEMS_SCHEDULER_TABLE_PRIORITY( name, obj_name )``
+
+ * ``RTEMS_SCHEDULER_TABLE_PRIORITY_SMP( name, obj_name )``
+
+ * ``RTEMS_SCHEDULER_TABLE_SIMPLE( name, obj_name )``
+
+ * ``RTEMS_SCHEDULER_TABLE_SIMPLE_SMP( name, obj_name )``
+
+ * ``RTEMS_SCHEDULER_TABLE_STRONG_APA( name, obj_name )``
+
+ The ``name`` macro parameter shall be the name associated with the scheduler
+ data structures, see ${/doc/if/config-scheduler-clustered:/name}.
+
+ The ``obj_name`` macro parameter shall be the scheduler object name. It is
+ recommended to define the scheduler object name through
+ ${/rtems/object/if/build-name:/name}.
+type: constraint
diff --git a/spec/acfg/if/header.yml b/spec/acfg/if/header-confdefs.yml
index ba1932df..ba1932df 100644
--- a/spec/acfg/if/header.yml
+++ b/spec/acfg/if/header-confdefs.yml
diff --git a/spec/acfg/if/header-scheduler.yml b/spec/acfg/if/header-scheduler.yml
new file mode 100644
index 00000000..5337f1e6
--- /dev/null
+++ b/spec/acfg/if/header-scheduler.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ This header file provides interfaces to define a scheduler application
+ configuration.
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: header-file
+links:
+- role: interface-placement
+ uid: domain
+- role: interface-ingroup
+ uid: group
+path: rtems/scheduler.h
+prefix: cpukit/include
+type: interface
diff --git a/spec/acfg/if/scheduler-assign-no-scheduler.yml b/spec/acfg/if/scheduler-assign-no-scheduler.yml
new file mode 100644
index 00000000..bf169fd6
--- /dev/null
+++ b/spec/acfg/if/scheduler-assign-no-scheduler.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: unspecified-define
+links:
+- role: interface-placement
+ uid: header-scheduler
+- role: interface-ingroup
+ uid: group-schedgeneral
+name: RTEMS_SCHEDULER_ASSIGN_NO_SCHEDULER
+references: []
+type: interface
diff --git a/spec/acfg/if/scheduler-assign-processor-mandatory.yml b/spec/acfg/if/scheduler-assign-processor-mandatory.yml
new file mode 100644
index 00000000..3cf53fe0
--- /dev/null
+++ b/spec/acfg/if/scheduler-assign-processor-mandatory.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: unspecified-define
+links:
+- role: interface-placement
+ uid: header-scheduler
+- role: interface-ingroup
+ uid: group-schedgeneral
+name: RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY
+references: []
+type: interface
diff --git a/spec/acfg/if/scheduler-assign-processor-optional.yml b/spec/acfg/if/scheduler-assign-processor-optional.yml
new file mode 100644
index 00000000..2bcb89f1
--- /dev/null
+++ b/spec/acfg/if/scheduler-assign-processor-optional.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: unspecified-define
+links:
+- role: interface-placement
+ uid: header-scheduler
+- role: interface-ingroup
+ uid: group-schedgeneral
+name: RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL
+references: []
+type: interface
diff --git a/spec/acfg/if/scheduler-assign.yml b/spec/acfg/if/scheduler-assign.yml
new file mode 100644
index 00000000..69fab675
--- /dev/null
+++ b/spec/acfg/if/scheduler-assign.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: unspecified-function
+links:
+- role: interface-placement
+ uid: header-scheduler
+- role: interface-ingroup
+ uid: group-schedgeneral
+name: RTEMS_SCHEDULER_ASSIGN
+references: []
+type: interface
diff --git a/spec/acfg/if/scheduler-assignments.yml b/spec/acfg/if/scheduler-assignments.yml
index 21fc3c5b..e46cc17c 100644
--- a/spec/acfg/if/scheduler-assignments.yml
+++ b/spec/acfg/if/scheduler-assignments.yml
@@ -20,7 +20,8 @@ links:
uid: ../constraint/scheduler-assignments-count
name: CONFIGURE_SCHEDULER_ASSIGNMENTS
notes: |
- This configuration option is only evaluated in SMP configurations.
+ Where the system was built with SMP support enabled, this configuration
+ option is evaluated, otherwise it is ignored.
This is an advanced configuration option, see
${/doc/if/config-scheduler-clustered:/name}.
diff --git a/spec/acfg/if/scheduler-table-entries.yml b/spec/acfg/if/scheduler-table-entries.yml
new file mode 100644
index 00000000..9a5520bc
--- /dev/null
+++ b/spec/acfg/if/scheduler-table-entries.yml
@@ -0,0 +1,29 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: initializer
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+default-value: |
+ The default value of this configuration option is the definition of exactly
+ one table entry for the configured scheduler.
+description: |
+ The value of this configuration option is used to initialize the table of
+ configured schedulers.
+enabled-by: true
+index-entries: []
+interface-type: appl-config-option
+links:
+- role: appl-config-group-member
+ uid: group-schedgeneral
+- role: constraint
+ uid: ../constraint/scheduler-table-entry-macros
+- role: constraint
+ uid: ../constraint/scheduler-table-entry-count
+name: CONFIGURE_SCHEDULER_TABLE_ENTRIES
+notes: |
+ Schedulers registered in the scheduler table by this configuration option are
+ available to the application. The scheduler table entry index defines the
+ index of the scheduler.
+
+ This is an advanced configuration option, see
+ ${/doc/if/config-scheduler-clustered:/name}.
+type: interface
diff --git a/spec/acfg/req/scheduler-assign-attributes.yml b/spec/acfg/req/scheduler-assign-attributes.yml
new file mode 100644
index 00000000..9bb058f5
--- /dev/null
+++ b/spec/acfg/req/scheduler-assign-attributes.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: RTEMS_SMP
+functional-type: function
+links:
+- role: interface-function
+ uid: ../if/scheduler-assign
+- role: requirement-refinement
+ uid: scheduler-assignments
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ While the ${../if/scheduler-assign:/name} macro is used to define an entry of
+ a ${../if/scheduler-assignments:/name} application configuration option
+ value, the attributes defined by the second parameter shall define the
+ scheduler assignment attributes for the processor associated with the entry.
+type: requirement
diff --git a/spec/acfg/req/scheduler-assign-no-scheduler.yml b/spec/acfg/req/scheduler-assign-no-scheduler.yml
new file mode 100644
index 00000000..34da724c
--- /dev/null
+++ b/spec/acfg/req/scheduler-assign-no-scheduler.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: RTEMS_SMP
+functional-type: function
+links:
+- role: interface-function
+ uid: ../if/scheduler-assign-no-scheduler
+- role: requirement-refinement
+ uid: scheduler-assignments
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ While the ${../if/scheduler-assign-no-scheduler:/name} define is used to
+ define an entry of a ${../if/scheduler-assignments:/name} application
+ configuration option value, the processor associated with the entry shall not
+ have a scheduler assigned.
+type: requirement
diff --git a/spec/acfg/req/scheduler-assign-processor-mandatory.yml b/spec/acfg/req/scheduler-assign-processor-mandatory.yml
new file mode 100644
index 00000000..decd5414
--- /dev/null
+++ b/spec/acfg/req/scheduler-assign-processor-mandatory.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: RTEMS_SMP
+functional-type: function
+links:
+- role: interface-function
+ uid: ../if/scheduler-assign-processor-mandatory
+- role: requirement-refinement
+ uid: scheduler-assign-attributes
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ While the ${../if/scheduler-assign-processor-mandatory:/name} define is used
+ as the second parameter in the ${../if/scheduler-assign:/name} macro in an
+ entry of a ${../if/scheduler-assignments:/name} application configuration
+ option value, the presence of the processor associated with the entry in the
+ ${/glossary/target:/term} shall be mandatory.
+type: requirement
diff --git a/spec/acfg/req/scheduler-assign-processor-optional.yml b/spec/acfg/req/scheduler-assign-processor-optional.yml
new file mode 100644
index 00000000..df9c936d
--- /dev/null
+++ b/spec/acfg/req/scheduler-assign-processor-optional.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: RTEMS_SMP
+functional-type: function
+links:
+- role: interface-function
+ uid: ../if/scheduler-assign-processor-optional
+- role: requirement-refinement
+ uid: scheduler-assign-attributes
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ While the ${../if/scheduler-assign-processor-optional:/name} define is used
+ as the second parameter in the ${../if/scheduler-assign:/name} macro in an
+ entry of a ${../if/scheduler-assignments:/name} application configuration
+ option value, the presence of the processor associated with the entry in the
+ ${/glossary/target:/term} shall be optional.
+type: requirement
diff --git a/spec/acfg/req/scheduler-assign-scheduler.yml b/spec/acfg/req/scheduler-assign-scheduler.yml
new file mode 100644
index 00000000..ba3d75e3
--- /dev/null
+++ b/spec/acfg/req/scheduler-assign-scheduler.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: RTEMS_SMP
+functional-type: function
+links:
+- role: interface-function
+ uid: ../if/scheduler-assign
+- role: requirement-refinement
+ uid: scheduler-assignments
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ While the ${../if/scheduler-assign:/name} macro is used to define an entry of
+ a ${../if/scheduler-assignments:/name} application configuration option
+ value, the scheduler associated with the first parameter shall be assigned to
+ the processor associated with the entry.
+type: requirement
diff --git a/spec/acfg/req/scheduler-assignments.yml b/spec/acfg/req/scheduler-assignments.yml
index 65da39ce..967f6450 100644
--- a/spec/acfg/req/scheduler-assignments.yml
+++ b/spec/acfg/req/scheduler-assignments.yml
@@ -1,7 +1,7 @@
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
+enabled-by: RTEMS_SMP
functional-type: function
links:
- role: interface-function
diff --git a/spec/acfg/req/scheduler-table-entries.yml b/spec/acfg/req/scheduler-table-entries.yml
new file mode 100644
index 00000000..1aee7644
--- /dev/null
+++ b/spec/acfg/req/scheduler-table-entries.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+ uid: ../if/scheduler-table-entries
+- role: requirement-refinement
+ uid: group
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The application configuration option shall define the entries of the table of
+ configured schedulers.
+type: requirement
diff --git a/spec/acfg/val/acfg.yml b/spec/acfg/val/acfg.yml
index 7419d4bc..a962424e 100644
--- a/spec/acfg/val/acfg.yml
+++ b/spec/acfg/val/acfg.yml
@@ -7,13 +7,14 @@ test-actions:
- action-brief: |
Check the effect of application configuration options. In addition, this
test case validates the effect of ${../if/init:/name}. The test case
- includes ${../if/header:/path} without defining ${../if/init:/name} before
- the include. If this header would define configuration data structures,
- then linking the test suite executable would result in multiple definition
- errors. This header is included in the test suite runner translation unit
- while ${../if/init:/name} is defined before the include. If this would not
- result in the definition of application defined configuration data
- structures, then the checks below for non-default settings would fail.
+ includes ${../if/header-confdefs:/path} without defining
+ ${../if/init:/name} before the include. If this header would define
+ configuration data structures, then linking the test suite executable would
+ result in multiple definition errors. This header is included in the test
+ suite runner translation unit while ${../if/init:/name} is defined before
+ the include. If this would not result in the definition of application
+ defined configuration data structures, then the checks below for
+ non-default settings would fail.
action-code: |
rtems_status_code sc;
rtems_id id;
diff --git a/spec/rtems/scheduler/val/smp-only.yml b/spec/rtems/scheduler/val/smp-only.yml
index de174b23..64651279 100644
--- a/spec/rtems/scheduler/val/smp-only.yml
+++ b/spec/rtems/scheduler/val/smp-only.yml
@@ -63,6 +63,82 @@ test-actions:
links:
- role: validation
uid: ../req/get-processor-maximum-smp-only
+- action-brief: |
+ Call ${../if/ident:/name} for each configured scheduler.
+ action-code: |
+ rtems_status_code sc;
+ rtems_id id[ 4 ];
+ rtems_id id_by_cpu;
+
+ sc = rtems_scheduler_ident( TEST_SCHEDULER_A_NAME, &id[ 0 ]);
+ T_step_rsc_success( ${step}, sc );
+
+ sc = rtems_scheduler_ident( TEST_SCHEDULER_B_NAME, &id[ 1 ]);
+ T_step_rsc_success( ${step}, sc );
+
+ sc = rtems_scheduler_ident( TEST_SCHEDULER_C_NAME, &id[ 2 ]);
+ T_step_rsc_success( ${step}, sc );
+
+ sc = rtems_scheduler_ident( TEST_SCHEDULER_D_NAME, &id[ 3 ]);
+ T_step_rsc_success( ${step}, sc );
+ checks:
+ - brief: |
+ Check that the object index of scheduler A has the expected value.
+ code: |
+ T_step_eq_u16( ${step}, rtems_object_id_get_index( id[ 0 ] ), 1 );
+ links: []
+ - brief: |
+ Check that the object index of scheduler B has the expected value.
+ code: |
+ T_step_eq_u16( ${step}, rtems_object_id_get_index( id[ 1 ] ), 2 );
+ links: []
+ - brief: |
+ Check that the object index of scheduler C has the expected value.
+ code: |
+ T_step_eq_u16( ${step}, rtems_object_id_get_index( id[ 2 ] ), 3 );
+ links: []
+ - brief: |
+ Check that the object index of scheduler D has the expected value.
+ code: |
+ T_step_eq_u16( ${step}, rtems_object_id_get_index( id[ 3 ] ), 4 );
+ links: []
+ - brief: |
+ Check that processor 0 has scheduler A assigned.
+ code: |
+ sc = rtems_scheduler_ident_by_processor( 0, &id_by_cpu );
+ T_step_rsc_success( ${step}, sc );
+ T_step_eq_u32( ${step}, id[ 0 ], id_by_cpu );
+ links:
+ - role: validation
+ uid: /acfg/req/scheduler-assign-scheduler
+ - brief: |
+ Check that processor 1 has scheduler B assigned.
+ code: |
+ sc = rtems_scheduler_ident_by_processor( 1, &id_by_cpu );
+ T_step_rsc_success( ${step}, sc );
+ T_step_eq_u32( ${step}, id[ 1 ], id_by_cpu );
+ links:
+ - role: validation
+ uid: /acfg/req/scheduler-assign-scheduler
+ - brief: |
+ Check that processor 2 has scheduler C assigned if it is present.
+ code: |
+ sc = rtems_scheduler_ident_by_processor( 2, &id_by_cpu );
+ T_step_true( ${step}, sc == RTEMS_INVALID_NAME || id[ 2 ] == id_by_cpu );
+ links:
+ - role: validation
+ uid: /acfg/req/scheduler-assign-scheduler
+ - brief: |
+ Check that processor 3 has scheduler C assigned if it is present.
+ code: |
+ sc = rtems_scheduler_ident_by_processor( 3, &id_by_cpu );
+ T_step_true( ${step}, sc == RTEMS_INVALID_NAME || id[ 2 ] == id_by_cpu );
+ links:
+ - role: validation
+ uid: /acfg/req/scheduler-assign-scheduler
+ links:
+ - role: validation
+ uid: /acfg/req/scheduler-table-entries
test-brief: |
This test case collection provides validation test cases for SMP-only
requirements of the ${../if/group:/name}.
@@ -73,6 +149,7 @@ test-header: null
test-includes:
- rtems.h
test-local-includes:
+- ts-config.h
- tx-support.h
test-setup: null
test-stop: null
diff --git a/spec/score/smp/val/fatal-boot-processor-not-assigned-to-scheduler.yml b/spec/score/smp/val/fatal-boot-processor-not-assigned-to-scheduler.yml
index 1351261e..88cde501 100644
--- a/spec/score/smp/val/fatal-boot-processor-not-assigned-to-scheduler.yml
+++ b/spec/score/smp/val/fatal-boot-processor-not-assigned-to-scheduler.yml
@@ -28,7 +28,9 @@ test-actions:
links:
- role: validation
uid: ../req/fatal-boot-processor-not-assigned-to-scheduler
- links: []
+ links:
+ - role: validation
+ uid: /acfg/req/scheduler-assign-no-scheduler
test-brief: |
Tests a fatal error.
test-context: []
diff --git a/spec/score/smp/val/fatal-mandatory-processor-not-present.yml b/spec/score/smp/val/fatal-mandatory-processor-not-present.yml
index 15882f9c..405d0a65 100644
--- a/spec/score/smp/val/fatal-mandatory-processor-not-present.yml
+++ b/spec/score/smp/val/fatal-mandatory-processor-not-present.yml
@@ -28,7 +28,9 @@ test-actions:
links:
- role: validation
uid: ../req/fatal-mandatory-processor-not-present
- links: []
+ links:
+ - role: validation
+ uid: /acfg/req/scheduler-assign-processor-mandatory
test-brief: |
Tests a fatal error.
test-context: []
diff --git a/spec/score/smp/val/fatal-start-of-mandatory-processor-failed.yml b/spec/score/smp/val/fatal-start-of-mandatory-processor-failed.yml
index 91a2df39..7d91dfd4 100644
--- a/spec/score/smp/val/fatal-start-of-mandatory-processor-failed.yml
+++ b/spec/score/smp/val/fatal-start-of-mandatory-processor-failed.yml
@@ -28,7 +28,9 @@ test-actions:
links:
- role: validation
uid: ../req/fatal-start-of-mandatory-processor-failed
- links: []
+ links:
+ - role: validation
+ uid: /acfg/req/scheduler-assign-processor-mandatory
test-brief: |
Tests a fatal error.
test-context: []
diff --git a/spec/score/smp/val/start-of-optional-processor-failed.yml b/spec/score/smp/val/start-of-optional-processor-failed.yml
index fad48b94..a34d2874 100644
--- a/spec/score/smp/val/start-of-optional-processor-failed.yml
+++ b/spec/score/smp/val/start-of-optional-processor-failed.yml
@@ -34,6 +34,8 @@ test-actions:
links:
- role: validation
uid: ../req/start-of-optional-processor-failed-continue
+ - role: validation
+ uid: /acfg/req/scheduler-assign-processor-optional
test-brief: |
Tests the state of an optional processor which failed to start.
test-context: []
diff --git a/spec/testsuites/validation-smp-only-1.yml b/spec/testsuites/validation-smp-only-1.yml
index fa6e1270..4dab7dc6 100644
--- a/spec/testsuites/validation-smp-only-1.yml
+++ b/spec/testsuites/validation-smp-only-1.yml
@@ -5,8 +5,6 @@ enabled-by: RTEMS_SMP
links:
- role: requirement-refinement
uid: /req/test-suites
-- role: validation
- uid: /acfg/req/scheduler-assignments
test-brief: |
This SMP-only test suite validates the clustered scheduler configuration
through an application configuration with a processor maximum of two,
diff --git a/spec/testsuites/validation-smp-only-2.yml b/spec/testsuites/validation-smp-only-2.yml
index 945e4d0c..4336d236 100644
--- a/spec/testsuites/validation-smp-only-2.yml
+++ b/spec/testsuites/validation-smp-only-2.yml
@@ -5,8 +5,6 @@ enabled-by: RTEMS_SMP
links:
- role: requirement-refinement
uid: /req/test-suites
-- role: validation
- uid: /acfg/req/scheduler-assignments
test-brief: |
This SMP-only test suite validates the clustered scheduler configuration
through an application configuration with a processor maximum of two. The