[Simplify] Reset all stats between runs.
[polly-mirror.git] / test / CMakeLists.txt
blob1ddde6bf601f61d4512a193f256850daf39a1792
1 set(POLLY_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
2 set(POLLY_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/..")
3 set(LLVM_SHLIBEXT "${CMAKE_SHARED_MODULE_SUFFIX}")
5 add_custom_target(check-polly)
6 set_target_properties(check-polly PROPERTIES FOLDER "Polly")
8 if (NOT DEFINED LLVM_MAIN_SRC_DIR)
10   # We are building polly out of tree, adjust the settings.
11   # FIXME: FileCheck is not available in llvm install directory at the moment.
12   set(LLVM_LIT ${LLVM_INSTALL_ROOT}/bin/llvm-lit)
13   if (POLLY_BUNDLED_ISL)
14     set(POLLY_TEST_DEPS LLVMPolly polly-isl-test)
15   endif (POLLY_BUNDLED_ISL)
16   if (POLLY_GTEST_AVAIL)
17     list(APPEND POLLY_TEST_DEPS PollyUnitTests)
18   endif ()
20   set(LLVM_BINARY_DIR "${LLVM_INSTALL_ROOT}")
21   set(LLVM_TOOLS_DIR "${LLVM_INSTALL_ROOT}/bin")
22   set(LLVM_LIBS_DIR "${LLVM_INSTALL_ROOT}/lib")
23   set(POLLY_LIB_DIR "${POLLY_BINARY_DIR}/lib")
25   include(FindPythonInterp)
26   if(PYTHONINTERP_FOUND)
27     option(POLLY_TEST_DISABLE_BAR "Run Polly tests with --no-progress-bar" OFF)
28     set(POLLY_TEST_EXTRA_ARGS)
29     if (MSVC OR XCODE OR POLLY_TEST_DISABLE_BAR)
30       set(POLLY_TEST_EXTRA_ARGS "--no-progress-bar")
31     endif()
33     option(POLLY_TEST_USE_VG "Run Polly tests under Valgrind" OFF)
34     if(POLLY_TEST_USE_VG)
35       set(POLLY_TEST_EXTRA_ARGS ${POLLY_TEST_EXTRA_ARGS} "--vg")
36     endif ()
38     # Parameters required for lit.site.cfg.in
39     set(LLVM_SOURCE_DIR ${LLVM_SOURCE_ROOT})
40     if (CMAKE_CFG_INTDIR STREQUAL ".")
41       set(LLVM_BUILD_MODE ".")
42     else ()
43       set(LLVM_BUILD_MODE "%(build_mode)s")
44     endif ()
45     set(ENABLE_SHARED "1")
46     set(SHLIBDIR "${LLVM_BINARY_DIR}/bin")
47     set(LINK_POLLY_INTO_TOOLS "OFF")
49     configure_file(
50       ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
51       ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
53     add_custom_target(check-polly-tests
54       COMMAND ${LLVM_LIT}
55                   --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
56                   --param polly_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
57                   --param build_config=${CMAKE_CFG_INTDIR}
58                   -sv ${POLLY_TEST_EXTRA_ARGS}
59                   ${CMAKE_CURRENT_BINARY_DIR}
60                   DEPENDS ${POLLY_TEST_DEPS}
61                   COMMENT "Running Polly regression/unit tests")
62     set_target_properties(check-polly-tests PROPERTIES FOLDER "Polly")
63     add_dependencies(check-polly check-polly-tests)
65     if (POLLY_GTEST_AVAIL)
66       configure_file(
67         ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
68         ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg)
70       add_custom_target(check-polly-unittests
71         COMMAND ${LLVM_LIT}
72                   --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
73                   --param build_config=${CMAKE_CFG_INTDIR}
74                   -sv ${POLLY_TEST_EXTRA_ARGS}
75                   ${CMAKE_CURRENT_BINARY_DIR}/Unit
76                   DEPENDS PollyUnitTests
77                   COMMENT "Running Polly unit tests")
78       set_target_properties(check-polly-unittests PROPERTIES FOLDER "Polly")
79     endif ()
80     configure_file(
81       ${CMAKE_CURRENT_SOURCE_DIR}/UnitIsl/lit.site.cfg.in
82       ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg)
85     if (POLLY_BUNDLED_ISL)
86       add_custom_target(check-polly-isl
87         command ${LLVM_LIT}
88                   --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg
89                   --param build_config=${CMAKE_CFG_INTDIR}
90                   -sv ${POLLY_TEST_EXTRA_ARGS}
91                   ${CMAKE_CURRENT_BINARY_DIR}
92                   DEPENDS polly-isl-test
93                   COMMENT "Running isl unit tests")
94       set_target_properties(check-polly-isl PROPERTIES FOLDER "Polly")
95     endif (POLLY_BUNDLED_ISL)
96   endif()
98 else (NOT DEFINED LLVM_MAIN_SRC_DIR)
100   set(LLVM_LIT ${LLVM_TOOLS_BINARY_DIR}/llvm-lit)
101   set(POLLY_TEST_DEPS llvm-config opt LLVMPolly FileCheck not)
102   if (POLLY_BUNDLED_ISL)
103     list(APPEND POLLY_TEST_DEPS polly-isl-test)
104   endif()
105   if (POLLY_GTEST_AVAIL)
106     list(APPEND POLLY_TEST_DEPS PollyUnitTests)
107   endif ()
109   set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}")
110   set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}")
111   set(LLVM_LIBS_DIR "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}")
112   set(POLLY_LIB_DIR "${LLVM_LIBS_DIR}")
114   configure_lit_site_cfg(
115     ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
116     ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
118   # Run regression and unit tests
119   add_lit_testsuite(check-polly-tests "Running polly regression tests"
120     ${CMAKE_CURRENT_BINARY_DIR}
121     PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
122            polly_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
123     DEPENDS ${POLLY_TEST_DEPS}
124     )
125   set_target_properties(check-polly-tests PROPERTIES FOLDER "Polly")
126   add_dependencies(check-polly check-polly-tests)
128   if (POLLY_GTEST_AVAIL)
129     configure_lit_site_cfg(
130       ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
131       ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
132     )
134     # Run only unit tests
135     add_lit_testsuite(check-polly-unittests "Running polly unit tests only"
136       ${CMAKE_CURRENT_BINARY_DIR}/Unit
137       PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
138       DEPENDS PollyUnitTests
139       )
140     set_target_properties(check-polly-unittests PROPERTIES FOLDER "Polly")
141   endif ()
143   configure_file(
144     ${CMAKE_CURRENT_SOURCE_DIR}/UnitIsl/lit.site.cfg.in
145     ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg)
147   if (POLLY_BUNDLED_ISL)
148     add_lit_testsuite(check-polly-isl "Running isl unit tests only"
149       ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl
150       PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg
151       DEPENDS polly-isl-test
152       )
153     set_target_properties(check-polly-isl PROPERTIES FOLDER "Polly")
154   endif (POLLY_BUNDLED_ISL)
156   # Run polly-check-format as part of polly-check only if we are compiling with
157   # clang, so clang-format is available.
158   # if (TARGET clang-format) would be preferable, but this target is only added
159   # after Polly, i.e. there is no such target yet at this point. The CMake cache
160   # entry LLVM_TOOL_CLANG_BUILD will only be defined after clang has been
161   # configured at least once, i.e. format will be checked only after a rerun of
162   # CMake's configure.
163   if (LLVM_TOOL_CLANG_BUILD)
164     add_dependencies(check-polly polly-check-format)
165   endif ()
167 endif (NOT DEFINED LLVM_MAIN_SRC_DIR)
169 configure_file(
170   ${CMAKE_CURRENT_SOURCE_DIR}/update_check.py
171   ${CMAKE_CURRENT_BINARY_DIR}/update_check.py)
172 file(COPY ${CMAKE_CURRENT_BINARY_DIR}/update_check.py
173   DESTINATION ${LLVM_TOOLS_DIR}
174   FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
175   GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
177 # Add a legacy target spelling: polly-test
178 add_custom_target(polly-test)
179 set_target_properties(polly-test PROPERTIES FOLDER "Polly")
180 add_dependencies(polly-test check-polly)