Skip to content

Commit 42df31e

Browse files
Extend CUDA tests with invalid cases
1 parent 92215ea commit 42df31e

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

test/providers/provider_cuda.cpp

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,50 @@ TEST_P(umfCUDAProviderTest, cudaProviderNullParams) {
381381
res =
382382
umfCUDAMemoryProviderParamsSetMemoryType(nullptr, expected_memory_type);
383383
EXPECT_EQ(res, UMF_RESULT_ERROR_INVALID_ARGUMENT);
384+
385+
res = umfCUDAMemoryProviderParamsSetAllocFlags(nullptr, 1);
386+
EXPECT_EQ(res, UMF_RESULT_ERROR_INVALID_ARGUMENT);
387+
}
388+
389+
TEST_P(umfCUDAProviderTest, cudaProviderInvalidCreate) {
390+
CUdevice device;
391+
int ret = get_cuda_device(&device);
392+
ASSERT_EQ(ret, 0);
393+
394+
CUcontext ctx;
395+
ret = create_context(device, &ctx);
396+
ASSERT_EQ(ret, 0);
397+
398+
// wrong memory type
399+
umf_cuda_memory_provider_params_handle_t params_wrong_memtype =
400+
create_cuda_prov_params(ctx, device, (umf_usm_memory_type_t)0xFFFF, 0);
401+
ASSERT_NE(params_wrong_memtype, nullptr);
402+
umf_memory_provider_handle_t provider;
403+
umf_result_t umf_result = umfMemoryProviderCreate(
404+
umfCUDAMemoryProviderOps(), params_wrong_memtype, &provider);
405+
ASSERT_EQ(umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
406+
umf_result = umfCUDAMemoryProviderParamsDestroy(params_wrong_memtype);
407+
ASSERT_EQ(umf_result, UMF_RESULT_SUCCESS);
408+
409+
// wrong context
410+
umf_cuda_memory_provider_params_handle_t params_wrong_ctx =
411+
create_cuda_prov_params(NULL, device, UMF_MEMORY_TYPE_HOST, 0);
412+
ASSERT_NE(params_wrong_ctx, nullptr);
413+
umf_result = umfMemoryProviderCreate(umfCUDAMemoryProviderOps(),
414+
params_wrong_ctx, &provider);
415+
ASSERT_EQ(umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
416+
umf_result = umfCUDAMemoryProviderParamsDestroy(params_wrong_ctx);
417+
ASSERT_EQ(umf_result, UMF_RESULT_SUCCESS);
418+
419+
// wrong device
420+
umf_cuda_memory_provider_params_handle_t params_wrong_device =
421+
create_cuda_prov_params(ctx, (CUdevice)-1, UMF_MEMORY_TYPE_HOST, 0);
422+
ASSERT_NE(params_wrong_device, nullptr);
423+
umf_result = umfMemoryProviderCreate(umfCUDAMemoryProviderOps(),
424+
params_wrong_device, &provider);
425+
ASSERT_EQ(umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
426+
umf_result = umfCUDAMemoryProviderParamsDestroy(params_wrong_device);
427+
ASSERT_EQ(umf_result, UMF_RESULT_SUCCESS);
384428
}
385429

386430
TEST_P(umfCUDAProviderTest, multiContext) {

0 commit comments

Comments
 (0)