diff --git a/.github/workflows/pr_push.yml b/.github/workflows/pr_push.yml index 511808887..f9b5161d6 100644 --- a/.github/workflows/pr_push.yml +++ b/.github/workflows/pr_push.yml @@ -16,80 +16,16 @@ permissions: contents: read jobs: - CodeChecks: - uses: ./.github/workflows/reusable_checks.yml - DocsBuild: - uses: ./.github/workflows/reusable_docs_build.yml - FastBuild: - name: Fast builds - needs: [CodeChecks, DocsBuild] - uses: ./.github/workflows/reusable_fast.yml - Build: - name: Basic builds - needs: [FastBuild] - uses: ./.github/workflows/reusable_basic.yml - DevDax: - needs: [FastBuild] - uses: ./.github/workflows/reusable_dax.yml - MultiNuma: - needs: [FastBuild] - uses: ./.github/workflows/reusable_multi_numa.yml - L0: - needs: [Build] - uses: ./.github/workflows/reusable_gpu.yml - with: - name: "LEVEL_ZERO" - shared_lib: "['ON']" CUDA: - needs: [Build] uses: ./.github/workflows/reusable_gpu.yml with: name: "CUDA" shared_lib: "['ON']" - Sanitizers: - needs: [FastBuild] - uses: ./.github/workflows/reusable_sanitizers.yml - QEMU: - needs: [FastBuild] - uses: ./.github/workflows/reusable_qemu.yml - with: - short_run: true - ProxyLib: - needs: [Build] - uses: ./.github/workflows/reusable_proxy_lib.yml - Valgrind: - needs: [Build] - uses: ./.github/workflows/reusable_valgrind.yml Coverage: # total coverage (on upstream only) if: github.repository == 'oneapi-src/unified-memory-framework' - needs: [Build, DevDax, L0, CUDA, MultiNuma, QEMU, ProxyLib] + needs: [CUDA] uses: ./.github/workflows/reusable_coverage.yml secrets: inherit with: trigger: "${{github.event_name}}" - Coverage_partial: - # partial coverage (on forks) - if: github.repository != 'oneapi-src/unified-memory-framework' - needs: [Build, QEMU, ProxyLib] - uses: ./.github/workflows/reusable_coverage.yml - CodeQL: - needs: [Build] - permissions: - contents: read - security-events: write - uses: ./.github/workflows/reusable_codeql.yml - Trivy: - needs: [Build] - permissions: - contents: read - security-events: write - uses: ./.github/workflows/reusable_trivy.yml - Compatibility: - needs: [Build] - uses: ./.github/workflows/reusable_compatibility.yml - strategy: - matrix: - tag: ["v0.11.0-dev1"] - with: - tag: ${{matrix.tag}} diff --git a/test/providers/provider_cuda.cpp b/test/providers/provider_cuda.cpp index a7e5dbe5a..254ca6dc5 100644 --- a/test/providers/provider_cuda.cpp +++ b/test/providers/provider_cuda.cpp @@ -381,6 +381,41 @@ TEST_P(umfCUDAProviderTest, cudaProviderNullParams) { res = umfCUDAMemoryProviderParamsSetMemoryType(nullptr, expected_memory_type); EXPECT_EQ(res, UMF_RESULT_ERROR_INVALID_ARGUMENT); + + res = + umfCUDAMemoryProviderParamsSetAllocFlags(nullptr, 1); + EXPECT_EQ(res, UMF_RESULT_ERROR_INVALID_ARGUMENT); +} + +TEST_P(umfCUDAProviderTest, cudaProviderInvalidCreate) { + CUdevice device; + int ret = get_cuda_device(&device); + ASSERT_EQ(ret, 0); + + CUcontext ctx; + ret = create_context(device, &ctx); + ASSERT_EQ(ret, 0); + + // wrong memory type + umf_cuda_memory_provider_params_handle_t params1 = + create_cuda_prov_params(ctx, device, (umf_usm_memory_type_t)0xFFFF, 0); + ASSERT_NE(params1, nullptr); + umf_memory_provider_handle_t provider; + umf_result_t umf_result = umfMemoryProviderCreate( + umfCUDAMemoryProviderOps(), params1, &provider); + ASSERT_EQ(umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT); + + // wrong context + params1 = create_cuda_prov_params((CUcontext)-1, device, UMF_MEMORY_TYPE_HOST, 0); + ASSERT_NE(params1, nullptr); + umf_result = umfMemoryProviderCreate(umfCUDAMemoryProviderOps(), params1, &provider); + ASSERT_EQ(umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT); + + // wrong device + params1 = create_cuda_prov_params(ctx, (CUdevice)-1, UMF_MEMORY_TYPE_HOST, 0); + ASSERT_NE(params1, nullptr); + umf_result = umfMemoryProviderCreate(umfCUDAMemoryProviderOps(), params1, &provider); + ASSERT_EQ(umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT); } TEST_P(umfCUDAProviderTest, multiContext) {