@@ -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
386430TEST_P (umfCUDAProviderTest, multiContext) {
0 commit comments