Exemple #1
0
END_TEST


START_TEST(job_nodes_test)
  {
  job *pjob = (job *)calloc(1, sizeof(job));
  pjob->ji_usages = new std::map<std::string, job_host_data>();

  pjob->ji_wattr[JOB_ATR_exec_host].at_val.at_str = strdup("napali/0-9+waimea/0-9");
  pjob->ji_wattr[JOB_ATR_exec_port].at_val.at_str = strdup("15002+15002");

  fail_unless(job_nodes(*pjob) != PBSE_NONE);
  // nothing should've happened since the flag isn't set
  fail_unless(pjob->ji_numnodes == 0);
  
  pjob->ji_wattr[JOB_ATR_exec_host].at_flags = ATR_VFLAG_SET;

  // Force it to not resolve the hostname
  addr_fail = true;
  int rc = job_nodes(*pjob);
  fail_unless(rc == PBSE_CANNOT_RESOLVE, "Error is %d", rc);
  addr_fail = false; // allow things to work normally


  fail_unless(job_nodes(*pjob) == PBSE_NONE);
  fail_unless(pjob->ji_numnodes == 2);
  fail_unless(pjob->ji_numvnod == 20);

  fail_unless(!strcmp(pjob->ji_hosts[0].hn_host, "napali"));
  fail_unless(!strcmp(pjob->ji_hosts[1].hn_host, "waimea"));
  fail_unless(pjob->ji_hosts[2].hn_node == TM_ERROR_NODE);
  fail_unless(pjob->ji_vnods[20].vn_node == TM_ERROR_NODE);

  for (int i = 0; i < 2; i++)
    {
    fail_unless(pjob->ji_hosts[i].hn_node == i);
    fail_unless(pjob->ji_hosts[i].hn_sister == SISTER_OKAY);
    fail_unless(pjob->ji_hosts[i].hn_port == 15002);
    fail_unless(GET_NEXT(pjob->ji_hosts[i].hn_events) == NULL);
    }
  
  for (int i = 0; i < 20; i++)
    {
    fail_unless(pjob->ji_vnods[i].vn_node == i);
    fail_unless(pjob->ji_vnods[i].vn_index == i % 10);
    fail_unless(pjob->ji_vnods[i].vn_host == &pjob->ji_hosts[i/10]);
    }

  nodes_free(pjob);
  fail_unless(pjob->ji_vnods == NULL);
  fail_unless(pjob->ji_hosts == NULL);
  }
Exemple #2
0
END_TEST


START_TEST(job_nodes_test)
  {
  job *pjob = (job *)calloc(1, sizeof(job));

  pjob->ji_wattr[JOB_ATR_exec_host].at_val.at_str = strdup("napali/0-9+waimea/0-9");
  pjob->ji_wattr[JOB_ATR_exec_port].at_val.at_str = strdup("15002+15002");

  job_nodes(*pjob);
  // nothing should've happened since the flag isn't set
  fail_unless(pjob->ji_numnodes == 0);

  pjob->ji_wattr[JOB_ATR_exec_host].at_flags = ATR_VFLAG_SET;

  job_nodes(*pjob);
  fail_unless(pjob->ji_numnodes == 2);
  fail_unless(pjob->ji_numvnod == 20);

  fail_unless(!strcmp(pjob->ji_hosts[0].hn_host, "napali"));
  fail_unless(!strcmp(pjob->ji_hosts[1].hn_host, "waimea"));
  fail_unless(pjob->ji_hosts[2].hn_node == TM_ERROR_NODE);
  fail_unless(pjob->ji_vnods[20].vn_node == TM_ERROR_NODE);

  for (int i = 0; i < 2; i++)
    {
    fail_unless(pjob->ji_hosts[i].hn_node == i);
    fail_unless(pjob->ji_hosts[i].hn_sister == SISTER_OKAY);
    fail_unless(pjob->ji_hosts[i].hn_port == 15002);
    fail_unless(GET_NEXT(pjob->ji_hosts[i].hn_events) == NULL);
    }
  
  for (int i = 0; i < 20; i++)
    {
    fail_unless(pjob->ji_vnods[i].vn_node == i);
    fail_unless(pjob->ji_vnods[i].vn_index == i % 10);
    fail_unless(pjob->ji_vnods[i].vn_host == &pjob->ji_hosts[i/10]);
    }

  nodes_free(pjob);
  fail_unless(pjob->ji_vnods == NULL);
  fail_unless(pjob->ji_hosts == NULL);
  }