forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			191 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			191 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			Python
		
	
	
	
# -*- Python -*- vim: set ft=python ts=4 sw=4 expandtab tw=79:
 | 
						|
# Configuration file for the 'lit' test runner.
 | 
						|
 | 
						|
import os
 | 
						|
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()
 | 
						|
 | 
						|
# Use the CUDA device as suggested by the env
 | 
						|
if 'CUDA_VISIBLE_DEVICES' in os.environ:
 | 
						|
    config.environment['CUDA_VISIBLE_DEVICES'] = os.environ['CUDA_VISIBLE_DEVICES']
 | 
						|
 | 
						|
# Allow running the tests with omptarget debug output
 | 
						|
if 'LIBOMPTARGET_DEBUG' in os.environ:
 | 
						|
    config.environment['LIBOMPTARGET_DEBUG'] = os.environ['LIBOMPTARGET_DEBUG']
 | 
						|
 | 
						|
def append_dynamic_library_path(name, value, sep):
 | 
						|
    if name in config.environment:
 | 
						|
        config.environment[name] = value + sep + config.environment[name]
 | 
						|
    else:
 | 
						|
        config.environment[name] = value
 | 
						|
 | 
						|
# name: The name of this test suite.
 | 
						|
config.name = 'libomptarget :: ' + config.libomptarget_current_target
 | 
						|
 | 
						|
# suffixes: A list of file extensions to treat as test files.
 | 
						|
config.suffixes = ['.c', '.cpp', '.cc']
 | 
						|
 | 
						|
# 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.libomptarget_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;
 | 
						|
 | 
						|
if config.omp_host_rtl_directory:
 | 
						|
    config.test_flags = config.test_flags + " -L " + \
 | 
						|
        config.omp_host_rtl_directory
 | 
						|
 | 
						|
config.test_flags = config.test_flags + " " + config.test_extra_flags
 | 
						|
 | 
						|
# Allow REQUIRES / UNSUPPORTED / XFAIL to work
 | 
						|
config.target_triple = [ ]
 | 
						|
for feature in config.test_compiler_features:
 | 
						|
    config.available_features.add(feature)
 | 
						|
 | 
						|
if config.libomptarget_debug:
 | 
						|
  config.available_features.add('libomptarget-debug')
 | 
						|
 | 
						|
config.available_features.add(config.libomptarget_current_target)
 | 
						|
 | 
						|
# Setup environment to find dynamic library at runtime
 | 
						|
if config.operating_system == 'Windows':
 | 
						|
    append_dynamic_library_path('PATH', config.library_dir, ";")
 | 
						|
    append_dynamic_library_path('PATH', config.omp_host_rtl_directory, ";")
 | 
						|
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_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', \
 | 
						|
        config.omp_host_rtl_directory, ":")
 | 
						|
    if config.cuda_libdir:
 | 
						|
        append_dynamic_library_path('LD_LIBRARY_PATH', config.cuda_libdir, ":")
 | 
						|
    append_dynamic_library_path('LIBRARY_PATH', config.library_dir, ":")
 | 
						|
    append_dynamic_library_path('LIBRARY_PATH', \
 | 
						|
        config.omp_host_rtl_directory, ":")
 | 
						|
 | 
						|
# substitutions
 | 
						|
# - for targets that exist in the system create the actual command.
 | 
						|
# - for valid targets that do not exist in the system, return false, so that the
 | 
						|
#   same test can be used for different targets.
 | 
						|
 | 
						|
# Scan all the valid targets.
 | 
						|
for libomptarget_target in config.libomptarget_all_targets:
 | 
						|
    # Is this target in the current system? If so create a compile, run and test
 | 
						|
    # command. Otherwise create command that return false.
 | 
						|
    if libomptarget_target == config.libomptarget_current_target:
 | 
						|
        config.substitutions.append(("%libomptarget-compilexx-run-and-check-generic", 
 | 
						|
            "%libomptarget-compilexx-run-and-check-" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%libomptarget-compile-run-and-check-generic",
 | 
						|
            "%libomptarget-compile-run-and-check-" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%libomptarget-compilexx-and-run-generic",
 | 
						|
            "%libomptarget-compilexx-and-run-" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%libomptarget-compile-and-run-generic",
 | 
						|
            "%libomptarget-compile-and-run-" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%libomptarget-compilexx-generic",
 | 
						|
            "%libomptarget-compilexx-" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%libomptarget-compile-generic",
 | 
						|
            "%libomptarget-compile-" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%libomptarget-run-generic",
 | 
						|
            "%libomptarget-run-" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%libomptarget-run-fail-generic",
 | 
						|
            "%libomptarget-run-fail-" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%clangxx-generic",
 | 
						|
            "%clangxx-" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%clang-generic",
 | 
						|
            "%clang-" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%fcheck-generic",
 | 
						|
            config.libomptarget_filecheck + " %s"))
 | 
						|
 | 
						|
 | 
						|
        config.substitutions.append(("%libomptarget-compilexx-run-and-check-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "%libomptarget-compilexx-and-run-" + libomptarget_target + \
 | 
						|
            " | " + config.libomptarget_filecheck + " %s"))
 | 
						|
        config.substitutions.append(("%libomptarget-compile-run-and-check-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "%libomptarget-compile-and-run-" + libomptarget_target + \
 | 
						|
            " | " + config.libomptarget_filecheck + " %s"))
 | 
						|
        config.substitutions.append(("%libomptarget-compilexx-and-run-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "%libomptarget-compilexx-" + libomptarget_target + " && " + \
 | 
						|
            "%libomptarget-run-" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%libomptarget-compile-and-run-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "%libomptarget-compile-" + libomptarget_target + " && " + \
 | 
						|
            "%libomptarget-run-" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%libomptarget-compilexx-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "%clangxx-" + libomptarget_target + " %s -o %t"))
 | 
						|
        config.substitutions.append(("%libomptarget-compile-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "%clang-" + libomptarget_target + " %s -o %t"))
 | 
						|
        config.substitutions.append(("%libomptarget-run-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "%t"))
 | 
						|
        config.substitutions.append(("%libomptarget-run-fail-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "%not --crash %t"))
 | 
						|
        config.substitutions.append(("%clangxx-" + libomptarget_target, \
 | 
						|
            "%clangxx %openmp_flags %cuda_flags %flags -fopenmp-targets=" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%clang-" + libomptarget_target, \
 | 
						|
            "%clang %openmp_flags %cuda_flags %flags -fopenmp-targets=" + libomptarget_target))
 | 
						|
        config.substitutions.append(("%fcheck-" + libomptarget_target, \
 | 
						|
            config.libomptarget_filecheck + " %s"))
 | 
						|
    else:
 | 
						|
        config.substitutions.append(("%libomptarget-compile-run-and-check-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "echo ignored-command"))
 | 
						|
        config.substitutions.append(("%libomptarget-compilexx-run-and-check-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "echo ignored-command"))
 | 
						|
        config.substitutions.append(("%libomptarget-compile-and-run-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "echo ignored-command"))
 | 
						|
        config.substitutions.append(("%libomptarget-compilexx-and-run-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "echo ignored-command"))
 | 
						|
        config.substitutions.append(("%libomptarget-compilexx-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "echo ignored-command"))
 | 
						|
        config.substitutions.append(("%libomptarget-compile-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "echo ignored-command"))
 | 
						|
        config.substitutions.append(("%libomptarget-run-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "echo ignored-command"))
 | 
						|
        config.substitutions.append(("%libomptarget-run-fail-" + \
 | 
						|
            libomptarget_target, \
 | 
						|
            "echo ignored-command"))
 | 
						|
        config.substitutions.append(("%clang-" + libomptarget_target, \
 | 
						|
            "echo ignored-command"))
 | 
						|
        config.substitutions.append(("%clangxx-" + libomptarget_target, \
 | 
						|
            "echo ignored-command"))
 | 
						|
        config.substitutions.append(("%fcheck-" + libomptarget_target, \
 | 
						|
            "echo ignored-command"))
 | 
						|
 | 
						|
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))
 | 
						|
if config.cuda_path:
 | 
						|
  config.substitutions.append(("%cuda_flags", "--cuda-path=" + config.cuda_path))
 | 
						|
else:
 | 
						|
  config.substitutions.append(("%cuda_flags", ""))
 | 
						|
config.substitutions.append(("%flags", config.test_flags))
 | 
						|
config.substitutions.append(("%not", config.libomptarget_not))
 |