diff options
Diffstat (limited to 'final/runtime/test/lit.cfg')
-rw-r--r-- | final/runtime/test/lit.cfg | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/final/runtime/test/lit.cfg b/final/runtime/test/lit.cfg new file mode 100644 index 0000000..e4561eb --- /dev/null +++ b/final/runtime/test/lit.cfg @@ -0,0 +1,130 @@ +# -*- Python -*- vim: set ft=python ts=4 sw=4 expandtab tw=79: +# Configuration file for the 'lit' test runner. + +import os +import re +import subprocess +import lit.formats + +# Tell pylint that we know config and lit_config exist somewhere. +if 'PYLINT_IMPORT' in os.environ: + config = object() + lit_config = object() + +def append_dynamic_library_path(path): + if config.operating_system == 'Windows': + name = 'PATH' + sep = ';' + elif config.operating_system == 'Darwin': + name = 'DYLD_LIBRARY_PATH' + sep = ':' + else: + name = 'LD_LIBRARY_PATH' + sep = ':' + if name in config.environment: + config.environment[name] = path + sep + config.environment[name] + else: + config.environment[name] = path + +# name: The name of this test suite. +config.name = 'libomp' + +# suffixes: A list of file extensions to treat as test files. +config.suffixes = ['.c', '.cpp'] + +# test_source_root: The root path where tests are located. +config.test_source_root = os.path.dirname(__file__) + +# test_exec_root: The root object directory where output is placed +config.test_exec_root = config.libomp_obj_root + +# test format +config.test_format = lit.formats.ShTest() + +# compiler flags +config.test_flags = " -I " + config.test_source_root + \ + " -I " + config.omp_header_directory + \ + " -L " + config.library_dir + \ + " " + config.test_extra_flags + +# extra libraries +libs = "" +if config.has_libm: + libs += " -lm" +if config.has_libatomic: + libs += " -latomic" + +# Allow XFAIL to work +config.target_triple = [ ] +for feature in config.test_compiler_features: + config.available_features.add(feature) + +# Setup environment to find dynamic library at runtime +append_dynamic_library_path(config.library_dir) +if config.using_hwloc: + append_dynamic_library_path(config.hwloc_library_dir) + config.available_features.add('hwloc') + +# Rpath modifications for Darwin +if config.operating_system == 'Darwin': + config.test_flags += " -Wl,-rpath," + config.library_dir + if config.using_hwloc: + config.test_flags += " -Wl,-rpath," + config.hwloc_library_dir + +# Find the SDK on Darwin +if config.operating_system == 'Darwin': + cmd = subprocess.Popen(['xcrun', '--show-sdk-path'], + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = cmd.communicate() + out = out.strip() + res = cmd.wait() + if res == 0 and out: + config.test_flags += " -isysroot " + out + +# Disable OMPT tests if FileCheck was not found +if config.has_ompt and config.test_filecheck == "": + lit_config.note("Not testing OMPT because FileCheck was not found") + config.has_ompt = False + +if config.has_ompt: + config.available_features.add("ompt") + # for callback.h + config.test_flags += " -I " + config.test_source_root + "/ompt" + +if 'Linux' in config.operating_system: + config.available_features.add("linux") + +# to run with icc INTEL_LICENSE_FILE must be set +if 'INTEL_LICENSE_FILE' in os.environ: + config.environment['INTEL_LICENSE_FILE'] = os.environ['INTEL_LICENSE_FILE'] + + +# substitutions +config.substitutions.append(("%libomp-compile-and-run", \ + "%libomp-compile && %libomp-run")) +config.substitutions.append(("%libomp-cxx-compile-and-run", \ + "%libomp-cxx-compile && %libomp-run")) +config.substitutions.append(("%libomp-cxx-compile", \ + "%clangXX %openmp_flags %flags -std=c++11 %s -o %t" + libs)) +config.substitutions.append(("%libomp-compile", \ + "%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_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)) + config.substitutions.append(("%sort-threads", "sort --numeric-sort --stable")) + if config.operating_system == 'Windows': + # No such environment variable on Windows. + config.substitutions.append(("%preload-tool", "true ||")) + config.substitutions.append(("%no-as-needed-flag", "-Wl,--no-as-needed")) + elif config.operating_system == 'Darwin': + config.substitutions.append(("%preload-tool", "env DYLD_INSERT_LIBRARIES=%T/tool.so")) + # No such linker flag on Darwin. + config.substitutions.append(("%no-as-needed-flag", "")) + else: + config.substitutions.append(("%preload-tool", "env LD_PRELOAD=%T/tool.so")) + config.substitutions.append(("%no-as-needed-flag", "-Wl,--no-as-needed")) |