2020-08-30 11:54:41 +02:00
|
|
|
macro (add_cuda_test_macro name)
|
|
|
|
add_test_macro("${name}" ${ARGN})
|
|
|
|
set_property(TEST "${name}" APPEND
|
|
|
|
PROPERTY LABELS "CUDA")
|
|
|
|
endmacro ()
|
2017-04-14 19:02:05 +02:00
|
|
|
|
2020-08-30 11:54:41 +02:00
|
|
|
add_cuda_test_macro(CudaOnly.Architecture Architecture)
|
2022-08-04 22:12:04 +02:00
|
|
|
add_cuda_test_macro(CudaOnly.ArchSpecial CudaOnlyArchSpecial)
|
2020-08-30 11:54:41 +02:00
|
|
|
add_cuda_test_macro(CudaOnly.CompileFlags CudaOnlyCompileFlags)
|
|
|
|
add_cuda_test_macro(CudaOnly.EnableStandard CudaOnlyEnableStandard)
|
|
|
|
add_cuda_test_macro(CudaOnly.ExportPTX CudaOnlyExportPTX)
|
|
|
|
add_cuda_test_macro(CudaOnly.SharedRuntimePlusToolkit CudaOnlySharedRuntimePlusToolkit)
|
2023-05-23 16:38:00 +02:00
|
|
|
add_cuda_test_macro(CudaOnly.StaticRuntimePlusToolkit CudaOnlyStaticRuntimePlusToolkit)
|
2024-04-14 22:45:38 +02:00
|
|
|
if(NOT WIN32 OR NOT CMake_TEST_CUDA STREQUAL "Clang") # MSVC std lib needs C++14
|
|
|
|
add_cuda_test_macro(CudaOnly.Standard98 CudaOnlyStandard98)
|
|
|
|
endif()
|
2024-02-02 17:42:32 +01:00
|
|
|
set(CudaOnly.Toolkit_BUILD_OPTIONS -DHAS_CUPTI:BOOL=${CMake_TEST_CUDA_CUPTI})
|
2020-08-30 11:54:41 +02:00
|
|
|
add_cuda_test_macro(CudaOnly.Toolkit CudaOnlyToolkit)
|
2021-09-14 00:13:48 +02:00
|
|
|
add_cuda_test_macro(CudaOnly.ToolkitBeforeLang CudaOnlyToolkitBeforeLang)
|
2022-11-16 20:14:03 +01:00
|
|
|
add_cuda_test_macro(CudaOnly.ToolkitMultipleDirs CudaOnlyToolkitMultipleDirs)
|
2024-04-14 22:45:38 +02:00
|
|
|
add_cuda_test_macro(CudaOnly.TryCompileTargetStatic CudaOnlyTryCompileTargetStatic)
|
2024-11-11 15:18:55 +01:00
|
|
|
add_cuda_test_macro(CudaOnly.Unity CudaOnlyUnity)
|
2020-08-30 11:54:41 +02:00
|
|
|
add_cuda_test_macro(CudaOnly.WithDefs CudaOnlyWithDefs)
|
2021-09-14 00:13:48 +02:00
|
|
|
add_cuda_test_macro(CudaOnly.CircularLinkLine CudaOnlyCircularLinkLine)
|
|
|
|
add_cuda_test_macro(CudaOnly.ResolveDeviceSymbols CudaOnlyResolveDeviceSymbols)
|
|
|
|
add_cuda_test_macro(CudaOnly.SeparateCompilation main/CudaOnlySeparateCompilation)
|
2022-03-29 21:10:50 +02:00
|
|
|
add_cuda_test_macro(CudaOnly.SeparateCompilationPTX CudaOnlySeparateCompilationPTX)
|
2023-12-07 09:12:54 +01:00
|
|
|
add_cuda_test_macro(CudaOnly.SeparateCompilationTargetObjects CudaOnlySeparateCompilationTargetObjects)
|
2018-08-09 18:06:22 +02:00
|
|
|
|
2020-08-30 11:54:41 +02:00
|
|
|
if(CMake_TEST_CUDA AND NOT CMake_TEST_CUDA STREQUAL "Clang")
|
2021-09-14 00:13:48 +02:00
|
|
|
# Clang doesn't have flags for selecting the runtime.
|
2020-08-30 11:54:41 +02:00
|
|
|
add_cuda_test_macro(CudaOnly.SharedRuntimeViaCUDAFlags CudaOnlySharedRuntimeViaCUDAFlags)
|
|
|
|
|
|
|
|
# Only NVCC defines __CUDACC_DEBUG__ when compiling in debug mode.
|
|
|
|
add_cuda_test_macro(CudaOnly.GPUDebugFlag CudaOnlyGPUDebugFlag)
|
2023-07-02 19:51:09 +02:00
|
|
|
add_cuda_test_macro(CudaOnly.CUBIN CudaOnlyCUBIN)
|
|
|
|
add_cuda_test_macro(CudaOnly.Fatbin CudaOnlyFatbin)
|
|
|
|
add_cuda_test_macro(CudaOnly.OptixIR CudaOnlyOptixIR)
|
2020-08-30 11:54:41 +02:00
|
|
|
endif()
|
|
|
|
|
2022-11-16 20:14:03 +01:00
|
|
|
add_cuda_test_macro(CudaOnly.DeviceLTO CudaOnlyDeviceLTO)
|
|
|
|
|
|
|
|
if(MSVC)
|
|
|
|
# Tests for features that only work with MSVC
|
|
|
|
add_cuda_test_macro(CudaOnly.PDB CudaOnlyPDB)
|
|
|
|
endif()
|
|
|
|
|
2021-09-14 00:13:48 +02:00
|
|
|
add_test(NAME CudaOnly.DontResolveDeviceSymbols COMMAND
|
|
|
|
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
|
|
|
--build-and-test
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/DontResolveDeviceSymbols/"
|
|
|
|
"${CMAKE_CURRENT_BINARY_DIR}/DontResolveDeviceSymbols/"
|
|
|
|
${build_generator_args}
|
|
|
|
--build-project DontResolveDeviceSymbols
|
|
|
|
--build-options ${build_options}
|
|
|
|
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
|
|
|
)
|
|
|
|
set_property(TEST "CudaOnly.DontResolveDeviceSymbols" APPEND
|
|
|
|
PROPERTY LABELS "CUDA")
|
|
|
|
|
2020-08-30 11:54:41 +02:00
|
|
|
add_test(NAME CudaOnly.RuntimeControls COMMAND
|
2019-11-11 23:01:05 +01:00
|
|
|
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
|
|
|
--build-and-test
|
2020-08-30 11:54:41 +02:00
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/RuntimeControls/"
|
|
|
|
"${CMAKE_CURRENT_BINARY_DIR}/RuntimeControls/"
|
|
|
|
--build-two-config
|
|
|
|
${build_generator_args}
|
|
|
|
--build-project RuntimeControls
|
2019-11-11 23:01:05 +01:00
|
|
|
--build-options ${build_options}
|
|
|
|
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
|
|
|
)
|
2020-08-30 11:54:41 +02:00
|
|
|
set_property(TEST "CudaOnly.RuntimeControls" APPEND
|
|
|
|
PROPERTY LABELS "CUDA")
|