@@ -55,7 +55,7 @@ static void providerCreateExt(providerCreateExtParams params,
5555 umf::provider_unique_handle_t (hProvider, &umfMemoryProviderDestroy);
5656}
5757
58- struct umfProviderTest
58+ struct FileProviderParamsDefault
5959 : umf_test::test,
6060 ::testing::WithParamInterface<providerCreateExtParams> {
6161 void SetUp () override {
@@ -75,6 +75,8 @@ struct umfProviderTest
7575 size_t page_plus_64;
7676};
7777
78+ struct FileProviderParamsShared : FileProviderParamsDefault {};
79+
7880static void test_alloc_free_success (umf_memory_provider_handle_t provider,
7981 size_t size, size_t alignment,
8082 purge_t purge) {
@@ -161,6 +163,9 @@ TEST_F(test, test_if_mapped_with_MAP_SYNC) {
161163
162164// positive tests using test_alloc_free_success
163165
166+ umf_file_memory_provider_params_t file_params_default =
167+ umfFileMemoryProviderParamsDefault (FILE_PATH);
168+
164169umf_file_memory_provider_params_t get_file_params_shared (char *path) {
165170 umf_file_memory_provider_params_t file_params =
166171 umfFileMemoryProviderParamsDefault (path);
@@ -171,68 +176,108 @@ umf_file_memory_provider_params_t get_file_params_shared(char *path) {
171176umf_file_memory_provider_params_t file_params_shared =
172177 get_file_params_shared (FILE_PATH);
173178
174- INSTANTIATE_TEST_SUITE_P (fileProviderTest, umfProviderTest ,
179+ INSTANTIATE_TEST_SUITE_P (fileProviderTest, FileProviderParamsDefault ,
175180 ::testing::Values (providerCreateExtParams{
176- umfFileMemoryProviderOps (), &file_params_shared}));
181+ umfFileMemoryProviderOps (),
182+ &file_params_default}));
177183
178- TEST_P (umfProviderTest , create_destroy) {}
184+ TEST_P (FileProviderParamsDefault , create_destroy) {}
179185
180- TEST_P (umfProviderTest , alloc_page64_align_0) {
186+ TEST_P (FileProviderParamsDefault , alloc_page64_align_0) {
181187 test_alloc_free_success (provider.get (), page_plus_64, 0 , PURGE_NONE);
182188}
183189
184- TEST_P (umfProviderTest , alloc_page64_align_page_div_2) {
190+ TEST_P (FileProviderParamsDefault , alloc_page64_align_page_div_2) {
185191 test_alloc_free_success (provider.get (), page_plus_64, page_size / 2 ,
186192 PURGE_NONE);
187193}
188194
189- TEST_P (umfProviderTest , purge_lazy) {
195+ TEST_P (FileProviderParamsDefault , purge_lazy) {
190196 test_alloc_free_success (provider.get (), page_plus_64, 0 , PURGE_LAZY);
191197}
192198
193- TEST_P (umfProviderTest , purge_force) {
199+ TEST_P (FileProviderParamsDefault , purge_force) {
194200 test_alloc_free_success (provider.get (), page_plus_64, 0 , PURGE_FORCE);
195201}
196202
197203// negative tests using test_alloc_failure
198204
199- TEST_P (umfProviderTest , alloc_WRONG_SIZE) {
205+ TEST_P (FileProviderParamsDefault , alloc_WRONG_SIZE) {
200206 test_alloc_failure (provider.get (), -1 , 0 , UMF_RESULT_ERROR_INVALID_ARGUMENT,
201207 0 );
202208}
203209
204- TEST_P (umfProviderTest , alloc_page64_WRONG_ALIGNMENT_3_pages) {
210+ TEST_P (FileProviderParamsDefault , alloc_page64_WRONG_ALIGNMENT_3_pages) {
205211 test_alloc_failure (provider.get (), page_plus_64, 3 * page_size,
206212 UMF_RESULT_ERROR_INVALID_ALIGNMENT, 0 );
207213}
208214
209- TEST_P (umfProviderTest , alloc_3pages_WRONG_ALIGNMENT_3pages) {
215+ TEST_P (FileProviderParamsDefault , alloc_3pages_WRONG_ALIGNMENT_3pages) {
210216 test_alloc_failure (provider.get (), 3 * page_size, 3 * page_size,
211217 UMF_RESULT_ERROR_INVALID_ALIGNMENT, 0 );
212218}
213219
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) {
215222 test_alloc_failure (provider.get (), page_plus_64, page_size - 1 ,
216223 UMF_RESULT_ERROR_INVALID_ALIGNMENT, 0 );
217224}
218225
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) {
220228 test_alloc_failure (provider.get (), page_plus_64,
221229 page_size + (page_size / 2 ),
222230 UMF_RESULT_ERROR_INVALID_ALIGNMENT, 0 );
223231}
224232
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+
225270// other positive tests
226271
227- TEST_P (umfProviderTest , get_min_page_size) {
272+ TEST_P (FileProviderParamsDefault , get_min_page_size) {
228273 size_t min_page_size;
229274 umf_result_t umf_result = umfMemoryProviderGetMinPageSize (
230275 provider.get (), nullptr , &min_page_size);
231276 ASSERT_EQ (umf_result, UMF_RESULT_SUCCESS);
232277 ASSERT_LE (min_page_size, page_size);
233278}
234279
235- TEST_P (umfProviderTest , get_recommended_page_size) {
280+ TEST_P (FileProviderParamsDefault , get_recommended_page_size) {
236281 size_t min_page_size;
237282 umf_result_t umf_result = umfMemoryProviderGetMinPageSize (
238283 provider.get (), nullptr , &min_page_size);
@@ -246,18 +291,18 @@ TEST_P(umfProviderTest, get_recommended_page_size) {
246291 ASSERT_GE (recommended_page_size, min_page_size);
247292}
248293
249- TEST_P (umfProviderTest , get_name) {
294+ TEST_P (FileProviderParamsDefault , get_name) {
250295 const char *name = umfMemoryProviderGetName (provider.get ());
251296 ASSERT_STREQ (name, " FILE" );
252297}
253298
254- TEST_P (umfProviderTest , free_size_0_ptr_not_null) {
299+ TEST_P (FileProviderParamsDefault , free_size_0_ptr_not_null) {
255300 umf_result_t umf_result =
256301 umfMemoryProviderFree (provider.get (), INVALID_PTR, 0 );
257302 ASSERT_EQ (umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);
258303}
259304
260- TEST_P (umfProviderTest , free_NULL) {
305+ TEST_P (FileProviderParamsDefault , free_NULL) {
261306 umf_result_t umf_result = umfMemoryProviderFree (provider.get (), nullptr , 0 );
262307 ASSERT_EQ (umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);
263308}
@@ -274,19 +319,19 @@ TEST_F(test, create_empty_path) {
274319 EXPECT_EQ (hProvider, nullptr );
275320}
276321
277- TEST_P (umfProviderTest , free_INVALID_POINTER_SIZE_GT_0) {
322+ TEST_P (FileProviderParamsDefault , free_INVALID_POINTER_SIZE_GT_0) {
278323 umf_result_t umf_result =
279324 umfMemoryProviderFree (provider.get (), INVALID_PTR, page_plus_64);
280325 ASSERT_EQ (umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);
281326}
282327
283- TEST_P (umfProviderTest , purge_lazy_INVALID_POINTER) {
328+ TEST_P (FileProviderParamsDefault , purge_lazy_INVALID_POINTER) {
284329 umf_result_t umf_result =
285330 umfMemoryProviderPurgeLazy (provider.get (), INVALID_PTR, 1 );
286331 ASSERT_EQ (umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);
287332}
288333
289- TEST_P (umfProviderTest , purge_force_INVALID_POINTER) {
334+ TEST_P (FileProviderParamsDefault , purge_force_INVALID_POINTER) {
290335 umf_result_t umf_result =
291336 umfMemoryProviderPurgeForce (provider.get (), INVALID_PTR, 1 );
292337 ASSERT_EQ (umf_result, UMF_RESULT_ERROR_MEMORY_PROVIDER_SPECIFIC);
@@ -297,7 +342,11 @@ TEST_P(umfProviderTest, purge_force_INVALID_POINTER) {
297342
298343// IPC tests
299344
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) {
301350 umf_result_t umf_result;
302351 void *ptr = nullptr ;
303352 size_t size = page_size;
@@ -338,7 +387,7 @@ TEST_P(umfProviderTest, IPC_base_success_test) {
338387 ASSERT_EQ (umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);
339388}
340389
341- TEST_P (umfProviderTest , IPC_file_not_exist) {
390+ TEST_P (FileProviderParamsShared , IPC_file_not_exist) {
342391 umf_result_t umf_result;
343392 void *ptr = nullptr ;
344393 size_t size = page_size;
0 commit comments