[Openmp-commits] [openmp] r319343 - [CMake] Refactor testing infrastructure
Jonas Hahnfeld via Openmp-commits
openmp-commits at lists.llvm.org
Wed Nov 29 11:31:53 PST 2017
Author: hahnfeld
Date: Wed Nov 29 11:31:52 2017
New Revision: 319343
URL: http://llvm.org/viewvc/llvm-project?rev=319343&view=rev
Log:
[CMake] Refactor testing infrastructure
The code for the two OpenMP runtime libraries was very similar.
Move to common CMake file that is included and provides a simple
interface for adding testsuites. Also add a common check-openmp
target that runs all testsuites that have been registered.
Note that this renames all test options to the common OPENMP
namespace, for example OPENMP_TEST_C_COMPILER instead of
LIBOMP_TEST_COMPILER and so on.
Differential Revision: https://reviews.llvm.org/D40082
Added:
openmp/trunk/cmake/OpenMPTesting.cmake
Modified:
openmp/trunk/CMakeLists.txt
openmp/trunk/libomptarget/Build_With_CMake.txt
openmp/trunk/libomptarget/test/CMakeLists.txt
openmp/trunk/libomptarget/test/lit.cfg
openmp/trunk/libomptarget/test/lit.site.cfg.in
openmp/trunk/runtime/Build_With_CMake.txt
openmp/trunk/runtime/test/CMakeLists.txt
openmp/trunk/runtime/test/lit.cfg
openmp/trunk/runtime/test/lit.site.cfg.in
openmp/trunk/runtime/test/ompt/loadtool/tool_available.c
Modified: openmp/trunk/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/CMakeLists.txt?rev=319343&r1=319342&r2=319343&view=diff
==============================================================================
--- openmp/trunk/CMakeLists.txt (original)
+++ openmp/trunk/CMakeLists.txt Wed Nov 29 11:31:52 2017
@@ -19,17 +19,38 @@ if (OPENMP_STANDALONE_BUILD OR "${CMAKE_
set(OPENMP_LIBDIR_SUFFIX "" CACHE STRING
"suffix of lib installation directory, e.g. 64 => lib64")
+ # Group test settings.
+ set(OPENMP_TEST_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING
+ "C compiler to use for testing OpenMP runtime libraries.")
+ set(OPENMP_TEST_CXX_COMPILER ${CMAKE_CXX_COMPILER} CACHE STRING
+ "C++ compiler to use for testing OpenMP runtime libraries.")
set(OPENMP_LLVM_TOOLS_DIR "" CACHE PATH "Path to LLVM tools for testing.")
else()
set(OPENMP_ENABLE_WERROR ${LLVM_ENABLE_WERROR})
# If building in tree, we honor the same install suffix LLVM uses.
set(OPENMP_LIBDIR_SUFFIX ${LLVM_LIBDIR_SUFFIX})
+
+ if (NOT MSVC)
+ set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang)
+ set(OPENMP_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++)
+ else()
+ set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang.exe)
+ set(OPENMP_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++.exe)
+ endif()
endif()
# Check and set up common compiler flags.
include(config-ix)
include(HandleOpenMPOptions)
+# Set up testing infrastructure.
+include(OpenMPTesting)
+
+set(OPENMP_TEST_FLAGS "" CACHE STRING
+ "Extra compiler flags to send to the test compiler.")
+set(OPENMP_TEST_OPENMP_FLAGS "-fopenmp" CACHE STRING
+ "OpenMP compiler flag to use for testing OpenMP runtime libraries.")
+
# Build host runtime library.
add_subdirectory(runtime)
@@ -55,3 +76,6 @@ if (OPENMP_ENABLE_LIBOMPTARGET)
add_subdirectory(libomptarget)
endif()
+
+# Now that we have seen all testuites, create the check-openmp target.
+construct_check_openmp_target()
Added: openmp/trunk/cmake/OpenMPTesting.cmake
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/cmake/OpenMPTesting.cmake?rev=319343&view=auto
==============================================================================
--- openmp/trunk/cmake/OpenMPTesting.cmake (added)
+++ openmp/trunk/cmake/OpenMPTesting.cmake Wed Nov 29 11:31:52 2017
@@ -0,0 +1,104 @@
+# Keep track if we have all dependencies.
+set(ENABLE_CHECK_TARGETS TRUE)
+
+# Function to find required dependencies for testing.
+function(find_standalone_test_dependencies)
+ include(FindPythonInterp)
+
+ if (NOT PYTHONINTERP_FOUND)
+ message(STATUS "Could not find Python.")
+ message(WARNING "The check targets will not be available!")
+ set(ENABLE_CHECK_TARGETS FALSE PARENT_SCOPE)
+ return()
+ endif()
+
+ # Find executables.
+ find_program(OPENMP_LLVM_LIT_EXECUTABLE
+ NAMES llvm-lit lit.py lit
+ PATHS ${OPENMP_LLVM_TOOLS_DIR})
+ if (NOT OPENMP_LLVM_LIT_EXECUTABLE)
+ message(STATUS "Cannot find llvm-lit.")
+ message(STATUS "Please put llvm-lit in your PATH, set OPENMP_LLVM_LIT_EXECUTABLE to its full path, or point OPENMP_LLVM_TOOLS_DIR to its directory.")
+ message(WARNING "The check targets will not be available!")
+ set(ENABLE_CHECK_TARGETS FALSE PARENT_SCOPE)
+ return()
+ endif()
+
+ find_program(OPENMP_FILECHECK_EXECUTABLE
+ NAMES FileCheck
+ PATHS ${OPENMP_LLVM_TOOLS_DIR})
+ if (NOT OPENMP_FILECHECK_EXECUTABLE)
+ message(STATUS "Cannot find FileCheck.")
+ message(STATUS "Please put FileCheck in your PATH, set OPENMP_FILECHECK_EXECUTABLE to its full path, or point OPENMP_LLVM_TOOLS_DIR to its directory.")
+ message(WARNING "The check targets will not be available!")
+ set(ENABLE_CHECK_TARGETS FALSE PARENT_SCOPE)
+ return()
+ endif()
+endfunction()
+
+if (${OPENMP_STANDALONE_BUILD})
+ find_standalone_test_dependencies()
+
+ # Make sure we can use the console pool for recent CMake and Ninja > 1.5.
+ if (CMAKE_VERSION VERSION_LESS 3.1.20141117)
+ set(cmake_3_2_USES_TERMINAL)
+ else()
+ set(cmake_3_2_USES_TERMINAL USES_TERMINAL)
+ endif()
+
+ # Set lit arguments.
+ set(DEFAULT_LIT_ARGS "-sv --show-unsupported --show-xfail")
+ if (MSVC OR XCODE)
+ set(DEFAULT_LIT_ARGS "${DEFAULT_LIT_ARGS} --no-progress-bar")
+ endif()
+ # TODO: Remove once bots are updated to use the new option.
+ if (DEFINED LIBOMP_LIT_ARGS)
+ set(DEFAULT_LIT_ARGS ${LIBOMP_LIT_ARGS})
+ endif()
+ set(OPENMP_LIT_ARGS "${DEFAULT_LIT_ARGS}" CACHE STRING "Options for lit.")
+ separate_arguments(OPENMP_LIT_ARGS)
+else()
+ set(OPENMP_FILECHECK_EXECUTABLE ${LLVM_RUNTIME_OUTPUT_INTDIR}/FileCheck)
+endif()
+
+# Function to add a testsuite for an OpenMP runtime library.
+function(add_openmp_testsuite target comment)
+ if (NOT ENABLE_CHECK_TARGETS)
+ add_custom_target(${target}
+ COMMAND ${CMAKE_COMMAND} -E echo "${target} does nothing, dependencies not found.")
+ message(STATUS "${target} does nothing.")
+ return()
+ endif()
+
+ cmake_parse_arguments(ARG "" "" "DEPENDS" ${ARGN})
+ # EXCLUDE_FROM_ALL excludes the test ${target} out of check-openmp.
+ if (NOT EXCLUDE_FROM_ALL)
+ # Register the testsuites and depends for the check-openmp rule.
+ set_property(GLOBAL APPEND PROPERTY OPENMP_LIT_TESTSUITES ${ARG_UNPARSED_ARGUMENTS})
+ set_property(GLOBAL APPEND PROPERTY OPENMP_LIT_DEPENDS ${ARG_DEPENDS})
+ endif()
+
+ if (${OPENMP_STANDALONE_BUILD})
+ add_custom_target(${target}
+ COMMAND ${PYTHON_EXECUTABLE} ${OPENMP_LLVM_LIT_EXECUTABLE} ${OPENMP_LIT_ARGS} ${ARG_UNPARSED_ARGUMENTS}
+ COMMENT ${comment}
+ DEPENDS ${ARG_DEPENDS}
+ ${cmake_3_2_USES_TERMINAL}
+ )
+ else()
+ add_lit_testsuite(${target}
+ ${comment}
+ ${ARG_UNPARSED_ARGUMENTS}
+ DEPENDS clang clang-headers FileCheck ${ARG_DEPENDS}
+ )
+ endif()
+endfunction()
+
+function(construct_check_openmp_target)
+ get_property(OPENMP_LIT_TESTSUITES GLOBAL PROPERTY OPENMP_LIT_TESTSUITES)
+ get_property(OPENMP_LIT_DEPENDS GLOBAL PROPERTY OPENMP_LIT_DEPENDS)
+
+ # We already added the testsuites themselves, no need to do that again.
+ set(EXCLUDE_FROM_ALL True)
+ add_openmp_testsuite(check-openmp "Running OpenMP tests" ${OPENMP_LIT_TESTSUITES} DEPENDS ${OPENMP_LIT_DEPENDS})
+endfunction()
Modified: openmp/trunk/libomptarget/Build_With_CMake.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/libomptarget/Build_With_CMake.txt?rev=319343&r1=319342&r2=319343&view=diff
==============================================================================
--- openmp/trunk/libomptarget/Build_With_CMake.txt (original)
+++ openmp/trunk/libomptarget/Build_With_CMake.txt Wed Nov 29 11:31:52 2017
@@ -85,10 +85,10 @@ Build type can be Release, Debug, or Rel
-DOPENMP_ENABLE_WERROR=true|false
Should consider warnings as errors.
--DLIBOMPTARGET_LLVM_LIT_EXECUTABLE=""
+-DOPENMP_LLVM_LIT_EXECUTABLE=""
Full path to the llvm-lit tool. Required for testing in out-of-tree builds.
--DLIBOMPTARGET_FILECHECK_EXECUTABLE=""
+-DOPENMP_FILECHECK_EXECUTABLE=""
Full path to the FileCheck tool. Required for testing in out-of-tree builds.
-DLIBOMPTARGET_OPENMP_HEADER_FOLDER=""
Modified: openmp/trunk/libomptarget/test/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/libomptarget/test/CMakeLists.txt?rev=319343&r1=319342&r2=319343&view=diff
==============================================================================
--- openmp/trunk/libomptarget/test/CMakeLists.txt (original)
+++ openmp/trunk/libomptarget/test/CMakeLists.txt Wed Nov 29 11:31:52 2017
@@ -1,14 +1,4 @@
-# CMakeLists.txt file for unit testing OpenMP Library
-include(FindPythonInterp)
-include(CheckTypeSize)
-if(NOT PYTHONINTERP_FOUND)
- libomptarget_warning_say("Could not find Python.")
- libomptarget_warning_say("The check-libomptarget target will not be available!")
- return()
-endif()
-
-set(LIBOMPTARGET_TEST_CFLAGS "" CACHE STRING
- "Extra compiler flags to send to the test compiler")
+# CMakeLists.txt file for unit testing OpenMP offloading runtime library.
if(LIBOMPTARGET_CMAKE_BUILD_TYPE MATCHES debug)
set(LIBOMPTARGET_DEBUG True)
@@ -17,25 +7,14 @@ else()
endif()
if(${OPENMP_STANDALONE_BUILD})
- # Make sure we can use the console pool for recent cmake and ninja > 1.5
- if(CMAKE_VERSION VERSION_LESS 3.1.20141117)
- set(cmake_3_2_USES_TERMINAL)
- else()
- set(cmake_3_2_USES_TERMINAL USES_TERMINAL)
- endif()
- set(LIBOMPTARGET_TEST_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING
- "C compiler to use for testing OpenMP offloading library")
- set(LIBOMPTARGET_TEST_CXX_COMPILER ${CMAKE_CXX_COMPILER} CACHE STRING
- "C++ compiler to use for testing OpenMP offloading library")
-
- if (NOT(${LIBOMPTARGET_TEST_C_COMPILER} MATCHES "clang" AND ${LIBOMPTARGET_TEST_CXX_COMPILER} MATCHES "clang"))
+ if (NOT(${OPENMP_TEST_C_COMPILER} MATCHES "clang" AND ${OPENMP_TEST_CXX_COMPILER} MATCHES "clang"))
libomptarget_say("Can only test with Clang compiler!")
libomptarget_warning_say("The check-libomptarget target will not be available!")
return()
endif()
execute_process(
- COMMAND ${LIBOMPTARGET_TEST_C_COMPILER} --version
+ COMMAND ${OPENMP_TEST_C_COMPILER} --version
OUTPUT_VARIABLE TEST_COMPILER_VERSION)
string(REGEX MATCH "version ([0-9.]+)" TEST_COMPILER_VERSION ${TEST_COMPILER_VERSION})
if (NOT(TEST_COMPILER_VERSION))
@@ -49,73 +28,19 @@ if(${OPENMP_STANDALONE_BUILD})
libomptarget_warning_say("The check-libomptarget target will not be available!")
return()
endif()
+endif()
- set(LIBOMPTARGET_TEST_OPENMP_FLAG -fopenmp CACHE STRING
- "OpenMP compiler flag to use for testing OpenMP offloading library")
- find_program(LIBOMPTARGET_LLVM_LIT_EXECUTABLE
- NAMES llvm-lit lit.py lit
- PATHS ${OPENMP_LLVM_TOOLS_DIR})
- if(NOT LIBOMPTARGET_LLVM_LIT_EXECUTABLE)
- libomptarget_say("Cannot find llvm-lit.")
- libomptarget_say("Please put llvm-lit in your PATH or set LIBOMPTARGET_LLVM_LIT_EXECUTABLE to its full path or point OPENMP_LLVM_TOOLS_DIR to its directory")
- libomptarget_warning_say("The check-libomptarget target will not be available!")
- return()
- endif()
-
- find_program(LIBOMPTARGET_FILECHECK_EXECUTABLE
- NAMES FileCheck
- PATHS ${OPENMP_LLVM_TOOLS_DIR})
- if(NOT LIBOMPTARGET_FILECHECK_EXECUTABLE)
- libomptarget_say("Cannot find FileCheck.")
- libomptarget_say("Please put FileCheck in your PATH or set LIBOMPTARGET_FILECHECK_EXECUTABLE to its full path or point OPENMP_LLVM_TOOLS_DIR to its directory")
- libomptarget_warning_say("The check-libomptarget target will not be available!")
- return()
- endif()
-
- # Set lit arguments
- # The -j 1 lets the actual tests run with the entire machine.
- # We have one test thread that spawns the tests serially. This allows
- # Each test to use the entire machine.
- set(LIBOMPTARGET_LIT_ARGS_DEFAULT "-sv --show-unsupported --show-xfail -j 1")
- if(MSVC OR XCODE)
- set(LIBOMPTARGET_LIT_ARGS_DEFAULT "${LIBOMPTARGET_LIT_ARGS_DEFAULT} --no-progress-bar")
- endif()
- set(LIBOMPTARGET_LIT_ARGS "${LIBOMPTARGET_LIT_ARGS_DEFAULT}" CACHE STRING
- "Default options for lit")
- separate_arguments(LIBOMPTARGET_LIT_ARGS)
- add_custom_target(check-libomptarget
- COMMAND ${PYTHON_EXECUTABLE} ${LIBOMPTARGET_LLVM_LIT_EXECUTABLE} ${LIBOMPTARGET_LIT_ARGS} ${CMAKE_CURRENT_BINARY_DIR}
- DEPENDS omptarget
- COMMENT "Running libomptarget tests"
- ${cmake_3_2_USES_TERMINAL}
- )
-
+add_openmp_testsuite(check-libomptarget "Running libomptarget tests" ${CMAKE_CURRENT_BINARY_DIR} DEPENDS omptarget omp)
+
+if(${OPENMP_STANDALONE_BUILD})
set(LIBOMPTARGET_OPENMP_HEADER_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/../../runtime/src" CACHE STRING
"Path to folder containing omp.h")
set(LIBOMPTARGET_OPENMP_HOST_RTL_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/../../runtime/src" CACHE STRING
"Path to folder containing libomp.so")
else()
- # LLVM source tree build, test just-built clang
- if(NOT MSVC)
- set(LIBOMPTARGET_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang)
- set(LIBOMPTARGET_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++)
- set(LIBOMPTARGET_FILECHECK_EXECUTABLE ${LLVM_RUNTIME_OUTPUT_INTDIR}/FileCheck)
- else()
- libomptarget_warning_say("Not prepared to run tests on Windows systems.")
- endif()
- set(LIBOMPTARGET_TEST_OPENMP_FLAG -fopenmp=libomp)
- # Use add_lit_testsuite() from LLVM CMake. This also depends on OpenMP
- # implementation because it uses omp.h.
- add_lit_testsuite(check-libomptarget
- "Running libomptarget tests"
- ${CMAKE_CURRENT_BINARY_DIR}
- DEPENDS omptarget omp
- )
-
set(LIBOMPTARGET_OPENMP_HEADER_FOLDER "${LIBOMPTARGET_BINARY_DIR}/../runtime/src")
endif()
# Configure the lit.site.cfg.in file
set(AUTO_GEN_COMMENT "## Autogenerated by libomptarget configuration.\n# Do not edit!")
configure_file(lit.site.cfg.in lit.site.cfg @ONLY)
-
Modified: openmp/trunk/libomptarget/test/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/libomptarget/test/lit.cfg?rev=319343&r1=319342&r2=319343&view=diff
==============================================================================
--- openmp/trunk/libomptarget/test/lit.cfg (original)
+++ openmp/trunk/libomptarget/test/lit.cfg Wed Nov 29 11:31:52 2017
@@ -31,16 +31,15 @@ config.test_exec_root = config.libomptar
config.test_format = lit.formats.ShTest()
# compiler flags
-config.test_cflags = config.test_openmp_flag + \
- " -I " + config.test_source_root + \
+config.test_flags = " -I " + config.test_source_root + \
" -I " + config.omp_header_directory + \
" -L " + config.library_dir;
if config.omp_host_rtl_directory:
- config.test_cflags = config.test_cflags + " -L " + \
+ config.test_flags = config.test_flags + " -L " + \
config.omp_host_rtl_directory
-config.test_cflags = config.test_cflags + " " + config.test_extra_cflags
+config.test_flags = config.test_flags + " " + config.test_extra_flags
if config.libomptarget_debug:
config.available_features.add('libomptarget-debug')
@@ -53,8 +52,8 @@ elif config.operating_system == 'Darwin'
append_dynamic_library_path('DYLD_LIBRARY_PATH', config.library_dir, ":")
append_dynamic_library_path('DYLD_LIBRARY_PATH', \
config.omp_host_rtl_directory, ";")
- config.test_cflags += " -Wl,-rpath," + config.library_dir
- config.test_cflags += " -Wl,-rpath," + config.omp_host_rtl_directory
+ config.test_flags += " -Wl,-rpath," + config.library_dir
+ config.test_flags += " -Wl,-rpath," + config.omp_host_rtl_directory
else: # Unices
append_dynamic_library_path('LD_LIBRARY_PATH', config.library_dir, ":")
append_dynamic_library_path('LD_LIBRARY_PATH', \
@@ -98,9 +97,9 @@ for libomptarget_target in config.libomp
libomptarget_target, \
"%t-" + libomptarget_target))
config.substitutions.append(("%clangxx-" + libomptarget_target, \
- "%clangxx %cflags -fopenmp-targets=" + libomptarget_target))
+ "%clangxx %openmp_flags %flags -fopenmp-targets=" + libomptarget_target))
config.substitutions.append(("%clang-" + libomptarget_target, \
- "%clang %cflags -fopenmp-targets=" + libomptarget_target))
+ "%clang %openmp_flags %flags -fopenmp-targets=" + libomptarget_target))
config.substitutions.append(("%fcheck-" + libomptarget_target, \
config.libomptarget_filecheck + " %s"))
else:
@@ -134,5 +133,5 @@ for libomptarget_target in config.libomp
config.substitutions.append(("%clangxx", config.test_cxx_compiler))
config.substitutions.append(("%clang", config.test_c_compiler))
-config.substitutions.append(("%openmp_flag", config.test_openmp_flag))
-config.substitutions.append(("%cflags", config.test_cflags))
+config.substitutions.append(("%openmp_flags", config.test_openmp_flags))
+config.substitutions.append(("%flags", config.test_flags))
Modified: openmp/trunk/libomptarget/test/lit.site.cfg.in
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/libomptarget/test/lit.site.cfg.in?rev=319343&r1=319342&r2=319343&view=diff
==============================================================================
--- openmp/trunk/libomptarget/test/lit.site.cfg.in (original)
+++ openmp/trunk/libomptarget/test/lit.site.cfg.in Wed Nov 29 11:31:52 2017
@@ -1,11 +1,9 @@
@AUTO_GEN_COMMENT@
-config.test_c_compiler = "@LIBOMPTARGET_TEST_C_COMPILER@"
-config.test_cxx_compiler = "@LIBOMPTARGET_TEST_CXX_COMPILER@"
-config.test_openmp_flag = "@LIBOMPTARGET_TEST_OPENMP_FLAG@"
-# For the moment we still need to pass libomptarget explicitly. Once the driver
-# patch, lands, this is not required anymore.
-config.test_extra_cflags = "-lomptarget @LIBOMPTARGET_TEST_CFLAGS@"
+config.test_c_compiler = "@OPENMP_TEST_C_COMPILER@"
+config.test_cxx_compiler = "@OPENMP_TEST_CXX_COMPILER@"
+config.test_openmp_flags = "@OPENMP_TEST_OPENMP_FLAGS@"
+config.test_extra_flags = "@OPENMP_TEST_FLAGS@"
config.libomptarget_obj_root = "@CMAKE_CURRENT_BINARY_DIR@"
config.library_dir = "@LIBOMPTARGET_LIBRARY_DIR@"
config.omp_header_directory = "@LIBOMPTARGET_OPENMP_HEADER_FOLDER@"
@@ -13,9 +11,8 @@ config.omp_host_rtl_directory = "@LIBOMP
config.operating_system = "@CMAKE_SYSTEM_NAME@"
config.libomptarget_all_targets = "@LIBOMPTARGET_ALL_TARGETS@".split()
config.libomptarget_system_targets = "@LIBOMPTARGET_SYSTEM_TARGETS@".split()
-config.libomptarget_filecheck = "@LIBOMPTARGET_FILECHECK_EXECUTABLE@"
+config.libomptarget_filecheck = "@OPENMP_FILECHECK_EXECUTABLE@"
config.libomptarget_debug = @LIBOMPTARGET_DEBUG@
# Let the main config do the real work.
lit_config.load_config(config, "@LIBOMPTARGET_BASE_DIR@/test/lit.cfg")
-
Modified: openmp/trunk/runtime/Build_With_CMake.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/Build_With_CMake.txt?rev=319343&r1=319342&r2=319343&view=diff
==============================================================================
--- openmp/trunk/runtime/Build_With_CMake.txt (original)
+++ openmp/trunk/runtime/Build_With_CMake.txt Wed Nov 29 11:31:52 2017
@@ -174,7 +174,7 @@ Specifies install location of Hwloc. The
hwloc.h in ${LIBOMP_HWLOC_INSTALL_DIR}/include and the library in
${LIBOMP_HWLOC_INSTALL_DIR}/lib.
--DLIBOMP_LLVM_LIT_EXECUTABLE=/path/to/llvm-lit
+-DOPENMP_LLVM_LIT_EXECUTABLE=/path/to/llvm-lit
Default: search in PATH
Specifiy full path to llvm-lit executable for running tests.
Modified: openmp/trunk/runtime/test/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/test/CMakeLists.txt?rev=319343&r1=319342&r2=319343&view=diff
==============================================================================
--- openmp/trunk/runtime/test/CMakeLists.txt (original)
+++ openmp/trunk/runtime/test/CMakeLists.txt Wed Nov 29 11:31:52 2017
@@ -1,15 +1,7 @@
-# CMakeLists.txt file for unit testing OpenMP Library
-include(FindPythonInterp)
-include(CheckTypeSize)
+# CMakeLists.txt file for unit testing OpenMP host runtime library.
include(CheckFunctionExists)
include(CheckLibraryExists)
-if(NOT PYTHONINTERP_FOUND)
- libomp_warning_say("Could not find Python.")
- libomp_warning_say("The check-libomp target will not be available!")
- return()
-endif()
-
# Some tests use math functions
check_library_exists(m sqrt "" LIBOMP_HAVE_LIBM)
# When using libgcc, -latomic may be needed for atomics
@@ -38,75 +30,8 @@ pythonize_bool(LIBOMP_OMPT_OPTIONAL)
pythonize_bool(LIBOMP_HAVE_LIBM)
pythonize_bool(LIBOMP_HAVE_LIBATOMIC)
-set(LIBOMP_TEST_CFLAGS "" CACHE STRING
- "Extra compiler flags to send to the test compiler")
-
-if(${OPENMP_STANDALONE_BUILD})
- # Make sure we can use the console pool for recent cmake and ninja > 1.5
- if(CMAKE_VERSION VERSION_LESS 3.1.20141117)
- set(cmake_3_2_USES_TERMINAL)
- else()
- set(cmake_3_2_USES_TERMINAL USES_TERMINAL)
- endif()
- set(LIBOMP_TEST_COMPILER ${CMAKE_C_COMPILER} CACHE STRING
- "Compiler to use for testing OpenMP library")
- set(LIBOMP_TEST_CXX_COMPILER ${CMAKE_CXX_COMPILER} CACHE STRING
- "Compiler to use for testing OpenMP library")
- set(LIBOMP_TEST_OPENMP_FLAG -fopenmp CACHE STRING
- "OpenMP compiler flag to use for testing OpenMP library")
- find_program(LIBOMP_LLVM_LIT_EXECUTABLE
- NAMES llvm-lit lit.py lit
- PATHS ${OPENMP_LLVM_TOOLS_DIR})
- if(NOT LIBOMP_LLVM_LIT_EXECUTABLE)
- libomp_say("Cannot find llvm-lit.")
- libomp_say("Please put llvm-lit in your PATH, set LIBOMP_LLVM_LIT_EXECUTABLE to its full path or point OPENMP_LLVM_TOOLS_DIR to its directory")
- libomp_warning_say("The check-libomp target will not be available!")
- return()
- endif()
- find_program(FILECHECK_EXECUTABLE
- NAMES FileCheck
- PATHS ${OPENMP_LLVM_TOOLS_DIR})
- if (NOT FILECHECK_EXECUTABLE)
- # set to empty string so that lit can disable dependent tests
- set(FILECHECK_EXECUTABLE "")
- endif()
- # Set lit arguments
- # The -j 1 lets the actual tests run with the entire machine.
- # We have one test thread that spawns the tests serially. This allows
- # Each test to use the entire machine.
- set(LIBOMP_LIT_ARGS_DEFAULT "-sv --show-unsupported --show-xfail")
- if(MSVC OR XCODE)
- set(LIBOMP_LIT_ARGS_DEFAULT "${LIBOMP_LIT_ARGS_DEFAULT} --no-progress-bar")
- endif()
- set(LIBOMP_LIT_ARGS "${LIBOMP_LIT_ARGS_DEFAULT}" CACHE STRING
- "Default options for lit")
- separate_arguments(LIBOMP_LIT_ARGS)
- add_custom_target(check-libomp
- COMMAND ${PYTHON_EXECUTABLE} ${LIBOMP_LLVM_LIT_EXECUTABLE} ${LIBOMP_LIT_ARGS} ${CMAKE_CURRENT_BINARY_DIR}
- DEPENDS omp
- COMMENT "Running libomp tests"
- ${cmake_3_2_USES_TERMINAL}
- )
-else()
- # LLVM source tree build, test just-built clang
- if(NOT MSVC)
- set(LIBOMP_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang)
- set(LIBOMP_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++)
- else()
- set(LIBOMP_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang.exe)
- set(LIBOMP_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++.exe)
- endif()
- set(LIBOMP_TEST_OPENMP_FLAG -fopenmp=libomp)
- set(FILECHECK_EXECUTABLE ${LLVM_RUNTIME_OUTPUT_INTDIR}/FileCheck)
- # Use add_lit_testsuite() from LLVM CMake.
- add_lit_testsuite(check-libomp
- "Running libomp tests"
- ${CMAKE_CURRENT_BINARY_DIR}
- DEPENDS clang clang-headers FileCheck omp
- )
-endif()
+add_openmp_testsuite(check-libomp "Running libomp tests" ${CMAKE_CURRENT_BINARY_DIR} DEPENDS omp)
# Configure the lit.site.cfg.in file
set(AUTO_GEN_COMMENT "## Autogenerated by libomp configuration.\n# Do not edit!")
configure_file(lit.site.cfg.in lit.site.cfg @ONLY)
-
Modified: openmp/trunk/runtime/test/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/test/lit.cfg?rev=319343&r1=319342&r2=319343&view=diff
==============================================================================
--- openmp/trunk/runtime/test/lit.cfg (original)
+++ openmp/trunk/runtime/test/lit.cfg Wed Nov 29 11:31:52 2017
@@ -42,10 +42,10 @@ config.test_exec_root = config.libomp_ob
config.test_format = lit.formats.ShTest()
# compiler flags
-config.test_cflags = " -I " + config.test_source_root + \
+config.test_flags = " -I " + config.test_source_root + \
" -I " + config.omp_header_directory + \
" -L " + config.library_dir + \
- " " + config.test_extra_cflags
+ " " + config.test_extra_flags
# extra libraries
libs = ""
@@ -56,7 +56,7 @@ if config.has_libatomic:
# Allow XFAIL to work
config.target_triple = [ ]
-if re.search('gcc', config.test_compiler) is not None:
+if re.search('gcc', config.test_c_compiler) is not None:
config.available_features.add('gcc')
# Setup environment to find dynamic library at runtime
@@ -67,9 +67,9 @@ if config.using_hwloc:
# Rpath modifications for Darwin
if config.operating_system == 'Darwin':
- config.test_cflags += " -Wl,-rpath," + config.library_dir
+ config.test_flags += " -Wl,-rpath," + config.library_dir
if config.using_hwloc:
- config.test_cflags += " -Wl,-rpath," + config.hwloc_library_dir
+ config.test_flags += " -Wl,-rpath," + config.hwloc_library_dir
# Find the SDK on Darwin
if config.operating_system == 'Darwin':
@@ -79,7 +79,7 @@ if config.operating_system == 'Darwin':
out = out.strip()
res = cmd.wait()
if res == 0 and out:
- config.test_cflags += " -isysroot " + out
+ config.test_flags += " -isysroot " + out
# Disable OMPT tests if FileCheck was not found
if config.has_ompt and config.test_filecheck == "":
@@ -89,7 +89,7 @@ if config.has_ompt and config.test_filec
if config.has_ompt:
config.available_features.add("ompt")
# for callback.h
- config.test_cflags += " -I " + config.test_source_root + "/ompt"
+ config.test_flags += " -I " + config.test_source_root + "/ompt"
if 'Linux' in config.operating_system:
config.available_features.add("linux")
@@ -105,14 +105,14 @@ config.substitutions.append(("%libomp-co
config.substitutions.append(("%libomp-cxx-compile-and-run", \
"%libomp-cxx-compile && %libomp-run"))
config.substitutions.append(("%libomp-cxx-compile", \
- "%clangXX %openmp_flag %cflags -std=c++11 %s -o %t" + libs))
+ "%clangXX %openmp_flags %flags -std=c++11 %s -o %t" + libs))
config.substitutions.append(("%libomp-compile", \
- "%clang %openmp_flag %cflags %s -o %t" + libs))
+ "%clang %openmp_flags %flags %s -o %t" + libs))
config.substitutions.append(("%libomp-run", "%t"))
config.substitutions.append(("%clangXX", config.test_cxx_compiler))
-config.substitutions.append(("%clang", config.test_compiler))
-config.substitutions.append(("%openmp_flag", config.test_openmp_flag))
-config.substitutions.append(("%cflags", config.test_cflags))
+config.substitutions.append(("%clang", config.test_c_compiler))
+config.substitutions.append(("%openmp_flags", config.test_openmp_flags))
+config.substitutions.append(("%flags", config.test_flags))
if config.has_ompt:
config.substitutions.append(("FileCheck", config.test_filecheck))
Modified: openmp/trunk/runtime/test/lit.site.cfg.in
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/test/lit.site.cfg.in?rev=319343&r1=319342&r2=319343&view=diff
==============================================================================
--- openmp/trunk/runtime/test/lit.site.cfg.in (original)
+++ openmp/trunk/runtime/test/lit.site.cfg.in Wed Nov 29 11:31:52 2017
@@ -1,10 +1,10 @@
@AUTO_GEN_COMMENT@
-config.test_compiler = "@LIBOMP_TEST_COMPILER@"
-config.test_cxx_compiler = "@LIBOMP_TEST_CXX_COMPILER@"
-config.test_filecheck = "@FILECHECK_EXECUTABLE@"
-config.test_openmp_flag = "@LIBOMP_TEST_OPENMP_FLAG@"
-config.test_extra_cflags = "@LIBOMP_TEST_CFLAGS@"
+config.test_c_compiler = "@OPENMP_TEST_C_COMPILER@"
+config.test_cxx_compiler = "@OPENMP_TEST_CXX_COMPILER@"
+config.test_filecheck = "@OPENMP_FILECHECK_EXECUTABLE@"
+config.test_openmp_flags = "@OPENMP_TEST_OPENMP_FLAGS@"
+config.test_extra_flags = "@OPENMP_TEST_FLAGS@"
config.libomp_obj_root = "@CMAKE_CURRENT_BINARY_DIR@"
config.library_dir = "@LIBOMP_LIBRARY_DIR@"
config.omp_header_directory = "@LIBOMP_BINARY_DIR@/src"
Modified: openmp/trunk/runtime/test/ompt/loadtool/tool_available.c
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/test/ompt/loadtool/tool_available.c?rev=319343&r1=319342&r2=319343&view=diff
==============================================================================
--- openmp/trunk/runtime/test/ompt/loadtool/tool_available.c (original)
+++ openmp/trunk/runtime/test/ompt/loadtool/tool_available.c Wed Nov 29 11:31:52 2017
@@ -4,7 +4,7 @@
// Note: We should compile the tool without -fopenmp as other tools developer
// would do. Otherwise this test may pass for the wrong reasons on Darwin.
-// RUN: %clang %cflags -DTOOL -shared -fPIC %s -o %T/tool.so
+// RUN: %clang %flags -DTOOL -shared -fPIC %s -o %T/tool.so
// 2. "introducing a dynamically-linked library that includes the toolâs definition of ompt_start_tool into the applicationâs address space"
// 2.1 Link with tool during compilation
// RUN: %libomp-compile -DCODE %T/tool.so && %libomp-run | FileCheck %s
More information about the Openmp-commits
mailing list