Add VBIOS version get function

Also, consolidate "get version" type function tests into 1 test.
This commit is contained in:
Chris Freehill
2019-02-24 11:01:18 -06:00
parent 68b5e2ee0d
commit 021f13a68f
7 changed files with 136 additions and 65 deletions
@@ -51,54 +51,83 @@
#include "gtest/gtest.h"
#include "rocm_smi/rocm_smi.h"
#include "rocm_smi_test/functional/bdfid_read.h"
#include "rocm_smi_test/functional/sys_info_read.h"
#include "rocm_smi_test/test_common.h"
TestBDFIDRead::TestBDFIDRead() : TestBase() {
set_title("RSMI BDFID Read Test");
set_description("The BDFID Read tests verifies that the BDFID "
"value can be read properly.");
TestSysInfoRead::TestSysInfoRead() : TestBase() {
set_title("RSMI System Info Read Test");
set_description("This test verifies that system information such as the "
"BDFID, RSMI version, VBIOS version, etc. can be read properly.");
}
TestBDFIDRead::~TestBDFIDRead(void) {
TestSysInfoRead::~TestSysInfoRead(void) {
}
void TestBDFIDRead::SetUp(void) {
void TestSysInfoRead::SetUp(void) {
TestBase::SetUp();
return;
}
void TestBDFIDRead::DisplayTestInfo(void) {
void TestSysInfoRead::DisplayTestInfo(void) {
TestBase::DisplayTestInfo();
}
void TestBDFIDRead::DisplayResults(void) const {
void TestSysInfoRead::DisplayResults(void) const {
TestBase::DisplayResults();
return;
}
void TestBDFIDRead::Close() {
void TestSysInfoRead::Close() {
// This will close handles opened within rsmitst utility calls and call
// rsmi_shut_down(), so it should be done after other hsa cleanup
TestBase::Close();
}
void TestBDFIDRead::Run(void) {
void TestSysInfoRead::Run(void) {
rsmi_status_t err;
uint64_t val_ui64;
char buffer[80];
rsmi_version ver = {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, nullptr};
TestBase::Run();
for (uint32_t i = 0; i < num_monitor_devs(); ++i) {
PrintDeviceHeader(i);
err = rsmi_dev_vbios_version_get(i, buffer, 80);
if (err != RSMI_STATUS_SUCCESS) {
if (err == RSMI_STATUS_FILE_ERROR) {
IF_VERB(STANDARD) {
std::cout << "\t**VBIOS read: Not supported on this machine"
<< std::endl;
}
} else {
CHK_ERR_ASRT(err)
}
} else {
IF_VERB(STANDARD) {
std::cout << "\t**VBIOS Version: " << std::hex << buffer << std::endl;
}
}
err = rsmi_dev_pci_id_get(i, &val_ui64);
CHK_ERR_ASRT(err)
IF_VERB(STANDARD) {
std::cout << "\t**PCI ID (BDFID): 0x" << std::hex << val_ui64;
std::cout << " (" << std::dec << val_ui64 << ")" << std::endl;
}
err = rsmi_version_get(&ver);
CHK_ERR_ASRT(err)
ASSERT_TRUE(ver.major != 0xFFFFFFFF && ver.minor != 0xFFFFFFFF &&
ver.patch != 0xFFFFFFFF && ver.build != nullptr);
IF_VERB(STANDARD) {
std::cout << "\t**RocM SMI Library version: " << ver.major << "." <<
ver.minor << "." << ver.patch << " (" << ver.build << ")" << std::endl;
}
}
}
@@ -42,17 +42,17 @@
* DEALINGS WITH THE SOFTWARE.
*
*/
#ifndef TESTS_ROCM_SMI_TEST_FUNCTIONAL_BDFID_READ_H_
#define TESTS_ROCM_SMI_TEST_FUNCTIONAL_BDFID_READ_H_
#ifndef TESTS_ROCM_SMI_TEST_FUNCTIONAL_SYS_INFO_READ_H_
#define TESTS_ROCM_SMI_TEST_FUNCTIONAL_SYS_INFO_READ_H_
#include "rocm_smi_test/test_base.h"
class TestBDFIDRead : public TestBase {
class TestSysInfoRead : public TestBase {
public:
TestBDFIDRead();
TestSysInfoRead();
// @Brief: Destructor for test case of TestBDFIDRead
virtual ~TestBDFIDRead();
// @Brief: Destructor for test case of TestSysInfoRead
virtual ~TestSysInfoRead();
// @Brief: Setup the environment for measurement
virtual void SetUp();
@@ -70,4 +70,4 @@ class TestBDFIDRead : public TestBase {
virtual void DisplayTestInfo(void);
};
#endif // TESTS_ROCM_SMI_TEST_FUNCTIONAL_BDFID_READ_H_
#endif // TESTS_ROCM_SMI_TEST_FUNCTIONAL_SYS_INFO_READ_H_
+3 -3
View File
@@ -58,7 +58,7 @@
#include "functional/perf_level_read.h"
#include "functional/overdrive_read.h"
#include "functional/frequencies_read.h"
#include "functional/bdfid_read.h"
#include "functional/sys_info_read.h"
#include "functional/gpu_busy_read.h"
#include "functional/power_read.h"
#include "functional/overdrive_read_write.h"
@@ -161,8 +161,8 @@ TEST(rsmitstReadWrite, TestPciBWReadWrite) {
TestPciBWReadWrite tst;
RunGenericTest(&tst);
}
TEST(rsmitstReadOnly, TestBDFIDRead) {
TestBDFIDRead tst;
TEST(rsmitstReadOnly, TestSysInfoRead) {
TestSysInfoRead tst;
RunGenericTest(&tst);
}
TEST(rsmitstReadOnly, TestGPUBusyRead) {