summaryrefslogtreecommitdiffstats
path: root/testsuites/validation/tc-barrier-delete.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/validation/tc-barrier-delete.c')
-rw-r--r--testsuites/validation/tc-barrier-delete.c122
1 files changed, 62 insertions, 60 deletions
diff --git a/testsuites/validation/tc-barrier-delete.c b/testsuites/validation/tc-barrier-delete.c
index eb2d1d4314..5cfbee8c06 100644
--- a/testsuites/validation/tc-barrier-delete.c
+++ b/testsuites/validation/tc-barrier-delete.c
@@ -184,7 +184,7 @@ static void RtemsBarrierReqDelete_Pre_Id_Prepare(
switch ( state ) {
case RtemsBarrierReqDelete_Pre_Id_NoObj: {
/*
- * The ``id`` parameter shall not be associated with a barrier.
+ * While the ``id`` parameter is not associated with a barrier.
*/
ctx->id = 0;
break;
@@ -192,7 +192,7 @@ static void RtemsBarrierReqDelete_Pre_Id_Prepare(
case RtemsBarrierReqDelete_Pre_Id_Barrier: {
/*
- * The ``id`` parameter shall be associated with a barrier.
+ * While the ``id`` parameter is associated with a barrier.
*/
ctx->id = ctx->barrier_id;
break;
@@ -355,50 +355,6 @@ static void RtemsBarrierReqDelete_Teardown_Wrap( void *arg )
RtemsBarrierReqDelete_Teardown( ctx );
}
-static size_t RtemsBarrierReqDelete_Scope( void *arg, char *buf, size_t n )
-{
- RtemsBarrierReqDelete_Context *ctx;
-
- ctx = arg;
-
- if ( ctx->in_action_loop ) {
- return T_get_scope( RtemsBarrierReqDelete_PreDesc, buf, n, ctx->pcs );
- }
-
- return 0;
-}
-
-static T_fixture RtemsBarrierReqDelete_Fixture = {
- .setup = RtemsBarrierReqDelete_Setup_Wrap,
- .stop = NULL,
- .teardown = RtemsBarrierReqDelete_Teardown_Wrap,
- .scope = RtemsBarrierReqDelete_Scope,
- .initial_context = &RtemsBarrierReqDelete_Instance
-};
-
-static const uint8_t RtemsBarrierReqDelete_TransitionMap[][ 3 ] = {
- {
- RtemsBarrierReqDelete_Post_Status_InvId,
- RtemsBarrierReqDelete_Post_Name_Valid,
- RtemsBarrierReqDelete_Post_Flush_No
- }, {
- RtemsBarrierReqDelete_Post_Status_Ok,
- RtemsBarrierReqDelete_Post_Name_Invalid,
- RtemsBarrierReqDelete_Post_Flush_Yes
- }
-};
-
-static const struct {
- uint8_t Skip : 1;
- uint8_t Pre_Id_NA : 1;
-} RtemsBarrierReqDelete_TransitionInfo[] = {
- {
- 0, 0
- }, {
- 0, 0
- }
-};
-
static void RtemsBarrierReqDelete_Prepare( RtemsBarrierReqDelete_Context *ctx )
{
rtems_status_code sc;
@@ -430,12 +386,65 @@ static void RtemsBarrierReqDelete_Cleanup( RtemsBarrierReqDelete_Context *ctx )
}
}
+typedef struct {
+ uint8_t Skip : 1;
+ uint8_t Pre_Id_NA : 1;
+ uint8_t Post_Status : 2;
+ uint8_t Post_Name : 2;
+ uint8_t Post_Flush : 2;
+} RtemsBarrierReqDelete_Entry;
+
+static const RtemsBarrierReqDelete_Entry
+RtemsBarrierReqDelete_Entries[] = {
+ { 0, 0, RtemsBarrierReqDelete_Post_Status_InvId,
+ RtemsBarrierReqDelete_Post_Name_Valid, RtemsBarrierReqDelete_Post_Flush_No },
+ { 0, 0, RtemsBarrierReqDelete_Post_Status_Ok,
+ RtemsBarrierReqDelete_Post_Name_Invalid,
+ RtemsBarrierReqDelete_Post_Flush_Yes }
+};
+
+static const uint8_t
+RtemsBarrierReqDelete_Map[] = {
+ 0, 1
+};
+
+static size_t RtemsBarrierReqDelete_Scope( void *arg, char *buf, size_t n )
+{
+ RtemsBarrierReqDelete_Context *ctx;
+
+ ctx = arg;
+
+ if ( ctx->in_action_loop ) {
+ return T_get_scope( RtemsBarrierReqDelete_PreDesc, buf, n, ctx->pcs );
+ }
+
+ return 0;
+}
+
+static T_fixture RtemsBarrierReqDelete_Fixture = {
+ .setup = RtemsBarrierReqDelete_Setup_Wrap,
+ .stop = NULL,
+ .teardown = RtemsBarrierReqDelete_Teardown_Wrap,
+ .scope = RtemsBarrierReqDelete_Scope,
+ .initial_context = &RtemsBarrierReqDelete_Instance
+};
+
+static inline RtemsBarrierReqDelete_Entry RtemsBarrierReqDelete_GetEntry(
+ size_t index
+)
+{
+ return RtemsBarrierReqDelete_Entries[
+ RtemsBarrierReqDelete_Map[ index ]
+ ];
+}
+
/**
* @fn void T_case_body_RtemsBarrierReqDelete( void )
*/
T_TEST_CASE_FIXTURE( RtemsBarrierReqDelete, &RtemsBarrierReqDelete_Fixture )
{
RtemsBarrierReqDelete_Context *ctx;
+ RtemsBarrierReqDelete_Entry entry;
size_t index;
ctx = T_fixture_context();
@@ -447,12 +456,14 @@ T_TEST_CASE_FIXTURE( RtemsBarrierReqDelete, &RtemsBarrierReqDelete_Fixture )
ctx->pcs[ 0 ] < RtemsBarrierReqDelete_Pre_Id_NA;
++ctx->pcs[ 0 ]
) {
- if ( RtemsBarrierReqDelete_TransitionInfo[ index ].Pre_Id_NA ) {
+ entry = RtemsBarrierReqDelete_GetEntry( index );
+
+ if ( entry.Pre_Id_NA ) {
ctx->pcs[ 0 ] = RtemsBarrierReqDelete_Pre_Id_NA;
index += ( RtemsBarrierReqDelete_Pre_Id_NA - 1 );
}
- if ( RtemsBarrierReqDelete_TransitionInfo[ index ].Skip ) {
+ if ( entry.Skip ) {
++index;
continue;
}
@@ -460,18 +471,9 @@ T_TEST_CASE_FIXTURE( RtemsBarrierReqDelete, &RtemsBarrierReqDelete_Fixture )
RtemsBarrierReqDelete_Prepare( ctx );
RtemsBarrierReqDelete_Pre_Id_Prepare( ctx, ctx->pcs[ 0 ] );
RtemsBarrierReqDelete_Action( ctx );
- RtemsBarrierReqDelete_Post_Status_Check(
- ctx,
- RtemsBarrierReqDelete_TransitionMap[ index ][ 0 ]
- );
- RtemsBarrierReqDelete_Post_Name_Check(
- ctx,
- RtemsBarrierReqDelete_TransitionMap[ index ][ 1 ]
- );
- RtemsBarrierReqDelete_Post_Flush_Check(
- ctx,
- RtemsBarrierReqDelete_TransitionMap[ index ][ 2 ]
- );
+ RtemsBarrierReqDelete_Post_Status_Check( ctx, entry.Post_Status );
+ RtemsBarrierReqDelete_Post_Name_Check( ctx, entry.Post_Name );
+ RtemsBarrierReqDelete_Post_Flush_Check( ctx, entry.Post_Flush );
RtemsBarrierReqDelete_Cleanup( ctx );
++index;
}