@@ -381,6 +381,43 @@ 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 params1 =
400+ create_cuda_prov_params (ctx, device, (umf_usm_memory_type_t )0xFFFF , 0 );
401+ ASSERT_NE (params1, nullptr );
402+ umf_memory_provider_handle_t provider;
403+ umf_result_t umf_result =
404+ umfMemoryProviderCreate (umfCUDAMemoryProviderOps (), params1, &provider);
405+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
406+
407+ // wrong context
408+ params1 = create_cuda_prov_params (NULL , device, UMF_MEMORY_TYPE_HOST, 0 );
409+ ASSERT_NE (params1, nullptr );
410+ umf_result =
411+ umfMemoryProviderCreate (umfCUDAMemoryProviderOps (), params1, &provider);
412+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
413+
414+ // wrong device
415+ params1 =
416+ create_cuda_prov_params (ctx, (CUdevice)-1 , UMF_MEMORY_TYPE_HOST, 0 );
417+ ASSERT_NE (params1, nullptr );
418+ umf_result =
419+ umfMemoryProviderCreate (umfCUDAMemoryProviderOps (), params1, &provider);
420+ ASSERT_EQ (umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);
384421}
385422
386423TEST_P (umfCUDAProviderTest, multiContext) {
0 commit comments