kfdtest: fix and change in RAS test

1. RAS error injection debugfs interface has been changed which
is using ras_ctrl instead of *_err_inject.

2. Remove ASSERT_SUCCESS for fwrite, because fwrite returns
the size of written item but not the error number.

3. Using throw exception instead of return to avoid a segment fault.

Change-Id: I6c4d9c2f7e66719faec99abd1552105a08c238a4
Signed-off-by: Eric Huang <JinhuiEric.Huang@amd.com>
This commit is contained in:
Eric Huang
2019-03-28 14:51:06 -04:00
zatwierdzone przez JinHuiEric Huang
rodzic d6cde5bf08
commit e5b215570b
+7 -7
Wyświetl plik
@@ -29,7 +29,7 @@
#include "PM4Queue.hpp"
#define AMDGPU_DEBUGFS_NODES "/sys/kernel/debug/dri/"
#define RAS_SDMA_ERR_INJECTION "ras/sdma_err_inject"
#define RAS_CONTROL "ras/ras_ctrl"
void KFDRASTest::SetUp() {
ROUTINE_START
@@ -49,7 +49,7 @@ void KFDRASTest::SetUp() {
renderNode = KFDBaseComponentTest::FindDRMRenderNode(m_defaultGPUNode);
if (renderNode < 0) {
LOG() << "Skipping test: Could not find render node for default GPU." << std::endl;
return;
throw;
}
amdgpu_query_info(m_RenderNodes[renderNode].device_handle,
@@ -60,15 +60,15 @@ void KFDRASTest::SetUp() {
AMDGPU_INFO_RAS_ENABLED_UMC ||
AMDGPU_INFO_RAS_ENABLED_GFX))) {
LOG() << "Skipping test: GPU doesn't support RAS features!" << std::endl;
return;
throw;
}
snprintf(path, sizeof(path), "%s/%d/%s", AMDGPU_DEBUGFS_NODES, renderNode, RAS_SDMA_ERR_INJECTION);
snprintf(path, sizeof(path), "%s/%d/%s", AMDGPU_DEBUGFS_NODES, renderNode, RAS_CONTROL);
m_pFile = fopen(path, "w");
if (!m_pFile) {
LOG() << "Skipping test: RAS error injection requires root access!" << std::endl;
return;
throw;
}
eventDesc.EventType = HSA_EVENTTYPE_MEMORY;
@@ -105,7 +105,7 @@ TEST_F(KFDRASTest, BasicTest) {
}
// write an uncorrectable error injection at address 1 as value 1
ASSERT_SUCCESS(fwrite("ue 1 1", sizeof(char), 6, m_pFile));
fwrite("inject umc ue 1 1", sizeof(char), 17, m_pFile);
EXPECT_SUCCESS(hsaKmtWaitOnEvent(m_pRasEvent, g_TestTimeOut));
@@ -136,7 +136,7 @@ TEST_F(KFDRASTest, MixEventsTest) {
EXPECT_SUCCESS(hsaKmtWaitOnEvent(pHsaEvent, g_TestTimeOut));
ASSERT_SUCCESS(fwrite("ue 1 1", sizeof(char), 6, m_pFile));
fwrite("inject umc ue 1 1", sizeof(char), 17, m_pFile);
EXPECT_SUCCESS(hsaKmtWaitOnEvent(m_pRasEvent, g_TestTimeOut));