@@ -125,6 +125,43 @@ TEST_P(umfCUDAProviderTest, basic) {
125
125
umfMemoryProviderDestroy (provider);
126
126
}
127
127
128
+ TEST_P (umfCUDAProviderTest, getPageSize) {
129
+ umf_memory_provider_handle_t provider = nullptr ;
130
+ umf_result_t umf_result =
131
+ umfMemoryProviderCreate (umfCUDAMemoryProviderOps (), ¶ms, &provider);
132
+ ASSERT_EQ (umf_result, UMF_RESULT_SUCCESS);
133
+ ASSERT_NE (provider, nullptr );
134
+
135
+ size_t recommendedPageSize = 0 ;
136
+ umf_result = umfMemoryProviderGetRecommendedPageSize (provider, 0 ,
137
+ &recommendedPageSize);
138
+ ASSERT_EQ (umf_result, UMF_RESULT_SUCCESS);
139
+ ASSERT_GE (recommendedPageSize, 0 );
140
+
141
+ size_t minPageSize = 0 ;
142
+ umf_result =
143
+ umfMemoryProviderGetMinPageSize (provider, nullptr , &minPageSize);
144
+ ASSERT_EQ (umf_result, UMF_RESULT_SUCCESS);
145
+ ASSERT_GE (minPageSize, 0 );
146
+
147
+ ASSERT_GE (recommendedPageSize, minPageSize);
148
+
149
+ umfMemoryProviderDestroy (provider);
150
+ }
151
+
152
+ TEST_P (umfCUDAProviderTest, getName) {
153
+ umf_memory_provider_handle_t provider = nullptr ;
154
+ umf_result_t umf_result =
155
+ umfMemoryProviderCreate (umfCUDAMemoryProviderOps (), ¶ms, &provider);
156
+ ASSERT_EQ (umf_result, UMF_RESULT_SUCCESS);
157
+ ASSERT_NE (provider, nullptr );
158
+
159
+ const char *name = umfMemoryProviderGetName (provider);
160
+ ASSERT_STREQ (name, " CUDA" );
161
+
162
+ umfMemoryProviderDestroy (provider);
163
+ }
164
+
128
165
TEST_P (umfCUDAProviderTest, allocInvalidSize) {
129
166
CUcontext expected_current_context = get_current_context ();
130
167
// create CUDA provider
@@ -152,6 +189,32 @@ TEST_P(umfCUDAProviderTest, allocInvalidSize) {
152
189
umfMemoryProviderDestroy (provider);
153
190
}
154
191
192
+ TEST_P (umfCUDAProviderTest, providerCreateInvalidArgs) {
193
+ umf_memory_provider_handle_t provider = nullptr ;
194
+ umf_result_t umf_result =
195
+ umfMemoryProviderCreate (umfCUDAMemoryProviderOps (), nullptr , &provider);
196
+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
197
+
198
+ umf_result = umfMemoryProviderCreate (nullptr , ¶ms, nullptr );
199
+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
200
+ }
201
+
202
+ TEST_P (umfCUDAProviderTest, getPageSizeInvalidArgs) {
203
+ umf_memory_provider_handle_t provider = nullptr ;
204
+ umf_result_t umf_result =
205
+ umfMemoryProviderCreate (umfCUDAMemoryProviderOps (), ¶ms, &provider);
206
+ ASSERT_EQ (umf_result, UMF_RESULT_SUCCESS);
207
+ ASSERT_NE (provider, nullptr );
208
+
209
+ umf_result = umfMemoryProviderGetMinPageSize (provider, nullptr , nullptr );
210
+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
211
+
212
+ umf_result = umfMemoryProviderGetRecommendedPageSize (provider, 0 , nullptr );
213
+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
214
+
215
+ umfMemoryProviderDestroy (provider);
216
+ }
217
+
155
218
// TODO add tests that mixes CUDA Memory Provider and Disjoint Pool
156
219
157
220
cuda_memory_provider_params_t cuParams_device_memory =
0 commit comments