Skip to content

Commit 521d8a0

Browse files
committed
Add tests for CUDA provider
1 parent a83d012 commit 521d8a0

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

test/providers/provider_cuda.cpp

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,43 @@ TEST_P(umfCUDAProviderTest, basic) {
125125
umfMemoryProviderDestroy(provider);
126126
}
127127

128+
TEST_P(umfCUDAProviderTest, getPageSize) {
129+
umf_memory_provider_handle_t provider = nullptr;
130+
umf_result_t umf_result =
131+
umfMemoryProviderCreate(umfCUDAMemoryProviderOps(), &params, &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(), &params, &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+
128165
TEST_P(umfCUDAProviderTest, allocInvalidSize) {
129166
CUcontext expected_current_context = get_current_context();
130167
// create CUDA provider
@@ -152,6 +189,32 @@ TEST_P(umfCUDAProviderTest, allocInvalidSize) {
152189
umfMemoryProviderDestroy(provider);
153190
}
154191

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, &params, 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(), &params, &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+
155218
// TODO add tests that mixes CUDA Memory Provider and Disjoint Pool
156219

157220
cuda_memory_provider_params_t cuParams_device_memory =

0 commit comments

Comments
 (0)