void site_config_free(site_config_type * site_config) { ext_joblist_free( site_config->joblist ); job_queue_free( site_config->job_queue ); hash_free( site_config->queue_drivers ); stringlist_free( site_config->path_variables_user ); stringlist_free( site_config->path_values_user ); hash_free( site_config->path_variables_site ); hash_free( site_config->env_variables_site ); hash_free( site_config->env_variables_user ); if (site_config->__license_root_path != NULL) util_clear_directory( site_config->__license_root_path , true , true ); util_safe_free( site_config->manual_url ); util_safe_free( site_config->license_root_path ); util_safe_free( site_config->license_root_path_site ); util_safe_free( site_config->__license_root_path ); util_safe_free( site_config->job_script ); util_safe_free( site_config->job_script_site ); util_safe_free( site_config->rsh_command_site ); util_safe_free( site_config->lsf_queue_name_site ); util_safe_free( site_config->lsf_request_site ); free(site_config); }
void test_create() { job_queue_type * job_queue = job_queue_alloc( 100 , "OK" , "ERROR"); job_queue_manager_type * manager = job_queue_manager_alloc( job_queue ); test_assert_true( job_queue_manager_is_instance( manager )); job_queue_manager_free( manager ); job_queue_free( job_queue ); }
void job_queue_set_driver_(job_driver_type driver_type) { job_queue_type * queue = job_queue_alloc(10, "OK", "ERROR"); queue_driver_type * driver = queue_driver_alloc(driver_type); test_assert_false(job_queue_has_driver(queue)); job_queue_set_driver(queue, driver); test_assert_true(job_queue_has_driver(queue)); job_queue_free(queue); queue_driver_free(driver); }
int main(int argc , char ** argv) { const int queue_timeout = 180; const int submit_timeout = 180; const int status_timeout = 180; const int number_of_jobs = 250; const int submit_threads = number_of_jobs / 10 ; const int status_threads = number_of_jobs + 1; const char * job = util_alloc_abs_path(argv[1]); rng_type * rng = rng_alloc( MZRAN , INIT_CLOCK ); test_work_area_type * work_area = test_work_area_alloc("job_queue"); job_type **jobs = alloc_jobs( rng , number_of_jobs , job); job_queue_type * queue = job_queue_alloc(number_of_jobs, "OK", "ERROR"); queue_driver_type * driver = queue_driver_alloc_local(); job_queue_manager_type * queue_manager = job_queue_manager_alloc( queue ); job_queue_set_driver(queue, driver); job_queue_manager_start_queue(queue_manager, 0, false , true); { thread_pool_type * status_pool = thread_pool_alloc( status_threads , true ); thread_pool_type * submit_pool = thread_pool_alloc( submit_threads , true ); submit_jobs( queue , number_of_jobs , jobs , submit_pool ); status_jobs( queue , number_of_jobs , jobs , status_pool ); if (!thread_pool_try_join( submit_pool , submit_timeout )) util_exit("Joining submit pool failed \n"); thread_pool_free( submit_pool ); job_queue_submit_complete(queue); if (!thread_pool_try_join( status_pool , status_timeout)) util_exit("Joining status pool failed \n"); thread_pool_free( status_pool ); } if (!job_queue_manager_try_wait(queue_manager , queue_timeout)) util_exit("job_queue never completed \n"); job_queue_manager_free(queue_manager); job_queue_free(queue); queue_driver_free(driver); check_jobs( number_of_jobs , jobs ); test_work_area_free(work_area); rng_free( rng ); }