summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-09-07 15:13:25 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-09-07 19:58:14 +0200
commit3cd32df95c44cc7363fae7eb3aa67ac43ed94f93 (patch)
tree4f0b088c93b79293b03725b9da9723f99a7f9910
parentspec: Fix sporadic test failures (diff)
downloadrtems-central-3cd32df95c44cc7363fae7eb3aa67ac43ed94f93.tar.bz2
spec: Fix fatal error specification
-rw-r--r--spec/score/thread/req/fatal-bad-thread-dispatch-environment-ipi.yml (renamed from spec/score/thread/req/fatal-bad-thread-dispatch-environment.yml)0
-rw-r--r--spec/score/thread/req/fatal-bad-thread-dispatch-environment-robust.yml20
-rw-r--r--spec/score/val/fatal.yml8
3 files changed, 27 insertions, 1 deletions
diff --git a/spec/score/thread/req/fatal-bad-thread-dispatch-environment.yml b/spec/score/thread/req/fatal-bad-thread-dispatch-environment-ipi.yml
index a8c3e08c..a8c3e08c 100644
--- a/spec/score/thread/req/fatal-bad-thread-dispatch-environment.yml
+++ b/spec/score/thread/req/fatal-bad-thread-dispatch-environment-ipi.yml
diff --git a/spec/score/thread/req/fatal-bad-thread-dispatch-environment-robust.yml b/spec/score/thread/req/fatal-bad-thread-dispatch-environment-robust.yml
new file mode 100644
index 00000000..e7313d05
--- /dev/null
+++ b/spec/score/thread/req/fatal-bad-thread-dispatch-environment-robust.yml
@@ -0,0 +1,20 @@
+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:
+- aarch64
+- arm
+- riscv
+links:
+- role: requirement-refinement
+ uid: /req/fatal-error
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ If a thread dispatch is done with maskable interrupts disabled, then the
+ system shall terminate with the ${/score/interr/if/internal-error-core:/name}
+ fatal source and the
+ ${/score/interr/if/bad-thread-dispatch-environment:/name} fatal code.
+type: requirement
diff --git a/spec/score/val/fatal.yml b/spec/score/val/fatal.yml
index 0002ad87..68a2c782 100644
--- a/spec/score/val/fatal.yml
+++ b/spec/score/val/fatal.yml
@@ -40,7 +40,9 @@ test-actions:
id = CreateTask( "BENV", PRIO_HIGH );
StartTask( id, ISRDisabledThreadDispatchTask, NULL );
+ #if CPU_ENABLE_ROBUST_THREAD_DISPATCH == FALSE
if ( rtems_configuration_get_maximum_processors() > 1 ) {
+ #endif
T_eq_uint( GetFatalCounter(), counter + 1 );
T_eq_int( fatal_info.source, INTERNAL_ERROR_CORE );
T_false( fatal_info.always_set_to_false );
@@ -48,16 +50,20 @@ test-actions:
fatal_info.code,
INTERNAL_ERROR_BAD_THREAD_DISPATCH_ENVIRONMENT
);
+ #if CPU_ENABLE_ROBUST_THREAD_DISPATCH == FALSE
} else {
T_eq_uint( GetFatalCounter(), counter );
}
+ #endif
RestoreRunnerPriority();
SetFatalExtension( NULL );
checks: []
links:
- role: validation
- uid: ../thread/req/fatal-bad-thread-dispatch-environment
+ uid: ../thread/req/fatal-bad-thread-dispatch-environment-ipi
+ - role: validation
+ uid: ../thread/req/fatal-bad-thread-dispatch-environment-robust
- role: validation
uid: ../thread/req/thread-dispatch-isr-disabled
- action-brief: |