| # -*- Python -*- |
| import os |
| import platform |
| import re |
| import subprocess |
| |
| import lit.formats |
| |
| # Allow import of our local utilities. |
| sys.path.append(os.path.dirname(os.path.dirname(__file__))) |
| import DEUtils |
| |
| # It will validate you. That's what it does. That's all it does. |
| config.name = 'The Validator' |
| |
| # Load common definitions. |
| lit_config.load_config(config, lit_config.params['site']) |
| |
| # Tweak PATH for Win32 |
| if platform.system() == 'Windows': |
| # Seek sane tools in directories and set to $PATH. |
| path = getattr(config, 'lit_tools_dir', None) |
| path = lit_config.getToolsPath(path, |
| config.environment['PATH'], |
| ['cmp.exe', 'grep.exe', 'sed.exe']) |
| if path is not None: |
| path = os.path.pathsep.join((path, |
| config.environment['PATH'])) |
| config.environment['PATH'] = path |
| # Tweak the PATH to include the tools dir. |
| path = os.path.pathsep.join((config.llvm_tools_dir, config.environment['PATH'])) |
| config.environment['PATH'] = path |
| |
| |
| # testFormat: The test format to use to interpret tests. |
| # |
| # For now we require '&&' between commands, until they get globally killed and |
| # the test runner updated. |
| execute_external = (platform.system() != 'Windows' |
| or lit_config.getBashPath() not in [None, ""]) |
| config.test_format = lit.formats.ShTest(execute_external) |
| |
| # suffixes: A list of file extensions to treat as test files. |
| config.suffixes = [] |
| for language in DEUtils.getSupportedLanguages(config.gcc_executable): |
| config.suffixes = config.suffixes + DEUtils.getSuffixesForLanguage(language) |
| |
| # test_source_root: The root path where tests are located. |
| config.test_source_root = os.path.dirname(__file__) |
| |
| # test_exec_root: The root path where tests should be run. |
| config.test_exec_root = config.test_output_dir + '/validator/' |
| |
| # When running under valgrind, we mangle '-vg' onto the end of the triple so we |
| # can check it with XFAIL and XTARGET. |
| if lit_config.useValgrind: |
| config.target_triple += '-vg' |
| |
| # %dragonegg means: run dragonegg and output LLVM IR. |
| config.substitutions.append( ('%dragonegg', '%s -fplugin=%s ' |
| '-fplugin-arg-dragonegg-emit-ir' % |
| (config.gcc_executable, config.dragonegg_plugin))) |
| |
| # %eggdragon means: run dragonegg and output target assembler. |
| config.substitutions.append( ('%eggdragon', '%s -fplugin=%s ' % |
| (config.gcc_executable, config.dragonegg_plugin))) |