| # -*- Python -*- | 
 |  | 
 | from lit import Test | 
 | import lit.formats | 
 | import lit.util | 
 | import os | 
 | import subprocess | 
 |  | 
 | def getSysrootFlagsOnDarwin(config, lit_config): | 
 |     # On Darwin, support relocatable SDKs by providing Clang with a | 
 |     # default system root path. | 
 |     if 'darwin' in config.target_triple: | 
 |         try: | 
 |             out = subprocess.check_output(['xcrun', '--show-sdk-path']).strip() | 
 |             res = 0 | 
 |         except OSError: | 
 |             res = -1 | 
 |         if res == 0 and out: | 
 |             sdk_path = out | 
 |             lit_config.note('using SDKROOT: %r' % sdk_path) | 
 |             return '-isysroot %s' % sdk_path | 
 |     return '' | 
 |  | 
 | sysroot_flags = getSysrootFlagsOnDarwin(config, lit_config) | 
 |  | 
 | config.clang = os.path.realpath(lit.util.which('clang', config.clang_tools_dir)).replace('\\', '/') | 
 |  | 
 | config.name = 'Clang Perf Training' | 
 | config.suffixes = ['.c', '.cpp', '.m', '.mm', '.cu', '.ll', '.cl', '.s', '.S', '.modulemap'] | 
 |  | 
 | dtrace_wrapper = '%s %s/perf-helper.py dtrace' % (config.python_exe, config.test_source_root) | 
 | dtrace_wrapper_cc1 = '%s %s/perf-helper.py dtrace --cc1' % (config.python_exe, config.test_source_root) | 
 |  | 
 | if 'darwin' in config.target_triple: | 
 |     lit_config.note('using DTrace oneshot probe') | 
 |     dtrace_wrapper = '%s --use-oneshot' % dtrace_wrapper | 
 |     dtrace_wrapper_cc1 = '%s --use-oneshot' % dtrace_wrapper_cc1 | 
 |  | 
 | use_lit_shell = os.environ.get("LIT_USE_INTERNAL_SHELL") | 
 | config.test_format = lit.formats.ShTest(use_lit_shell == "0") | 
 | config.substitutions.append( ('%clang_cpp_skip_driver', ' %s %s --driver-mode=g++ %s ' % (dtrace_wrapper_cc1, config.clang, sysroot_flags))) | 
 | config.substitutions.append( ('%clang_cpp', ' %s %s --driver-mode=g++ %s ' % (dtrace_wrapper, config.clang, sysroot_flags))) | 
 | config.substitutions.append( ('%clang_skip_driver', ' %s %s %s ' % (dtrace_wrapper_cc1, config.clang, sysroot_flags))) | 
 | config.substitutions.append( ('%clang', ' %s %s %s ' % (dtrace_wrapper, config.clang, sysroot_flags) ) ) | 
 | config.substitutions.append( ('%test_root', config.test_exec_root ) ) | 
 |  |