Esempio n. 1
0
void testCreateDestroy(void)
{
    le_sem_Ref_t semPtr=NULL,semPtr2=NULL;

    semPtr     = le_sem_Create( "SEMAPHORE-1", 10);
    CU_ASSERT_PTR_NOT_EQUAL(semPtr, NULL);

    semPtr2    = le_sem_CreateTraceable( "SEMAPHORE-2", 1);
    CU_ASSERT_PTR_NOT_EQUAL(semPtr2, NULL);


    le_sem_Delete(semPtr);
    CU_PASS("Destruct semaphore\n");
    le_sem_Delete(semPtr2);
    CU_PASS("Destruct semaphore\n");
}
Esempio n. 2
0
// -------------------------------------------------------------------------------------------------
void fjm_CheckResults
(
    void
)
// -------------------------------------------------------------------------------------------------
{
    int i, j, k;
    int depth = DEPTH;

    le_sem_Wait(CounterSemRef);

    Lock();

    LE_TEST_OK(Counter == ExpectedCounterValue, "Counter value (%u) should be %u.",
               Counter,
               ExpectedCounterValue);
    for (i = 0; depth >= 1 && i < FAN_OUT; i++)
    {
        fjm_CheckSingleResult(i, 0, 0);
        for (j = 1; depth >= 2 && j <= FAN_OUT; j++)
        {
            fjm_CheckSingleResult(i, j, 0);
            for (k = 1; depth >= 3 && k <= FAN_OUT; k++)
            {
                fjm_CheckSingleResult(i, j, k);
            }
        }
    }

    Unlock();

    le_mutex_Delete(MutexRef);
    le_sem_Delete(CounterSemRef);
}
Esempio n. 3
0
void testPostOK(void)
{
    le_sem_Ref_t semPtr=NULL;

    semPtr     = le_sem_Create( "SEMAPHORE-1", 10);
    CU_ASSERT_PTR_NOT_EQUAL(semPtr, NULL);

    le_sem_Post(semPtr);
    CU_ASSERT_EQUAL(le_sem_GetValue(semPtr),11);

    le_sem_Delete(semPtr);
    CU_PASS("Destruct semaphore\n");
}
Esempio n. 4
0
void launch_thread()
{
        int i;
        le_thread_Ref_t thread[NB_THREADS];

        GSemPtr  = le_sem_Create( SEM_NAME_1, 5);
        GSem2Ptr = le_sem_Create( SEM_NAME_2, 2);

        CU_ASSERT_PTR_NOT_EQUAL(GSemPtr, NULL);
        for (i = 0; i < NB_THREADS; i ++) {
            char threadName[20];
            snprintf(threadName,20,"Thread_%d",i);
            thread[i] = le_thread_Create(threadName, fonction_thread, NULL);
            le_thread_SetJoinable(thread[i]);
            le_thread_Start(thread[i]);
            usleep(10000);
        }
        for (i = 0; i < NB_THREADS; i ++) {
            le_thread_Join(thread[i], NULL);
        }
        le_sem_Delete(GSem2Ptr);
        le_sem_Delete(GSemPtr);
        CU_PASS("GlobalSemaphore destroy");
}
Esempio n. 5
0
void testTryWait(void)
{
    le_sem_Ref_t semPtr=NULL;
    le_result_t     result;

    semPtr     = le_sem_Create( "SEMAPHORE-1", 2);
    CU_ASSERT_PTR_NOT_EQUAL(semPtr, NULL);

    result=le_sem_TryWait(semPtr);
    CU_ASSERT_EQUAL(result,LE_OK);
    CU_ASSERT_EQUAL(le_sem_GetValue(semPtr),1);
    result=le_sem_TryWait(semPtr);
    CU_ASSERT_EQUAL(result,LE_OK);
    CU_ASSERT_EQUAL(le_sem_GetValue(semPtr),0);
    result=le_sem_TryWait(semPtr);
    CU_ASSERT_EQUAL(result,LE_WOULD_BLOCK);

    le_sem_Delete(semPtr);
    CU_PASS("Destruct semaphore\n");
}