@@ -381,6 +381,41 @@ TEST_P(umfCUDAProviderTest, cudaProviderNullParams) {
381381 res =
382382 umfCUDAMemoryProviderParamsSetMemoryType (nullptr , expected_memory_type);
383383 EXPECT_EQ (res, UMF_RESULT_ERROR_INVALID_ARGUMENT);
384+
385+ res =
386+ umfCUDAMemoryProviderParamsSetAllocFlags (nullptr , 1 );
387+ EXPECT_EQ (res, UMF_RESULT_ERROR_INVALID_ARGUMENT);
388+ }
389+
390+ TEST_P (umfCUDAProviderTest, cudaProviderInvalidCreate) {
391+ CUdevice device;
392+ int ret = get_cuda_device (&device);
393+ ASSERT_EQ (ret, 0 );
394+
395+ CUcontext ctx;
396+ ret = create_context (device, &ctx);
397+ ASSERT_EQ (ret, 0 );
398+
399+ // wrong memory type
400+ umf_cuda_memory_provider_params_handle_t params1 =
401+ create_cuda_prov_params (ctx, device, (umf_usm_memory_type_t )0xFFFF , 0 );
402+ ASSERT_NE (params1, nullptr );
403+ umf_memory_provider_handle_t provider;
404+ umf_result_t umf_result = umfMemoryProviderCreate (
405+ umfCUDAMemoryProviderOps (), params1, &provider);
406+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
407+
408+ // wrong context
409+ params1 = create_cuda_prov_params (NULL , device, UMF_MEMORY_TYPE_HOST, 0 );
410+ ASSERT_NE (params1, nullptr );
411+ umf_result = umfMemoryProviderCreate (umfCUDAMemoryProviderOps (), params1, &provider);
412+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
413+
414+ // wrong device
415+ params1 = create_cuda_prov_params (ctx, (CUdevice)-1 , UMF_MEMORY_TYPE_HOST, 0 );
416+ ASSERT_NE (params1, nullptr );
417+ umf_result = umfMemoryProviderCreate (umfCUDAMemoryProviderOps (), params1, &provider);
418+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
384419}
385420
386421TEST_P (umfCUDAProviderTest, multiContext) {
0 commit comments