Skip to content

Commit 6fe343d

Browse files
Add CTS for RasGetStateExp and ClearStateExp (#42)
Related-to: VLCLJ-2135 Signed-off-by: Vishnu Khanth <[email protected]>
1 parent 64d1461 commit 6fe343d

File tree

3 files changed

+92
-3
lines changed

3 files changed

+92
-3
lines changed

conformance_tests/sysman/test_sysman_ras/src/test_sysman_ras.cpp

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
*
3-
* Copyright (C) 2020-2023 Intel Corporation
3+
* Copyright (C) 2020-2024 Intel Corporation
44
*
55
* SPDX-License-Identifier: MIT
66
*
@@ -41,6 +41,25 @@ void validate_ras_state(zes_ras_state_t detailedThresholds) {
4141
EXPECT_GE(detailedThresholds.category[ZES_RAS_ERROR_CAT_RESET], 0);
4242
}
4343

44+
void validate_ras_state_exp(zes_ras_state_exp_t ras_state) {
45+
std::vector<zes_ras_error_category_exp_t> error_category = {
46+
ZES_RAS_ERROR_CATEGORY_EXP_RESET,
47+
ZES_RAS_ERROR_CATEGORY_EXP_PROGRAMMING_ERRORS,
48+
ZES_RAS_ERROR_CATEGORY_EXP_DRIVER_ERRORS,
49+
ZES_RAS_ERROR_CATEGORY_EXP_COMPUTE_ERRORS,
50+
ZES_RAS_ERROR_CATEGORY_EXP_NON_COMPUTE_ERRORS,
51+
ZES_RAS_ERROR_CATEGORY_EXP_CACHE_ERRORS,
52+
ZES_RAS_ERROR_CATEGORY_EXP_DISPLAY_ERRORS,
53+
ZES_RAS_ERROR_CATEGORY_EXP_MEMORY_ERRORS,
54+
ZES_RAS_ERROR_CATEGORY_EXP_SCALE_ERRORS,
55+
ZES_RAS_ERROR_CATEGORY_EXP_L3FABRIC_ERRORS};
56+
57+
EXPECT_NE(error_category.end(),
58+
std::find(error_category.begin(), error_category.end(),
59+
ras_state.category));
60+
EXPECT_GE(ras_state.errorCounter, 0);
61+
}
62+
4463
void validate_ras_config(zes_ras_config_t rasConfig) {
4564
EXPECT_LT(rasConfig.totalThreshold, UINT64_MAX);
4665
EXPECT_GE(rasConfig.totalThreshold, 0);
@@ -240,4 +259,57 @@ TEST_F(
240259
}
241260
}
242261
}
262+
263+
TEST_F(RAS_TEST,
264+
GivenValidRASHandleWhenRetrievingStateExpThenValidStateExpIsReturned) {
265+
for (auto device : devices) {
266+
uint32_t count = 0;
267+
auto ras_handles = lzt::get_ras_handles(device, count);
268+
if (count == 0) {
269+
FAIL() << "No handles found: "
270+
<< _ze_result_t(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
271+
}
272+
273+
for (auto ras_handle : ras_handles) {
274+
ASSERT_NE(nullptr, ras_handle);
275+
auto ras_states = lzt::ras_get_state_exp(ras_handle);
276+
for (auto state : ras_states) {
277+
validate_ras_state_exp(state);
278+
}
279+
}
280+
}
281+
}
282+
283+
TEST_F(
284+
RAS_TEST,
285+
GivenValidRASHandleWhenRetrievingStateExpAfterInvokingClearstateExpThenUpdatedStateExpIsReturned) {
286+
for (auto device : devices) {
287+
uint32_t count = 0;
288+
auto ras_handles = lzt::get_ras_handles(device, count);
289+
if (count == 0) {
290+
FAIL() << "No handles found: "
291+
<< _ze_result_t(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
292+
}
293+
294+
for (auto ras_handle : ras_handles) {
295+
ASSERT_NE(nullptr, ras_handle);
296+
uint32_t initial_errors = 0;
297+
uint32_t errors_after_clear = 0;
298+
auto ras_states = lzt::ras_get_state_exp(ras_handle);
299+
300+
for (auto state : ras_states) {
301+
validate_ras_state_exp(state);
302+
initial_errors += state.errorCounter;
303+
lzt::ras_clear_state_exp(ras_handle, state.category);
304+
}
305+
306+
ras_states = lzt::ras_get_state_exp(ras_handle);
307+
for (auto state : ras_states) {
308+
validate_ras_state_exp(state);
309+
errors_after_clear += state.errorCounter;
310+
}
311+
EXPECT_LE(errors_after_clear, initial_errors);
312+
}
313+
}
314+
}
243315
} // namespace

utils/test_harness/sysman/include/test_harness_sysman_ras.hpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
*
3-
* Copyright (C) 2020 Intel Corporation
3+
* Copyright (C) 2020-2024 Intel Corporation
44
*
55
* SPDX-License-Identifier: MIT
66
*
@@ -20,6 +20,9 @@ zes_ras_config_t get_ras_config(zes_ras_handle_t rasHandle);
2020
void set_ras_config(zes_ras_handle_t rasHandle, zes_ras_config_t rasConfig);
2121
zes_ras_state_t get_ras_state(zes_ras_handle_t rasHandle, ze_bool_t clear);
2222
uint64_t sum_of_ras_errors(zes_ras_state_t state);
23+
std::vector<zes_ras_state_exp_t> ras_get_state_exp(zes_ras_handle_t ras_handle);
24+
void ras_clear_state_exp(zes_ras_handle_t ras_handle,
25+
zes_ras_error_category_exp_t category);
2326
} // namespace level_zero_tests
2427

2528
#endif

utils/test_harness/sysman/src/test_harness_sysman_ras.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
*
3-
* Copyright (C) 2020 Intel Corporation
3+
* Copyright (C) 2020-2024 Intel Corporation
44
*
55
* SPDX-License-Identifier: MIT
66
*
@@ -65,4 +65,18 @@ zes_ras_state_t get_ras_state(zes_ras_handle_t rasHandle, ze_bool_t clear) {
6565
EXPECT_EQ(ZE_RESULT_SUCCESS, zesRasGetState(rasHandle, clear, &state));
6666
return state;
6767
}
68+
std::vector<zes_ras_state_exp_t>
69+
ras_get_state_exp(zes_ras_handle_t ras_handle) {
70+
uint32_t count = 0;
71+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesRasGetStateExp(ras_handle, &count, NULL));
72+
EXPECT_GT(count, 0);
73+
std::vector<zes_ras_state_exp_t> states(count);
74+
EXPECT_EQ(ZE_RESULT_SUCCESS,
75+
zesRasGetStateExp(ras_handle, &count, states.data()));
76+
return states;
77+
}
78+
void ras_clear_state_exp(zes_ras_handle_t ras_handle,
79+
zes_ras_error_category_exp_t category) {
80+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesRasClearStateExp(ras_handle, category));
81+
}
6882
} // namespace level_zero_tests

0 commit comments

Comments
 (0)