diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-05-06 15:15:28 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-05-07 07:44:07 +0200 |
commit | 9f727f937965ee3e7bd07c5af5ee48aafa59eaf8 (patch) | |
tree | ba0f5939470b4bd735b1e0d4277042ea0fa6d397 /testsuites/validation/tc-barrier-release.c | |
parent | Check the alignment in posix_memalign() earlier (diff) | |
download | rtems-9f727f937965ee3e7bd07c5af5ee48aafa59eaf8.tar.bz2 |
validation: Fix handling of N/A pre-conditions
In the action requirements, some pre-conditions are not applicable
depending on the state of other pre-conditions. There is no particular
order in the pre-conditions, so we have to check the N/A status
individually.
Diffstat (limited to 'testsuites/validation/tc-barrier-release.c')
-rw-r--r-- | testsuites/validation/tc-barrier-release.c | 32 |
1 files changed, 7 insertions, 25 deletions
diff --git a/testsuites/validation/tc-barrier-release.c b/testsuites/validation/tc-barrier-release.c index ca13ef8a6d..4e9046f238 100644 --- a/testsuites/validation/tc-barrier-release.c +++ b/testsuites/validation/tc-barrier-release.c @@ -485,7 +485,6 @@ static inline RtemsBarrierReqRelease_Entry RtemsBarrierReqRelease_GetEntry( T_TEST_CASE_FIXTURE( RtemsBarrierReqRelease, &RtemsBarrierReqRelease_Fixture ) { RtemsBarrierReqRelease_Context *ctx; - RtemsBarrierReqRelease_Entry entry; size_t index; ctx = T_fixture_context(); @@ -497,43 +496,26 @@ T_TEST_CASE_FIXTURE( RtemsBarrierReqRelease, &RtemsBarrierReqRelease_Fixture ) ctx->pcs[ 0 ] < RtemsBarrierReqRelease_Pre_Id_NA; ++ctx->pcs[ 0 ] ) { - entry = RtemsBarrierReqRelease_GetEntry( index ); - - if ( entry.Pre_Id_NA ) { - ctx->pcs[ 0 ] = RtemsBarrierReqRelease_Pre_Id_NA; - index += ( RtemsBarrierReqRelease_Pre_Id_NA - 1 ) - * RtemsBarrierReqRelease_Pre_Released_NA - * RtemsBarrierReqRelease_Pre_Waiting_NA; - } - for ( ctx->pcs[ 1 ] = RtemsBarrierReqRelease_Pre_Released_Valid; ctx->pcs[ 1 ] < RtemsBarrierReqRelease_Pre_Released_NA; ++ctx->pcs[ 1 ] ) { - entry = RtemsBarrierReqRelease_GetEntry( index ); - - if ( entry.Pre_Released_NA ) { - ctx->pcs[ 1 ] = RtemsBarrierReqRelease_Pre_Released_NA; - index += ( RtemsBarrierReqRelease_Pre_Released_NA - 1 ) - * RtemsBarrierReqRelease_Pre_Waiting_NA; - } - for ( ctx->pcs[ 2 ] = RtemsBarrierReqRelease_Pre_Waiting_Zero; ctx->pcs[ 2 ] < RtemsBarrierReqRelease_Pre_Waiting_NA; ++ctx->pcs[ 2 ] ) { + RtemsBarrierReqRelease_Entry entry; + size_t pcs[ 3 ]; + entry = RtemsBarrierReqRelease_GetEntry( index ); + ++index; + + memcpy( pcs, ctx->pcs, sizeof( pcs ) ); if ( entry.Pre_Waiting_NA ) { ctx->pcs[ 2 ] = RtemsBarrierReqRelease_Pre_Waiting_NA; - index += ( RtemsBarrierReqRelease_Pre_Waiting_NA - 1 ); - } - - if ( entry.Skip ) { - ++index; - continue; } RtemsBarrierReqRelease_Pre_Id_Prepare( ctx, ctx->pcs[ 0 ] ); @@ -545,7 +527,7 @@ T_TEST_CASE_FIXTURE( RtemsBarrierReqRelease, &RtemsBarrierReqRelease_Fixture ) ctx, entry.Post_ReleasedVar ); - ++index; + memcpy( ctx->pcs, pcs, sizeof( ctx->pcs ) ); } } } |