@@ -183,6 +183,38 @@ INSTANTIATE_TEST_SUITE_P(fileProviderTest, FileProviderParamsDefault,
183183
184184TEST_P (FileProviderParamsDefault, create_destroy) {}
185185
186+ TEST_P (FileProviderParamsDefault, two_allocations) {
187+ umf_result_t umf_result;
188+ void *ptr1 = nullptr ;
189+ void *ptr2 = nullptr ;
190+ size_t size = page_plus_64;
191+ size_t alignment = page_size;
192+
193+ umf_result = umfMemoryProviderAlloc (provider.get (), size, alignment, &ptr1);
194+ ASSERT_EQ (umf_result, UMF_RESULT_SUCCESS);
195+ ASSERT_NE (ptr1, nullptr );
196+
197+ umf_result = umfMemoryProviderAlloc (provider.get (), size, alignment, &ptr2);
198+ ASSERT_EQ (umf_result, UMF_RESULT_SUCCESS);
199+ ASSERT_NE (ptr2, nullptr );
200+
201+ ASSERT_NE (ptr1, ptr2);
202+ if ((uintptr_t )ptr1 > (uintptr_t )ptr2) {
203+ ASSERT_GT ((uintptr_t )ptr1 - (uintptr_t )ptr2, size);
204+ } else {
205+ ASSERT_GT ((uintptr_t )ptr2 - (uintptr_t )ptr1, size);
206+ }
207+
208+ memset (ptr1, 0x11 , size);
209+ memset (ptr2, 0x22 , size);
210+
211+ umf_result = umfMemoryProviderFree (provider.get (), ptr1, size);
212+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);
213+
214+ umf_result = umfMemoryProviderFree (provider.get (), ptr2, size);
215+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);
216+ }
217+
186218TEST_P (FileProviderParamsDefault, alloc_page64_align_0) {
187219 test_alloc_free_success (provider.get (), page_plus_64, 0 , PURGE_NONE);
188220}
0 commit comments