Tests: Restore NVCC-specific CUDA tests

In commit a653ca9504 (Tests: Update CUDA tests to work with Clang,
2020-03-27) some tests were conditioned using `CMAKE_CUDA_COMPILER_ID`.
That is not defined when configuring CMake itself, so it accidentally
turned off NVCC-specific CUDA tests altogether.  Convert the conditions
to check `CMake_TEST_CUDA` for `Clang` instead.  That option is added
explicitly to builds where we want the tests to run, so we can set it to
a value indicating the CUDA compiler vendor.

In commit a653ca9504 (Tests: Update CUDA tests to work with Clang,
2020-03-27) the NVCC-specific `CudaOnly.GPUDebugFlag` test was
accidentally broken by removing a space when appending `-G` to the CUDA
flags.  This was covered by the test not running.  Restore the space.

Fixes: #20727
This commit is contained in:
Brad King
2020-05-19 14:02:51 -04:00
parent b246dee7db
commit 4c7cc264af
5 changed files with 5 additions and 5 deletions

View File

@@ -15,7 +15,7 @@ ADD_TEST_MACRO(Cuda.SharedRuntimePlusToolkit SharedRuntimePlusToolkit)
# Separable compilation is currently only supported on NVCC. Disable tests
# using it for other compilers.
if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
if(CMake_TEST_CUDA AND NOT CMake_TEST_CUDA STREQUAL "Clang")
ADD_TEST_MACRO(Cuda.Complex CudaComplex)
ADD_TEST_MACRO(Cuda.ProperDeviceLibraries ProperDeviceLibraries)
ADD_TEST_MACRO(Cuda.ProperLinkFlags ProperLinkFlags)

View File

@@ -8,7 +8,7 @@ ADD_TEST_MACRO(CudaOnly.Standard98 CudaOnlyStandard98)
ADD_TEST_MACRO(CudaOnly.Toolkit CudaOnlyToolkit)
ADD_TEST_MACRO(CudaOnly.WithDefs CudaOnlyWithDefs)
if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
if(CMake_TEST_CUDA AND NOT CMake_TEST_CUDA STREQUAL "Clang")
# Separable compilation is currently only supported on NVCC. Disable tests
# using it for other compilers.
ADD_TEST_MACRO(CudaOnly.CircularLinkLine CudaOnlyCircularLinkLine)

View File

@@ -7,7 +7,7 @@ set(CMAKE_CUDA_ARCHITECTURES 30)
# Goal for this example:
# Verify that enabling device debug works.
string(APPEND CMAKE_CUDA_FLAGS "-G")
string(APPEND CMAKE_CUDA_FLAGS " -G")
add_executable(CudaOnlyGPUDebugFlag main.cu)

View File

@@ -286,7 +286,7 @@ run_cmake_command(NoUnusedVariables ${CMAKE_COMMAND} ${CMAKE_CURRENT_LIST_DIR}
)
# CudaSimple uses separable compilation, which is currently only supported on NVCC.
if(CMake_TEST_CUDA AND CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
if(CMake_TEST_CUDA AND NOT CMake_TEST_CUDA STREQUAL "Clang")
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CudaSimple-build)
run_cmake_configure(CudaSimple)
include(${RunCMake_TEST_BINARY_DIR}/target_files.cmake)

View File

@@ -51,7 +51,7 @@ if (NOT CMAKE_C_COMPILER_ID STREQUAL "Intel")
run_cmake_target(genex_DEVICE_LINK private LinkOptions_private --config Release)
if (CMake_TEST_CUDA)
# Separable compilation is only supported on NVCC.
if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
if(NOT CMake_TEST_CUDA STREQUAL "Clang")
run_cmake_target(genex_DEVICE_LINK CMP0105_UNSET LinkOptions_CMP0105_UNSET --config Release)
run_cmake_target(genex_DEVICE_LINK CMP0105_OLD LinkOptions_CMP0105_OLD --config Release)
run_cmake_target(genex_DEVICE_LINK CMP0105_NEW LinkOptions_CMP0105_NEW --config Release)