diff options
author | Jan Hutter <jhutter@hsr.ch> | 2005-11-03 18:22:07 +0000 |
---|---|---|
committer | Jan Hutter <jhutter@hsr.ch> | 2005-11-03 18:22:07 +0000 |
commit | ef23cd28c1dcc851e44dc632f36476d6310f0870 (patch) | |
tree | 461099e3d91b1d5e3fd6a8921d71c9a106376eac /Source | |
parent | 5ea755119547a93daed2b2a5447d470c0339a367 (diff) | |
download | strongswan-ef23cd28c1dcc851e44dc632f36476d6310f0870.tar.bz2 strongswan-ef23cd28c1dcc851e44dc632f36476d6310f0870.tar.xz |
- Tests more documented
Diffstat (limited to 'Source')
-rw-r--r-- | Source/charon/tester.c | 15 | ||||
-rw-r--r-- | Source/charon/tester.h | 2 | ||||
-rw-r--r-- | Source/charon/tests/job_queue_test.c | 57 | ||||
-rw-r--r-- | Source/charon/tests/job_queue_test.h | 6 | ||||
-rw-r--r-- | Source/charon/tests/linked_list_test.h | 12 | ||||
-rw-r--r-- | Source/charon/tests/tests.h | 9 | ||||
-rw-r--r-- | Source/charon/tests/thread_pool_test.c | 4 | ||||
-rw-r--r-- | Source/charon/tests/thread_pool_test.h | 8 |
8 files changed, 76 insertions, 37 deletions
diff --git a/Source/charon/tester.c b/Source/charon/tester.c index 198ef3704..e241d07e5 100644 --- a/Source/charon/tester.c +++ b/Source/charon/tester.c @@ -50,12 +50,8 @@ struct private_tester_s { pthread_mutex_t mutex; }; - - -/** - * @brief Testing of all registered tests - * - * New tests have to be added in this function +/* + * Implementation of function test_all */ static status_t test_all(tester_t *tester,test_t **tests) { @@ -76,8 +72,7 @@ static status_t test_all(tester_t *tester,test_t **tests) /** - * @brief implements the private run_test-Function - * + * Implementation of function run_test */ static void run_test(tester_t *tester, void (*test_function) (tester_t * tester), char * test_name) { @@ -94,8 +89,7 @@ static void run_test(tester_t *tester, void (*test_function) (tester_t * tester) } /** - * @brief implements the private assert_true-Function - * + * Implementation of function assert_true */ static void assert_true(tester_t *tester, bool to_be_true,char * assert_name) { @@ -120,7 +114,6 @@ static void assert_true(tester_t *tester, bool to_be_true,char * assert_name) /** * Implements the destroy function - * */ static status_t destroy(tester_t *tester) { diff --git a/Source/charon/tester.h b/Source/charon/tester.h index 380007645..cf3af39f3 100644 --- a/Source/charon/tester.h +++ b/Source/charon/tester.h @@ -36,7 +36,7 @@ typedef struct test_s test_t; /** - * @brief A tester object to perform tests + * @brief A tester object to perform tests with */ typedef struct tester_s tester_t; diff --git a/Source/charon/tests/job_queue_test.c b/Source/charon/tests/job_queue_test.c index df110c0cf..302bd6043 100644 --- a/Source/charon/tests/job_queue_test.c +++ b/Source/charon/tests/job_queue_test.c @@ -33,21 +33,33 @@ typedef struct job_queue_test_s job_queue_test_t; +/** + * @brief Informations for the involved test-thread used in this test + * + */ struct job_queue_test_s{ tester_t *tester; job_queue_t *job_queue; - int max_queue_item_count; + /** + * number of items to be inserted in the job-queue + */ + int insert_item_count; + /** + * number of items to be removed by each + * receiver thread from the job-queue + */ + int remove_item_count; }; /** * @brief sender thread used in the the job_queue test function + * + * @param testinfo informations for the specific thread. */ static void test_job_queue_sender(job_queue_test_t * testinfo) { - - int i; - - for (i = 0; i < testinfo->max_queue_item_count; i++) + int i; + for (i = 0; i < testinfo->insert_item_count; i++) { int *value = alloc_thing(int,"int"); *value = i; @@ -58,43 +70,52 @@ static void test_job_queue_sender(job_queue_test_t * testinfo) /** * @brief receiver thread used in the the job_queue test function + * + * @param testinfo informations for the specific thread. */ static void test_job_queue_receiver(job_queue_test_t * testinfo) { int i; - - for (i = 0; i < testinfo->max_queue_item_count; i++) + for (i = 0; i < testinfo->remove_item_count; i++) { job_t *job; testinfo->tester->assert_true(testinfo->tester,(testinfo->job_queue->get(testinfo->job_queue,&job) == SUCCESS), "get job call check"); - testinfo->tester->assert_true(testinfo->tester,(job->type == INCOMING_PACKET), "job type check"); - testinfo->tester->assert_true(testinfo->tester,((*((int *) (job->assigned_data))) == i), "job value check"); - + testinfo->tester->assert_true(testinfo->tester,(job->type == INCOMING_PACKET), "job type check"); pfree(job->assigned_data); testinfo->tester->assert_true(testinfo->tester,(job->destroy(job) == SUCCESS), "job destroy call check"); } } /* - * * description is in header file */ void test_job_queue(tester_t *tester) { - int value = 1000; - pthread_t sender_thread, receiver_thread; + int value, i; + pthread_t sender_thread, receiver_threads[5]; job_queue_t *job_queue = job_queue_create(); job_queue_test_t test_infos; + test_infos.tester = tester; test_infos.job_queue = job_queue; - test_infos.max_queue_item_count = 100000; + test_infos.insert_item_count = 50000; + test_infos.remove_item_count = 10000; + - pthread_create( &receiver_thread, NULL,(void*(*)(void*)) &test_job_queue_receiver, (void*) &test_infos); + for (i = 0; i < 5;i++) + { + pthread_create( &receiver_threads[i], NULL,(void*(*)(void*)) &test_job_queue_receiver, (void*) &test_infos); + } pthread_create( &sender_thread, NULL,(void*(*)(void*)) &test_job_queue_sender, (void*) &test_infos); - - pthread_join(sender_thread, NULL); - pthread_join(receiver_thread, NULL); + /* Wait for all threads */ + pthread_join(sender_thread, NULL); + for (i = 0; i < 5;i++) + { + pthread_join(receiver_threads[i], NULL); + } + + /* the job-queue has to be empty now! */ tester->assert_true(tester,(job_queue->get_count(job_queue,&value) == SUCCESS), "get count call check"); tester->assert_true(tester,(value == 0), "get count value check"); tester->assert_true(tester,(job_queue->destroy(job_queue) == SUCCESS), "destroy call check"); diff --git a/Source/charon/tests/job_queue_test.h b/Source/charon/tests/job_queue_test.h index b2076eff3..ba8fd02bb 100644 --- a/Source/charon/tests/job_queue_test.h +++ b/Source/charon/tests/job_queue_test.h @@ -25,11 +25,17 @@ /** * @brief Test function used to test the job_queue functionality + * + * Tests are performed using different threads to test the multi-threaded + * features of the job_queue_t. * * @param tester associated tester object */ void test_job_queue(tester_t *tester); +/** + * Test 1 for linked_list_t + */ test_t job_queue_test1 = {test_job_queue,"Job-Queue Test1"}; #endif /*JOB_QUEUE_TEST_H_*/ diff --git a/Source/charon/tests/linked_list_test.h b/Source/charon/tests/linked_list_test.h index c1b162e70..b78158822 100644 --- a/Source/charon/tests/linked_list_test.h +++ b/Source/charon/tests/linked_list_test.h @@ -24,13 +24,21 @@ #define LINKED_LIST_TEST_H_ /** - * @brief Tes function for the type linked_list_t + * @brief Test function for the type linked_list_t + * + * Performs different kinds of assertions to check the functionality + * of the linked_list_t in a Single-Threaded environment. * + * @warning To be usable in multi-threaded software + * this list has to get protected with locks. + * * @param tester tester object */ void test_linked_list(tester_t *tester); - +/** + * Test for linked_list_t + */ test_t linked_list_test = {test_linked_list,"Linked List"}; #endif /*LINKED_LIST_TEST_H_*/ diff --git a/Source/charon/tests/tests.h b/Source/charon/tests/tests.h index 0a6eadc37..326b4772d 100644 --- a/Source/charon/tests/tests.h +++ b/Source/charon/tests/tests.h @@ -1,9 +1,9 @@ /** * @file tests.h * - * @brief Lists all the tests to get performed by the tester + * @brief Lists all the tests to be processed by the tester object * - * New tests have to be added here + * New tests have to be added here! * */ @@ -30,7 +30,10 @@ #include "thread_pool_test.h" #include "job_queue_test.h" - + +/** + * @brief these tests are getting performed by the tester + */ test_t *tests[] ={ &linked_list_test, &thread_pool_test, diff --git a/Source/charon/tests/thread_pool_test.c b/Source/charon/tests/thread_pool_test.c index efa000ca7..bc481af9b 100644 --- a/Source/charon/tests/thread_pool_test.c +++ b/Source/charon/tests/thread_pool_test.c @@ -24,8 +24,8 @@ #include "../tester.h" #include "../thread_pool.h" -/** - * @brief Test function to test the thread pool class +/* + * Description in header file */ void test_thread_pool(tester_t *tester) { diff --git a/Source/charon/tests/thread_pool_test.h b/Source/charon/tests/thread_pool_test.h index feafa2897..42d6d0635 100644 --- a/Source/charon/tests/thread_pool_test.h +++ b/Source/charon/tests/thread_pool_test.h @@ -23,8 +23,16 @@ #ifndef THREAD_POOL_TEST_H_ #define THREAD_POOL_TEST_H_ +/** + * @brief Test function for the type thread_pool_t + * + * @param tester tester object + */ void test_thread_pool(tester_t *tester); +/** + * Test for thread_pool_t + */ test_t thread_pool_test = {test_thread_pool,"Thread Pool"}; #endif /*THREAD_POOL_TEST_H_*/ |