Docs., error checking and test improvements
* Update doc. on api-support function * Check for valid integer value when reading a monitor int. val. * If fan-write test attempts to set speed higher than max. possible, then skip the test Change-Id: I01ad0ab1f4caffdb0d2c26e9575f278c35a6b017
This commit is contained in:
@@ -408,6 +408,12 @@ static rsmi_status_t get_dev_mon_value(amd::smi::MonitorTypes type,
|
||||
return errno_to_rsmi_status(ret);
|
||||
}
|
||||
|
||||
if (!amd::smi::IsInteger(val_str)) {
|
||||
std::cerr << "Expected integer value, but got \"" << val_str << "\"" <<
|
||||
std::endl;
|
||||
}
|
||||
assert(amd::smi::IsInteger(val_str));
|
||||
|
||||
*val = std::stoul(val_str);
|
||||
|
||||
return RSMI_STATUS_SUCCESS;
|
||||
|
||||
@@ -140,5 +140,17 @@ int ReadSysfsStr(std::string path, std::string *retStr) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool IsInteger(const std::string & n_str)
|
||||
{
|
||||
if(n_str.empty() || ((!isdigit(n_str[0])) && (n_str[0] != '-')
|
||||
&& (n_str[0] != '+'))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
char * tmp;
|
||||
strtol(n_str.c_str(), &tmp, 10);
|
||||
|
||||
return (*tmp == 0);
|
||||
}
|
||||
} // namespace smi
|
||||
} // namespace amd
|
||||
|
||||
Reference in New Issue
Block a user