@@ -55,7 +55,7 @@ static void providerCreateExt(providerCreateExtParams params,
55
55
umf::provider_unique_handle_t (hProvider, &umfMemoryProviderDestroy);
56
56
}
57
57
58
- struct umfProviderTest
58
+ struct FileProviderParamsDefault
59
59
: umf_test::test,
60
60
::testing::WithParamInterface<providerCreateExtParams> {
61
61
void SetUp () override {
@@ -75,6 +75,8 @@ struct umfProviderTest
75
75
size_t page_plus_64;
76
76
};
77
77
78
+ struct FileProviderParamsShared : FileProviderParamsDefault {};
79
+
78
80
static void test_alloc_free_success (umf_memory_provider_handle_t provider,
79
81
size_t size, size_t alignment,
80
82
purge_t purge) {
@@ -161,6 +163,9 @@ TEST_F(test, test_if_mapped_with_MAP_SYNC) {
161
163
162
164
// positive tests using test_alloc_free_success
163
165
166
+ umf_file_memory_provider_params_t file_params_default =
167
+ umfFileMemoryProviderParamsDefault (FILE_PATH);
168
+
164
169
umf_file_memory_provider_params_t get_file_params_shared (char *path) {
165
170
umf_file_memory_provider_params_t file_params =
166
171
umfFileMemoryProviderParamsDefault (path);
@@ -171,68 +176,108 @@ umf_file_memory_provider_params_t get_file_params_shared(char *path) {
171
176
umf_file_memory_provider_params_t file_params_shared =
172
177
get_file_params_shared (FILE_PATH);
173
178
174
- INSTANTIATE_TEST_SUITE_P (fileProviderTest, umfProviderTest ,
179
+ INSTANTIATE_TEST_SUITE_P (fileProviderTest, FileProviderParamsDefault ,
175
180
::testing::Values (providerCreateExtParams{
176
- umfFileMemoryProviderOps (), &file_params_shared}));
181
+ umfFileMemoryProviderOps (),
182
+ &file_params_default}));
177
183
178
- TEST_P (umfProviderTest , create_destroy) {}
184
+ TEST_P (FileProviderParamsDefault , create_destroy) {}
179
185
180
- TEST_P (umfProviderTest , alloc_page64_align_0) {
186
+ TEST_P (FileProviderParamsDefault , alloc_page64_align_0) {
181
187
test_alloc_free_success (provider.get (), page_plus_64, 0 , PURGE_NONE);
182
188
}
183
189
184
- TEST_P (umfProviderTest , alloc_page64_align_page_div_2) {
190
+ TEST_P (FileProviderParamsDefault , alloc_page64_align_page_div_2) {
185
191
test_alloc_free_success (provider.get (), page_plus_64, page_size / 2 ,
186
192
PURGE_NONE);
187
193
}
188
194
189
- TEST_P (umfProviderTest , purge_lazy) {
195
+ TEST_P (FileProviderParamsDefault , purge_lazy) {
190
196
test_alloc_free_success (provider.get (), page_plus_64, 0 , PURGE_LAZY);
191
197
}
192
198
193
- TEST_P (umfProviderTest , purge_force) {
199
+ TEST_P (FileProviderParamsDefault , purge_force) {
194
200
test_alloc_free_success (provider.get (), page_plus_64, 0 , PURGE_FORCE);
195
201
}
196
202
197
203
// negative tests using test_alloc_failure
198
204
199
- TEST_P (umfProviderTest , alloc_WRONG_SIZE) {
205
+ TEST_P (FileProviderParamsDefault , alloc_WRONG_SIZE) {
200
206
test_alloc_failure (provider.get (), -1 , 0 , UMF_RESULT_ERROR_INVALID_ARGUMENT,
201
207
0 );
202
208
}
203
209
204
- TEST_P (umfProviderTest , alloc_page64_WRONG_ALIGNMENT_3_pages) {
210
+ TEST_P (FileProviderParamsDefault , alloc_page64_WRONG_ALIGNMENT_3_pages) {
205
211
test_alloc_failure (provider.get (), page_plus_64, 3 * page_size,
206
212
UMF_RESULT_ERROR_INVALID_ALIGNMENT, 0 );
207
213
}
208
214
209
- TEST_P (umfProviderTest , alloc_3pages_WRONG_ALIGNMENT_3pages) {
215
+ TEST_P (FileProviderParamsDefault , alloc_3pages_WRONG_ALIGNMENT_3pages) {
210
216
test_alloc_failure (provider.get (), 3 * page_size, 3 * page_size,
211
217
UMF_RESULT_ERROR_INVALID_ALIGNMENT, 0 );
212
218
}
213
219
214
- TEST_P (umfProviderTest, alloc_page64_align_page_minus_1_WRONG_ALIGNMENT_1) {
220
+ TEST_P (FileProviderParamsDefault,
221
+ alloc_page64_align_page_minus_1_WRONG_ALIGNMENT_1) {
215
222
test_alloc_failure (provider.get (), page_plus_64, page_size - 1 ,
216
223
UMF_RESULT_ERROR_INVALID_ALIGNMENT, 0 );
217
224
}
218
225
219
- TEST_P (umfProviderTest, alloc_page64_align_one_half_pages_WRONG_ALIGNMENT_2) {
226
+ TEST_P (FileProviderParamsDefault,
227
+ alloc_page64_align_one_half_pages_WRONG_ALIGNMENT_2) {
220
228
test_alloc_failure (provider.get (), page_plus_64,
221
229
page_size + (page_size / 2 ),
222
230
UMF_RESULT_ERROR_INVALID_ALIGNMENT, 0 );
223
231
}
224
232
233
+ // negative IPC tests
234
+
235
+ TEST_P (FileProviderParamsDefault, get_ipc_handle_size_wrong_visibility) {
236
+ size_t size;
237
+ umf_result_t umf_result =
238
+ umfMemoryProviderGetIPCHandleSize (provider.get (), &size);
239
+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
240
+ }
241
+
242
+ TEST_P (FileProviderParamsDefault, get_ipc_handle_wrong_visibility) {
243
+ char providerIpcData;
244
+ umf_result_t umf_result = umfMemoryProviderGetIPCHandle (
245
+ provider.get (), INVALID_PTR, 1 , &providerIpcData);
246
+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
247
+ }
248
+
249
+ TEST_P (FileProviderParamsDefault, put_ipc_handle_wrong_visibility) {
250
+ char providerIpcData;
251
+ umf_result_t umf_result =
252
+ umfMemoryProviderPutIPCHandle (provider.get (), &providerIpcData);
253
+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
254
+ }
255
+
256
+ TEST_P (FileProviderParamsDefault, open_ipc_handle_wrong_visibility) {
257
+ char providerIpcData;
258
+ void *ptr;
259
+ umf_result_t umf_result =
260
+ umfMemoryProviderOpenIPCHandle (provider.get (), &providerIpcData, &ptr);
261
+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
262
+ }
263
+
264
+ TEST_P (FileProviderParamsDefault, close_ipc_handle_wrong_visibility) {
265
+ umf_result_t umf_result =
266
+ umfMemoryProviderCloseIPCHandle (provider.get (), INVALID_PTR, 1 );
267
+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
268
+ }
269
+
225
270
// other positive tests
226
271
227
- TEST_P (umfProviderTest , get_min_page_size) {
272
+ TEST_P (FileProviderParamsDefault , get_min_page_size) {
228
273
size_t min_page_size;
229
274
umf_result_t umf_result = umfMemoryProviderGetMinPageSize (
230
275
provider.get (), nullptr , &min_page_size);
231
276
ASSERT_EQ (umf_result, UMF_RESULT_SUCCESS);
232
277
ASSERT_LE (min_page_size, page_size);
233
278
}
234
279
235
- TEST_P (umfProviderTest , get_recommended_page_size) {
280
+ TEST_P (FileProviderParamsDefault , get_recommended_page_size) {
236
281
size_t min_page_size;
237
282
umf_result_t umf_result = umfMemoryProviderGetMinPageSize (
238
283
provider.get (), nullptr , &min_page_size);
@@ -246,18 +291,18 @@ TEST_P(umfProviderTest, get_recommended_page_size) {
246
291
ASSERT_GE (recommended_page_size, min_page_size);
247
292
}
248
293
249
- TEST_P (umfProviderTest , get_name) {
294
+ TEST_P (FileProviderParamsDefault , get_name) {
250
295
const char *name = umfMemoryProviderGetName (provider.get ());
251
296
ASSERT_STREQ (name, " FILE" );
252
297
}
253
298
254
- TEST_P (umfProviderTest , free_size_0_ptr_not_null) {
299
+ TEST_P (FileProviderParamsDefault , free_size_0_ptr_not_null) {
255
300
umf_result_t umf_result =
256
301
umfMemoryProviderFree (provider.get (), INVALID_PTR, 0 );
257
302
ASSERT_EQ (umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);
258
303
}
259
304
260
- TEST_P (umfProviderTest , free_NULL) {
305
+ TEST_P (FileProviderParamsDefault , free_NULL) {
261
306
umf_result_t umf_result = umfMemoryProviderFree (provider.get (), nullptr , 0 );
262
307
ASSERT_EQ (umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);
263
308
}
@@ -274,19 +319,19 @@ TEST_F(test, create_empty_path) {
274
319
EXPECT_EQ (hProvider, nullptr );
275
320
}
276
321
277
- TEST_P (umfProviderTest , free_INVALID_POINTER_SIZE_GT_0) {
322
+ TEST_P (FileProviderParamsDefault , free_INVALID_POINTER_SIZE_GT_0) {
278
323
umf_result_t umf_result =
279
324
umfMemoryProviderFree (provider.get (), INVALID_PTR, page_plus_64);
280
325
ASSERT_EQ (umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);
281
326
}
282
327
283
- TEST_P (umfProviderTest , purge_lazy_INVALID_POINTER) {
328
+ TEST_P (FileProviderParamsDefault , purge_lazy_INVALID_POINTER) {
284
329
umf_result_t umf_result =
285
330
umfMemoryProviderPurgeLazy (provider.get (), INVALID_PTR, 1 );
286
331
ASSERT_EQ (umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);
287
332
}
288
333
289
- TEST_P (umfProviderTest , purge_force_INVALID_POINTER) {
334
+ TEST_P (FileProviderParamsDefault , purge_force_INVALID_POINTER) {
290
335
umf_result_t umf_result =
291
336
umfMemoryProviderPurgeForce (provider.get (), INVALID_PTR, 1 );
292
337
ASSERT_EQ (umf_result, UMF_RESULT_ERROR_MEMORY_PROVIDER_SPECIFIC);
@@ -297,7 +342,11 @@ TEST_P(umfProviderTest, purge_force_INVALID_POINTER) {
297
342
298
343
// IPC tests
299
344
300
- TEST_P (umfProviderTest, IPC_base_success_test) {
345
+ INSTANTIATE_TEST_SUITE_P (fileProviderTest, FileProviderParamsShared,
346
+ ::testing::Values (providerCreateExtParams{
347
+ umfFileMemoryProviderOps (), &file_params_shared}));
348
+
349
+ TEST_P (FileProviderParamsShared, IPC_base_success_test) {
301
350
umf_result_t umf_result;
302
351
void *ptr = nullptr ;
303
352
size_t size = page_size;
@@ -338,7 +387,7 @@ TEST_P(umfProviderTest, IPC_base_success_test) {
338
387
ASSERT_EQ (umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);
339
388
}
340
389
341
- TEST_P (umfProviderTest , IPC_file_not_exist) {
390
+ TEST_P (FileProviderParamsShared , IPC_file_not_exist) {
342
391
umf_result_t umf_result;
343
392
void *ptr = nullptr ;
344
393
size_t size = page_size;
0 commit comments