| # Test runner infrastructure for Flang. This configures the Flang test trees |
| # for use by Lit, and delegates to LLVM's lit test handlers. |
| add_subdirectory(lib) |
| |
| llvm_canonicalize_cmake_booleans( |
| FLANG_BUILD_EXAMPLES |
| FLANG_STANDALONE_BUILD |
| LLVM_BYE_LINK_INTO_TOOLS |
| LLVM_ENABLE_PLUGINS |
| ) |
| |
| set(FLANG_TOOLS_DIR ${FLANG_BINARY_DIR}/bin) |
| |
| # FIXME In out-of-tree builds, "SHLIBDIR" is undefined and passing it to |
| # `configure_lit_site_cfg` leads to a configuration error. This is currently |
| # only required by plugins/examples, which are not supported in out-of-tree |
| # builds. |
| if (FLANG_STANDALONE_BUILD) |
| set(PATHS_FOR_PLUGINS "") |
| else () |
| set(PATHS_FOR_PLUGINS "SHLIBDIR") |
| endif () |
| |
| configure_lit_site_cfg( |
| ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in |
| ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py |
| MAIN_CONFIG |
| ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py |
| PATHS |
| ${PATHS_FOR_PLUGINS} |
| ) |
| |
| configure_lit_site_cfg( |
| ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in |
| ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py |
| MAIN_CONFIG |
| ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.cfg.py |
| ) |
| |
| configure_lit_site_cfg( |
| ${CMAKE_CURRENT_SOURCE_DIR}/NonGtestUnit/lit.site.cfg.py.in |
| ${CMAKE_CURRENT_BINARY_DIR}/NonGtestUnit/lit.site.cfg.py |
| MAIN_CONFIG |
| ${CMAKE_CURRENT_SOURCE_DIR}/NonGtestUnit/lit.cfg.py |
| ) |
| |
| set(FLANG_TEST_PARAMS |
| flang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py) |
| |
| set(FLANG_TEST_DEPENDS |
| flang-new |
| llvm-config |
| FileCheck |
| count |
| not |
| module_files |
| fir-opt |
| tco |
| bbc |
| llvm-dis |
| llvm-objdump |
| split-file |
| FortranRuntime |
| Fortran_main |
| FortranDecimal |
| ) |
| if (LLVM_ENABLE_PLUGINS AND NOT WIN32) |
| list(APPEND FLANG_TEST_DEPENDS Bye) |
| endif() |
| |
| if (FLANG_INCLUDE_TESTS) |
| if (FLANG_GTEST_AVAIL) |
| list(APPEND FLANG_TEST_DEPENDS FlangUnitTests) |
| endif() |
| endif() |
| |
| if (FLANG_BUILD_EXAMPLES) |
| list(APPEND FLANG_TEST_DEPENDS |
| flangPrintFunctionNames |
| flangOmpReport |
| ) |
| endif () |
| |
| add_custom_target(flang-test-depends DEPENDS ${FLANG_TEST_DEPENDS}) |
| |
| add_lit_testsuite(check-flang "Running the Flang regression tests" |
| ${CMAKE_CURRENT_BINARY_DIR} |
| PARAMS ${FLANG_TEST_PARAMS} |
| DEPENDS ${FLANG_TEST_DEPENDS} |
| ) |
| set_target_properties(check-flang PROPERTIES FOLDER "Tests") |
| |
| # In case of standalone builds. |
| if (FLANG_STANDALONE_BUILD) |
| add_lit_testsuites(FLANG ${CMAKE_CURRENT_BINARY_DIR} |
| PARAMS ${FLANG_TEST_PARAMS} |
| DEPENDS ${FLANG_TEST_DEPENDS}) |
| else() |
| add_lit_testsuites(FLANG ${CMAKE_CURRENT_SOURCE_DIR} |
| PARAMS ${FLANG_TEST_PARAMS} |
| DEPENDS ${FLANG_TEST_DEPENDS}) |
| endif() |
| |
| # To modify the default target triple for flang tests. |
| if (DEFINED FLANG_TEST_TARGET_TRIPLE) |
| if (NOT DEFINED LLVM_TARGET_TRIPLE_ENV OR LLVM_TARGET_TRIPLE_ENV STREQUAL "") |
| message(FATAL_ERROR "LLVM_TARGET_TRIPLE_ENV must also be defined in order " |
| "to use FLANG_TEST_TARGET_TRIPLE.") |
| endif() |
| endif() |