@@ -183,6 +183,38 @@ INSTANTIATE_TEST_SUITE_P(fileProviderTest, FileProviderParamsDefault,
183
183
184
184
TEST_P (FileProviderParamsDefault, create_destroy) {}
185
185
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
+
186
218
TEST_P (FileProviderParamsDefault, alloc_page64_align_0) {
187
219
test_alloc_free_success (provider.get (), page_plus_64, 0 , PURGE_NONE);
188
220
}
0 commit comments