forked from Imagelibrary/rtems
rtems: Check for NULL config in task construct
Since there are already excessive NULL pointer checks in the Classic API, do this also in rtems_task_construct(). Update #3959.
This commit is contained in:
@@ -103,6 +103,10 @@ rtems_status_code rtems_task_construct(
|
||||
rtems_id *id
|
||||
)
|
||||
{
|
||||
if ( config == NULL ) {
|
||||
return RTEMS_INVALID_ADDRESS;
|
||||
}
|
||||
|
||||
return _RTEMS_tasks_Create( config, id, _RTEMS_tasks_Prepare_user_stack );
|
||||
}
|
||||
|
||||
|
||||
@@ -69,6 +69,12 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
RtemsTaskReqConstructErrors_Pre_Config_Valid,
|
||||
RtemsTaskReqConstructErrors_Pre_Config_Null,
|
||||
RtemsTaskReqConstructErrors_Pre_Config_NA
|
||||
} RtemsTaskReqConstructErrors_Pre_Config;
|
||||
|
||||
typedef enum {
|
||||
RtemsTaskReqConstructErrors_Pre_Name_Valid,
|
||||
RtemsTaskReqConstructErrors_Pre_Name_Inv,
|
||||
@@ -165,7 +171,9 @@ typedef enum {
|
||||
typedef struct {
|
||||
rtems_status_code status;
|
||||
|
||||
rtems_task_config config;
|
||||
const rtems_task_config *config;
|
||||
|
||||
rtems_task_config config_value;
|
||||
|
||||
rtems_id *id;
|
||||
|
||||
@@ -188,7 +196,7 @@ typedef struct {
|
||||
/**
|
||||
* @brief This member defines the pre-condition states for the next action.
|
||||
*/
|
||||
size_t pcs[ 8 ];
|
||||
size_t pcs[ 9 ];
|
||||
|
||||
/**
|
||||
* @brief This member indicates if the test action loop is currently
|
||||
@@ -200,6 +208,12 @@ typedef struct {
|
||||
static RtemsTaskReqConstructErrors_Context
|
||||
RtemsTaskReqConstructErrors_Instance;
|
||||
|
||||
static const char * const RtemsTaskReqConstructErrors_PreDesc_Config[] = {
|
||||
"Valid",
|
||||
"Null",
|
||||
"NA"
|
||||
};
|
||||
|
||||
static const char * const RtemsTaskReqConstructErrors_PreDesc_Name[] = {
|
||||
"Valid",
|
||||
"Inv",
|
||||
@@ -250,6 +264,7 @@ static const char * const RtemsTaskReqConstructErrors_PreDesc_Ext[] = {
|
||||
};
|
||||
|
||||
static const char * const * const RtemsTaskReqConstructErrors_PreDesc[] = {
|
||||
RtemsTaskReqConstructErrors_PreDesc_Config,
|
||||
RtemsTaskReqConstructErrors_PreDesc_Name,
|
||||
RtemsTaskReqConstructErrors_PreDesc_Id,
|
||||
RtemsTaskReqConstructErrors_PreDesc_SysTsk,
|
||||
@@ -331,6 +346,34 @@ static const rtems_extensions_table extensions = {
|
||||
.thread_delete = ThreadDelete
|
||||
};
|
||||
|
||||
static void RtemsTaskReqConstructErrors_Pre_Config_Prepare(
|
||||
RtemsTaskReqConstructErrors_Context *ctx,
|
||||
RtemsTaskReqConstructErrors_Pre_Config state
|
||||
)
|
||||
{
|
||||
switch ( state ) {
|
||||
case RtemsTaskReqConstructErrors_Pre_Config_Valid: {
|
||||
/*
|
||||
* While the ``config`` parameter references an object of type
|
||||
* rtems_task_config.
|
||||
*/
|
||||
ctx->config = &ctx->config_value;
|
||||
break;
|
||||
}
|
||||
|
||||
case RtemsTaskReqConstructErrors_Pre_Config_Null: {
|
||||
/*
|
||||
* While the ``config`` parameter is NULL.
|
||||
*/
|
||||
ctx->config = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
case RtemsTaskReqConstructErrors_Pre_Config_NA:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void RtemsTaskReqConstructErrors_Pre_Name_Prepare(
|
||||
RtemsTaskReqConstructErrors_Context *ctx,
|
||||
RtemsTaskReqConstructErrors_Pre_Name state
|
||||
@@ -341,7 +384,7 @@ static void RtemsTaskReqConstructErrors_Pre_Name_Prepare(
|
||||
/*
|
||||
* While the name of the task configuration is valid.
|
||||
*/
|
||||
ctx->config.name = NAME;
|
||||
ctx->config_value.name = NAME;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -349,7 +392,7 @@ static void RtemsTaskReqConstructErrors_Pre_Name_Prepare(
|
||||
/*
|
||||
* While the name of the task configuration is invalid.
|
||||
*/
|
||||
ctx->config.name = 0;
|
||||
ctx->config_value.name = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -396,7 +439,7 @@ static void RtemsTaskReqConstructErrors_Pre_SysTsk_Prepare(
|
||||
* While the attributes of the task configuration specifies a system
|
||||
* task.
|
||||
*/
|
||||
ctx->config.attributes |= RTEMS_SYSTEM_TASK;
|
||||
ctx->config_value.attributes |= RTEMS_SYSTEM_TASK;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -425,7 +468,7 @@ static void RtemsTaskReqConstructErrors_Pre_Prio_Prepare(
|
||||
* While the initial priority of the task configuration is valid and
|
||||
* non-zero.
|
||||
*/
|
||||
ctx->config.initial_priority = 254;
|
||||
ctx->config_value.initial_priority = 254;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -433,7 +476,7 @@ static void RtemsTaskReqConstructErrors_Pre_Prio_Prepare(
|
||||
/*
|
||||
* While the initial priority of the task configuration is zero.
|
||||
*/
|
||||
ctx->config.initial_priority = 0;
|
||||
ctx->config_value.initial_priority = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -441,7 +484,7 @@ static void RtemsTaskReqConstructErrors_Pre_Prio_Prepare(
|
||||
/*
|
||||
* While the initial priority of the task configuration is invalid.
|
||||
*/
|
||||
ctx->config.initial_priority = 0xffffffff;
|
||||
ctx->config_value.initial_priority = 0xffffffff;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -488,7 +531,7 @@ static void RtemsTaskReqConstructErrors_Pre_TLS_Prepare(
|
||||
* While the maximum thread-local storage size of the task configuration
|
||||
* is greater than or equal to the thread-local storage size.
|
||||
*/
|
||||
ctx->config.maximum_thread_local_storage_size = MAX_TLS_SIZE;
|
||||
ctx->config_value.maximum_thread_local_storage_size = MAX_TLS_SIZE;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -497,7 +540,7 @@ static void RtemsTaskReqConstructErrors_Pre_TLS_Prepare(
|
||||
* While the maximum thread-local storage size of the task configuration
|
||||
* is less than the thread-local storage size.
|
||||
*/
|
||||
ctx->config.maximum_thread_local_storage_size = 0;
|
||||
ctx->config_value.maximum_thread_local_storage_size = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -844,9 +887,9 @@ static void RtemsTaskReqConstructErrors_Prepare(
|
||||
_RTEMS_Unlock_allocator();
|
||||
|
||||
ctx->id_value = INVALID_ID;
|
||||
memset( &ctx->config, 0, sizeof( ctx->config ) );
|
||||
ctx->config.storage_area = task_storage,
|
||||
ctx->config.storage_free = StorageFree;
|
||||
memset( &ctx->config_value, 0, sizeof( ctx->config_value ) );
|
||||
ctx->config_value.storage_area = task_storage,
|
||||
ctx->config_value.storage_free = StorageFree;
|
||||
}
|
||||
|
||||
static void RtemsTaskReqConstructErrors_Action(
|
||||
@@ -856,11 +899,11 @@ static void RtemsTaskReqConstructErrors_Action(
|
||||
ctx->create_extension_calls = 0;
|
||||
ctx->delete_extension_calls = 0;
|
||||
ctx->storage_free_calls = 0;
|
||||
ctx->config.storage_size = RTEMS_TASK_STORAGE_SIZE(
|
||||
ctx->config.maximum_thread_local_storage_size + ctx->stack_size,
|
||||
ctx->config.attributes
|
||||
ctx->config_value.storage_size = RTEMS_TASK_STORAGE_SIZE(
|
||||
ctx->config_value.maximum_thread_local_storage_size + ctx->stack_size,
|
||||
ctx->config_value.attributes
|
||||
);
|
||||
ctx->status = rtems_task_construct( &ctx->config, ctx->id );
|
||||
ctx->status = rtems_task_construct( ctx->config, ctx->id );
|
||||
}
|
||||
|
||||
static void RtemsTaskReqConstructErrors_Cleanup(
|
||||
@@ -881,6 +924,7 @@ static void RtemsTaskReqConstructErrors_Cleanup(
|
||||
|
||||
typedef struct {
|
||||
uint32_t Skip : 1;
|
||||
uint32_t Pre_Config_NA : 1;
|
||||
uint32_t Pre_Name_NA : 1;
|
||||
uint32_t Pre_Id_NA : 1;
|
||||
uint32_t Pre_SysTsk_NA : 1;
|
||||
@@ -899,43 +943,49 @@ typedef struct {
|
||||
|
||||
static const RtemsTaskReqConstructErrors_Entry
|
||||
RtemsTaskReqConstructErrors_Entries[] = {
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, RtemsTaskReqConstructErrors_Post_Status_InvName,
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
RtemsTaskReqConstructErrors_Post_Status_InvAddr,
|
||||
RtemsTaskReqConstructErrors_Post_Name_Invalid,
|
||||
RtemsTaskReqConstructErrors_Post_IdVar_Nop,
|
||||
RtemsTaskReqConstructErrors_Post_CreateExt_No,
|
||||
RtemsTaskReqConstructErrors_Post_DelExt_No,
|
||||
RtemsTaskReqConstructErrors_Post_StoFree_No },
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, RtemsTaskReqConstructErrors_Post_Status_InvAddr,
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
RtemsTaskReqConstructErrors_Post_Status_InvName,
|
||||
RtemsTaskReqConstructErrors_Post_Name_Invalid,
|
||||
RtemsTaskReqConstructErrors_Post_IdVar_Nop,
|
||||
RtemsTaskReqConstructErrors_Post_CreateExt_No,
|
||||
RtemsTaskReqConstructErrors_Post_DelExt_No,
|
||||
RtemsTaskReqConstructErrors_Post_StoFree_No },
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, RtemsTaskReqConstructErrors_Post_Status_InvPrio,
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
RtemsTaskReqConstructErrors_Post_Status_InvPrio,
|
||||
RtemsTaskReqConstructErrors_Post_Name_Invalid,
|
||||
RtemsTaskReqConstructErrors_Post_IdVar_Nop,
|
||||
RtemsTaskReqConstructErrors_Post_CreateExt_No,
|
||||
RtemsTaskReqConstructErrors_Post_DelExt_No,
|
||||
RtemsTaskReqConstructErrors_Post_StoFree_No },
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, RtemsTaskReqConstructErrors_Post_Status_TooMany,
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
RtemsTaskReqConstructErrors_Post_Status_TooMany,
|
||||
RtemsTaskReqConstructErrors_Post_Name_Invalid,
|
||||
RtemsTaskReqConstructErrors_Post_IdVar_Nop,
|
||||
RtemsTaskReqConstructErrors_Post_CreateExt_No,
|
||||
RtemsTaskReqConstructErrors_Post_DelExt_No,
|
||||
RtemsTaskReqConstructErrors_Post_StoFree_No },
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, RtemsTaskReqConstructErrors_Post_Status_InvSize,
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
RtemsTaskReqConstructErrors_Post_Status_InvSize,
|
||||
RtemsTaskReqConstructErrors_Post_Name_Invalid,
|
||||
RtemsTaskReqConstructErrors_Post_IdVar_Nop,
|
||||
RtemsTaskReqConstructErrors_Post_CreateExt_No,
|
||||
RtemsTaskReqConstructErrors_Post_DelExt_No,
|
||||
RtemsTaskReqConstructErrors_Post_StoFree_No },
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, RtemsTaskReqConstructErrors_Post_Status_Ok,
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, RtemsTaskReqConstructErrors_Post_Status_Ok,
|
||||
RtemsTaskReqConstructErrors_Post_Name_Valid,
|
||||
RtemsTaskReqConstructErrors_Post_IdVar_Set,
|
||||
RtemsTaskReqConstructErrors_Post_CreateExt_Yes,
|
||||
RtemsTaskReqConstructErrors_Post_DelExt_No,
|
||||
RtemsTaskReqConstructErrors_Post_StoFree_No },
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, RtemsTaskReqConstructErrors_Post_Status_Unsat,
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
RtemsTaskReqConstructErrors_Post_Status_Unsat,
|
||||
RtemsTaskReqConstructErrors_Post_Name_Invalid,
|
||||
RtemsTaskReqConstructErrors_Post_IdVar_Nop,
|
||||
RtemsTaskReqConstructErrors_Post_CreateExt_Yes,
|
||||
@@ -948,18 +998,33 @@ RtemsTaskReqConstructErrors_Map[] = {
|
||||
5, 6, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 5, 6, 4, 4, 4, 4, 4, 4, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 4, 4,
|
||||
4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
static size_t RtemsTaskReqConstructErrors_Scope(
|
||||
@@ -1017,14 +1082,34 @@ T_TEST_CASE_FIXTURE(
|
||||
index = 0;
|
||||
|
||||
for (
|
||||
ctx->pcs[ 0 ] = RtemsTaskReqConstructErrors_Pre_Name_Valid;
|
||||
ctx->pcs[ 0 ] < RtemsTaskReqConstructErrors_Pre_Name_NA;
|
||||
ctx->pcs[ 0 ] = RtemsTaskReqConstructErrors_Pre_Config_Valid;
|
||||
ctx->pcs[ 0 ] < RtemsTaskReqConstructErrors_Pre_Config_NA;
|
||||
++ctx->pcs[ 0 ]
|
||||
) {
|
||||
entry = RtemsTaskReqConstructErrors_GetEntry( index );
|
||||
|
||||
if ( entry.Pre_Config_NA ) {
|
||||
ctx->pcs[ 0 ] = RtemsTaskReqConstructErrors_Pre_Config_NA;
|
||||
index += ( RtemsTaskReqConstructErrors_Pre_Config_NA - 1 )
|
||||
* RtemsTaskReqConstructErrors_Pre_Name_NA
|
||||
* RtemsTaskReqConstructErrors_Pre_Id_NA
|
||||
* RtemsTaskReqConstructErrors_Pre_SysTsk_NA
|
||||
* RtemsTaskReqConstructErrors_Pre_Prio_NA
|
||||
* RtemsTaskReqConstructErrors_Pre_Free_NA
|
||||
* RtemsTaskReqConstructErrors_Pre_TLS_NA
|
||||
* RtemsTaskReqConstructErrors_Pre_Stack_NA
|
||||
* RtemsTaskReqConstructErrors_Pre_Ext_NA;
|
||||
}
|
||||
|
||||
for (
|
||||
ctx->pcs[ 1 ] = RtemsTaskReqConstructErrors_Pre_Name_Valid;
|
||||
ctx->pcs[ 1 ] < RtemsTaskReqConstructErrors_Pre_Name_NA;
|
||||
++ctx->pcs[ 1 ]
|
||||
) {
|
||||
entry = RtemsTaskReqConstructErrors_GetEntry( index );
|
||||
|
||||
if ( entry.Pre_Name_NA ) {
|
||||
ctx->pcs[ 0 ] = RtemsTaskReqConstructErrors_Pre_Name_NA;
|
||||
ctx->pcs[ 1 ] = RtemsTaskReqConstructErrors_Pre_Name_NA;
|
||||
index += ( RtemsTaskReqConstructErrors_Pre_Name_NA - 1 )
|
||||
* RtemsTaskReqConstructErrors_Pre_Id_NA
|
||||
* RtemsTaskReqConstructErrors_Pre_SysTsk_NA
|
||||
@@ -1036,14 +1121,14 @@ T_TEST_CASE_FIXTURE(
|
||||
}
|
||||
|
||||
for (
|
||||
ctx->pcs[ 1 ] = RtemsTaskReqConstructErrors_Pre_Id_Valid;
|
||||
ctx->pcs[ 1 ] < RtemsTaskReqConstructErrors_Pre_Id_NA;
|
||||
++ctx->pcs[ 1 ]
|
||||
ctx->pcs[ 2 ] = RtemsTaskReqConstructErrors_Pre_Id_Valid;
|
||||
ctx->pcs[ 2 ] < RtemsTaskReqConstructErrors_Pre_Id_NA;
|
||||
++ctx->pcs[ 2 ]
|
||||
) {
|
||||
entry = RtemsTaskReqConstructErrors_GetEntry( index );
|
||||
|
||||
if ( entry.Pre_Id_NA ) {
|
||||
ctx->pcs[ 1 ] = RtemsTaskReqConstructErrors_Pre_Id_NA;
|
||||
ctx->pcs[ 2 ] = RtemsTaskReqConstructErrors_Pre_Id_NA;
|
||||
index += ( RtemsTaskReqConstructErrors_Pre_Id_NA - 1 )
|
||||
* RtemsTaskReqConstructErrors_Pre_SysTsk_NA
|
||||
* RtemsTaskReqConstructErrors_Pre_Prio_NA
|
||||
@@ -1054,14 +1139,14 @@ T_TEST_CASE_FIXTURE(
|
||||
}
|
||||
|
||||
for (
|
||||
ctx->pcs[ 2 ] = RtemsTaskReqConstructErrors_Pre_SysTsk_Yes;
|
||||
ctx->pcs[ 2 ] < RtemsTaskReqConstructErrors_Pre_SysTsk_NA;
|
||||
++ctx->pcs[ 2 ]
|
||||
ctx->pcs[ 3 ] = RtemsTaskReqConstructErrors_Pre_SysTsk_Yes;
|
||||
ctx->pcs[ 3 ] < RtemsTaskReqConstructErrors_Pre_SysTsk_NA;
|
||||
++ctx->pcs[ 3 ]
|
||||
) {
|
||||
entry = RtemsTaskReqConstructErrors_GetEntry( index );
|
||||
|
||||
if ( entry.Pre_SysTsk_NA ) {
|
||||
ctx->pcs[ 2 ] = RtemsTaskReqConstructErrors_Pre_SysTsk_NA;
|
||||
ctx->pcs[ 3 ] = RtemsTaskReqConstructErrors_Pre_SysTsk_NA;
|
||||
index += ( RtemsTaskReqConstructErrors_Pre_SysTsk_NA - 1 )
|
||||
* RtemsTaskReqConstructErrors_Pre_Prio_NA
|
||||
* RtemsTaskReqConstructErrors_Pre_Free_NA
|
||||
@@ -1071,14 +1156,14 @@ T_TEST_CASE_FIXTURE(
|
||||
}
|
||||
|
||||
for (
|
||||
ctx->pcs[ 3 ] = RtemsTaskReqConstructErrors_Pre_Prio_Valid;
|
||||
ctx->pcs[ 3 ] < RtemsTaskReqConstructErrors_Pre_Prio_NA;
|
||||
++ctx->pcs[ 3 ]
|
||||
ctx->pcs[ 4 ] = RtemsTaskReqConstructErrors_Pre_Prio_Valid;
|
||||
ctx->pcs[ 4 ] < RtemsTaskReqConstructErrors_Pre_Prio_NA;
|
||||
++ctx->pcs[ 4 ]
|
||||
) {
|
||||
entry = RtemsTaskReqConstructErrors_GetEntry( index );
|
||||
|
||||
if ( entry.Pre_Prio_NA ) {
|
||||
ctx->pcs[ 3 ] = RtemsTaskReqConstructErrors_Pre_Prio_NA;
|
||||
ctx->pcs[ 4 ] = RtemsTaskReqConstructErrors_Pre_Prio_NA;
|
||||
index += ( RtemsTaskReqConstructErrors_Pre_Prio_NA - 1 )
|
||||
* RtemsTaskReqConstructErrors_Pre_Free_NA
|
||||
* RtemsTaskReqConstructErrors_Pre_TLS_NA
|
||||
@@ -1087,14 +1172,14 @@ T_TEST_CASE_FIXTURE(
|
||||
}
|
||||
|
||||
for (
|
||||
ctx->pcs[ 4 ] = RtemsTaskReqConstructErrors_Pre_Free_Yes;
|
||||
ctx->pcs[ 4 ] < RtemsTaskReqConstructErrors_Pre_Free_NA;
|
||||
++ctx->pcs[ 4 ]
|
||||
ctx->pcs[ 5 ] = RtemsTaskReqConstructErrors_Pre_Free_Yes;
|
||||
ctx->pcs[ 5 ] < RtemsTaskReqConstructErrors_Pre_Free_NA;
|
||||
++ctx->pcs[ 5 ]
|
||||
) {
|
||||
entry = RtemsTaskReqConstructErrors_GetEntry( index );
|
||||
|
||||
if ( entry.Pre_Free_NA ) {
|
||||
ctx->pcs[ 4 ] = RtemsTaskReqConstructErrors_Pre_Free_NA;
|
||||
ctx->pcs[ 5 ] = RtemsTaskReqConstructErrors_Pre_Free_NA;
|
||||
index += ( RtemsTaskReqConstructErrors_Pre_Free_NA - 1 )
|
||||
* RtemsTaskReqConstructErrors_Pre_TLS_NA
|
||||
* RtemsTaskReqConstructErrors_Pre_Stack_NA
|
||||
@@ -1102,41 +1187,41 @@ T_TEST_CASE_FIXTURE(
|
||||
}
|
||||
|
||||
for (
|
||||
ctx->pcs[ 5 ] = RtemsTaskReqConstructErrors_Pre_TLS_Enough;
|
||||
ctx->pcs[ 5 ] < RtemsTaskReqConstructErrors_Pre_TLS_NA;
|
||||
++ctx->pcs[ 5 ]
|
||||
ctx->pcs[ 6 ] = RtemsTaskReqConstructErrors_Pre_TLS_Enough;
|
||||
ctx->pcs[ 6 ] < RtemsTaskReqConstructErrors_Pre_TLS_NA;
|
||||
++ctx->pcs[ 6 ]
|
||||
) {
|
||||
entry = RtemsTaskReqConstructErrors_GetEntry( index );
|
||||
|
||||
if ( entry.Pre_TLS_NA ) {
|
||||
ctx->pcs[ 5 ] = RtemsTaskReqConstructErrors_Pre_TLS_NA;
|
||||
ctx->pcs[ 6 ] = RtemsTaskReqConstructErrors_Pre_TLS_NA;
|
||||
index += ( RtemsTaskReqConstructErrors_Pre_TLS_NA - 1 )
|
||||
* RtemsTaskReqConstructErrors_Pre_Stack_NA
|
||||
* RtemsTaskReqConstructErrors_Pre_Ext_NA;
|
||||
}
|
||||
|
||||
for (
|
||||
ctx->pcs[ 6 ] = RtemsTaskReqConstructErrors_Pre_Stack_Enough;
|
||||
ctx->pcs[ 6 ] < RtemsTaskReqConstructErrors_Pre_Stack_NA;
|
||||
++ctx->pcs[ 6 ]
|
||||
ctx->pcs[ 7 ] = RtemsTaskReqConstructErrors_Pre_Stack_Enough;
|
||||
ctx->pcs[ 7 ] < RtemsTaskReqConstructErrors_Pre_Stack_NA;
|
||||
++ctx->pcs[ 7 ]
|
||||
) {
|
||||
entry = RtemsTaskReqConstructErrors_GetEntry( index );
|
||||
|
||||
if ( entry.Pre_Stack_NA ) {
|
||||
ctx->pcs[ 6 ] = RtemsTaskReqConstructErrors_Pre_Stack_NA;
|
||||
ctx->pcs[ 7 ] = RtemsTaskReqConstructErrors_Pre_Stack_NA;
|
||||
index += ( RtemsTaskReqConstructErrors_Pre_Stack_NA - 1 )
|
||||
* RtemsTaskReqConstructErrors_Pre_Ext_NA;
|
||||
}
|
||||
|
||||
for (
|
||||
ctx->pcs[ 7 ] = RtemsTaskReqConstructErrors_Pre_Ext_Ok;
|
||||
ctx->pcs[ 7 ] < RtemsTaskReqConstructErrors_Pre_Ext_NA;
|
||||
++ctx->pcs[ 7 ]
|
||||
ctx->pcs[ 8 ] = RtemsTaskReqConstructErrors_Pre_Ext_Ok;
|
||||
ctx->pcs[ 8 ] < RtemsTaskReqConstructErrors_Pre_Ext_NA;
|
||||
++ctx->pcs[ 8 ]
|
||||
) {
|
||||
entry = RtemsTaskReqConstructErrors_GetEntry( index );
|
||||
|
||||
if ( entry.Pre_Ext_NA ) {
|
||||
ctx->pcs[ 7 ] = RtemsTaskReqConstructErrors_Pre_Ext_NA;
|
||||
ctx->pcs[ 8 ] = RtemsTaskReqConstructErrors_Pre_Ext_NA;
|
||||
index += ( RtemsTaskReqConstructErrors_Pre_Ext_NA - 1 );
|
||||
}
|
||||
|
||||
@@ -1146,38 +1231,42 @@ T_TEST_CASE_FIXTURE(
|
||||
}
|
||||
|
||||
RtemsTaskReqConstructErrors_Prepare( ctx );
|
||||
RtemsTaskReqConstructErrors_Pre_Name_Prepare(
|
||||
RtemsTaskReqConstructErrors_Pre_Config_Prepare(
|
||||
ctx,
|
||||
ctx->pcs[ 0 ]
|
||||
);
|
||||
RtemsTaskReqConstructErrors_Pre_Id_Prepare(
|
||||
RtemsTaskReqConstructErrors_Pre_Name_Prepare(
|
||||
ctx,
|
||||
ctx->pcs[ 1 ]
|
||||
);
|
||||
RtemsTaskReqConstructErrors_Pre_SysTsk_Prepare(
|
||||
RtemsTaskReqConstructErrors_Pre_Id_Prepare(
|
||||
ctx,
|
||||
ctx->pcs[ 2 ]
|
||||
);
|
||||
RtemsTaskReqConstructErrors_Pre_Prio_Prepare(
|
||||
RtemsTaskReqConstructErrors_Pre_SysTsk_Prepare(
|
||||
ctx,
|
||||
ctx->pcs[ 3 ]
|
||||
);
|
||||
RtemsTaskReqConstructErrors_Pre_Free_Prepare(
|
||||
RtemsTaskReqConstructErrors_Pre_Prio_Prepare(
|
||||
ctx,
|
||||
ctx->pcs[ 4 ]
|
||||
);
|
||||
RtemsTaskReqConstructErrors_Pre_TLS_Prepare(
|
||||
RtemsTaskReqConstructErrors_Pre_Free_Prepare(
|
||||
ctx,
|
||||
ctx->pcs[ 5 ]
|
||||
);
|
||||
RtemsTaskReqConstructErrors_Pre_Stack_Prepare(
|
||||
RtemsTaskReqConstructErrors_Pre_TLS_Prepare(
|
||||
ctx,
|
||||
ctx->pcs[ 6 ]
|
||||
);
|
||||
RtemsTaskReqConstructErrors_Pre_Ext_Prepare(
|
||||
RtemsTaskReqConstructErrors_Pre_Stack_Prepare(
|
||||
ctx,
|
||||
ctx->pcs[ 7 ]
|
||||
);
|
||||
RtemsTaskReqConstructErrors_Pre_Ext_Prepare(
|
||||
ctx,
|
||||
ctx->pcs[ 8 ]
|
||||
);
|
||||
RtemsTaskReqConstructErrors_Action( ctx );
|
||||
RtemsTaskReqConstructErrors_Post_Status_Check(
|
||||
ctx,
|
||||
@@ -1214,5 +1303,6 @@ T_TEST_CASE_FIXTURE(
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** @} */
|
||||
|
||||
Reference in New Issue
Block a user