@@ -381,6 +381,41 @@ TEST_P(umfCUDAProviderTest, cudaProviderNullParams) {
381
381
res =
382
382
umfCUDAMemoryProviderParamsSetMemoryType (nullptr , expected_memory_type);
383
383
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 ((CUcontext)-1 , 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);
384
419
}
385
420
386
421
TEST_P (umfCUDAProviderTest, multiContext) {
0 commit comments