void allocation::write_task_information( std::string &task_info) const { std::string cpus; std::string mems; char buf[256]; translate_vector_to_range_string(cpus, this->cpu_indices); translate_vector_to_range_string(mems, this->mem_indices); task_info = "{\"task\":{\"cpu_list\":\"" + cpus; task_info += "\",\"mem_list\":\"" + mems; if (this->task_cput_used != 0) { unsigned long cput_used = this->task_cput_used; snprintf(buf, sizeof(buf), "\",\"cpu_time_used\":%lu", cput_used); task_info += buf; } if (this->task_memory_used != 0) { snprintf(buf, sizeof(buf), "\",\"memory_used\":%llu", this->task_memory_used); task_info += buf; } snprintf(buf, sizeof(buf), "\",\"cores\":%d", this->cores); task_info += buf; snprintf(buf, sizeof(buf), ",\"threads\":%d", this->threads); task_info += buf; task_info += ",\"host\":\"" + this->hostname + "\"}}"; } // END write_task_information()
void allocation::place_indices_in_string( std::string &output, int which) { if (which == MEM_INDICES) translate_vector_to_range_string(output, this->mem_indices); else translate_vector_to_range_string(output, this->cpu_indices); } // END place_indices_in_string()
END_TEST START_TEST(test_translate_vector_to_range_string) { std::string range_string; std::vector<int> indices; for (int i = 0; i < 10; i++) indices.push_back(i); translate_vector_to_range_string(range_string, indices); fail_unless(range_string == "0-9", "string is %s", range_string.c_str()); indices.clear(); for (int i = 0; i < 10; i++) { if (i % 2 == 0) indices.push_back(i); } translate_vector_to_range_string(range_string, indices); fail_unless(range_string == "0,2,4,6,8", range_string.c_str()); indices.clear(); for (int i = 0; i < 3; i++) indices.push_back(i); for (int i = 4; i < 7; i++) indices.push_back(i); translate_vector_to_range_string(range_string, indices); fail_unless(range_string == "0-2,4-6"); indices.clear(); for (int i = 0; i < 3; i++) indices.push_back(i); for (int i = 4; i < 7; i++) indices.push_back(i); indices.push_back(8); indices.push_back(10); for (int i = 13; i < 15; i++) indices.push_back(i); translate_vector_to_range_string(range_string, indices); fail_unless(range_string == "0-2,4-6,8,10,13-14"); }