Esempio n. 1
0
void set_option_max_running_max_running_value_set() {
  queue_driver_type * driver_torque = queue_driver_alloc(TORQUE_DRIVER);
  test_assert_true(queue_driver_set_option(driver_torque, MAX_RUNNING, "42"));
  test_assert_string_equal("42", queue_driver_get_option(driver_torque, MAX_RUNNING));
  queue_driver_free(driver_torque);


  queue_driver_type * driver_lsf = queue_driver_alloc(LSF_DRIVER);
  test_assert_true(queue_driver_set_option(driver_lsf, MAX_RUNNING, "72"));
  test_assert_string_equal("72", queue_driver_get_option(driver_lsf, MAX_RUNNING));
  queue_driver_free(driver_lsf);
}
Esempio n. 2
0
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);

}
Esempio n. 3
0
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 );
}
Esempio n. 4
0
void get_driver_option_lists() {
  //Torque driver option list
  {
    queue_driver_type * driver_torque = queue_driver_alloc(TORQUE_DRIVER);
    stringlist_type * option_list = stringlist_alloc_new();
    queue_driver_init_option_list(driver_torque, option_list);
    
    test_assert_true(stringlist_contains(option_list, MAX_RUNNING));
    test_assert_true(stringlist_contains(option_list, TORQUE_QSUB_CMD));
    test_assert_true(stringlist_contains(option_list, TORQUE_QSTAT_CMD));
    test_assert_true(stringlist_contains(option_list, TORQUE_QDEL_CMD));
    test_assert_true(stringlist_contains(option_list, TORQUE_QUEUE));
    test_assert_true(stringlist_contains(option_list, TORQUE_NUM_CPUS_PER_NODE));
    test_assert_true(stringlist_contains(option_list, TORQUE_NUM_NODES));
    test_assert_true(stringlist_contains(option_list, TORQUE_KEEP_QSUB_OUTPUT));
    test_assert_true(stringlist_contains(option_list, TORQUE_CLUSTER_LABEL));

    stringlist_free(option_list);
    queue_driver_free(driver_torque);
  }
  
  //Local driver option list (only general queue_driver options)
  {
    queue_driver_type * driver_local = queue_driver_alloc(LOCAL_DRIVER);
    stringlist_type * option_list = stringlist_alloc_new();
    queue_driver_init_option_list(driver_local, option_list);
    
    test_assert_true(stringlist_contains(option_list, MAX_RUNNING));
    
    stringlist_free(option_list); 
    queue_driver_free(driver_local);
  }
  
  //Lsf driver option list 
  {
    queue_driver_type * driver_lsf = queue_driver_alloc(LSF_DRIVER);
    stringlist_type * option_list = stringlist_alloc_new();
    queue_driver_init_option_list(driver_lsf, option_list);
    
    test_assert_true(stringlist_contains(option_list, MAX_RUNNING));
    test_assert_true(stringlist_contains(option_list, LSF_QUEUE));
    test_assert_true(stringlist_contains(option_list, LSF_RESOURCE));
    test_assert_true(stringlist_contains(option_list, LSF_SERVER));
    test_assert_true(stringlist_contains(option_list, LSF_RSH_CMD));
    test_assert_true(stringlist_contains(option_list, LSF_LOGIN_SHELL));
    test_assert_true(stringlist_contains(option_list, LSF_BSUB_CMD));
    test_assert_true(stringlist_contains(option_list, LSF_BJOBS_CMD));
    test_assert_true(stringlist_contains(option_list, LSF_BKILL_CMD));
    
    stringlist_free(option_list); 
    queue_driver_free(driver_lsf);
  }
  
  //Rsh driver option list 
  {
    queue_driver_type * driver_rsh = queue_driver_alloc(RSH_DRIVER);
    stringlist_type * option_list = stringlist_alloc_new();
    queue_driver_init_option_list(driver_rsh, option_list);
    
    test_assert_true(stringlist_contains(option_list, MAX_RUNNING));
    test_assert_true(stringlist_contains(option_list, RSH_HOST));
    test_assert_true(stringlist_contains(option_list, RSH_HOSTLIST));
    test_assert_true(stringlist_contains(option_list, RSH_CMD));
    test_assert_true(stringlist_contains(option_list, RSH_CLEAR_HOSTLIST));
        
    stringlist_free(option_list); 
    queue_driver_free(driver_rsh);
  }
}
Esempio n. 5
0
void set_option_valid_on_specific_driver_returns_true() {
  queue_driver_type * driver_torque = queue_driver_alloc(TORQUE_DRIVER);
  test_assert_true(queue_driver_set_option(driver_torque, TORQUE_NUM_CPUS_PER_NODE, "33"));
  test_assert_string_equal("33", queue_driver_get_option(driver_torque, TORQUE_NUM_CPUS_PER_NODE));
  queue_driver_free(driver_torque);
}
Esempio n. 6
0
void set_option_invalid_value_returns_false() {
  queue_driver_type * driver_torque = queue_driver_alloc(TORQUE_DRIVER);
  test_assert_false(queue_driver_set_option(driver_torque, "MAX_RUNNING", "2a"));
  queue_driver_free(driver_torque);
}
Esempio n. 7
0
void queue_driver_free__(void * driver) {
  queue_driver_type * queue_driver = queue_driver_safe_cast(driver);
  queue_driver_free(queue_driver);
}