11# Test runner infrastructure for Clang. This configures the Clang test trees
22# for use by Lit, and delegates to LLVM's lit test handlers.
33
4- if (CMAKE_CFG_INTDIR STREQUAL "." )
4+ if (CMAKE_CFG_INTDIR STREQUAL "." )
55 set (LLVM_BUILD_MODE "." )
6- else ()
6+ else ()
77 set (LLVM_BUILD_MODE "%(build_mode)s" )
8- endif ()
8+ endif ()
99
1010string (REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} CLANG_TOOLS_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR} )
1111
@@ -14,91 +14,94 @@ set(HLSL_HEADERS_DIR ${LLVM_SOURCE_DIR}/tools/clang/lib/Headers/hlsl) # HLSL Cha
1414configure_lit_site_cfg (
1515 ${CMAKE_CURRENT_SOURCE_DIR} /lit.site.cfg.in
1616 ${CMAKE_CURRENT_BINARY_DIR} /lit.site.cfg
17- )
17+ )
1818
1919configure_lit_site_cfg (
2020 ${CMAKE_CURRENT_SOURCE_DIR} /Unit/lit.site.cfg.in
2121 ${CMAKE_CURRENT_BINARY_DIR} /Unit/lit.site.cfg
22- )
22+ )
2323
2424configure_lit_site_cfg (
2525 ${CMAKE_CURRENT_SOURCE_DIR} /taef/lit.site.cfg.in
2626 ${CMAKE_CURRENT_BINARY_DIR} /taef/lit.site.cfg
27- )
27+ )
2828
2929configure_lit_site_cfg (
3030 ${CMAKE_CURRENT_SOURCE_DIR} /taef_exec/lit.site.cfg.in
3131 ${CMAKE_CURRENT_BINARY_DIR} /taef_exec/lit.site.cfg
32- )
32+ )
3333
3434option (CLANG_TEST_USE_VG "Run Clang tests under Valgrind" OFF )
35+
3536if (CLANG_TEST_USE_VG)
3637 set (CLANG_TEST_EXTRA_ARGS ${CLANG_TEST_EXTRA_ARGS} "--vg" )
37- endif ()
38+ endif ()
3839
3940list (APPEND CLANG_TEST_DEPS
4041 clang clang-headers
4142 clang-check clang-format
4243 c-index-test diagtool
4344 clang-tblgen
44- )
45+ )
4546
46- if (CLANG_ENABLE_ARCMT)
47+ if (CLANG_ENABLE_ARCMT)
4748 list (APPEND CLANG_TEST_DEPS
4849 arcmt-test
4950 c-arcmt-test
5051 )
51- endif ()
52+ endif ()
5253
53- if (ENABLE_CLANG_EXAMPLES)
54+ if (ENABLE_CLANG_EXAMPLES)
5455 list (APPEND CLANG_TEST_DEPS
5556 clang-interpreter
5657 PrintFunctionNames
57- )
58- endif ()
58+ )
59+ endif ()
5960
60- if (ENABLE_CLANG_STATIC_ANALYZER AND ENABLE_CLANG_EXAMPLES)
61+ if (ENABLE_CLANG_STATIC_ANALYZER AND ENABLE_CLANG_EXAMPLES)
6162 list (APPEND CLANG_TEST_DEPS
6263 SampleAnalyzerPlugin
63- )
64- endif ()
64+ )
65+ endif ()
6566
6667set (CLANG_TEST_PARAMS
6768 clang_site_config=${CMAKE_CURRENT_BINARY_DIR} /lit.site.cfg
68- )
69+ )
6970
70- if ( NOT CLANG_BUILT_STANDALONE )
71+ if (NOT CLANG_BUILT_STANDALONE)
7172 list (APPEND CLANG_TEST_DEPS
7273 llvm-config
7374 llc opt FileCheck count not llvm-symbolizer llvm-profdata llvm-objdump
74- )
75+ )
7576endif ()
7677
7778# HLSL Change Begin
7879# Explicitly overriding check-clang dependencies for HLSL
7980set (CLANG_TEST_DEPS dxc dxa dxopt dxl dxv dxr dxcompiler clang-tblgen llvm-config opt FileCheck count not ClangUnitTests)
80- if (WIN32 )
81- list (APPEND CLANG_TEST_DEPS
82- dxc_batch ExecHLSLTests dxildll
83- )
81+
82+ if (WIN32 )
83+ list (APPEND CLANG_TEST_DEPS
84+ dxc_batch ExecHLSLTests dxildll
85+ )
8486else ()
85- list (APPEND CLANG_TEST_DEPS
86- dxildll
87- )
87+ list (APPEND CLANG_TEST_DEPS
88+ dxildll
89+ )
8890endif ()
91+
8992add_custom_target (clang-test-depends DEPENDS ${CLANG_TEST_DEPS} )
9093set_target_properties (clang-test-depends PROPERTIES FOLDER "Clang tests" )
91- # HLSL Change End
92-
9394
95+ # HLSL Change End
9496add_lit_testsuite (check-clang "Running the Clang regression tests"
9597 ${CMAKE_CURRENT_BINARY_DIR}
96- #LIT ${LLVM_LIT}
98+
99+ # LIT ${LLVM_LIT}
97100 PARAMS ${CLANG_TEST_PARAMS}
98- skip_taef_exec=False
101+ skip_taef_exec=False
99102 DEPENDS ${CLANG_TEST_DEPS}
100103 ARGS ${CLANG_TEST_EXTRA_ARGS}
101- )
104+ )
102105set_target_properties (check-clang PROPERTIES FOLDER "Clang tests" )
103106
104107# Add a legacy target spelling: clang-test
@@ -107,69 +110,75 @@ add_dependencies(clang-test check-clang)
107110set_target_properties (clang-test PROPERTIES FOLDER "Clang tests" )
108111
109112# HLSL Change Begin - Generate lit targets for test subdirectories.
110-
111113set (CLANG_TEST_PARAMS
112114 ${CLANG_TEST_PARAMS}
113115 clang_unit_site_config=${CMAKE_CURRENT_BINARY_DIR} /Unit/lit.site.cfg
114116 clang_taef_site_config=${CMAKE_CURRENT_BINARY_DIR} /taef/lit.site.cfg
115117 no_priority=True
116118 clang_taef_exec_site_config=${CMAKE_CURRENT_BINARY_DIR} /taef_exec/lit.site.cfg
117- )
119+ )
118120
119121add_lit_testsuites (CLANG ${CMAKE_CURRENT_SOURCE_DIR}
120122 PARAMS ${CLANG_TEST_PARAMS}
121123 DEPENDS ${CLANG_TEST_DEPS}
122124 FOLDER "Clang tests/Suites"
123125)
124126
125- # Manually generate targets that we need to expose in visual studio builds.
126-
127- # The code below here _ONLY_ executes when building with Visual Studio or Xcode.
128- if (NOT CMAKE_CONFIGURATION_TYPES )
129- return ()
127+ if (WIN32 )
128+ if (DEFINED ENV{USE_WARP_FROM_NUGET})
129+ # Use a custom target so we can depend on it and re-run the cmake logic which downloads warp
130+ # from nuget if requested.
131+ add_custom_target (WarpFromNuget
132+ COMMAND "${CMAKE_COMMAND} "
133+ -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}
134+ -DBUILD_TYPE=${CMAKE_BUILD_TYPE}
135+ -DBINARY_DIR=${CMAKE_BINARY_DIR}
136+ -P "${CMAKE_SOURCE_DIR} /cmake/modules/nuget.cmake" )
137+
138+ add_lit_target ("check-clang-taef-exec-warp" "Running lit suite hlsl execution test with D3D WARP from nuget"
139+ ${CMAKE_CURRENT_SOURCE_DIR} /taef_exec
140+ PARAMS ${CLANG_TEST_PARAMS}
141+ adapter=${TAEF_EXEC_ADAPTER}
142+ DEPENDS ExecHLSLTests dxexp WarpFromNuget
143+ ARGS ${CLANG_TEST_EXTRA_ARGS}
144+ )
145+ endif ()
130146endif ()
131147
132- # Add the unit test suite
133- add_lit_target ("check-clang-unit" "Running lit suite clang-unit"
134- ${CMAKE_CURRENT_SOURCE_DIR} /Unit
135- PARAMS ${CLANG_TEST_PARAMS}
136- DEPENDS ClangUnitTests
137- ARGS ${CLANG_TEST_EXTRA_ARGS}
138- )
139-
140- # Add TAEF targets
141- if (WIN32 )
142- add_lit_target ("check-clang-taef" "Running lit suite hlsl"
143- ${CMAKE_CURRENT_SOURCE_DIR} /taef
144- PARAMS ${CLANG_TEST_PARAMS}
145- DEPENDS ClangHLSLTests
146- ARGS ${CLANG_TEST_EXTRA_ARGS}
147- )
148- set (TAEF_EXEC_ADAPTER "" CACHE STRING "adapter for taef exec test" )
149-
150- # Use a custom target so we can depend on it and re-run the cmake logic which downloads warp
151- # from nuget if requested.
152- add_custom_target (WarpFromNuget
153- COMMAND "${CMAKE_COMMAND} "
154- -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}
155- -DBUILD_TYPE=${CMAKE_BUILD_TYPE}
156- -DBINARY_DIR=${CMAKE_BINARY_DIR}
157- -P "${CMAKE_SOURCE_DIR} /cmake/modules/nuget.cmake" )
158-
159- add_lit_target ("check-clang-taef-exec" "Running lit suite hlsl execution test"
160- ${CMAKE_CURRENT_SOURCE_DIR} /taef_exec
161- PARAMS ${CLANG_TEST_PARAMS}
162- adapter=${TAEF_EXEC_ADAPTER}
163- DEPENDS ExecHLSLTests dxexp
164- ARGS ${CLANG_TEST_EXTRA_ARGS}
165- )
166-
167- add_lit_target ("check-clang-taef-exec-warp" "Running lit suite hlsl execution test with D3D WARP from nuget"
168- ${CMAKE_CURRENT_SOURCE_DIR} /taef_exec
169- PARAMS ${CLANG_TEST_PARAMS}
170- adapter=${TAEF_EXEC_ADAPTER}
171- DEPENDS ExecHLSLTests dxexp WarpFromNuget
172- ARGS ${CLANG_TEST_EXTRA_ARGS}
173- )
148+ # add_lit_testsuites doesn't generate targets for Visual Studio or Xcode builds
149+ # (since these IDEs cannot handle the huge number of targets it generates).
150+ #
151+ # We must manually generate targets that we want to expose in visual studio
152+ # builds.
153+ if (CMAKE_CONFIGURATION_TYPES )
154+ # The code here _ONLY_ executes when building with Visual Studio or Xcode.
155+
156+ # Add the unit test suite
157+ add_lit_target ("check-clang-unit" "Running lit suite clang-unit"
158+ ${CMAKE_CURRENT_SOURCE_DIR} /Unit
159+ PARAMS ${CLANG_TEST_PARAMS}
160+ DEPENDS ClangUnitTests
161+ ARGS ${CLANG_TEST_EXTRA_ARGS}
162+ )
163+
164+ # Add TAEF targets
165+ if (WIN32 )
166+ add_lit_target ("check-clang-taef" "Running lit suite hlsl"
167+ ${CMAKE_CURRENT_SOURCE_DIR} /taef
168+ PARAMS ${CLANG_TEST_PARAMS}
169+ DEPENDS ClangHLSLTests
170+ ARGS ${CLANG_TEST_EXTRA_ARGS}
171+ )
172+ set (TAEF_EXEC_ADAPTER "" CACHE STRING "adapter for taef exec test" )
173+
174+ add_lit_target ("check-clang-taef-exec" "Running lit suite hlsl execution test"
175+ ${CMAKE_CURRENT_SOURCE_DIR} /taef_exec
176+ PARAMS ${CLANG_TEST_PARAMS}
177+ adapter=${TAEF_EXEC_ADAPTER}
178+ DEPENDS ExecHLSLTests dxexp
179+ ARGS ${CLANG_TEST_EXTRA_ARGS}
180+ )
181+ endif ()
174182endif ()
183+
175184# HLSL Change End
0 commit comments