예제 #1
0
/*----------------------------------------------------------------------------*/
void Test_OS_TaskGetInfo_Success(void)
{
    int32 expected = OS_SUCCESS;
    int32 actual   = 99;

    /* Setup Inputs */
    uint32 task_id = 1;
    static OS_task_prop_t task_prop;
    OsApi_Adaptor_setTaskTableEntry(task_id, FALSE, 1, "testTask", 2, 3, 4, deleteFnc);

    /* Execute Test */
    actual = OS_TaskGetInfo(task_id, &task_prop);

    /* Verify Outputs */
    osTaskRecord_ptr = OsApi_Adaptor_getTaskTableEntry(task_id);
    UtAssert_True(actual == expected, "actual == OS_SUCCESS");
    UtAssert_True(task_prop.creator == osTaskRecord_ptr->creator, "creator == expected");
    UtAssert_True(task_prop.stack_size == osTaskRecord_ptr->stack_size, "stack_size == expected");
    UtAssert_True(task_prop.priority == osTaskRecord_ptr->priority, "priority == expected");
    UtAssert_True(task_prop.OStask_id == osTaskRecord_ptr->id, "OStask_id == expected");
    UtAssert_StrCmp(task_prop.name, osTaskRecord_ptr->name, "name == expected");

    /* Verify Semaphore Usage */
    UtAssert_True(getNSemTake(OS_TASK_TABLE_SEM) > 0, "semaphore taken");
    UtAssert_True(getNSemTake(OS_TASK_TABLE_SEM) == getNSemGive(OS_TASK_TABLE_SEM),
                  "nSemTake == nSemGive");
}
예제 #2
0
/*----------------------------------------------------------------------------*/
void Test_OS_TaskGetInfo_NullProp(void)
{
    int32 expected = OS_INVALID_POINTER;
    int32 actual   = 99;

    /* Setup Inputs */
    uint32 task_id = 1;
    OS_task_prop_t *task_prop = NULL;

    /* Execute Test */
    actual = OS_TaskGetInfo(task_id, task_prop);

    /* Verify Outputs */
    UtAssert_True(actual == expected, "actual == OS_INVALID_POINTER");

    /* Verify Semaphore Usage */
    UtAssert_True(getNSemTake(OS_TASK_TABLE_SEM) > 0, "semaphore taken");
    UtAssert_True(getNSemTake(OS_TASK_TABLE_SEM) == getNSemGive(OS_TASK_TABLE_SEM),
                  "nSemTake == nSemGive");
}
예제 #3
0
/*----------------------------------------------------------------------------*/
void Test_OS_TaskGetInfo_IdInvalid(void)
{
    int32 expected = OS_ERR_INVALID_ID;
    int32 actual   = 99;

    /* Setup Inputs */
    uint32 task_id = OS_MAX_TASKS;
    static OS_task_prop_t task_prop;

    /* Execute Test */
    actual = OS_TaskGetInfo(task_id, &task_prop);

    /* Verify Outputs */
    UtAssert_True(actual == expected, "actual == OS_ERR_INVALID_ID");

    /* Verify Semaphore Usage */
    UtAssert_True(getNSemTake(OS_TASK_TABLE_SEM) > 0, "semaphore taken");
    UtAssert_True(getNSemTake(OS_TASK_TABLE_SEM) == getNSemGive(OS_TASK_TABLE_SEM),
                  "nSemTake == nSemGive");
}
예제 #4
0
/*----------------------------------------------------------------------------*/
void Test_OS_TaskGetInfo_IdIsFree(void)
{
    int32 expected = OS_ERR_INVALID_ID;
    int32 actual   = 99;

    /* Setup Inputs */
    uint32 task_id = OS_MAX_TASKS - 1;
    static OS_task_prop_t task_prop;
    OsApi_Adaptor_setTaskTableEntry(task_id, TRUE, 0, "", 0, 0, 0, NULL);

    /* Execute Test */
    actual = OS_TaskGetInfo(task_id, &task_prop);

    /* Verify Outputs */
    UtAssert_True(actual == expected, "actual == OS_ERR_INVALID_ID");
    UtAssert_True(getNSemTake(OS_TASK_TABLE_SEM) > 0, "semaphore taken");
    UtAssert_True(getNSemTake(OS_TASK_TABLE_SEM) == getNSemGive(OS_TASK_TABLE_SEM),
                  "nSemTake == nSemGive");

    /* Verify Semaphore Usage */
    UtAssert_True(getNSemTake(OS_TASK_TABLE_SEM) > 0, "semaphore taken");
    UtAssert_True(getNSemTake(OS_TASK_TABLE_SEM) == getNSemGive(OS_TASK_TABLE_SEM),
                  "nSemTake == nSemGive");
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int32 CFE_ES_ListResources(int32 fd)
{
    OS_task_prop_t          TaskProp;
    OS_queue_prop_t         QueueProp;
    OS_bin_sem_prop_t       SemProp;
    OS_count_sem_prop_t     CountSemProp;
    OS_mut_sem_prop_t       MutProp;
    OS_FDTableEntry         FileProp;
    
    int32 Result = CFE_SUCCESS;
    int32 NumSemaphores = 0;
    int32 NumCountSems =0;
    int32 NumMutexes = 0;
    int32 NumQueues = 0;
    int32 NumTasks = 0;
    int32 NumFiles = 0;
    uint32 i;
    char Line[35];


    for ( i= 0; i < OS_MAX_TASKS; i++)
    {
        if (OS_TaskGetInfo(i, &TaskProp) == OS_SUCCESS)
        {
            NumTasks++;
        }
    }

    for ( i= 0; i < OS_MAX_QUEUES; i++)
    {
        if (OS_QueueGetInfo(i, &QueueProp) == OS_SUCCESS)
        {
            NumQueues++;
        }
    }


    for ( i= 0; i < OS_MAX_COUNT_SEMAPHORES; i++)
    {
       if (OS_CountSemGetInfo(i, &CountSemProp) == OS_SUCCESS)
        {
            NumCountSems++;
        }
    }
    for ( i= 0; i < OS_MAX_BIN_SEMAPHORES; i++)
    {
        if (OS_BinSemGetInfo(i, &SemProp) == OS_SUCCESS)
        {
            NumSemaphores++;
        }
    }


    for ( i= 0; i < OS_MAX_MUTEXES; i++)
    {
        if (OS_MutSemGetInfo(i, &MutProp) == OS_SUCCESS)
        {
            NumMutexes++;
        }
    }

    for ( i= 0; i < OS_MAX_NUM_OPEN_FILES; i++)
    {
        if (OS_FDGetInfo(i, &FileProp) == OS_FS_SUCCESS)
        {
            NumFiles++;
        }
    }

    sprintf(Line,"OS Resources in Use:\n");
    Result = OS_write(fd, Line, strlen(Line));
    
    if( Result == strlen(Line))
    {   
        sprintf(Line,"Number of Tasks: %d\n", (int) NumTasks);
        Result = OS_write(fd, Line, strlen(Line));

        if (Result == strlen(Line))
        {
            sprintf(Line,"Number of Queues: %d\n", (int) NumQueues);
            Result = OS_write(fd, Line, strlen(Line));
            
            if (Result == strlen(Line))
            {
                sprintf(Line,"Number of Binary Semaphores: %d\n",(int) NumSemaphores);
                Result = OS_write(fd, Line, strlen(Line));
                if (Result == strlen(Line))
                {
                
                   
                    sprintf(Line,"Number of Counting Semaphores: %d\n",(int) NumCountSems);
                    Result = OS_write(fd, Line, strlen(Line));
                 
                    if (Result == strlen(Line))
                    {
                        sprintf(Line,"Number of Mutexes: %d\n", (int) NumMutexes);
                        Result = OS_write(fd, Line, strlen(Line));
                        if (Result == strlen(Line))
                        {
                            sprintf(Line,"Number of Open Files: %d\n",(int) NumFiles);
                            Result = OS_write(fd, Line, strlen(Line));
                            if ( Result == strlen(Line))
                            {
                               Result = CFE_SUCCESS;
                            }
                        }
                    }
                }   
            }
        }
    }
            
    /* 
    ** If any of the writes failed, return the OS_write 
    **  failure 
    */
    return Result;
}