Skip to content

Commit c27407a

Browse files
committed
added some tests for resident device feature
1 parent 5cbbad2 commit c27407a

File tree

1 file changed

+34
-6
lines changed

1 file changed

+34
-6
lines changed

test/providers/provider_level_zero.cpp

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -204,21 +204,49 @@ TEST_F(LevelZeroProviderInit, FailNonNullDevice) {
204204
umfLevelZeroMemoryProviderParamsDestroy(hParams);
205205
}
206206

207-
TEST_F(test, FailMismatchedResidentHandlesCount) {
207+
static void invalidResidentDevicesHandlesTestHelper(
208+
ze_device_handle_t *hDevices, uint32_t deviceCount,
209+
uint32_t *residentDevicesIndices, uint32_t residentDevicesCount) {
208210
const umf_memory_provider_ops_t *ops = umfLevelZeroMemoryProviderOps();
209211
ASSERT_NE(ops, nullptr);
210212

211213
umf_level_zero_memory_provider_params_handle_t hParams = nullptr;
212-
umf_result_t result = umfLevelZeroMemoryProviderParamsCreate(&hParams);
213-
ASSERT_EQ(result, UMF_RESULT_SUCCESS);
214+
const umf_result_t create_result =
215+
umfLevelZeroMemoryProviderParamsCreate(&hParams);
216+
ASSERT_EQ(create_result, UMF_RESULT_SUCCESS);
214217

215-
result = umfLevelZeroMemoryProviderParamsSetResidentDevices(
216-
hParams, nullptr, 99, nullptr, 0);
217-
ASSERT_EQ(result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
218+
const umf_result_t set_resident_result =
219+
umfLevelZeroMemoryProviderParamsSetResidentDevices(
220+
hParams, hDevices, deviceCount, residentDevicesIndices,
221+
residentDevicesCount);
222+
ASSERT_EQ(set_resident_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
218223

219224
umfLevelZeroMemoryProviderParamsDestroy(hParams);
220225
}
221226

227+
TEST_F(test, FailMismatchedResidentHandlesCount) {
228+
invalidResidentDevicesHandlesTestHelper(nullptr, 99, nullptr, 0);
229+
}
230+
231+
TEST_F(test, FailMismatchedResidentDeviceIndicesCount) {
232+
std::vector<ze_device_handle_t> allDevices(23);
233+
invalidResidentDevicesHandlesTestHelper(allDevices.data(), 23, nullptr, 1);
234+
}
235+
236+
TEST_F(test, FailRedundantResidentDeviceIndices) {
237+
std::vector<ze_device_handle_t> allDevices(23);
238+
std::vector<uint32_t> residentDevicesIndices{3, 5, 1, 5}; // double 5
239+
invalidResidentDevicesHandlesTestHelper(allDevices.data(), 23,
240+
residentDevicesIndices.data(), 4);
241+
}
242+
243+
TEST_F(test, FailTooLargeResidentDeviceIndex) {
244+
std::vector<ze_device_handle_t> allDevices(23);
245+
std::vector<uint32_t> residentDevicesIndices{123};
246+
invalidResidentDevicesHandlesTestHelper(allDevices.data(), 23,
247+
residentDevicesIndices.data(), 1);
248+
}
249+
222250
class LevelZeroMemoryAccessor : public MemoryAccessor {
223251
public:
224252
LevelZeroMemoryAccessor(ze_context_handle_t hContext,

0 commit comments

Comments
 (0)