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