[PATCH] smpstrongapa01: Improve readability

Gedare Bloom gedare at rtems.org
Mon Jun 22 16:13:44 UTC 2020


On Sun, Jun 21, 2020 at 11:10 AM Richi Dubey <richidubey at gmail.com> wrote:
>
> ---
>  testsuites/smptests/smpstrongapa01/init.c | 60 ++++++++++++++---------
>  1 file changed, 38 insertions(+), 22 deletions(-)
>
> diff --git a/testsuites/smptests/smpstrongapa01/init.c b/testsuites/smptests/smpstrongapa01/init.c
> index bf8bc05231..ab6b0fe328 100644
> --- a/testsuites/smptests/smpstrongapa01/init.c
> +++ b/testsuites/smptests/smpstrongapa01/init.c
> @@ -16,7 +16,7 @@
>  #include "config.h"
>  #endif
>
> -#include "tmacros.h"
> +#include <tmacros.h>
>
>  #include <rtems.h>
>
> @@ -30,9 +30,22 @@ const char rtems_test_name[] = "SMPSTRONGAPA 1";
>
>  #define ALL ((UINT32_C(1) << CPU_COUNT) - 1)
>
> -#define IDLE UINT8_C(255)
> +typedef enum {
> +  T0,
> +  T1,
> +  T2,
> +  T3,
> +  T4,
> +  T5,
> +  T6,
> +  T7
> +  T8,
> +  T9,
> +  T10,
> +  T11,
> +  IDLE
> +} task_index;
>
> -#define NAME rtems_build_name('S', 'A', 'P', 'A')
>
>  typedef struct {
>    enum {
> @@ -43,7 +56,7 @@ typedef struct {
>      KIND_UNBLOCK
>    } kind;
>
> -  size_t index;
> +  task_index index;
>
>    struct {
>      rtems_task_priority priority;
> @@ -102,17 +115,17 @@ typedef struct {
>
>  static const test_action test_actions[] = {
>    RESET,
> -  UNBLOCK(      0,           0, IDLE, IDLE, IDLE),
> -  UNBLOCK(      1,           0,    1, IDLE, IDLE),
> -  UNBLOCK(      2,           0,    1,    2, IDLE),
> -  UNBLOCK(      3,           0,    1,    2,    3),
> -  UNBLOCK(      5,           0,    1,    2,    3),
> -  SET_PRIORITY( 3,  P(4),    0,    1,    2,    3),
> -  SET_PRIORITY( 5,  P(3),    0,    1,    2,    5),
> -  BLOCK(        5,           0,    1,    2,    3),
> -  SET_AFFINITY( 5,   ALL,    0,    1,    2,    3),
> +  UNBLOCK(      T0,           T0, IDLE, IDLE, IDLE),
> +  UNBLOCK(      T1,           T0,    T1, IDLE, IDLE),
> +  UNBLOCK(      T2,           T0,    T1,    T2, IDLE),
> +  UNBLOCK(      T3,           T0,    T1,    T2,    T3),
> +  UNBLOCK(      T5,           T0,    T1,    T2,    T3),
> +  SET_PRIORITY( T3,  P(4),    T0,    T1,    T2,    T3),
> +  SET_PRIORITY( T5,  P(3),    T0,    T1,    T2,    T5),
> +  BLOCK(        T5,           T0,    T1,    T2,    T3),
> +  SET_AFFINITY( T5,   ALL,    T0,    T1,    T2,    T3),
>    RESET,
> -  UNBLOCK(      0,           0, IDLE, IDLE, IDLE),
> +  UNBLOCK(      T0,           T0, IDLE, IDLE, IDLE),
>    RESET
>  };
>
> @@ -130,7 +143,7 @@ static void set_affinity(rtems_id id, uint32_t cpu_set_32)
>  {
>    rtems_status_code sc;
>    cpu_set_t cpu_set;
> -  size_t i;
> +  task_index i;
>
>    CPU_ZERO(&cpu_set);
>
> @@ -147,7 +160,7 @@ static void set_affinity(rtems_id id, uint32_t cpu_set_32)
>  static void reset(test_context *ctx)
>  {
>    rtems_status_code sc;
> -  size_t i;
> +  task_index i;
>
>    for (i = CPU_COUNT; i < TASK_COUNT; ++i) {

Is it guaranteed that TASK_COUNT is less than the max task_index?

Sometimes you need to be careful about using enum types in comparisons
against non-enum (integer) types.

>      set_priority(ctx->task_ids[i], P(i));
> @@ -179,10 +192,10 @@ static void reset(test_context *ctx)
>
>  static void check_cpu_allocations(test_context *ctx, const test_action *action)
>  {
> -  size_t i;
> +  task_index i;
>
>    for (i = 0; i < CPU_COUNT; ++i) {
> -    size_t e;
> +    task_index e;
>      const Per_CPU_Control *c;
>      const Thread_Control *h;
>
> @@ -206,7 +219,7 @@ static void timer(rtems_id id, void *arg)
>  {
>    test_context *ctx;
>    rtems_status_code sc;
> -  size_t i;
> +  task_index i;
>
>    ctx = arg;
>    i = ctx->action_index;
> @@ -271,7 +284,7 @@ static void test(void)
>  {
>    test_context *ctx;
>    rtems_status_code sc;
> -  size_t i;
> +  task_index i;
>
>    ctx = &test_instance;
>
> @@ -279,7 +292,7 @@ static void test(void)
>
>    for (i = 0; i < TASK_COUNT; ++i) {
>      sc = rtems_task_create(
> -      NAME,
> +      rtems_build_name(' ', ' ', 'T', '0' + i),
>        P(i),
>        RTEMS_MINIMUM_STACK_SIZE,
>        RTEMS_DEFAULT_MODES,
> @@ -292,7 +305,10 @@ static void test(void)
>      rtems_test_assert(sc == RTEMS_SUCCESSFUL);
>    }
>
> -  sc = rtems_timer_create(NAME, &ctx->timer_id);
> +  sc = rtems_timer_create(
> +  rtems_build_name('S', 'A', 'P', 'A'),
> +   &ctx->timer_id
> +   );
>    rtems_test_assert(sc == RTEMS_SUCCESSFUL);
>
>    sc = rtems_timer_fire_after(ctx->timer_id, 1, timer, ctx);
> --
> 2.17.1
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list