diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-09-07 15:13:25 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-09-07 19:58:14 +0200 |
commit | 3cd32df95c44cc7363fae7eb3aa67ac43ed94f93 (patch) | |
tree | 4f0b088c93b79293b03725b9da9723f99a7f9910 | |
parent | spec: Fix sporadic test failures (diff) | |
download | rtems-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.yml | 20 | ||||
-rw-r--r-- | spec/score/val/fatal.yml | 8 |
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: | |