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"); }
// ------------------------------------------------------------------------------------------------- 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); }
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"); }
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"); }
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"); }