@@ -204,21 +204,49 @@ TEST_F(LevelZeroProviderInit, FailNonNullDevice) {
204
204
umfLevelZeroMemoryProviderParamsDestroy (hParams);
205
205
}
206
206
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) {
208
210
const umf_memory_provider_ops_t *ops = umfLevelZeroMemoryProviderOps ();
209
211
ASSERT_NE (ops, nullptr );
210
212
211
213
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);
214
217
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);
218
223
219
224
umfLevelZeroMemoryProviderParamsDestroy (hParams);
220
225
}
221
226
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
+
222
250
class LevelZeroMemoryAccessor : public MemoryAccessor {
223
251
public:
224
252
LevelZeroMemoryAccessor (ze_context_handle_t hContext,
0 commit comments