[rtems-central commit] spec: Use ${.:/step}

Sebastian Huber sebh at rtems.org
Tue May 9 13:45:26 UTC 2023


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

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri May  5 14:41:19 2023 +0200

spec: Use ${.:/step}

---

 rtemsspec/tests/spec-validation/tc.yml             |   6 +-
 rtemsspec/tests/spec-validation/tc3.yml            |   2 +-
 rtemsspec/tests/spec-validation/tc5.yml            |   4 +-
 rtemsspec/tests/spec-validation/tc7.yml            |   2 +-
 rtemsspec/tests/spec-validation/tc8.yml            |   2 +-
 rtemsspec/validation.py                            |  28 +--
 spec/acfg/val/appl-does-not-need-clock-driver.yml  |   2 +-
 spec/acfg/val/appl-needs-clock-driver.yml          |   2 +-
 spec/acfg/val/default.yml                          |  30 +--
 spec/acfg/val/fatal-init-task-construct-failed.yml |   6 +-
 spec/acfg/val/fatal-too-large-tls-size.yml         |   6 +-
 .../val/fatal-cache-snooping-disabled-boot.yml     |   4 +-
 .../fatal-cache-snooping-disabled-secondary.yml    |   4 +-
 .../sparc/leon3/val/fatal-clock-initialization.yml |   4 +-
 spec/bsp/sparc/leon3/val/fatal-shutdown.yml        |  10 +-
 spec/dev/grlib/val/io.yml                          |  20 +-
 spec/rtems/attr/val/attr.yml                       |  46 ++--
 spec/rtems/basedefs/val/basedefs-no-debug.yml      |   4 +-
 spec/rtems/basedefs/val/basedefs.yml               | 256 ++++++++++-----------
 spec/rtems/cache/val/cache.yml                     |   8 +-
 spec/rtems/clock/val/clock.yml                     |   8 +-
 spec/rtems/event/val/event-constant.yml            |  64 +++---
 spec/rtems/event/val/events.yml                    |  10 +-
 spec/rtems/io/val/kernel.yml                       |   2 +-
 spec/rtems/message/val/message-macros.yml          |   8 +-
 spec/rtems/mode/val/modes.yml                      |  34 +--
 spec/rtems/object/val/object.yml                   |   4 +-
 spec/rtems/option/val/options.yml                  |  14 +-
 spec/rtems/part/val/part.yml                       |  44 ++--
 spec/rtems/scheduler/val/scheduler.yml             |   4 +-
 spec/rtems/scheduler/val/smp-only.yml              |  34 +--
 spec/rtems/signal/val/signal-constant.yml          |  10 +-
 spec/rtems/signal/val/signals.yml                  |   2 +-
 spec/rtems/support/val/support.yml                 |   8 +-
 spec/rtems/task/val/smp.yml                        |  10 +-
 spec/rtems/task/val/task.yml                       |  24 +-
 spec/score/interr/val/terminate.yml                |  80 +++----
 ...al-boot-processor-not-assigned-to-scheduler.yml |   4 +-
 .../val/fatal-mandatory-processor-not-present.yml  |   4 +-
 ...al-scheduler-requires-exactly-one-processor.yml |   4 +-
 .../fatal-start-of-mandatory-processor-failed.yml  |   4 +-
 .../val/fatal-start-on-not-online-processor.yml    |   4 +-
 spec/score/smp/val/fatal.yml                       |  24 +-
 spec/score/smp/val/per-cpu-jobs.yml                |   4 +-
 .../smp/val/start-of-optional-processor-failed.yml |   4 +-
 .../thread/val/fatal-idle-thread-create-failed.yml |   4 +-
 .../val/fatal-idle-thread-stack-too-small.yml      |   6 +-
 spec/score/thread/val/tls-max-zero.yml             |   4 +-
 spec/score/thread/val/tls.yml                      |   8 +-
 49 files changed, 437 insertions(+), 443 deletions(-)

diff --git a/rtemsspec/tests/spec-validation/tc.yml b/rtemsspec/tests/spec-validation/tc.yml
index 0ee06063..c72b7c84 100644
--- a/rtemsspec/tests/spec-validation/tc.yml
+++ b/rtemsspec/tests/spec-validation/tc.yml
@@ -12,12 +12,12 @@ test-actions:
   - brief: |
       Test case action 0 check 0 description.
     code: |
-      /* Test case action 0 check 0 code: ${steps/123} */
+      /* Test case action 0 check 0 code: ${.:/step:123} */
     links: []
   - brief: |
       Test case action 0 check 1 description.
     code: |
-      /* Test case action 0 check 1 code; step ${step} */
+      /* Test case action 0 check 1 code; step ${.:/step} */
     links: []
   links: []
 - action-brief: |
@@ -28,7 +28,7 @@ test-actions:
   - brief: |
       Test case action 1 check 0 description.
     code: |
-      /* Test case action 1 check 0 code; step ${step} */
+      /* Test case action 1 check 0 code; step ${.:/step} */
     links: []
   - brief: |
       Test case action 1 check 1 description.
diff --git a/rtemsspec/tests/spec-validation/tc3.yml b/rtemsspec/tests/spec-validation/tc3.yml
index 0914c522..cfd0353c 100644
--- a/rtemsspec/tests/spec-validation/tc3.yml
+++ b/rtemsspec/tests/spec-validation/tc3.yml
@@ -12,7 +12,7 @@ test-actions:
   - brief: |
       Test case 3 action 0 check 0 description.
     code: |
-      /* Test case 3 action 0 check 0 code; step ${step} */
+      /* Test case 3 action 0 check 0 code; step ${.:/step} */
     links: []
   links: []
 test-brief: Test case 3 brief description.
diff --git a/rtemsspec/tests/spec-validation/tc5.yml b/rtemsspec/tests/spec-validation/tc5.yml
index 0b39181a..4b189aa2 100644
--- a/rtemsspec/tests/spec-validation/tc5.yml
+++ b/rtemsspec/tests/spec-validation/tc5.yml
@@ -17,7 +17,7 @@ test-actions:
   - brief: |
       Test case action 0 check 1 description.
     code: |
-      /* Test case action 0 check 1 code; step ${step} */
+      /* Test case action 0 check 1 code; step ${.:/step} */
     links: []
   links: []
 - action-brief: |
@@ -28,7 +28,7 @@ test-actions:
   - brief: |
       Test case action 1 check 0 description.
     code: |
-      /* Test case action 1 check 0 code; step ${step} */
+      /* Test case action 1 check 0 code; step ${.:/step} */
     links: []
   - brief: |
       Test case action 1 check 1 description.
diff --git a/rtemsspec/tests/spec-validation/tc7.yml b/rtemsspec/tests/spec-validation/tc7.yml
index 606546e4..591edfa2 100644
--- a/rtemsspec/tests/spec-validation/tc7.yml
+++ b/rtemsspec/tests/spec-validation/tc7.yml
@@ -7,7 +7,7 @@ test-actions:
 - action-brief: |
     Action.
   action-code: |
-    /* ${step} */
+    /* ${.:/step} */
   checks: []
   links: []
 test-brief: null
diff --git a/rtemsspec/tests/spec-validation/tc8.yml b/rtemsspec/tests/spec-validation/tc8.yml
index 6b905623..3945c7b8 100644
--- a/rtemsspec/tests/spec-validation/tc8.yml
+++ b/rtemsspec/tests/spec-validation/tc8.yml
@@ -7,7 +7,7 @@ test-actions:
 - action-brief: |
     Action.
   action-code: |
-    /* ${step} */
+    /* ${.:/step} */
   checks: []
   links: []
 test-brief: null
diff --git a/rtemsspec/validation.py b/rtemsspec/validation.py
index ce7602be..484cc3d4 100644
--- a/rtemsspec/validation.py
+++ b/rtemsspec/validation.py
@@ -29,7 +29,6 @@
 import itertools
 import functools
 import os
-import re
 from typing import Any, Dict, List, Optional, Tuple
 
 from rtemsspec.content import CContent, CInclude, enabled_by_to_exp, \
@@ -42,8 +41,6 @@ from rtemsspec.transitionmap import TransitionMap
 
 _CaseToSuite = Dict[str, List["_TestItem"]]
 
-_STEPS = re.compile(r"^steps/([0-9]+)$")
-
 
 def _get_test_context_instance(ctx: ItemGetValueContext) -> Any:
     return f"{ctx.item.ident}_Instance"
@@ -90,6 +87,7 @@ class _Mapper(ItemMapper):
                            _get_test_run)
         self.add_get_value("runtime-measurement-test:/test-context-type",
                            _get_test_context_type)
+        self.add_get_value("test-case:/step", self._get_step)
         self.add_get_value("test-case:/test-context-instance",
                            _get_test_context_instance)
         self.add_get_value("test-case:/test-context-type",
@@ -106,20 +104,16 @@ class _Mapper(ItemMapper):
         """ Resets the test step counter. """
         self._step = 0
 
-    def map(self,
-            identifier: str,
-            item: Optional[Item] = None,
-            prefix: Optional[str] = None) -> Tuple[Item, str, Any]:
-        if identifier == "step":
-            step = self._step
-            self._step = step + 1
-            return self._item, "step", str(step)
-        match = _STEPS.search(identifier)
-        if match:
-            inc = int(match.group(1))
-            self._step += inc
-            return self._item, "step", f"Accounts for {inc} test plan steps"
-        return super().map(identifier, item, prefix)
+    def _get_step(self, ctx: ItemGetValueContext) -> Any:
+        if ctx.args is None:
+            inc = 1
+        else:
+            inc = int(ctx.args)
+        step = self._step
+        self._step = step + inc
+        if ctx.args is None:
+            return str(step)
+        return f"Accounts for {inc} test plan steps"
 
 
 def _add_ingroup(content: CContent, items: List["_TestItem"]) -> None:
diff --git a/spec/acfg/val/appl-does-not-need-clock-driver.yml b/spec/acfg/val/appl-does-not-need-clock-driver.yml
index f468744a..be62af1d 100644
--- a/spec/acfg/val/appl-does-not-need-clock-driver.yml
+++ b/spec/acfg/val/appl-does-not-need-clock-driver.yml
@@ -36,7 +36,7 @@ test-actions:
       waiting for more than one clock tick interval.
     code: |
       T_step_eq_u32(
-        ${step},
+        ${.:/step},
         rtems_clock_get_ticks_since_boot(),
         ticks_since_boot
       );
diff --git a/spec/acfg/val/appl-needs-clock-driver.yml b/spec/acfg/val/appl-needs-clock-driver.yml
index dab34ddf..34fe9c99 100644
--- a/spec/acfg/val/appl-needs-clock-driver.yml
+++ b/spec/acfg/val/appl-needs-clock-driver.yml
@@ -36,7 +36,7 @@ test-actions:
       for more than one clock tick interval.
     code: |
       T_step_gt_u32(
-        ${step},
+        ${.:/step},
         rtems_clock_get_ticks_since_boot() - ticks_since_boot,
         0
       );
diff --git a/spec/acfg/val/default.yml b/spec/acfg/val/default.yml
index 50323cc6..bdbafb9e 100644
--- a/spec/acfg/val/default.yml
+++ b/spec/acfg/val/default.yml
@@ -13,7 +13,7 @@ test-actions:
   - brief: |
       Check the configured ${/acfg/if/idle-task-body:/name}.
     code: |
-      T_step_eq_ptr( ${step}, rtems_configuration_get_idle_task(), IdleBody );
+      T_step_eq_ptr( ${.:/step}, rtems_configuration_get_idle_task(), IdleBody );
     links:
     - role: validation
       uid: ../if/idle-task-body
@@ -24,7 +24,7 @@ test-actions:
       the optional BSP-provided default value is enabled.
     code: |
       T_step_eq_sz(
-        ${step},
+        ${.:/step},
         rtems_configuration_get_idle_task_stack_size(),
       #if defined(BSP_IDLE_TASK_STACK_SIZE)
         BSP_IDLE_TASK_STACK_SIZE
@@ -42,7 +42,7 @@ test-actions:
       the optional BSP-provided default value is enabled.
     code: |
       T_step_eq_sz(
-        ${step},
+        ${.:/step},
         rtems_configuration_get_interrupt_stack_size(),
       #if defined(BSP_INTERRUPT_STACK_SIZE)
         BSP_INTERRUPT_STACK_SIZE
@@ -58,9 +58,9 @@ test-actions:
   - brief: |
       Check the BSP-provided initial extension is registered.
     code: |
-      T_step_eq_sz( ${step}, _User_extensions_Initial_count, 1 );
+      T_step_eq_sz( ${.:/step}, _User_extensions_Initial_count, 1 );
       T_step_eq_ptr(
-        ${step},
+        ${.:/step},
         _User_extensions_Initial_extensions[ 0 ].fatal,
         bsp.fatal
       );
@@ -87,7 +87,7 @@ test-actions:
       Check that the returned status code is
       ${/rtems/status/if/too-many:/name}.
     code: |
-      T_step_rsc( ${step}, sc, RTEMS_TOO_MANY );
+      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
     links:
     - role: validation
       uid: ../if/max-barriers
@@ -114,7 +114,7 @@ test-actions:
       Check that the returned status code is
       ${/rtems/status/if/too-many:/name}.
     code: |
-      T_step_rsc( ${step}, sc, RTEMS_TOO_MANY );
+      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
     links:
     - role: validation
       uid: ../if/max-message-queues
@@ -139,7 +139,7 @@ test-actions:
       Check that the returned status code is
       ${/rtems/status/if/too-many:/name}.
     code: |
-      T_step_rsc( ${step}, sc, RTEMS_TOO_MANY );
+      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
     links:
     - role: validation
       uid: ../if/max-partitions
@@ -156,7 +156,7 @@ test-actions:
       Check that the returned status code is
       ${/rtems/status/if/too-many:/name}.
     code: |
-      T_step_rsc( ${step}, sc, RTEMS_TOO_MANY );
+      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
     links:
     - role: validation
       uid: ../if/max-periods
@@ -164,7 +164,7 @@ test-actions:
 - action-brief: |
     Check that the processor maximum is one.
   action-code: |
-    T_step_eq_u32( ${step}, rtems_scheduler_get_processor_maximum(), 1 );
+    T_step_eq_u32( ${.:/step}, rtems_scheduler_get_processor_maximum(), 1 );
   checks: []
   links:
   - role: validation
@@ -187,7 +187,7 @@ test-actions:
       Check that the returned status code is
       ${/rtems/status/if/too-many:/name}.
     code: |
-      T_step_rsc( ${step}, sc, RTEMS_TOO_MANY );
+      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
     links:
     - role: validation
       uid: ../if/max-semaphores
@@ -204,7 +204,7 @@ test-actions:
       Check that the returned status code is
       ${/rtems/status/if/too-many:/name}.
     code: |
-      T_step_rsc( ${step}, sc, RTEMS_TOO_MANY );
+      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
     links:
     - role: validation
       uid: ../if/max-tasks
@@ -217,7 +217,7 @@ test-actions:
       suite containing the test case.  The test suite defines
       ${../if/idle-task-init-appl:/name}.
     code: |
-      T_step_eq_u32( ${step}, rtems_configuration_get_maximum_tasks(), 0 );
+      T_step_eq_u32( ${.:/step}, rtems_configuration_get_maximum_tasks(), 0 );
     links:
     - role: validation
       uid: ../req/max-tasks
@@ -238,7 +238,7 @@ test-actions:
       Check that the returned status code is
       ${/rtems/status/if/too-many:/name}.
     code: |
-      T_step_rsc( ${step}, sc, RTEMS_TOO_MANY );
+      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
     links:
     - role: validation
       uid: ../if/max-timers
@@ -257,7 +257,7 @@ test-actions:
       Check that the returned status code is
       ${/rtems/status/if/too-many:/name}.
     code: |
-      T_step_rsc( ${step}, sc, RTEMS_TOO_MANY );
+      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
     links:
     - role: validation
       uid: ../if/max-user-extensions
diff --git a/spec/acfg/val/fatal-init-task-construct-failed.yml b/spec/acfg/val/fatal-init-task-construct-failed.yml
index 83e10347..29f70905 100644
--- a/spec/acfg/val/fatal-init-task-construct-failed.yml
+++ b/spec/acfg/val/fatal-init-task-construct-failed.yml
@@ -13,7 +13,7 @@ test-actions:
   - brief: |
       Check that the expected fatal source is present.
     code: |
-      T_step_eq_int( ${step}, ctx->source, INTERNAL_ERROR_CORE );
+      T_step_eq_int( ${.:/step}, ctx->source, INTERNAL_ERROR_CORE );
     links:
     - role: validation
       uid: ../req/fatal-init-task-construct-failed
@@ -21,7 +21,7 @@ test-actions:
       Check that the expected fatal code is present.
     code: |
       T_step_eq_ulong(
-        ${step},
+        ${.:/step},
         ctx->code,
         INTERNAL_ERROR_RTEMS_INIT_TASK_CONSTRUCT_FAILED
       );
@@ -33,7 +33,7 @@ test-actions:
       configuration option resulted in the expected system setting.
     code: |
       T_step_eq_u32(
-        ${step},
+        ${.:/step},
         _RTEMS_tasks_User_task_config.config.initial_priority,
         0
       );
diff --git a/spec/acfg/val/fatal-too-large-tls-size.yml b/spec/acfg/val/fatal-too-large-tls-size.yml
index 0d8f2e8a..5e841461 100644
--- a/spec/acfg/val/fatal-too-large-tls-size.yml
+++ b/spec/acfg/val/fatal-too-large-tls-size.yml
@@ -19,7 +19,7 @@ test-actions:
   - brief: |
       Check that the expected fatal source is present.
     code: |
-      T_step_eq_int( ${step}, ctx->source, INTERNAL_ERROR_CORE );
+      T_step_eq_int( ${.:/step}, ctx->source, INTERNAL_ERROR_CORE );
     links:
     - role: validation
       uid: ../req/fatal-too-large-tls-size
@@ -27,7 +27,7 @@ test-actions:
       Check that the expected fatal code is present.
     code: |
       T_step_eq_ulong(
-        ${step},
+        ${.:/step},
         ctx->code,
         INTERNAL_ERROR_TOO_LARGE_TLS_SIZE
       );
@@ -39,7 +39,7 @@ test-actions:
       application configuration option resulted in the expected system setting.
     code: |
       T_step_eq_sz(
-        ${step},
+        ${.:/step},
         _Thread_Maximum_TLS_size,
         RTEMS_TASK_STORAGE_ALIGNMENT
       );
diff --git a/spec/bsp/sparc/leon3/val/fatal-cache-snooping-disabled-boot.yml b/spec/bsp/sparc/leon3/val/fatal-cache-snooping-disabled-boot.yml
index 2d89bbdd..7b2bda7c 100644
--- a/spec/bsp/sparc/leon3/val/fatal-cache-snooping-disabled-boot.yml
+++ b/spec/bsp/sparc/leon3/val/fatal-cache-snooping-disabled-boot.yml
@@ -16,7 +16,7 @@ test-actions:
   - brief: |
       Check that the expected fatal source is present.
     code: |
-      T_step_eq_int( ${step}, ctx->source, RTEMS_FATAL_SOURCE_BSP );
+      T_step_eq_int( ${.:/step}, ctx->source, RTEMS_FATAL_SOURCE_BSP );
     links:
     - role: validation
       uid: ../req/fatal-cache-snooping-disabled-boot
@@ -24,7 +24,7 @@ test-actions:
       Check that the expected fatal code is present.
     code: |
       T_step_eq_ulong(
-        ${step},
+        ${.:/step},
         ctx->code,
         LEON3_FATAL_INVALID_CACHE_CONFIG_BOOT_PROCESSOR
       );
diff --git a/spec/bsp/sparc/leon3/val/fatal-cache-snooping-disabled-secondary.yml b/spec/bsp/sparc/leon3/val/fatal-cache-snooping-disabled-secondary.yml
index 6d5b0fc2..bee5ae4a 100644
--- a/spec/bsp/sparc/leon3/val/fatal-cache-snooping-disabled-secondary.yml
+++ b/spec/bsp/sparc/leon3/val/fatal-cache-snooping-disabled-secondary.yml
@@ -16,7 +16,7 @@ test-actions:
   - brief: |
       Check that the expected fatal source is present.
     code: |
-      T_step_eq_int( ${step}, ctx->source, RTEMS_FATAL_SOURCE_BSP );
+      T_step_eq_int( ${.:/step}, ctx->source, RTEMS_FATAL_SOURCE_BSP );
     links:
     - role: validation
       uid: ../req/fatal-cache-snooping-disabled-secondary
@@ -24,7 +24,7 @@ test-actions:
       Check that the expected fatal code is present.
     code: |
       T_step_eq_ulong(
-        ${step},
+        ${.:/step},
         ctx->code,
         LEON3_FATAL_INVALID_CACHE_CONFIG_SECONDARY_PROCESSOR
       );
diff --git a/spec/bsp/sparc/leon3/val/fatal-clock-initialization.yml b/spec/bsp/sparc/leon3/val/fatal-clock-initialization.yml
index 5890f6ba..0a80c670 100644
--- a/spec/bsp/sparc/leon3/val/fatal-clock-initialization.yml
+++ b/spec/bsp/sparc/leon3/val/fatal-clock-initialization.yml
@@ -13,7 +13,7 @@ test-actions:
   - brief: |
       Check that the expected fatal source is present.
     code: |
-      T_step_eq_int( ${step}, ctx->source, RTEMS_FATAL_SOURCE_BSP );
+      T_step_eq_int( ${.:/step}, ctx->source, RTEMS_FATAL_SOURCE_BSP );
     links:
     - role: validation
       uid: ../req/fatal-clock-initialization
@@ -21,7 +21,7 @@ test-actions:
       Check that the expected fatal code is present.
     code: |
       T_step_eq_ulong(
-        ${step},
+        ${.:/step},
         ctx->code,
         LEON3_FATAL_CLOCK_INITIALIZATION
       );
diff --git a/spec/bsp/sparc/leon3/val/fatal-shutdown.yml b/spec/bsp/sparc/leon3/val/fatal-shutdown.yml
index 55d37104..17ae35a8 100644
--- a/spec/bsp/sparc/leon3/val/fatal-shutdown.yml
+++ b/spec/bsp/sparc/leon3/val/fatal-shutdown.yml
@@ -19,7 +19,7 @@ test-actions:
       Check that the second processor was not powered down during system
       initialization.
     code: |
-      T_step_eq_u32( ${step}, mpstat_during_sysinit & 0x2, 0 );
+      T_step_eq_u32( ${.:/step}, mpstat_during_sysinit & 0x2, 0 );
     links: []
   - brief: |
       Wait until the second processor is powered down.
@@ -33,22 +33,22 @@ test-actions:
       fatal error occurred exactly once.
     code: |
       counter = Add( &shutdown_response_counter, 0 );
-      T_step_eq_uint( ${step}, counter, 1 );
+      T_step_eq_uint( ${.:/step}, counter, 1 );
     links: []
   - brief: |
       Check that the RTEMS_FATAL_SOURCE_SMP with SMP_FATAL_SHUTDOWN_RESPONSE
       fatal error occurred on the second processor.
     code: |
-      T_step_eq_u32( ${step}, shutdown_response_cpu_index, 1 );
+      T_step_eq_u32( ${.:/step}, shutdown_response_cpu_index, 1 );
     links: []
   - brief: |
       Check that no dynamic fatal error extension was invoked.  This shows that
       the leon3 BSP family shutdown procedure called the wrapped
       _CPU_Fatal_halt() function of the test suite.
     code: |
-      T_step_rsc_success( ${step}, status );
+      T_step_rsc_success( ${.:/step}, status );
       counter = Add( &dynamic_fatal_extension_counter, 0 );
-      T_step_eq_u32( ${step}, dynamic_fatal_extension_counter, 0 );
+      T_step_eq_u32( ${.:/step}, dynamic_fatal_extension_counter, 0 );
     links:
     - role: validation
       uid: ../req/fatal-shutdown-halt
diff --git a/spec/dev/grlib/val/io.yml b/spec/dev/grlib/val/io.yml
index 0d7d46c6..3e06d266 100644
--- a/spec/dev/grlib/val/io.yml
+++ b/spec/dev/grlib/val/io.yml
@@ -16,7 +16,7 @@ test-actions:
   - brief: |
       Check that the returned value is equal to the prepared value.
     code: |
-      T_step_eq_u8( ${step}, val_8, 0x81 );
+      T_step_eq_u8( ${.:/step}, val_8, 0x81 );
     links:
     - role: validation
       uid: ../req/load-08
@@ -33,7 +33,7 @@ test-actions:
   - brief: |
       Check that the returned value is equal to the prepared value.
     code: |
-      T_step_eq_u16( ${step}, val_16, 0x8001 );
+      T_step_eq_u16( ${.:/step}, val_16, 0x8001 );
     links:
     - role: validation
       uid: ../req/load-16
@@ -50,7 +50,7 @@ test-actions:
   - brief: |
       Check that the returned value is equal to the prepared value.
     code: |
-      T_step_eq_u32( ${step}, val_32, 0x80000001 );
+      T_step_eq_u32( ${.:/step}, val_32, 0x80000001 );
     links:
     - role: validation
       uid: ../req/load-32
@@ -67,7 +67,7 @@ test-actions:
   - brief: |
       Check that the returned value is equal to the prepared value.
     code: |
-      T_step_eq_u64( ${step}, val_64, 0x8000000000000001 );
+      T_step_eq_u64( ${.:/step}, val_64, 0x8000000000000001 );
     links:
     - role: validation
       uid: ../req/load-64
@@ -82,7 +82,7 @@ test-actions:
   - brief: |
       Check that the value of the object is equal to the stored value.
     code: |
-      T_step_eq_u8( ${step}, reg_8, 0x81 );
+      T_step_eq_u8( ${.:/step}, reg_8, 0x81 );
     links:
     - role: validation
       uid: ../req/store-08
@@ -97,7 +97,7 @@ test-actions:
   - brief: |
       Check that the value of the object is equal to the stored value.
     code: |
-      T_step_eq_u16( ${step}, reg_16, 0x8001 );
+      T_step_eq_u16( ${.:/step}, reg_16, 0x8001 );
     links:
     - role: validation
       uid: ../req/store-16
@@ -112,7 +112,7 @@ test-actions:
   - brief: |
       Check that the value of the object is equal to the stored value.
     code: |
-      T_step_eq_u32( ${step}, reg_32, 0x80000001 );
+      T_step_eq_u32( ${.:/step}, reg_32, 0x80000001 );
     links:
     - role: validation
       uid: ../req/store-32
@@ -127,7 +127,7 @@ test-actions:
   - brief: |
       Check that the value of the object is equal to the stored value.
     code: |
-      T_step_eq_u64( ${step}, reg_64, 0x8000000000000001 );
+      T_step_eq_u64( ${.:/step}, reg_64, 0x8000000000000001 );
     links:
     - role: validation
       uid: ../req/store-64
@@ -147,7 +147,7 @@ test-actions:
   - brief: |
       Check that the transmitter FIFO empty flag was set by ApbuartIORelax().
     code: |
-      T_step_eq_u32( ${step}, regs.status, APBUART_STATUS_TE );
+      T_step_eq_u32( ${.:/step}, regs.status, APBUART_STATUS_TE );
     links:
     - role: validation
       uid: ../req/apbuart-outbyte-wait
@@ -157,7 +157,7 @@ test-actions:
       Check that the data register was written by
       ${../if/apbuart-outbyte-polled:/name}.
     code: |
-      T_step_eq_u32( ${step}, regs.data, 0xff );
+      T_step_eq_u32( ${.:/step}, regs.data, 0xff );
     links:
     - role: validation
       uid: ../req/apbuart-outbyte-polled
diff --git a/spec/rtems/attr/val/attr.yml b/spec/rtems/attr/val/attr.yml
index eef9c4ea..75f8e11f 100644
--- a/spec/rtems/attr/val/attr.yml
+++ b/spec/rtems/attr/val/attr.yml
@@ -12,7 +12,7 @@ test-actions:
   - brief: |
       Check that RTEMS_BARRIER_AUTOMATIC_RELEASE is a power of two.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_BARRIER_AUTOMATIC_RELEASE ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_BARRIER_AUTOMATIC_RELEASE ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -21,7 +21,7 @@ test-actions:
   - brief: |
       Check that RTEMS_BINARY_SEMAPHORE is a power of two.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_BINARY_SEMAPHORE ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_BINARY_SEMAPHORE ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -30,7 +30,7 @@ test-actions:
   - brief: |
       Check that RTEMS_FLOATING_POINT is a power of two.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_FLOATING_POINT ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_FLOATING_POINT ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -39,7 +39,7 @@ test-actions:
   - brief: |
       Check that RTEMS_GLOBAL is a power of two.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_GLOBAL ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_GLOBAL ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -48,7 +48,7 @@ test-actions:
   - brief: |
       Check that RTEMS_INHERIT_PRIORITY is a power of two.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_INHERIT_PRIORITY ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_INHERIT_PRIORITY ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -58,7 +58,7 @@ test-actions:
       Check that RTEMS_MULTIPROCESSOR_RESOURCE_SHARING is a power of two.
     code: |
       T_step_true(
-        ${step},
+        ${.:/step},
         IsPowerOfTwo( RTEMS_MULTIPROCESSOR_RESOURCE_SHARING )
       );
     links:
@@ -69,7 +69,7 @@ test-actions:
   - brief: |
       Check that RTEMS_PRIORITY is a power of two.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_PRIORITY ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_PRIORITY ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -78,7 +78,7 @@ test-actions:
   - brief: |
       Check that RTEMS_PRIORITY_CEILING is a power of two.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_PRIORITY_CEILING ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_PRIORITY_CEILING ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -87,7 +87,7 @@ test-actions:
   - brief: |
       Check that RTEMS_SIMPLE_BINARY_SEMAPHORE is a power of two.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_SIMPLE_BINARY_SEMAPHORE ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_SIMPLE_BINARY_SEMAPHORE ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -96,7 +96,7 @@ test-actions:
   - brief: |
       Check that RTEMS_SYSTEM_TASK is a power of two.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_SYSTEM_TASK ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_SYSTEM_TASK ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -111,7 +111,7 @@ test-actions:
   - brief: |
       Check that RTEMS_APPLICATION_TASK is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_APPLICATION_TASK, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_APPLICATION_TASK, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -120,7 +120,7 @@ test-actions:
   - brief: |
       Check that RTEMS_BARRIER_MANUAL_RELEASE is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_BARRIER_MANUAL_RELEASE, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_BARRIER_MANUAL_RELEASE, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -129,7 +129,7 @@ test-actions:
   - brief: |
       Check that RTEMS_COUNTING_SEMAPHORE is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_COUNTING_SEMAPHORE, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_COUNTING_SEMAPHORE, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -138,7 +138,7 @@ test-actions:
   - brief: |
       Check that RTEMS_DEFAULT_ATTRIBUTES is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_DEFAULT_ATTRIBUTES, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_DEFAULT_ATTRIBUTES, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -147,7 +147,7 @@ test-actions:
   - brief: |
       Check that RTEMS_FIFO is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_FIFO, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_FIFO, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -156,7 +156,7 @@ test-actions:
   - brief: |
       Check that RTEMS_LOCAL is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_LOCAL, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_LOCAL, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -165,7 +165,7 @@ test-actions:
   - brief: |
       Check that RTEMS_NO_FLOATING_POINT is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_NO_FLOATING_POINT, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_NO_FLOATING_POINT, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -174,7 +174,7 @@ test-actions:
   - brief: |
       Check that RTEMS_NO_INHERIT_PRIORITY is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_NO_INHERIT_PRIORITY, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_NO_INHERIT_PRIORITY, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -183,7 +183,7 @@ test-actions:
   - brief: |
       Check that RTEMS_NO_MULTIPROCESSOR_RESOURCE_SHARING is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_NO_MULTIPROCESSOR_RESOURCE_SHARING, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_NO_MULTIPROCESSOR_RESOURCE_SHARING, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -192,7 +192,7 @@ test-actions:
   - brief: |
       Check that RTEMS_NO_PRIORITY_CEILING is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_NO_PRIORITY_CEILING, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_NO_PRIORITY_CEILING, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -223,7 +223,7 @@ test-actions:
       attribute constant is a power of two, this proves that each constant has
       a unique value.
     code: |
-      T_step_eq_int( ${step}, PopCount( attributes ), 10 );
+      T_step_eq_int( ${.:/step}, PopCount( attributes ), 10 );
     links:
     - role: validation
       uid: ../req/unique
@@ -243,7 +243,7 @@ test-actions:
   - brief: |
       Check that the calculated value is equal to RTEMS_SEMAPHORE_CLASS.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_SEMAPHORE_CLASS, attributes );
+      T_step_eq_u32( ${.:/step}, RTEMS_SEMAPHORE_CLASS, attributes );
     links:
     - role: validation
       uid: ../req/semaphore-class
@@ -258,7 +258,7 @@ test-actions:
       ``${../if/fifo:/name} | ${../if/local:/name}``.
     code: |
       T_step_eq_int(
-        ${step},
+        ${.:/step},
         ${../if/default:/name},
         ${../if/fifo:/name} | ${../if/local:/name}
       );
diff --git a/spec/rtems/basedefs/val/basedefs-no-debug.yml b/spec/rtems/basedefs/val/basedefs-no-debug.yml
index 291011a2..9a0dab01 100644
--- a/spec/rtems/basedefs/val/basedefs-no-debug.yml
+++ b/spec/rtems/basedefs/val/basedefs-no-debug.yml
@@ -15,7 +15,7 @@ test-actions:
       Check that the string is equal to the expected statement.
     code: |
       T_step_true(
-        ${step},
+        ${.:/step},
         IsEqualIgnoreWhiteSpace(
           s,
           "__builtin_unreachable()"
@@ -36,7 +36,7 @@ test-actions:
       Check that the string is equal to the expected function name.
     code: |
       T_step_true(
-        ${step},
+        ${.:/step},
         IsEqualIgnoreWhiteSpace(
           s,
           "RtemsBasedefsValBasedefsNoDebug_Action_1"
diff --git a/spec/rtems/basedefs/val/basedefs.yml b/spec/rtems/basedefs/val/basedefs.yml
index d0c8baf2..1005faee 100644
--- a/spec/rtems/basedefs/val/basedefs.yml
+++ b/spec/rtems/basedefs/val/basedefs.yml
@@ -14,7 +14,7 @@ test-actions:
   - brief: |
       Check that ori_func() and alias_func() are the same function.
     code: |
-      T_step_eq_int( ${step}, alias_result, 16 );
+      T_step_eq_int( ${.:/step}, alias_result, 16 );
     links:
     - role: validation
       uid: ../req/alias-0
@@ -48,16 +48,16 @@ test-actions:
       Check that ${../if/align-down:/name} calculates the expected result
       and is side-effect free.
     code: |
-      T_step_eq_int( ${step}, align_down0_result, 0 );
-      T_step_eq_int( ${step}, align_down1_result, 0 );
-      T_step_eq_int( ${step}, align_down2_result, 0 );
-      T_step_eq_int( ${step}, align_down3_result, 2 );
-      T_step_eq_int( ${step}, align_down4_result, 2 );
-      T_step_eq_int( ${step}, align_down5_result, 4 );
-      T_step_eq_int( ${step}, align_down6_result, 4 );
-      T_step_eq_int( ${step}, align_down7_result, 240 );
-      T_step_eq_int( ${step}, align_down8_result, 256 );
-      T_step_eq_int( ${step}, align_down9_result, 256 );
+      T_step_eq_int( ${.:/step}, align_down0_result, 0 );
+      T_step_eq_int( ${.:/step}, align_down1_result, 0 );
+      T_step_eq_int( ${.:/step}, align_down2_result, 0 );
+      T_step_eq_int( ${.:/step}, align_down3_result, 2 );
+      T_step_eq_int( ${.:/step}, align_down4_result, 2 );
+      T_step_eq_int( ${.:/step}, align_down5_result, 4 );
+      T_step_eq_int( ${.:/step}, align_down6_result, 4 );
+      T_step_eq_int( ${.:/step}, align_down7_result, 240 );
+      T_step_eq_int( ${.:/step}, align_down8_result, 256 );
+      T_step_eq_int( ${.:/step}, align_down9_result, 256 );
     links:
     - role: validation
       uid: ../req/align-down-0
@@ -91,16 +91,16 @@ test-actions:
       Check that ${../if/align-up:/name} calculates the expected result
       and is side-effect free.
     code: |
-      T_step_eq_int( ${step}, align_up0_result, 0 );
-      T_step_eq_int( ${step}, align_up1_result, 0 );
-      T_step_eq_int( ${step}, align_up2_result, 2 );
-      T_step_eq_int( ${step}, align_up3_result, 2 );
-      T_step_eq_int( ${step}, align_up4_result, 4 );
-      T_step_eq_int( ${step}, align_up5_result, 4 );
-      T_step_eq_int( ${step}, align_up6_result, 6 );
-      T_step_eq_int( ${step}, align_up7_result, 256 );
-      T_step_eq_int( ${step}, align_up8_result, 256 );
-      T_step_eq_int( ${step}, align_up9_result, 272 );
+      T_step_eq_int( ${.:/step}, align_up0_result, 0 );
+      T_step_eq_int( ${.:/step}, align_up1_result, 0 );
+      T_step_eq_int( ${.:/step}, align_up2_result, 2 );
+      T_step_eq_int( ${.:/step}, align_up3_result, 2 );
+      T_step_eq_int( ${.:/step}, align_up4_result, 4 );
+      T_step_eq_int( ${.:/step}, align_up5_result, 4 );
+      T_step_eq_int( ${.:/step}, align_up6_result, 6 );
+      T_step_eq_int( ${.:/step}, align_up7_result, 256 );
+      T_step_eq_int( ${.:/step}, align_up8_result, 256 );
+      T_step_eq_int( ${.:/step}, align_up9_result, 272 );
     links:
     - role: validation
       uid: ../req/align-up-0
@@ -117,8 +117,8 @@ test-actions:
       Check that ${../if/aligned:/name} correctly aligns a variable on the stack
       and a structure member.
     code: |
-      T_step_eq_int( ${step}, ( ( uintptr_t ) &aligned_var ) % 8, 0 );
-      T_step_eq_int( ${step},
+      T_step_eq_int( ${.:/step}, ( ( uintptr_t ) &aligned_var ) % 8, 0 );
+      T_step_eq_int( ${.:/step},
         offsetof( aligned_member_struct, aligned_member ) % 8, 0 );
     links:
     - role: validation
@@ -136,8 +136,8 @@ test-actions:
       Check that the ${../if/alignof:/name} macro results in the alignment
       of the type.
     code: |
-      T_step_eq_sz( ${step}, alignof_char, 1 );
-      T_step_eq_sz( ${step}, alignof_long, alignof_long_array );
+      T_step_eq_sz( ${.:/step}, alignof_char, 1 );
+      T_step_eq_sz( ${.:/step}, alignof_long, alignof_long_array );
     links:
     - role: validation
       uid: ../req/alignof-0
@@ -145,7 +145,7 @@ test-actions:
       If the ${../if/alignof:/name} macro would evaluate its argument,
       it could not figure out how much menory to reserve for it.
     code: |
-      T_step_eq_sz( ${step}, alignof_long, alignof_not_eval_array );
+      T_step_eq_sz( ${.:/step}, alignof_long, alignof_not_eval_array );
     links:
     - role: validation
       uid: ../req/alignof-1
@@ -153,7 +153,7 @@ test-actions:
       If the ${../if/alignof:/name} macro would evaluate the size expression,
       the division by zero would cause an error.
     code: |
-      T_step_eq_sz( ${step}, alignof_long, alignof_not_eval_array );
+      T_step_eq_sz( ${.:/step}, alignof_long, alignof_not_eval_array );
     links:
     - role: validation
       uid: ../req/alignof-2
@@ -161,7 +161,7 @@ test-actions:
       Ensure the constant value of the ${../if/alignof:/name} macro is
       of type size_t.
     code: |
-      T_step_true( ${step},
+      T_step_true( ${.:/step},
         __builtin_types_compatible_p( __typeof__( RTEMS_ALIGNOF( char ) ),
         size_t ) );
     links:
@@ -182,11 +182,11 @@ test-actions:
       that it can be used on such a memory function and that the
       argument counting starts at 1.
     code: |
-      T_step_not_null( ${step}, alloc_align_ptr );
-      T_step_eq_int( ${step}, ( ( uintptr_t ) alloc_align_ptr ) % 64, 0 );
-      T_step_ge_uptr( ${step}, ( ( uintptr_t ) alloc_align_ptr ),
+      T_step_not_null( ${.:/step}, alloc_align_ptr );
+      T_step_eq_int( ${.:/step}, ( ( uintptr_t ) alloc_align_ptr ) % 64, 0 );
+      T_step_ge_uptr( ${.:/step}, ( ( uintptr_t ) alloc_align_ptr ),
         ( ( uintptr_t ) free_ptr ) );
-      T_step_lt_uptr( ${step}, ( ( uintptr_t ) alloc_align_ptr ),
+      T_step_lt_uptr( ${.:/step}, ( ( uintptr_t ) alloc_align_ptr ),
         ( ( uintptr_t ) free_ptr ) + 64 );
     links:
     - role: validation
@@ -205,7 +205,7 @@ test-actions:
       that it can be used on such a memory function and that the
       argument counting starts at 1.
     code: |
-      T_step_not_null( ${step}, alloc_size_ptr );
+      T_step_not_null( ${.:/step}, alloc_size_ptr );
     links:
     - role: validation
       uid: ../req/alloc-size-0
@@ -223,7 +223,7 @@ test-actions:
       that it can be used on such a memory function and that the
       argument counting starts at 1.
     code: |
-      T_step_not_null( ${step}, alloc_size_2_ptr );
+      T_step_not_null( ${.:/step}, alloc_size_2_ptr );
     links:
     - role: validation
       uid: ../req/alloc-size-2-0
@@ -239,8 +239,8 @@ test-actions:
   - brief: |
       Check that the calculated size of the arrays fit their definition.
     code: |
-      T_step_eq_sz( ${step}, array_size, 5 );
-      T_step_eq_sz( ${step}, array2_size, 12 );
+      T_step_eq_sz( ${.:/step}, array_size, 5 );
+      T_step_eq_sz( ${.:/step}, array2_size, 12 );
     links:
     - role: validation
       uid: ../req/array-size-0
@@ -267,7 +267,7 @@ test-actions:
        */
       _Pragma( "GCC diagnostic push" )
       _Pragma( "GCC diagnostic ignored \"-Wdeprecated-declarations\"" )
-      T_step_eq_int( ${step}, compiler_deprecated_attribute, 42 );
+      T_step_eq_int( ${.:/step}, compiler_deprecated_attribute, 42 );
       _Pragma( "GCC diagnostic pop" )
     links:
     - role: validation
@@ -316,7 +316,7 @@ test-actions:
       Check that ${../if/compiler-packed-attribute:/name} correctly aligns
       a structure member.
     code: |
-      T_step_eq_int( ${step}, compiler_packed_attribute_offset, 1 );
+      T_step_eq_int( ${.:/step}, compiler_packed_attribute_offset, 1 );
     links:
     - role: validation
       uid: ../req/compiler-packed-attribute-0
@@ -335,8 +335,8 @@ test-actions:
       It cannot be checked that the ${../if/compiler-pure-attribute:/name}
       macro has the desired effect. It is checked that such a macro exists.
     code: |
-      T_step_eq_int( ${step}, compiler_pure_attribute_result, 21 );
-      T_step_eq_int( ${step}, compiler_pure_attribute_result_2, 21 );
+      T_step_eq_int( ${.:/step}, compiler_pure_attribute_result, 21 );
+      T_step_eq_int( ${.:/step}, compiler_pure_attribute_result_2, 21 );
     links:
     - role: validation
       uid: ../req/compiler-pure-attribute-0
@@ -369,7 +369,7 @@ test-actions:
       Check that the two arguments of ${../if/concat:/name} are concatenated to a
       new token.
     code: |
-      T_step_eq_int( ${step}, concat0_result, 91 );
+      T_step_eq_int( ${.:/step}, concat0_result, 91 );
     links:
     - role: validation
       uid: ../req/concat-0
@@ -379,7 +379,7 @@ test-actions:
       Check that the result of the ${../if/concat:/name} expansion is subject to
       a further pre-processor substitution.
     code: |
-      T_step_eq_int( ${step}, concat1_result, 91 );
+      T_step_eq_int( ${.:/step}, concat1_result, 91 );
     links:
     - role: validation
       uid: ../req/concat-2
@@ -396,8 +396,8 @@ test-actions:
       It cannot be checked that the ${../if/const:/name}
       macro has the desired effect. It is checked that such a macro exists.
     code: |
-      T_step_eq_int( ${step}, const_result, 28 );
-      T_step_eq_int( ${step}, const_result_2, 28 );
+      T_step_eq_int( ${.:/step}, const_result, 28 );
+      T_step_eq_int( ${.:/step}, const_result_2, 28 );
     links:
     - role: validation
       uid: ../req/const-0
@@ -420,7 +420,7 @@ test-actions:
       Check that the ${../if/container-of:/name}
       macro evaluates to a pointer to container_of_struct_var.
     code: |
-      T_step_eq_ptr( ${step},
+      T_step_eq_ptr( ${.:/step},
         container_of_struct_adr, &container_of_struct_var );
     links:
     - role: validation
@@ -438,7 +438,7 @@ test-actions:
       basedefs_get_global_symbol() which is defined in a file
       different from the file in which the gobal symbol is defined.
     code: |
-      T_step_eq_int( ${step}, basedefs_get_global_symbol(), 0xabc );
+      T_step_eq_int( ${.:/step}, basedefs_get_global_symbol(), 0xabc );
     links:
     - role: validation
       uid: ../req/declare-global-symbol-0
@@ -454,10 +454,10 @@ test-actions:
       Check that the ${../if/deconst:/name} macro returns a pointer
       which allows to write into an otherwise const value.
     code: |
-      T_step_eq_int( ${step}, deconst_pointer[0], 52 );
-      T_step_eq_int( ${step}, deconst_pointer[1], 55 );
+      T_step_eq_int( ${.:/step}, deconst_pointer[0], 52 );
+      T_step_eq_int( ${.:/step}, deconst_pointer[1], 55 );
       deconst_pointer[1] = 13;
-      T_step_eq_int( ${step}, deconst_pointer[1], 13 );
+      T_step_eq_int( ${.:/step}, deconst_pointer[1], 13 );
     links:
     - role: validation
       uid: ../req/deconst-0
@@ -472,7 +472,7 @@ test-actions:
       Check that the ${../if/define-global-symbol:/name}
       macro defines a global symbol with the correct value.
     code: |
-      T_step_eq_int( ${step}, (uintptr_t) global_symbol, 0xabc );
+      T_step_eq_int( ${.:/step}, (uintptr_t) global_symbol, 0xabc );
     links:
     - role: validation
       uid: ../req/define-global-symbol-0
@@ -502,7 +502,7 @@ test-actions:
       deprecated function on the above line
       where the ``deprecated_func`` is used.
     code: |
-      T_step_eq_int( ${step}, deprecated_result, 15 );
+      T_step_eq_int( ${.:/step}, deprecated_result, 15 );
     links:
     - role: validation
       uid: ../req/deprecated-0
@@ -526,13 +526,13 @@ test-actions:
       Check that the ${../if/dequalify-depthx:/name} macro returns a pointer
       which allows to write into an otherwise const (volatile) value.
     code: |
-      T_step_eq_int( ${step}, dequalify_depthx_pointer[0], 52 );
-      T_step_eq_int( ${step}, dequalify_depthx_pointer[1], 55 );
+      T_step_eq_int( ${.:/step}, dequalify_depthx_pointer[0], 52 );
+      T_step_eq_int( ${.:/step}, dequalify_depthx_pointer[1], 55 );
       dequalify_depthx_pointer[0] = 13;
-      T_step_eq_int( ${step}, dequalify_depthx_pointer[0], 13 );
-      T_step_eq_char( ${step}, **dequalify_depthx_twice_pointer, 'a' );
+      T_step_eq_int( ${.:/step}, dequalify_depthx_pointer[0], 13 );
+      T_step_eq_char( ${.:/step}, **dequalify_depthx_twice_pointer, 'a' );
       **dequalify_depthx_twice_pointer = 'Z';
-      T_step_eq_char( ${step}, **dequalify_depthx_twice_pointer, 'Z' );
+      T_step_eq_char( ${.:/step}, **dequalify_depthx_twice_pointer, 'Z' );
     links:
     - role: validation
       uid: ../req/dequalify-depthx-0
@@ -548,10 +548,10 @@ test-actions:
       Check that the ${../if/dequalify:/name} macro returns a pointer
       which allows to write into an otherwise const volatile value.
     code: |
-      T_step_eq_int( ${step}, dequalify_pointer[0], 52 );
-      T_step_eq_int( ${step}, dequalify_pointer[1], 55 );
+      T_step_eq_int( ${.:/step}, dequalify_pointer[0], 52 );
+      T_step_eq_int( ${.:/step}, dequalify_pointer[1], 55 );
       dequalify_pointer[0] = 13;
-      T_step_eq_int( ${step}, dequalify_pointer[0], 13 );
+      T_step_eq_int( ${.:/step}, dequalify_pointer[0], 13 );
     links:
     - role: validation
       uid: ../req/dequalify-0
@@ -567,10 +567,10 @@ test-actions:
       Check that the ${../if/devolatile:/name} macro returns a pointer
       which allows to write into an otherwise volatile value.
     code: |
-      T_step_eq_int( ${step}, devolatile_pointer[0], 52 );
-      T_step_eq_int( ${step}, devolatile_pointer[1], 55 );
+      T_step_eq_int( ${.:/step}, devolatile_pointer[0], 52 );
+      T_step_eq_int( ${.:/step}, devolatile_pointer[1], 55 );
       devolatile_pointer[1] = 13;
-      T_step_eq_int( ${step}, devolatile_pointer[1], 13 );
+      T_step_eq_int( ${.:/step}, devolatile_pointer[1], 13 );
     links:
     - role: validation
       uid: ../req/devolatile-0
@@ -585,7 +585,7 @@ test-actions:
       Check that the argument of ${../if/expand:/name} is expanded and
       returned.
     code: |
-      T_step_eq_int( ${step}, expand_result, 82 );
+      T_step_eq_int( ${.:/step}, expand_result, 82 );
     links:
     - role: validation
       uid: ../req/expand-0
@@ -599,7 +599,7 @@ test-actions:
   - brief: |
       Check that of ${../if/false:/name} is substituted by 0.
     code: |
-      T_step_eq_str( ${step}, false_result, "0" );
+      T_step_eq_str( ${.:/step}, false_result, "0" );
     links:
     - role: validation
       uid: ../req/false-0
@@ -646,16 +646,16 @@ test-actions:
       Check that of ${../if/have-member-same-type:/name} returns 0 and 1
       depending on whether these types are compatible.
     code: |
-      T_step_eq_int( ${step}, same_type_result_0, 1 );
-      T_step_eq_int( ${step}, same_type_result_1, 0 );
-      T_step_eq_int( ${step}, same_type_result_2, 0 );
-      T_step_eq_int( ${step}, same_type_result_3, 1 );
-      T_step_eq_int( ${step}, same_type_result_4, 1 );
-      T_step_eq_int( ${step}, same_type_result_5, 1 );
-      T_step_eq_int( ${step}, same_type_result_6, 1 );
-      T_step_eq_int( ${step}, same_type_result_7, 0 );
-      T_step_eq_int( ${step}, same_type_result_8, 0 );
-      T_step_eq_int( ${step}, same_type_result_9, 1 );
+      T_step_eq_int( ${.:/step}, same_type_result_0, 1 );
+      T_step_eq_int( ${.:/step}, same_type_result_1, 0 );
+      T_step_eq_int( ${.:/step}, same_type_result_2, 0 );
+      T_step_eq_int( ${.:/step}, same_type_result_3, 1 );
+      T_step_eq_int( ${.:/step}, same_type_result_4, 1 );
+      T_step_eq_int( ${.:/step}, same_type_result_5, 1 );
+      T_step_eq_int( ${.:/step}, same_type_result_6, 1 );
+      T_step_eq_int( ${.:/step}, same_type_result_7, 0 );
+      T_step_eq_int( ${.:/step}, same_type_result_8, 0 );
+      T_step_eq_int( ${.:/step}, same_type_result_9, 1 );
     links:
     - role: validation
       uid: ../req/have-member-same-type-0
@@ -665,7 +665,7 @@ test-actions:
     inline_routine_func() at the beginning of this file. Obtain the text
     the macro ${../if/inline-routine:/name} produces.
   action-code: |
-    const int inline_routine_step = ${step};
+    const int inline_routine_step = ${.:/step};
     int inline_routine_result;
     char *inline_routine_text;
     inline_routine_result = inline_routine_func( 3 );
@@ -682,7 +682,7 @@ test-actions:
         T_step_eq_str( inline_routine_step,
           inline_routine_text, "static __inline__" );
       }
-      T_step_eq_int( ${step}, inline_routine_result, 8 );
+      T_step_eq_int( ${.:/step}, inline_routine_result, 8 );
     links:
     - role: validation
       uid: ../req/inline-routine-0
@@ -708,8 +708,8 @@ test-actions:
       that it can be used on such a memory function and that it produces
       the correct code.
     code: |
-      T_step_not_null( ${step}, malloclike_ptr );
-      T_step_eq_str( ${step}, malloclike_text, "__attribute__((__malloc__))" );
+      T_step_not_null( ${.:/step}, malloclike_ptr );
+      T_step_eq_str( ${.:/step}, malloclike_text, "__attribute__((__malloc__))" );
     links:
     - role: validation
       uid: ../req/malloclike-0
@@ -734,8 +734,8 @@ test-actions:
       that it can be used on such a function and that it produces
       the correct code.
     code: |
-      T_step_eq_int( ${step}, no_inline_result, 75 );
-      T_step_eq_str( ${step}, no_inline_text, "__attribute__((__noinline__))" );
+      T_step_eq_int( ${.:/step}, no_inline_result, 75 );
+      T_step_eq_str( ${.:/step}, no_inline_text, "__attribute__((__noinline__))" );
     links:
     - role: validation
       uid: ../req/no-inline-0
@@ -765,7 +765,7 @@ test-actions:
       macro has the desired effect. Yet, the check confirms that such a
       macro exists and can be used.
     code: |
-      T_step_not_null( ${step}, &noinit_variable );
+      T_step_not_null( ${.:/step}, &noinit_variable );
     links:
     - role: validation
       uid: ../req/noinit-0
@@ -781,7 +781,7 @@ test-actions:
       macro has the desired effect. Yet, the check confirms that such a
       macro exists and can be used.
     code: |
-      T_step_eq_int( ${step}, obfuscate_variable, 66 );
+      T_step_eq_int( ${.:/step}, obfuscate_variable, 66 );
     links:
     - role: validation
       uid: ../req/obfuscate-variable-0
@@ -816,22 +816,22 @@ test-actions:
   - brief: |
       Check that ${../if/packed:/name} correctly aligns a structure member.
     code: |
-      T_step_eq_int( ${step}, packed_offset, 1 );
+      T_step_eq_int( ${.:/step}, packed_offset, 1 );
     links:
     - role: validation
       uid: ../req/packed-0
   - brief: |
       Check that ${../if/packed:/name} correctly aligns all structure members.
     code: |
-      T_step_eq_int( ${step}, packed_full_i_offset, 1 );
-      T_step_eq_int( ${step}, packed_full_j_offset, 5 );
+      T_step_eq_int( ${.:/step}, packed_full_i_offset, 1 );
+      T_step_eq_int( ${.:/step}, packed_full_j_offset, 5 );
     links:
     - role: validation
       uid: ../req/packed-1
   - brief: |
       Check that ${../if/packed:/name} correctly enforces a minimal enum type.
     code: |
-      T_step_eq_int( ${step}, packed_enum_size, 1 );
+      T_step_eq_int( ${.:/step}, packed_enum_size, 1 );
     links:
     - role: validation
       uid: ../req/packed-2
@@ -846,7 +846,7 @@ test-actions:
       macro has the desired effect. Yet, the check confirms that such a
       macro exists and can be used.
     code: |
-      T_step_eq_int( ${step}, RTEMS_PREDICT_FALSE( PREDICT_FALSE 1 ), 0 );
+      T_step_eq_int( ${.:/step}, RTEMS_PREDICT_FALSE( PREDICT_FALSE 1 ), 0 );
     links:
     - role: validation
       uid: ../req/predict-false-0
@@ -861,7 +861,7 @@ test-actions:
       macro has the desired effect. Yet, the check confirms that such a
       macro exists and can be used.
     code: |
-      T_step_eq_int( ${step}, RTEMS_PREDICT_TRUE( 6 - 5 ), 1 );
+      T_step_eq_int( ${.:/step}, RTEMS_PREDICT_TRUE( 6 - 5 ), 1 );
     links:
     - role: validation
       uid: ../req/predict-true-0
@@ -884,7 +884,7 @@ test-actions:
       exists and that it can be used on such a printf-like function and that
       the argument numbers are correct.
     code: |
-      T_step_eq_int( ${step}, printflike_result, 23 );
+      T_step_eq_int( ${.:/step}, printflike_result, 23 );
     links:
     - role: validation
       uid: ../req/printflike-0
@@ -903,8 +903,8 @@ test-actions:
       It cannot be checked that the ${../if/pure:/name}
       macro has the desired effect. It is checked that such a macro exists.
     code: |
-      T_step_eq_int( ${step}, pure_result, 21 );
-      T_step_eq_int( ${step}, pure_result_2, 21 );
+      T_step_eq_int( ${.:/step}, pure_result, 21 );
+      T_step_eq_int( ${.:/step}, pure_result_2, 21 );
     links:
     - role: validation
       uid: ../req/pure-0
@@ -926,7 +926,7 @@ test-actions:
       The check confirms that a ${../if/return-address:/name} macro exists
       and that it produces the correct code.
     code: |
-      T_step_eq_str( ${step},
+      T_step_eq_str( ${.:/step},
         return_address_text, "__builtin_return_address(0)" );
     links:
     - role: validation
@@ -944,8 +944,8 @@ test-actions:
       macro has the desired effect. Yet, the check confirms that such a
       macro exists and can be used.
     code: |
-      T_step_eq_int( ${step}, section_var, 28 );
-      T_step_eq_int( ${step}, section_result, 67 );
+      T_step_eq_int( ${.:/step}, section_var, 28 );
+      T_step_eq_int( ${.:/step}, section_result, 67 );
     links:
     - role: validation
       uid: ../req/section-0
@@ -1021,9 +1021,9 @@ test-actions:
       converts its arguments into a single string without applying
       pre-processor substitutions on its arguments.
     code: |
-      T_step_eq_str( ${step}, string_var, "\\ STRING_PREFIX cat\"\"\n" );
-      T_step_eq_str( ${step}, string_empty_var, "" );
-      T_step_eq_str( ${step}, string_multi_args_var,
+      T_step_eq_str( ${.:/step}, string_var, "\\ STRING_PREFIX cat\"\"\n" );
+      T_step_eq_str( ${.:/step}, string_empty_var, "" );
+      T_step_eq_str( ${.:/step}, string_multi_args_var,
         "STRING_PREFIX, \"abc\", DEF" );
     links:
     - role: validation
@@ -1038,7 +1038,7 @@ test-actions:
       Check that the ${../if/symbol-name:/name} macro expands to the expected
       symbol name.
     code: |
-      T_step_eq_ptr( ${step}, &global_object, &address_of_global_object );
+      T_step_eq_ptr( ${.:/step}, &global_object, &address_of_global_object );
     links:
     - role: validation
       uid: ../req/symbol-name
@@ -1054,7 +1054,7 @@ test-actions:
   - brief: |
       Check that of ${../if/true:/name} is substituted by 0.
     code: |
-      T_step_eq_str( ${step}, true_result, "1" );
+      T_step_eq_str( ${.:/step}, true_result, "1" );
     links:
     - role: validation
       uid: ../req/true-0
@@ -1084,17 +1084,17 @@ test-actions:
       The checks here are proforma. The macro is tested by the fact that
       the action will not compile if the macro returns a wrong result.
     code: |
-      T_step_eq_int( ${step}, type_refx_val, 7 );
-      T_step_eq_int( ${step}, type_refx_x_int, 8 );
-      T_step_eq_int( ${step}, type_refx_xx_int, 9 );
-      T_step_eq_int( ${step}, type_refx_xxx_int, 10 );
-      T_step_eq_int( ${step}, *type_refx_xxx_int_p, 7 );
-      T_step_eq_char( ${step}, type_refx_chr, 'c' );
-      T_step_eq_char( ${step}, type_refx_ax_char, 'd' );
-      T_step_eq_char( ${step}, type_refx_x_char, 'e' );
-      T_step_eq_char( ${step}, type_refx_char, 'f' );
-      T_step_eq_char( ${step}, type_refx_xx_char, 'g' );
-      T_step_eq_short( ${step}, *type_refx_xx_const_short_p, 333 );
+      T_step_eq_int( ${.:/step}, type_refx_val, 7 );
+      T_step_eq_int( ${.:/step}, type_refx_x_int, 8 );
+      T_step_eq_int( ${.:/step}, type_refx_xx_int, 9 );
+      T_step_eq_int( ${.:/step}, type_refx_xxx_int, 10 );
+      T_step_eq_int( ${.:/step}, *type_refx_xxx_int_p, 7 );
+      T_step_eq_char( ${.:/step}, type_refx_chr, 'c' );
+      T_step_eq_char( ${.:/step}, type_refx_ax_char, 'd' );
+      T_step_eq_char( ${.:/step}, type_refx_x_char, 'e' );
+      T_step_eq_char( ${.:/step}, type_refx_char, 'f' );
+      T_step_eq_char( ${.:/step}, type_refx_xx_char, 'g' );
+      T_step_eq_short( ${.:/step}, *type_refx_xx_const_short_p, 333 );
     links:
     - role: validation
       uid: ../req/typeof-refx-0
@@ -1162,7 +1162,7 @@ test-actions:
       macro has the desired effect. It is checked that such a macro exists
       and the compiler warning about the missing return statement is suppressed.
     code: |
-      T_step_eq_int( ${step}, unreachable_result, 2101 );
+      T_step_eq_int( ${.:/step}, unreachable_result, 2101 );
     links:
     - role: validation
       uid: ../req/unreachable-0
@@ -1207,7 +1207,7 @@ test-actions:
       about the disregarded result returned by the call
       to the ``warn_unused_func()`` function.
     code: |
-      T_step_eq_int( ${step}, warn_unused_result, 11 );
+      T_step_eq_int( ${.:/step}, warn_unused_result, 11 );
     links:
     - role: validation
       uid: ../req/warn-unused-result-0
@@ -1226,7 +1226,7 @@ test-actions:
       Check that ori_func() and basedefs_weak_alias_0_func() are the
       same function.
     code: |
-      T_step_eq_int( ${step}, weak_alias_0_result, 16 );
+      T_step_eq_int( ${.:/step}, weak_alias_0_result, 16 );
     links:
     - role: validation
       uid: ../req/weak-alias-0
@@ -1236,7 +1236,7 @@ test-actions:
       Check that ori_func() and basedefs_weak_alias_1_func() are not
       the same function.
     code: |
-      T_step_eq_int( ${step}, weak_alias_1_result, 56 );
+      T_step_eq_int( ${.:/step}, weak_alias_1_result, 56 );
     links:
     - role: validation
       uid: ../req/weak-alias-1
@@ -1256,8 +1256,8 @@ test-actions:
       exists no other symbols with the same name.
       Hence, the checks test that the weak symbols are used.
     code: |
-      T_step_eq_int( ${step}, basedefs_weak_0_var, 60 );
-      T_step_eq_int( ${step}, weak_0_result, 63 );
+      T_step_eq_int( ${.:/step}, basedefs_weak_0_var, 60 );
+      T_step_eq_int( ${.:/step}, weak_0_result, 63 );
     links:
     - role: validation
       uid: ../req/weak-0
@@ -1267,8 +1267,8 @@ test-actions:
       ``tc_basedefs_pendant.c``. Hence, the checks test that the strong
       variants are used.
     code: |
-      T_step_eq_int( ${step}, basedefs_weak_1_var, 62 );
-      T_step_eq_int( ${step}, weak_1_result, 65 );
+      T_step_eq_int( ${.:/step}, basedefs_weak_1_var, 62 );
+      T_step_eq_int( ${.:/step}, weak_1_result, 65 );
     links:
     - role: validation
       uid: ../req/weak-1
@@ -1290,7 +1290,7 @@ test-actions:
       Check that the two arguments of ${../if/xconcat:/name} are
       concatenated without inserting new characters.
     code: |
-      T_step_eq_int( ${step}, xconcat0_result, 91 );
+      T_step_eq_int( ${.:/step}, xconcat0_result, 91 );
     links:
     - role: validation
       uid: ../req/xconcat-0
@@ -1300,7 +1300,7 @@ test-actions:
       Check that the two arguments of ${../if/xconcat:/name} are
       substituted before they are concatenated.
     code: |
-      T_step_eq_int( ${step}, xconcat1_result, 91 );
+      T_step_eq_int( ${.:/step}, xconcat1_result, 91 );
     links:
     - role: validation
       uid: ../req/xconcat-2
@@ -1308,7 +1308,7 @@ test-actions:
       Check that the two arguments of ${../if/xconcat:/name} are can
       be the macro itself.
     code: |
-      T_step_eq_int( ${step}, xconcat2_result, 91 );
+      T_step_eq_int( ${.:/step}, xconcat2_result, 91 );
     links:
     - role: validation
       uid: ../req/xconcat-3
@@ -1316,7 +1316,7 @@ test-actions:
       Check that the result of the ${../if/xconcat:/name} expansion
       is subject to a further pre-processor substitution.
     code: |
-      T_step_eq_int( ${step}, xconcat3_result, 91 );
+      T_step_eq_int( ${.:/step}, xconcat3_result, 91 );
     links:
     - role: validation
       uid: ../req/xconcat-2
@@ -1337,9 +1337,9 @@ test-actions:
       pre-processor substitutions on its arguments and
       converts its arguments into a single string.
     code: |
-      T_step_eq_str( ${step}, xstring_var, "\\ str cat\"\"\n" );
-      T_step_eq_str( ${step}, xstring_empty_var, "" );
-      T_step_eq_str( ${step}, string_multi_args_var,
+      T_step_eq_str( ${.:/step}, xstring_var, "\\ str cat\"\"\n" );
+      T_step_eq_str( ${.:/step}, xstring_empty_var, "" );
+      T_step_eq_str( ${.:/step}, string_multi_args_var,
         "str, ABC, \"abc\", DEF" );
     links:
     - role: validation
@@ -1362,11 +1362,11 @@ test-actions:
       Checked that the ${../if/zero-length-array:/name} macro
       produces a structure similar to a structure with one element.
     code: |
-      T_step_eq_sz( ${step}, sizeof( zero_length_struct_0 ),
+      T_step_eq_sz( ${.:/step}, sizeof( zero_length_struct_0 ),
         sizeof( zero_length_struct_1 ) - sizeof( int ) );
-      T_step_eq_sz( ${step}, offsetof( zero_length_struct_0, chr ),
+      T_step_eq_sz( ${.:/step}, offsetof( zero_length_struct_0, chr ),
         offsetof( zero_length_struct_1, chr ) );
-      T_step_eq_sz( ${step}, offsetof( zero_length_struct_0, array ),
+      T_step_eq_sz( ${.:/step}, offsetof( zero_length_struct_0, array ),
         offsetof( zero_length_struct_1, array ) );
     links:
     - role: validation
diff --git a/spec/rtems/cache/val/cache.yml b/spec/rtems/cache/val/cache.yml
index db6128d0..cc0ef1e4 100644
--- a/spec/rtems/cache/val/cache.yml
+++ b/spec/rtems/cache/val/cache.yml
@@ -280,7 +280,7 @@ test-actions:
       Check that the maximal cache line size is greater than or equal to the
       data cache line size.
     code: |
-      T_step_ge_sz( ${step}, maximal_line_size, data_line_size );
+      T_step_ge_sz( ${.:/step}, maximal_line_size, data_line_size );
     links:
     - role: validation
       uid: ../req/get-maximal-line-size
@@ -288,7 +288,7 @@ test-actions:
       Check that the maximal cache line size is greater than or equal to the
       instruction cache line size.
     code: |
-      T_step_ge_sz( ${step}, maximal_line_size, instruction_line_size );
+      T_step_ge_sz( ${.:/step}, maximal_line_size, instruction_line_size );
     links:
     - role: validation
       uid: ../req/get-maximal-line-size
@@ -318,7 +318,7 @@ test-actions:
       Check that the maximal cache line size is greater than or equal to the
       data cache line size.
     code: |
-      T_step_ge_sz( ${step}, maximal_line_size, data_line_size );
+      T_step_ge_sz( ${.:/step}, maximal_line_size, data_line_size );
     links:
     - role: validation
       uid: ../req/get-maximal-line-size
@@ -326,7 +326,7 @@ test-actions:
       Check that the maximal cache line size is greater than or equal to the
       instruction cache line size.
     code: |
-      T_step_ge_sz( ${step}, maximal_line_size, instruction_line_size );
+      T_step_ge_sz( ${.:/step}, maximal_line_size, instruction_line_size );
     links:
     - role: validation
       uid: ../req/get-maximal-line-size
diff --git a/spec/rtems/clock/val/clock.yml b/spec/rtems/clock/val/clock.yml
index 2d4e5e39..2c692845 100644
--- a/spec/rtems/clock/val/clock.yml
+++ b/spec/rtems/clock/val/clock.yml
@@ -18,7 +18,7 @@ test-actions:
   - brief: |
       Check that ${/glossary/clock-tick:/term} gets incremented.
     code: |
-      T_step_eq_u32( ${step}, result_1 - result_0, 1 );
+      T_step_eq_u32( ${.:/step}, result_1 - result_0, 1 );
     links:
     - role: validation
       uid: ../req/get-ticks-since-boot-macro
@@ -39,7 +39,7 @@ test-actions:
   - brief: |
       Check that ${/glossary/clock-tick:/term} gets incremented.
     code: |
-      T_step_eq_u32( ${step}, result_1 - result_0, 1 );
+      T_step_eq_u32( ${.:/step}, result_1 - result_0, 1 );
     links:
     - role: validation
       uid: ../req/get-ticks-since-boot
@@ -55,7 +55,7 @@ test-actions:
       Check that ${../if/get-ticks-per-second:/name} actually returns
       1us / CONFIGURE_MICROSECONDS_PER_TICK.
     code: |
-      T_step_eq_u32( ${step}, result, 1000000UL / TEST_MICROSECONDS_PER_TICK );
+      T_step_eq_u32( ${.:/step}, result, 1000000UL / TEST_MICROSECONDS_PER_TICK );
     links:
     - role: validation
       uid: ../req/get-ticks-per-second-macro
@@ -73,7 +73,7 @@ test-actions:
       Check that ${../if/get-ticks-per-second:/name} actually returns
       1us / CONFIGURE_MICROSECONDS_PER_TICK.
     code: |
-      T_step_eq_u32( ${step}, result, 1000000UL / TEST_MICROSECONDS_PER_TICK );
+      T_step_eq_u32( ${.:/step}, result, 1000000UL / TEST_MICROSECONDS_PER_TICK );
     links:
     - role: validation
       uid: ../req/get-ticks-per-second
diff --git a/spec/rtems/event/val/event-constant.yml b/spec/rtems/event/val/event-constant.yml
index 1a60164a..b1fffece 100644
--- a/spec/rtems/event/val/event-constant.yml
+++ b/spec/rtems/event/val/event-constant.yml
@@ -14,7 +14,7 @@ test-actions:
       event set.
     code: |
       T_step_eq_u32(
-        ${step},
+        ${.:/step},
         ctx->event,
         ( (rtems_event_set) 1 ) << ctx->number
       );
@@ -27,7 +27,7 @@ test-actions:
       Check that the event number bit of the event constant is not set in
       RTEMS_PENDING_EVENTS.
     code: |
-      T_step_eq_u32( ${step}, ctx->event & RTEMS_PENDING_EVENTS, 0 );
+      T_step_eq_u32( ${.:/step}, ctx->event & RTEMS_PENDING_EVENTS, 0 );
     links: []
   links: []
 - action-brief: |
@@ -47,12 +47,12 @@ test-actions:
   - brief: |
       Check that the directive call was successful.
     code: |
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links: []
   - brief: |
       Check that there were no pending events.
     code: |
-      T_step_eq_u32( ${step}, out, 0 );
+      T_step_eq_u32( ${.:/step}, out, 0 );
     links: []
   links: []
 - action-brief: |
@@ -72,12 +72,12 @@ test-actions:
   - brief: |
       Check that the directive call was successful.
     code: |
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links: []
   - brief: |
       Check that there were no pending events.
     code: |
-      T_step_eq_u32( ${step}, out, 0 );
+      T_step_eq_u32( ${.:/step}, out, 0 );
     links: []
   links: []
 - action-brief: |
@@ -97,12 +97,12 @@ test-actions:
   - brief: |
       Check that the directive call was unsatisfied.
     code: |
-      T_step_rsc( ${step}, sc, RTEMS_UNSATISFIED );
+      T_step_rsc( ${.:/step}, sc, RTEMS_UNSATISFIED );
     links: []
   - brief: |
       Check that there were no events received.
     code: |
-      T_step_eq_u32( ${step}, out, 0 );
+      T_step_eq_u32( ${.:/step}, out, 0 );
     links: []
   links: []
 - action-brief: |
@@ -122,12 +122,12 @@ test-actions:
   - brief: |
       Check that the directive call was unsatisfied.
     code: |
-      T_step_rsc( ${step}, sc, RTEMS_UNSATISFIED );
+      T_step_rsc( ${.:/step}, sc, RTEMS_UNSATISFIED );
     links: []
   - brief: |
       Check that there were no events received.
     code: |
-      T_step_eq_u32( ${step}, out, 0 );
+      T_step_eq_u32( ${.:/step}, out, 0 );
     links: []
   links: []
 - action-brief: |
@@ -140,7 +140,7 @@ test-actions:
   - brief: |
       Check that the directive call was successful.
     code: |
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links: []
   links: []
 - action-brief: |
@@ -160,13 +160,13 @@ test-actions:
   - brief: |
       Check that the directive call was successful.
     code: |
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links: []
   - brief: |
       Check that the pending event is equal to the event sent by a previous
       action.
     code: |
-      T_step_eq_u32( ${step}, out, ctx->event );
+      T_step_eq_u32( ${.:/step}, out, ctx->event );
     links: []
   links: []
 - action-brief: |
@@ -186,12 +186,12 @@ test-actions:
   - brief: |
       Check that the directive call was successful.
     code: |
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links: []
   - brief: |
       Check that there were no pending events.
     code: |
-      T_step_eq_u32( ${step}, out, 0 );
+      T_step_eq_u32( ${.:/step}, out, 0 );
     links: []
   links: []
 - action-brief: |
@@ -211,13 +211,13 @@ test-actions:
   - brief: |
       Check that the directive call was successful.
     code: |
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links: []
   - brief: |
       Check that the received event is equal to the event sent by a previous
       action.
     code: |
-      T_step_eq_u32( ${step}, out, ctx->event );
+      T_step_eq_u32( ${.:/step}, out, ctx->event );
     links: []
   links: []
 - action-brief: |
@@ -237,12 +237,12 @@ test-actions:
   - brief: |
       Check that the directive call was unsatisfied.
     code: |
-      T_step_rsc( ${step}, sc, RTEMS_UNSATISFIED );
+      T_step_rsc( ${.:/step}, sc, RTEMS_UNSATISFIED );
     links: []
   - brief: |
       Check that the no events were received.
     code: |
-      T_step_eq_u32( ${step}, out, 0 );
+      T_step_eq_u32( ${.:/step}, out, 0 );
     links: []
   links: []
 - action-brief: |
@@ -255,7 +255,7 @@ test-actions:
   - brief: |
       Check that the directive call was successful.
     code: |
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links: []
   links: []
 - action-brief: |
@@ -275,12 +275,12 @@ test-actions:
   - brief: |
       Check that the directive call was successful.
     code: |
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links: []
   - brief: |
       Check that there were no pending events.
     code: |
-      T_step_eq_u32( ${step}, out, 0 );
+      T_step_eq_u32( ${.:/step}, out, 0 );
     links: []
   links: []
 - action-brief: |
@@ -300,13 +300,13 @@ test-actions:
   - brief: |
       Check that the directive call was successful.
     code: |
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links: []
   - brief: |
       Check that the pending event is equal to the event sent by a previous
       action.
     code: |
-      T_step_eq_u32( ${step}, out, ctx->event );
+      T_step_eq_u32( ${.:/step}, out, ctx->event );
     links: []
   links: []
 - action-brief: |
@@ -326,12 +326,12 @@ test-actions:
   - brief: |
       Check that the directive call was unsatisfied.
     code: |
-      T_step_rsc( ${step}, sc, RTEMS_UNSATISFIED );
+      T_step_rsc( ${.:/step}, sc, RTEMS_UNSATISFIED );
     links: []
   - brief: |
       Check that the no events were received.
     code: |
-      T_step_eq_u32( ${step}, out, 0 );
+      T_step_eq_u32( ${.:/step}, out, 0 );
     links: []
   links: []
 - action-brief: |
@@ -351,13 +351,13 @@ test-actions:
   - brief: |
       Check that the directive call was successful.
     code: |
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links: []
   - brief: |
       Check that the received event is equal to the event sent by a previous
       action.
     code: |
-      T_step_eq_u32( ${step}, out, ctx->event );
+      T_step_eq_u32( ${.:/step}, out, ctx->event );
     links: []
   links: []
 - action-brief: |
@@ -377,12 +377,12 @@ test-actions:
   - brief: |
       Check that the directive call was successful.
     code: |
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links: []
   - brief: |
       Check that there were no pending events.
     code: |
-      T_step_eq_u32( ${step}, out, 0 );
+      T_step_eq_u32( ${.:/step}, out, 0 );
     links: []
   links: []
 - action-brief: |
@@ -402,12 +402,12 @@ test-actions:
   - brief: |
       Check that the directive call was successful.
     code: |
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links: []
   - brief: |
       Check that there were no pending events.
     code: |
-      T_step_eq_u32( ${step}, out, 0 );
+      T_step_eq_u32( ${.:/step}, out, 0 );
     links: []
   links: []
 test-brief: |
diff --git a/spec/rtems/event/val/events.yml b/spec/rtems/event/val/events.yml
index f3bb1e38..b4233b05 100644
--- a/spec/rtems/event/val/events.yml
+++ b/spec/rtems/event/val/events.yml
@@ -11,7 +11,7 @@ test-actions:
 
     for ( i = 0; i < 32; ++i ) {
       ${event-constant:/test-run}( events[ i ], i );
-      T_step( i ); /* ${steps/32} */
+      T_step( i ); /* ${.:/step:32} */
     }
   checks: []
   links: []
@@ -39,7 +39,7 @@ test-actions:
   - brief: |
       Check that the value is equal to RTEMS_ALL_EVENTS.
     code: |
-      T_step_eq_u32( ${step}, all, RTEMS_ALL_EVENTS );
+      T_step_eq_u32( ${.:/step}, all, RTEMS_ALL_EVENTS );
     links:
     - role: validation
       uid: ../req/all-events
@@ -52,13 +52,13 @@ test-actions:
   - brief: |
       Check that RTEMS_EVENT_ALL is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_EVENT_ALL, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_EVENT_ALL, 0 );
     links: []
   - brief: |
       Check that RTEMS_EVENT_ANY is a power of two.
     code: |
-      T_step_ne_u32( ${step}, RTEMS_EVENT_ANY, 0 );
-      T_step_eq_u32( ${step}, RTEMS_EVENT_ANY & ( RTEMS_EVENT_ANY - 1 ), 0 );
+      T_step_ne_u32( ${.:/step}, RTEMS_EVENT_ANY, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_EVENT_ANY & ( RTEMS_EVENT_ANY - 1 ), 0 );
     links: []
   links: []
 test-brief: Tests the Event Manager API.
diff --git a/spec/rtems/io/val/kernel.yml b/spec/rtems/io/val/kernel.yml
index 90254bf0..587cb5b1 100644
--- a/spec/rtems/io/val/kernel.yml
+++ b/spec/rtems/io/val/kernel.yml
@@ -33,7 +33,7 @@ test-actions:
       Check that the returned value is minus one or an unsigned character
       value.
     code: |
-      T_step_true( ${step}, c == -1 || ( c & ~0xff ) == 0 );
+      T_step_true( ${.:/step}, c == -1 || ( c & ~0xff ) == 0 );
     links:
     - role: validation
       uid: ../req/bsp-poll-char-empty
diff --git a/spec/rtems/message/val/message-macros.yml b/spec/rtems/message/val/message-macros.yml
index e956ee1f..83d8154c 100644
--- a/spec/rtems/message/val/message-macros.yml
+++ b/spec/rtems/message/val/message-macros.yml
@@ -53,15 +53,15 @@ test-actions:
         &config_0,
         &id
       );
-      T_step_rsc_success( ${step}, status );
-      T_step_rsc_success( ${step}, rtems_message_queue_delete( id ) );
+      T_step_rsc_success( ${.:/step}, status );
+      T_step_rsc_success( ${.:/step}, rtems_message_queue_delete( id ) );
 
       status = rtems_message_queue_construct(
         &config_1,
         &id
       );
-      T_step_rsc_success( ${step}, status );
-      T_step_rsc_success( ${step}, rtems_message_queue_delete( id ) );
+      T_step_rsc_success( ${.:/step}, status );
+      T_step_rsc_success( ${.:/step}, rtems_message_queue_delete( id ) );
     links:
     - role: validation
       uid: ../req/buffer
diff --git a/spec/rtems/mode/val/modes.yml b/spec/rtems/mode/val/modes.yml
index 90842e11..e201fa5b 100644
--- a/spec/rtems/mode/val/modes.yml
+++ b/spec/rtems/mode/val/modes.yml
@@ -13,7 +13,7 @@ test-actions:
       Check that RTEMS_NO_ASR is a power of two representable as an integer of
       type rtems_mode.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_NO_ASR ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_NO_ASR ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -23,7 +23,7 @@ test-actions:
       Check that RTEMS_NO_PREEMPT is a power of two representable as an integer
       of type rtems_mode.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_NO_PREEMPT ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_NO_PREEMPT ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -33,7 +33,7 @@ test-actions:
       Check that RTEMS_TIMESLICE is a power of two representable as an integer
       of type rtems_mode.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_TIMESLICE ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_TIMESLICE ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -48,7 +48,7 @@ test-actions:
   - brief: |
       Check that RTEMS_ASR is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_ASR, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_ASR, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -57,7 +57,7 @@ test-actions:
   - brief: |
       Check that RTEMS_DEFAULT_MODES is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_DEFAULT_MODES, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_DEFAULT_MODES, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -66,7 +66,7 @@ test-actions:
   - brief: |
       Check that RTEMS_NO_TIMESLICE is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_NO_TIMESLICE, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_NO_TIMESLICE, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -75,7 +75,7 @@ test-actions:
   - brief: |
       Check that RTEMS_PREEMPT is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_PREEMPT, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_PREEMPT, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -92,7 +92,7 @@ test-actions:
       equal to RTEMS_ASR_MASK.
     code: |
       T_step_eq_u32(
-        ${step},
+        ${.:/step},
         RTEMS_ASR_MASK & RTEMS_ALL_MODE_MASKS,
         RTEMS_ASR_MASK
       );
@@ -106,7 +106,7 @@ test-actions:
       is equal to RTEMS_PREEMPT_MASK.
     code: |
       T_step_eq_u32(
-        ${step},
+        ${.:/step},
         RTEMS_PREEMPT_MASK & RTEMS_ALL_MODE_MASKS,
         RTEMS_PREEMPT_MASK
       );
@@ -120,7 +120,7 @@ test-actions:
       RTEMS_ALL_MODE_MASKS is equal to RTEMS_TIMESLICE_MASK.
     code: |
       T_step_eq_u32(
-        ${step},
+        ${.:/step},
         RTEMS_TIMESLICE_MASK & RTEMS_ALL_MODE_MASKS,
         RTEMS_TIMESLICE_MASK
       );
@@ -134,7 +134,7 @@ test-actions:
       RTEMS_ALL_MODE_MASKS is equal to RTEMS_INTERRUPT_MASK.
     code: |
       T_step_eq_u32(
-        ${step},
+        ${.:/step},
         RTEMS_INTERRUPT_MASK & RTEMS_ALL_MODE_MASKS,
         RTEMS_INTERRUPT_MASK
       );
@@ -153,7 +153,7 @@ test-actions:
       Check that RTEMS_ASR_MASK is a power of two representable as an integer
       of type rtems_mode.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_ASR_MASK ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_ASR_MASK ) );
     links:
     - role: validation
       uid: ../req/masks
@@ -163,7 +163,7 @@ test-actions:
       Check that RTEMS_PREEMPT_MASK is a power of two representable as an
       integer of type rtems_mode.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_PREEMPT_MASK ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_PREEMPT_MASK ) );
     links:
     - role: validation
       uid: ../req/masks
@@ -173,7 +173,7 @@ test-actions:
       Check that RTEMS_TIMESLICE_MASK is a power of two representable as an
       integer of type rtems_mode.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_TIMESLICE_MASK ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_TIMESLICE_MASK ) );
     links:
     - role: validation
       uid: ../req/masks
@@ -199,7 +199,7 @@ test-actions:
       equal to RTEMS_INTERRUPT_MASK this proves that each constant and 0xff has
       a unique value.
     code: |
-      T_step_eq_int( ${step}, PopCount( modes ), 11 );
+      T_step_eq_int( ${.:/step}, PopCount( modes ), 11 );
     links:
     - role: validation
       uid: ../req/masks-unique
@@ -226,7 +226,7 @@ test-actions:
       mode constants except is a power of this proves that each constant has a
       unique value.
     code: |
-      T_step_eq_int( ${step}, PopCount( modes ), 3 );
+      T_step_eq_int( ${.:/step}, PopCount( modes ), 3 );
     links:
     - role: validation
       uid: ../req/unique
@@ -246,7 +246,7 @@ test-actions:
       Check the result of ${../if/interrupt-level:/name} for a sample value.
     code: |
       T_step_eq_u32(
-        ${step},
+        ${.:/step},
         RTEMS_INTERRUPT_LEVEL( UINT32_MAX ),
         RTEMS_INTERRUPT_MASK
       );
diff --git a/spec/rtems/object/val/object.yml b/spec/rtems/object/val/object.yml
index 4fcfed64..1acda57e 100644
--- a/spec/rtems/object/val/object.yml
+++ b/spec/rtems/object/val/object.yml
@@ -78,7 +78,7 @@ test-actions:
   - brief: |
       Check that the accumulated name has the expected value.
     code: |
-      T_step_eq_u32( ${step}, accumulated_name, 0x51515100 );
+      T_step_eq_u32( ${.:/step}, accumulated_name, 0x51515100 );
     links:
     - role: validation
       uid: ../req/build-name
@@ -99,7 +99,7 @@ test-actions:
   - brief: |
       Check that the returned value is one.
     code: |
-      T_step_eq_u32( ${step}, node, 1 );
+      T_step_eq_u32( ${.:/step}, node, 1 );
     links: []
   links:
   - role: validation
diff --git a/spec/rtems/option/val/options.yml b/spec/rtems/option/val/options.yml
index 6659e26d..f17a6296 100644
--- a/spec/rtems/option/val/options.yml
+++ b/spec/rtems/option/val/options.yml
@@ -12,7 +12,7 @@ test-actions:
   - brief: |
       Check that RTEMS_EVENT_ANY is a power of two.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_EVENT_ANY ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_EVENT_ANY ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -21,7 +21,7 @@ test-actions:
   - brief: |
       Check that RTEMS_NO_WAIT is a power of two.
     code: |
-      T_step_true( ${step}, IsPowerOfTwo( RTEMS_NO_WAIT ) );
+      T_step_true( ${.:/step}, IsPowerOfTwo( RTEMS_NO_WAIT ) );
     links:
     - role: validation
       uid: ../req/bit-set
@@ -36,7 +36,7 @@ test-actions:
   - brief: |
       Check that RTEMS_DEFAULT_OPTIONS is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_DEFAULT_OPTIONS, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_DEFAULT_OPTIONS, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -45,7 +45,7 @@ test-actions:
   - brief: |
       Check that RTEMS_EVENT_ALL is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_EVENT_ALL, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_EVENT_ALL, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -54,7 +54,7 @@ test-actions:
   - brief: |
       Check that RTEMS_WAIT is equal to zero.
     code: |
-      T_step_eq_u32( ${step}, RTEMS_WAIT, 0 );
+      T_step_eq_u32( ${.:/step}, RTEMS_WAIT, 0 );
     links:
     - role: validation
       uid: ../req/default
@@ -76,7 +76,7 @@ test-actions:
       constant is a power of two, this proves that each constant has a unique
       value.
     code: |
-      T_step_eq_int( ${step}, PopCount( options ), 2 );
+      T_step_eq_int( ${.:/step}, PopCount( options ), 2 );
     links:
     - role: validation
       uid: ../req/unique
@@ -93,7 +93,7 @@ test-actions:
   - brief: |
       Check ${..//if/default:/name} equals ``${../if/wait:/name}``.
     code: |
-      T_step_eq_int( ${step}, ${../if/default:/name}, ${../if/wait:/name} );
+      T_step_eq_int( ${.:/step}, ${../if/default:/name}, ${../if/wait:/name} );
     links:
     - role: validation
       uid: ../req/default-equals
diff --git a/spec/rtems/part/val/part.yml b/spec/rtems/part/val/part.yml
index 00c24ba5..f659f113 100644
--- a/spec/rtems/part/val/part.yml
+++ b/spec/rtems/part/val/part.yml
@@ -24,7 +24,7 @@ test-actions:
       RTEMS_DEFAULT_ATTRIBUTES,
       &id
     );
-    T_step_rsc_success( ${step}, sc );
+    T_step_rsc_success( ${.:/step}, sc );
   checks:
   - brief: |
       Check that exactly three buffers can be obtained from the partition for
@@ -32,23 +32,23 @@ test-actions:
     code: |
       pointers[ 0 ] = NULL;
       sc = rtems_partition_get_buffer( id, &pointers[ 0 ] );
-      T_step_rsc_success( ${step}, sc );
-      T_step_not_null( ${step}, pointers[ 0 ] );
+      T_step_rsc_success( ${.:/step}, sc );
+      T_step_not_null( ${.:/step}, pointers[ 0 ] );
 
       pointers[ 1 ] = NULL;
       sc = rtems_partition_get_buffer( id, &pointers[ 1 ] );
-      T_step_rsc_success( ${step}, sc );
-      T_step_not_null( ${step}, pointers[ 1 ] );
+      T_step_rsc_success( ${.:/step}, sc );
+      T_step_not_null( ${.:/step}, pointers[ 1 ] );
 
       pointers[ 2 ] = NULL;
       sc = rtems_partition_get_buffer( id, &pointers[ 2 ] );
-      T_step_rsc_success( ${step}, sc );
-      T_step_not_null( ${step}, pointers[ 2 ] );
+      T_step_rsc_success( ${.:/step}, sc );
+      T_step_not_null( ${.:/step}, pointers[ 2 ] );
 
       pointers[ 3 ] = NULL;
       sc = rtems_partition_get_buffer( id, &pointers[ 3 ] );
-      T_step_rsc( ${step}, sc, RTEMS_UNSATISFIED );
-      T_step_null( ${step}, pointers[ 3 ] );
+      T_step_rsc( ${.:/step}, sc, RTEMS_UNSATISFIED );
+      T_step_null( ${.:/step}, pointers[ 3 ] );
     links:
     - role: validation
       uid: ../req/buffers
@@ -57,40 +57,40 @@ test-actions:
       be obtained from the partition for use in parallel in FIFO order.
     code: |
       sc = rtems_partition_return_buffer( id, pointers[ 1 ] );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
 
       sc = rtems_partition_return_buffer( id, pointers[ 2 ] );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
 
       sc = rtems_partition_return_buffer( id, pointers[ 0 ] );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
 
       pointer = NULL;
       sc = rtems_partition_get_buffer( id, &pointer );
-      T_step_rsc_success( ${step}, sc );
-      T_step_eq_ptr( ${step}, pointer, pointers[ 1 ] );
+      T_step_rsc_success( ${.:/step}, sc );
+      T_step_eq_ptr( ${.:/step}, pointer, pointers[ 1 ] );
 
       pointer = NULL;
       sc = rtems_partition_get_buffer( id, &pointer );
-      T_step_rsc_success( ${step}, sc );
-      T_step_eq_ptr( ${step}, pointer, pointers[ 2 ] );
+      T_step_rsc_success( ${.:/step}, sc );
+      T_step_eq_ptr( ${.:/step}, pointer, pointers[ 2 ] );
 
       pointer = NULL;
       sc = rtems_partition_get_buffer( id, &pointer );
-      T_step_rsc_success( ${step}, sc );
-      T_step_eq_ptr( ${step}, pointer, pointers[ 0 ] );
+      T_step_rsc_success( ${.:/step}, sc );
+      T_step_eq_ptr( ${.:/step}, pointer, pointers[ 0 ] );
 
       sc = rtems_partition_return_buffer( id, pointers[ 0 ] );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
 
       sc = rtems_partition_return_buffer( id, pointers[ 1 ] );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
 
       sc = rtems_partition_return_buffer( id, pointers[ 2 ] );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
 
       sc = rtems_partition_delete( id );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links:
     - role: validation
       uid: ../req/fifo
diff --git a/spec/rtems/scheduler/val/scheduler.yml b/spec/rtems/scheduler/val/scheduler.yml
index 4e05c646..29faad20 100644
--- a/spec/rtems/scheduler/val/scheduler.yml
+++ b/spec/rtems/scheduler/val/scheduler.yml
@@ -17,7 +17,7 @@ test-actions:
       Check that the values returned by ${../if/get-processor:/name}
       and ${../if/get-processor-macro:/name} are equal.
     code: |
-      T_step_eq_u32( ${step}, cpu_index, cpu_index_macro );
+      T_step_eq_u32( ${.:/step}, cpu_index, cpu_index_macro );
     links:
     - role: validation
       uid: ../req/get-processor
@@ -35,7 +35,7 @@ test-actions:
       Check that the values returned by ${../if/get-processor-maximum:/name}
       and ${../if/get-processor-maximum-macro:/name} are equal.
     code: |
-      T_step_eq_u32( ${step}, cpu_max, cpu_max_macro );
+      T_step_eq_u32( ${.:/step}, cpu_max, cpu_max_macro );
     links:
     - role: validation
       uid: ../req/get-processor-maximum
diff --git a/spec/rtems/scheduler/val/smp-only.yml b/spec/rtems/scheduler/val/smp-only.yml
index 64651279..25a7eb87 100644
--- a/spec/rtems/scheduler/val/smp-only.yml
+++ b/spec/rtems/scheduler/val/smp-only.yml
@@ -16,7 +16,7 @@ test-actions:
     scheduler_id = GetSelfScheduler();
     priority = GetSelfPriority();
     cpu_max = rtems_scheduler_get_processor_maximum();
-    T_step_ge_u32( ${step}, cpu_max, 1 );
+    T_step_ge_u32( ${.:/step}, cpu_max, 1 );
 
     for ( cpu_index = 0; cpu_index < cpu_max; ++cpu_index ) {
       rtems_status_code sc;
@@ -48,14 +48,14 @@ test-actions:
   - brief: |
       Check that the returned value is greater than or equal to one.
     code: |
-      T_step_ge_u32( ${step}, cpu_max, 1 );
+      T_step_ge_u32( ${.:/step}, cpu_max, 1 );
     links: []
   - brief: |
       Check that the returned value is less than or equal to
       ${../../config/if/get-maximum-processors:/name}.
     code: |
       T_step_le_u32(
-        ${step},
+        ${.:/step},
         cpu_max,
         rtems_configuration_get_maximum_processors()
       );
@@ -71,43 +71,43 @@ test-actions:
     rtems_id          id_by_cpu;
 
     sc = rtems_scheduler_ident( TEST_SCHEDULER_A_NAME, &id[ 0 ]);
-    T_step_rsc_success( ${step}, sc );
+    T_step_rsc_success( ${.:/step}, sc );
 
     sc = rtems_scheduler_ident( TEST_SCHEDULER_B_NAME, &id[ 1 ]);
-    T_step_rsc_success( ${step}, sc );
+    T_step_rsc_success( ${.:/step}, sc );
 
     sc = rtems_scheduler_ident( TEST_SCHEDULER_C_NAME, &id[ 2 ]);
-    T_step_rsc_success( ${step}, sc );
+    T_step_rsc_success( ${.:/step}, sc );
 
     sc = rtems_scheduler_ident( TEST_SCHEDULER_D_NAME, &id[ 3 ]);
-    T_step_rsc_success( ${step}, sc );
+    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 );
+      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 );
+      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 );
+      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 );
+      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 );
+      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
@@ -115,8 +115,8 @@ test-actions:
       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 );
+      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
@@ -124,7 +124,7 @@ test-actions:
       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 );
+      T_step_true( ${.:/step}, sc == RTEMS_INVALID_NAME || id[ 2 ] == id_by_cpu );
     links:
     - role: validation
       uid: /acfg/req/scheduler-assign-scheduler
@@ -132,7 +132,7 @@ test-actions:
       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 );
+      T_step_true( ${.:/step}, sc == RTEMS_INVALID_NAME || id[ 2 ] == id_by_cpu );
     links:
     - role: validation
       uid: /acfg/req/scheduler-assign-scheduler
diff --git a/spec/rtems/signal/val/signal-constant.yml b/spec/rtems/signal/val/signal-constant.yml
index b8838427..f799ec32 100644
--- a/spec/rtems/signal/val/signal-constant.yml
+++ b/spec/rtems/signal/val/signal-constant.yml
@@ -14,7 +14,7 @@ test-actions:
       the signal in the signal set.
     code: |
       T_step_eq_u32(
-        ${step},
+        ${.:/step},
         ctx->signal,
         ( (rtems_signal_set) 1 ) << ctx->number
       );
@@ -32,19 +32,19 @@ test-actions:
     ctx->signal_set = 0;
 
     sc = rtems_signal_catch( NULL, RTEMS_DEFAULT_MODES );
-    T_step_rsc_success( ${step}, sc );
+    T_step_rsc_success( ${.:/step}, sc );
 
     sc = rtems_signal_catch( SignalHandler, RTEMS_NO_ASR );
-    T_step_rsc_success( ${step}, sc );
+    T_step_rsc_success( ${.:/step}, sc );
 
     sc = rtems_signal_send( RTEMS_SELF, ctx->signal );
-    T_step_rsc_success( ${step}, sc );
+    T_step_rsc_success( ${.:/step}, sc );
   checks:
   - brief: |
       Check that the caught signal set represents exactly the sent signal.
     code: |
       T_step_eq_u32(
-        ${step},
+        ${.:/step},
         ctx->signal_set,
         ctx->signal
       );
diff --git a/spec/rtems/signal/val/signals.yml b/spec/rtems/signal/val/signals.yml
index 56457e8b..8e7a8f70 100644
--- a/spec/rtems/signal/val/signals.yml
+++ b/spec/rtems/signal/val/signals.yml
@@ -11,7 +11,7 @@ test-actions:
 
     for ( i = 0; i < 32; ++i ) {
       ${signal-constant:/test-run}( signals[ i ], i );
-      T_step( i ); /* ${steps/32} */
+      T_step( i ); /* ${.:/step:32} */
     }
   checks: []
   links:
diff --git a/spec/rtems/support/val/support.yml b/spec/rtems/support/val/support.yml
index c84f6dfe..a7898ff4 100644
--- a/spec/rtems/support/val/support.yml
+++ b/spec/rtems/support/val/support.yml
@@ -18,28 +18,28 @@ test-actions:
   - brief: |
       Check that the first character is equal to 0x01.
     code: |
-      T_step_eq_char( ${step}, c1, 0x01 );
+      T_step_eq_char( ${.:/step}, c1, 0x01 );
     links:
     - role: validation
       uid: ../req/name-to-characters-1
   - brief: |
       Check that the second character is equal to 0x02.
     code: |
-      T_step_eq_char( ${step}, c2, 0x02 );
+      T_step_eq_char( ${.:/step}, c2, 0x02 );
     links:
     - role: validation
       uid: ../req/name-to-characters-2
   - brief: |
       Check that the third character is equal to 0x03.
     code: |
-      T_step_eq_char( ${step}, c3, 0x03 );
+      T_step_eq_char( ${.:/step}, c3, 0x03 );
     links:
     - role: validation
       uid: ../req/name-to-characters-3
   - brief: |
       Check that the fourth character is equal to 0x04.
     code: |
-      T_step_eq_char( ${step}, c4, 0x04 );
+      T_step_eq_char( ${.:/step}, c4, 0x04 );
     links:
     - role: validation
       uid: ../req/name-to-characters-4
diff --git a/spec/rtems/task/val/smp.yml b/spec/rtems/task/val/smp.yml
index 8c5ac6fd..eda6463c 100644
--- a/spec/rtems/task/val/smp.yml
+++ b/spec/rtems/task/val/smp.yml
@@ -14,7 +14,7 @@ test-actions:
   - brief: |
       Move runner from scheduler A to B.
     code: |
-      T_step_eq_u32( ${step}, GetSelfScheduler(), SCHEDULER_A_ID );
+      T_step_eq_u32( ${.:/step}, GetSelfScheduler(), SCHEDULER_A_ID );
       SetSelfScheduler( SCHEDULER_B_ID, 1 );
     links: []
   - brief: |
@@ -29,9 +29,9 @@ test-actions:
         RTEMS_DEFAULT_ATTRIBUTES,
         &id
       );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
 
-      T_step_eq_u32( ${step}, GetScheduler( id ), SCHEDULER_B_ID );
+      T_step_eq_u32( ${.:/step}, GetScheduler( id ), SCHEDULER_B_ID );
       DeleteTask( id );
     links:
     - role: validation
@@ -41,9 +41,9 @@ test-actions:
       is scheduler B.
     code: |
       sc = rtems_task_construct( &DefaultTaskConfig, &id );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
 
-      T_step_eq_u32( ${step}, GetScheduler( id ), SCHEDULER_B_ID );
+      T_step_eq_u32( ${.:/step}, GetScheduler( id ), SCHEDULER_B_ID );
       DeleteTask( id );
     links:
     - role: validation
diff --git a/spec/rtems/task/val/task.yml b/spec/rtems/task/val/task.yml
index 97bdebf5..d522cd9e 100644
--- a/spec/rtems/task/val/task.yml
+++ b/spec/rtems/task/val/task.yml
@@ -15,7 +15,7 @@ test-actions:
       Check that the returned value is equal to the object identifier of the
       calling task.
     code: |
-      T_step_eq_u32( ${step}, id, 0x0a010001 );
+      T_step_eq_u32( ${.:/step}, id, 0x0a010001 );
     links: []
   links:
   - role: validation
@@ -47,8 +47,8 @@ test-actions:
       ${../if/iterate:/params[0]/name} and ${../if/iterate:/params[1]/name}.
       Secondly, this shows that the iteration was done over all tasks.
     code: |
-      T_step_eq_u32( ${step}, ctx.counter_all, task_count );
-      T_step_eq_u32( ${step}, ctx.counter_self, 1 );
+      T_step_eq_u32( ${.:/step}, ctx.counter_all, task_count );
+      T_step_eq_u32( ${.:/step}, ctx.counter_self, 1 );
     links:
     - role: validation
       uid: ../req/iterate-visit
@@ -59,9 +59,9 @@ test-actions:
       call.  Check that the object alloctor mutex was owned during the
       iteration.
     code: |
-      T_step_false( ${step}, ctx.owner_before );
-      T_step_true( ${step}, ctx.owner_in_visitor );
-      T_step_false( ${step}, ctx.owner_after );
+      T_step_false( ${.:/step}, ctx.owner_before );
+      T_step_true( ${.:/step}, ctx.owner_in_visitor );
+      T_step_false( ${.:/step}, ctx.owner_after );
     links:
     - role: validation
       uid: ../req/iterate-start
@@ -84,7 +84,7 @@ test-actions:
       Check that the all counter is equal to one.  This shows that the
       iteration stops when the visitor returns ${/c/if/true:/name}.
     code: |
-      T_step_eq_u32( ${step}, ctx.counter_all, 1 );
+      T_step_eq_u32( ${.:/step}, ctx.counter_all, 1 );
     links:
     - role: validation
       uid: ../req/iterate-stop
@@ -156,7 +156,7 @@ test-actions:
       called with a task identifier parameter of ${../if/self-define:/name}.
     code: |
       sc = rtems_task_is_suspended( RTEMS_SELF );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links:
     - role: validation
       uid: ../req/self-define
@@ -180,9 +180,9 @@ test-actions:
         RTEMS_DEFAULT_ATTRIBUTES,
         &id
       );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
 
-      T_step_eq_u32( ${step}, GetScheduler( id ), SCHEDULER_A_ID );
+      T_step_eq_u32( ${.:/step}, GetScheduler( id ), SCHEDULER_A_ID );
       DeleteTask( id );
     links:
     - role: validation
@@ -192,9 +192,9 @@ test-actions:
       is scheduler A.
     code: |
       sc = rtems_task_construct( &DefaultTaskConfig, &id );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
 
-      T_step_eq_u32( ${step}, GetScheduler( id ), SCHEDULER_A_ID );
+      T_step_eq_u32( ${.:/step}, GetScheduler( id ), SCHEDULER_A_ID );
       DeleteTask( id );
     links:
     - role: validation
diff --git a/spec/score/interr/val/terminate.yml b/spec/score/interr/val/terminate.yml
index 7b0dec50..228db515 100644
--- a/spec/score/interr/val/terminate.yml
+++ b/spec/score/interr/val/terminate.yml
@@ -28,7 +28,7 @@ test-actions:
       &table,
       &extension_ids[ 2 ]
     );
-    T_step_rsc_success( ${step}, sc );
+    T_step_rsc_success( ${.:/step}, sc );
 
     table.fatal = FatalExtension3;
     sc = rtems_extension_create(
@@ -36,7 +36,7 @@ test-actions:
       &table,
       &extension_ids[ 3 ]
     );
-    T_step_rsc_success( ${step}, sc );
+    T_step_rsc_success( ${.:/step}, sc );
 
     table.fatal = FatalExtension4;
     sc = rtems_extension_create(
@@ -44,7 +44,7 @@ test-actions:
       &table,
       &extension_ids[ 4 ]
     );
-    T_step_rsc_success( ${step}, sc );
+    T_step_rsc_success( ${.:/step}, sc );
 
     table.fatal = FatalExtension5;
     sc = rtems_extension_create(
@@ -52,7 +52,7 @@ test-actions:
       &table,
       &extension_ids[ 5 ]
     );
-    T_step_rsc_success( ${step}, sc );
+    T_step_rsc_success( ${.:/step}, sc );
 
     table.fatal = FatalExtension6;
     sc = rtems_extension_create(
@@ -60,7 +60,7 @@ test-actions:
       &table,
       &extension_ids[ 6 ]
     );
-    T_step_rsc_success( ${step}, sc );
+    T_step_rsc_success( ${.:/step}, sc );
 
     test_case_active = true;
 
@@ -79,7 +79,7 @@ test-actions:
         _Per_CPU_Get_state( _Per_CPU_Get() ) == PER_CPU_STATE_SHUTDOWN );
       _ISR_Set_level( 0 );
       #endif
-      T_step_true( ${step}, shutdown_ok );
+      T_step_true( ${.:/step}, shutdown_ok );
     links:
     - role: validation
       uid: ../req/terminate-shutdown
@@ -87,41 +87,41 @@ test-actions:
       Delete the dynamic extension sets.
     code: |
       sc = rtems_extension_delete( extension_ids[ 2 ] );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
 
       sc = rtems_extension_delete( extension_ids[ 6 ] );
-      T_step_rsc_success( ${step}, sc );
+      T_step_rsc_success( ${.:/step}, sc );
     links: []
   - brief: |
       Check that the fatal extensions were invoked with the expected source.
     code: |
       T_step_eq_int(
-        ${step},
+        ${.:/step},
         info[ 0 ].source,
         RTEMS_FATAL_SOURCE_APPLICATION
       );
       T_step_eq_int(
-        ${step},
+        ${.:/step},
         info[ 1 ].source,
         RTEMS_FATAL_SOURCE_APPLICATION
       );
       T_step_eq_int(
-        ${step},
+        ${.:/step},
         info[ 2 ].source,
         RTEMS_FATAL_SOURCE_APPLICATION
       );
       T_step_eq_int(
-        ${step},
+        ${.:/step},
         info[ 4 ].source,
         RTEMS_FATAL_SOURCE_APPLICATION
       );
       T_step_eq_int(
-        ${step},
+        ${.:/step},
         info[ 5 ].source,
         RTEMS_FATAL_SOURCE_APPLICATION
       );
       T_step_eq_int(
-        ${step},
+        ${.:/step},
         info[ 6 ].source,
         RTEMS_FATAL_SOURCE_APPLICATION
       );
@@ -132,36 +132,36 @@ test-actions:
       Check that the fatal extensions were invoked with the expected always set
       to false argument.
     code: |
-      T_step_false( ${step}, info[ 0 ].always_set_to_false );
-      T_step_false( ${step}, info[ 1 ].always_set_to_false );
-      T_step_false( ${step}, info[ 2 ].always_set_to_false );
-      T_step_false( ${step}, info[ 4 ].always_set_to_false );
-      T_step_false( ${step}, info[ 5 ].always_set_to_false );
-      T_step_false( ${step}, info[ 6 ].always_set_to_false );
+      T_step_false( ${.:/step}, info[ 0 ].always_set_to_false );
+      T_step_false( ${.:/step}, info[ 1 ].always_set_to_false );
+      T_step_false( ${.:/step}, info[ 2 ].always_set_to_false );
+      T_step_false( ${.:/step}, info[ 4 ].always_set_to_false );
+      T_step_false( ${.:/step}, info[ 5 ].always_set_to_false );
+      T_step_false( ${.:/step}, info[ 6 ].always_set_to_false );
     links:
     - role: validation
       uid: ../req/terminate-userext
   - brief: |
       Check that the fatal extensions were invoked with the expected code.
     code: |
-      T_step_eq_ulong( ${step}, info[ 0 ].code, 123456 );
-      T_step_eq_ulong( ${step}, info[ 1 ].code, 123456 );
-      T_step_eq_ulong( ${step}, info[ 2 ].code, 123456 );
-      T_step_eq_ulong( ${step}, info[ 4 ].code, 123456 );
-      T_step_eq_ulong( ${step}, info[ 5 ].code, 123456 );
-      T_step_eq_ulong( ${step}, info[ 6 ].code, 123456 );
+      T_step_eq_ulong( ${.:/step}, info[ 0 ].code, 123456 );
+      T_step_eq_ulong( ${.:/step}, info[ 1 ].code, 123456 );
+      T_step_eq_ulong( ${.:/step}, info[ 2 ].code, 123456 );
+      T_step_eq_ulong( ${.:/step}, info[ 4 ].code, 123456 );
+      T_step_eq_ulong( ${.:/step}, info[ 5 ].code, 123456 );
+      T_step_eq_ulong( ${.:/step}, info[ 6 ].code, 123456 );
     links:
     - role: validation
       uid: ../req/terminate-userext
   - brief: |
       Check that the fatal extensions were invoked in forward order.
     code: |
-      T_step_eq_uint( ${step}, info[ 0 ].counter, 1 );
-      T_step_eq_uint( ${step}, info[ 1 ].counter, 2 );
-      T_step_eq_uint( ${step}, info[ 2 ].counter, 3 );
-      T_step_eq_uint( ${step}, info[ 4 ].counter, 4 );
-      T_step_eq_uint( ${step}, info[ 5 ].counter, 5 );
-      T_step_eq_uint( ${step}, info[ 6 ].counter, 6 );
+      T_step_eq_uint( ${.:/step}, info[ 0 ].counter, 1 );
+      T_step_eq_uint( ${.:/step}, info[ 1 ].counter, 2 );
+      T_step_eq_uint( ${.:/step}, info[ 2 ].counter, 3 );
+      T_step_eq_uint( ${.:/step}, info[ 4 ].counter, 4 );
+      T_step_eq_uint( ${.:/step}, info[ 5 ].counter, 5 );
+      T_step_eq_uint( ${.:/step}, info[ 6 ].counter, 6 );
     links:
     - role: validation
       uid: /rtems/userext/req/fatal-order
@@ -169,24 +169,24 @@ test-actions:
       Check that the fatal extension in the deleted extension set was not
       invoked.
     code: |
-      T_step_eq_int( ${step}, info[ 3 ].source, 0 );
-      T_step_false( ${step}, info[ 3 ].always_set_to_false );
-      T_step_eq_ulong( ${step}, info[ 3 ].code, 0 );
-      T_step_eq_uint( ${step}, info[ 3 ].counter, 0 );
+      T_step_eq_int( ${.:/step}, info[ 3 ].source, 0 );
+      T_step_false( ${.:/step}, info[ 3 ].always_set_to_false );
+      T_step_eq_ulong( ${.:/step}, info[ 3 ].code, 0 );
+      T_step_eq_uint( ${.:/step}, info[ 3 ].counter, 0 );
     links:
     - role: validation
       uid: /rtems/userext/req/fatal-iterate-remove
   - brief: |
       Check that the system state is terminated.
     code: |
-      T_step_eq_int( ${step}, _System_state_Get(), SYSTEM_STATE_TERMINATED );
+      T_step_eq_int( ${.:/step}, _System_state_Get(), SYSTEM_STATE_TERMINATED );
     links:
     - role: validation
       uid: ../req/terminate-state
   - brief: |
       Check that the system was halted with the expected fatal source.
     code: |
-      T_step_eq_int( ${step}, halt_source, RTEMS_FATAL_SOURCE_APPLICATION );
+      T_step_eq_int( ${.:/step}, halt_source, RTEMS_FATAL_SOURCE_APPLICATION );
     links:
     - role: validation
       uid: ../req/terminate-halt
@@ -195,7 +195,7 @@ test-actions:
   - brief: |
       Check that the system was halted with the expected fatal code.
     code: |
-      T_step_eq_ulong( ${step}, halt_code, 123456 );
+      T_step_eq_ulong( ${.:/step}, halt_code, 123456 );
     links:
     - role: validation
       uid: ../req/terminate-halt
@@ -204,7 +204,7 @@ test-actions:
   - brief: |
       Check that the system was finally halted.
     code: |
-      T_step_eq_uint( ${step}, counter, 7 );
+      T_step_eq_uint( ${.:/step}, counter, 7 );
     links:
     - role: validation
       uid: ../req/terminate-halt
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 88cde501..5a9ca01c 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
@@ -13,7 +13,7 @@ test-actions:
   - brief: |
       Check that the expected fatal source is present.
     code: |
-      T_step_eq_int( ${step}, ctx->source, RTEMS_FATAL_SOURCE_SMP );
+      T_step_eq_int( ${.:/step}, ctx->source, RTEMS_FATAL_SOURCE_SMP );
     links:
     - role: validation
       uid: ../req/fatal-boot-processor-not-assigned-to-scheduler
@@ -21,7 +21,7 @@ test-actions:
       Check that the expected fatal code is present.
     code: |
       T_step_eq_ulong(
-        ${step},
+        ${.:/step},
         ctx->code,
         SMP_FATAL_BOOT_PROCESSOR_NOT_ASSIGNED_TO_SCHEDULER
       );
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 405d0a65..d5abd609 100644
--- a/spec/score/smp/val/fatal-mandatory-processor-not-present.yml
+++ b/spec/score/smp/val/fatal-mandatory-processor-not-present.yml
@@ -13,7 +13,7 @@ test-actions:
   - brief: |
       Check that the expected fatal source is present.
     code: |
-      T_step_eq_int( ${step}, ctx->source, RTEMS_FATAL_SOURCE_SMP );
+      T_step_eq_int( ${.:/step}, ctx->source, RTEMS_FATAL_SOURCE_SMP );
     links:
     - role: validation
       uid: ../req/fatal-mandatory-processor-not-present
@@ -21,7 +21,7 @@ test-actions:
       Check that the expected fatal code is present.
     code: |
       T_step_eq_ulong(
-        ${step},
+        ${.:/step},
         ctx->code,
         SMP_FATAL_MANDATORY_PROCESSOR_NOT_PRESENT
       );
diff --git a/spec/score/smp/val/fatal-scheduler-requires-exactly-one-processor.yml b/spec/score/smp/val/fatal-scheduler-requires-exactly-one-processor.yml
index 4583b0ec..6e9efc7f 100644
--- a/spec/score/smp/val/fatal-scheduler-requires-exactly-one-processor.yml
+++ b/spec/score/smp/val/fatal-scheduler-requires-exactly-one-processor.yml
@@ -13,7 +13,7 @@ test-actions:
   - brief: |
       Check that the expected fatal source is present.
     code: |
-      T_step_eq_int( ${step}, ctx->source, RTEMS_FATAL_SOURCE_SMP );
+      T_step_eq_int( ${.:/step}, ctx->source, RTEMS_FATAL_SOURCE_SMP );
     links:
     - role: validation
       uid: ../req/fatal-scheduler-requires-exactly-one-processor
@@ -21,7 +21,7 @@ test-actions:
       Check that the expected fatal code is present.
     code: |
       T_step_eq_ulong(
-        ${step},
+        ${.:/step},
         ctx->code,
         SMP_FATAL_SCHEDULER_REQUIRES_EXACTLY_ONE_PROCESSOR
       );
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 c1782b20..30e4c406 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
@@ -13,7 +13,7 @@ test-actions:
   - brief: |
       Check that the expected fatal source is present.
     code: |
-      T_step_eq_int( ${step}, ctx->source, RTEMS_FATAL_SOURCE_SMP );
+      T_step_eq_int( ${.:/step}, ctx->source, RTEMS_FATAL_SOURCE_SMP );
     links:
     - role: validation
       uid: ../req/fatal-start-of-mandatory-processor-failed
@@ -21,7 +21,7 @@ test-actions:
       Check that the expected fatal code is present.
     code: |
       T_step_eq_ulong(
-        ${step},
+        ${.:/step},
         ctx->code,
         SMP_FATAL_START_OF_MANDATORY_PROCESSOR_FAILED
       );
diff --git a/spec/score/smp/val/fatal-start-on-not-online-processor.yml b/spec/score/smp/val/fatal-start-on-not-online-processor.yml
index 93947064..da7b4cbe 100644
--- a/spec/score/smp/val/fatal-start-on-not-online-processor.yml
+++ b/spec/score/smp/val/fatal-start-on-not-online-processor.yml
@@ -12,7 +12,7 @@ test-actions:
   - brief: |
       Check that the expected fatal source is present.
     code: |
-      T_step_eq_int( ${step}, ctx->source, RTEMS_FATAL_SOURCE_SMP );
+      T_step_eq_int( ${.:/step}, ctx->source, RTEMS_FATAL_SOURCE_SMP );
     links:
     - role: validation
       uid: ../req/fatal-start-on-not-online-processor
@@ -20,7 +20,7 @@ test-actions:
       Check that the expected fatal code is present.
     code: |
       T_step_eq_ulong(
-        ${step},
+        ${.:/step},
         ctx->code,
         SMP_FATAL_MULTITASKING_START_ON_NOT_ONLINE_PROCESSOR
       );
diff --git a/spec/score/smp/val/fatal.yml b/spec/score/smp/val/fatal.yml
index d30da8fe..e9fe8014 100644
--- a/spec/score/smp/val/fatal.yml
+++ b/spec/score/smp/val/fatal.yml
@@ -12,14 +12,14 @@ test-actions:
   - brief: |
       Check that the expected fatal source is present.
     code: |
-      T_step_eq_int( ${step}, ctx->source, RTEMS_FATAL_SOURCE_SMP );
+      T_step_eq_int( ${.:/step}, ctx->source, RTEMS_FATAL_SOURCE_SMP );
     links:
     - role: validation
       uid: ../req/fatal-shutdown-response
   - brief: |
       Check that the expected fatal code is present.
     code: |
-      T_step_eq_ulong( ${step}, ctx->code, SMP_FATAL_SHUTDOWN_RESPONSE );
+      T_step_eq_ulong( ${.:/step}, ctx->code, SMP_FATAL_SHUTDOWN_RESPONSE );
     links:
     - role: validation
       uid: ../req/fatal-shutdown-response
@@ -27,7 +27,7 @@ test-actions:
       Check that the processor state is shutdown.
     code: |
       T_step_eq_int(
-        ${step},
+        ${.:/step},
         _Per_CPU_Get_state( _Per_CPU_Get() ),
         PER_CPU_STATE_SHUTDOWN
       );
@@ -58,13 +58,13 @@ test-actions:
     }
 
     T_step_eq_uint(
-      ${step},
+      ${.:/step},
       _Atomic_Load_uint( &fatal_counter, ATOMIC_ORDER_RELAXED ),
       1
     );
-    T_step_eq_int( ${step}, fatal_source, RTEMS_FATAL_SOURCE_SMP );
+    T_step_eq_int( ${.:/step}, fatal_source, RTEMS_FATAL_SOURCE_SMP );
     T_step_eq_ulong(
-      ${step},
+      ${.:/step},
       fatal_code,
       SMP_FATAL_WRONG_CPU_STATE_TO_PERFORM_JOBS
     );
@@ -93,13 +93,13 @@ test-actions:
     }
 
     T_step_eq_uint(
-      ${step},
+      ${.:/step},
       _Atomic_Load_uint( &fatal_counter, ATOMIC_ORDER_RELAXED ),
       2
     );
-    T_step_eq_int( ${step}, fatal_source, RTEMS_FATAL_SOURCE_SMP );
+    T_step_eq_int( ${.:/step}, fatal_source, RTEMS_FATAL_SOURCE_SMP );
     T_step_eq_ulong(
-      ${step},
+      ${.:/step},
       fatal_code,
       SMP_FATAL_MULTITASKING_START_ON_INVALID_PROCESSOR
     );
@@ -122,13 +122,13 @@ test-actions:
     }
 
     T_step_eq_uint(
-      ${step},
+      ${.:/step},
       _Atomic_Load_uint( &fatal_counter, ATOMIC_ORDER_RELAXED ),
       3
     );
-    T_step_eq_int( ${step}, fatal_source, RTEMS_FATAL_SOURCE_SMP );
+    T_step_eq_int( ${.:/step}, fatal_source, RTEMS_FATAL_SOURCE_SMP );
     T_step_eq_ulong(
-      ${step},
+      ${.:/step},
       fatal_code,
       SMP_FATAL_MULTITASKING_START_ON_UNASSIGNED_PROCESSOR
     );
diff --git a/spec/score/smp/val/per-cpu-jobs.yml b/spec/score/smp/val/per-cpu-jobs.yml
index ab51a3ea..6b9a261e 100644
--- a/spec/score/smp/val/per-cpu-jobs.yml
+++ b/spec/score/smp/val/per-cpu-jobs.yml
@@ -22,14 +22,14 @@ test-actions:
   - brief: |
       Check that the first job was processed firstly.
     code: |
-      T_step_eq_int( ${step}, counter_0, 1 );
+      T_step_eq_int( ${.:/step}, counter_0, 1 );
     links:
     - role: validation
       uid: ../req/per-cpu-jobs-order
   - brief: |
       Check that the second job was processed secondly.
     code: |
-      T_step_eq_int( ${step}, counter_1, 2 );
+      T_step_eq_int( ${.:/step}, counter_1, 2 );
     links:
     - role: validation
       uid: ../req/per-cpu-jobs-order
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 a34d2874..71c3fa0c 100644
--- a/spec/score/smp/val/start-of-optional-processor-failed.yml
+++ b/spec/score/smp/val/start-of-optional-processor-failed.yml
@@ -15,7 +15,7 @@ test-actions:
       Check that the boot processor is online.
     code: |
       T_step_true(
-        ${step},
+        ${.:/step},
         _Per_CPU_Is_processor_online( _Per_CPU_Get_by_index( 0 ) )
       );
     links:
@@ -25,7 +25,7 @@ test-actions:
       Check that the optional processor which failed to start is not online.
     code: |
       T_step_false(
-        ${step},
+        ${.:/step},
         _Per_CPU_Is_processor_online( _Per_CPU_Get_by_index( 1 ) )
       );
     links:
diff --git a/spec/score/thread/val/fatal-idle-thread-create-failed.yml b/spec/score/thread/val/fatal-idle-thread-create-failed.yml
index a2bc547f..6235c1d6 100644
--- a/spec/score/thread/val/fatal-idle-thread-create-failed.yml
+++ b/spec/score/thread/val/fatal-idle-thread-create-failed.yml
@@ -13,7 +13,7 @@ test-actions:
   - brief: |
       Check that the expected fatal source is present.
     code: |
-      T_step_eq_int( ${step}, ctx->source, INTERNAL_ERROR_CORE );
+      T_step_eq_int( ${.:/step}, ctx->source, INTERNAL_ERROR_CORE );
     links:
     - role: validation
       uid: ../req/fatal-idle-thread-create-failed
@@ -21,7 +21,7 @@ test-actions:
       Check that the expected fatal code is present.
     code: |
       T_step_eq_ulong(
-        ${step},
+        ${.:/step},
         ctx->code,
         INTERNAL_ERROR_IDLE_THREAD_CREATE_FAILED
       );
diff --git a/spec/score/thread/val/fatal-idle-thread-stack-too-small.yml b/spec/score/thread/val/fatal-idle-thread-stack-too-small.yml
index 1b24fc8d..b21e2fcd 100644
--- a/spec/score/thread/val/fatal-idle-thread-stack-too-small.yml
+++ b/spec/score/thread/val/fatal-idle-thread-stack-too-small.yml
@@ -13,7 +13,7 @@ test-actions:
   - brief: |
       Check that the expected fatal source is present.
     code: |
-      T_step_eq_int( ${step}, ctx->source, INTERNAL_ERROR_CORE );
+      T_step_eq_int( ${.:/step}, ctx->source, INTERNAL_ERROR_CORE );
     links:
     - role: validation
       uid: ../req/fatal-idle-thread-stack-too-small
@@ -21,7 +21,7 @@ test-actions:
       Check that the expected fatal code is present.
     code: |
       T_step_eq_ulong(
-        ${step},
+        ${.:/step},
         ctx->code,
         INTERNAL_ERROR_IDLE_THREAD_STACK_TOO_SMALL
       );
@@ -32,7 +32,7 @@ test-actions:
       Check the configured value of ${/acfg/if/idle-task-storage-size:/name}.
     code: |
       T_step_eq_sz(
-        ${step},
+        ${.:/step},
         _Stack_Allocator_allocate_for_idle_storage_size,
         RTEMS_ALIGN_UP(
           RTEMS_TASK_STORAGE_SIZE(
diff --git a/spec/score/thread/val/tls-max-zero.yml b/spec/score/thread/val/tls-max-zero.yml
index 2f0a71af..0e9692da 100644
--- a/spec/score/thread/val/tls-max-zero.yml
+++ b/spec/score/thread/val/tls-max-zero.yml
@@ -16,8 +16,8 @@ test-actions:
       Since at least one thread-local objects is available, the referenced
       requirement is validated.
     code: |
-      T_step_eq_int( ${step}, tls_object, 0 );
-      T_step_eq_sz( ${step}, _Thread_Maximum_TLS_size, 0 );
+      T_step_eq_int( ${.:/step}, tls_object, 0 );
+      T_step_eq_sz( ${.:/step}, _Thread_Maximum_TLS_size, 0 );
     links:
     - role: validation
       uid: ../req/tls-max-zero
diff --git a/spec/score/thread/val/tls.yml b/spec/score/thread/val/tls.yml
index 35d8e8a4..6cc0762b 100644
--- a/spec/score/thread/val/tls.yml
+++ b/spec/score/thread/val/tls.yml
@@ -13,7 +13,7 @@ test-actions:
       Check that the initial value of the zero initialized thread-local
       object has the expected value.
     code: |
-      T_step_eq_int( ${step}, tls_object_0, 0 );
+      T_step_eq_int( ${.:/step}, tls_object_0, 0 );
     links:
     - role: validation
       uid: ../req/tls-zero-initialized-data
@@ -21,7 +21,7 @@ test-actions:
       Check that the alignment of the zero initialized thread-local
       object has the expected value.
     code: |
-      T_step_eq_uptr( ${step}, ( (uintptr_t) &tls_object_0 ) % 256, 0 );
+      T_step_eq_uptr( ${.:/step}, ( (uintptr_t) &tls_object_0 ) % 256, 0 );
     links:
     - role: validation
       uid: ../req/tls-big-alignment
@@ -29,7 +29,7 @@ test-actions:
       Check that the initial value of the non-zero initialized thread-local
       object has the expected value.
     code: |
-      T_step_eq_int( ${step}, tls_object_1, 123 );
+      T_step_eq_int( ${.:/step}, tls_object_1, 123 );
     links:
     - role: validation
       uid: ../req/tls-initialized-data
@@ -37,7 +37,7 @@ test-actions:
       Check that the alignment of the non-zero initialized thread-local object
       has the expected value.
     code: |
-      T_step_eq_uptr( ${step}, ( (uintptr_t) &tls_object_1 ) % 256, 0 );
+      T_step_eq_uptr( ${.:/step}, ( (uintptr_t) &tls_object_1 ) % 256, 0 );
     links:
     - role: validation
       uid: ../req/tls-big-alignment



More information about the vc mailing list