Vedant Kumar efab30c73e Disable the asan-deque.cpp integration test for AppleLLDB < v1000
Some of Apple's public CI nodes ship an lldb which has trouble debugging
the asan-deque.cpp test. Specifically, that lldb appears to either parse
location lists in the test program incorrectly or to have a broken
std::deque data formatter.

We don't want to work around this by weakening the integration test, and
we're unable to update the lldb version on the CI node at the moment.

The compromise is to require AppleLLDB >= 1000 when AppleLLDB is being
used to debug this test.

Reviewed (in person) by Adrian Prantl.

Bot failure:
http://lab.llvm.org:8080/green/job/clang-stage1-configure-RA/48074

rdar://42892721

llvm-svn: 338937
2018-08-04 00:02:48 +00:00

73 lines
2.1 KiB
Python

# -*- Python -*-
import os
import platform
import re
import subprocess
import tempfile
import commands
import lit.formats
import lit.util
from lit.llvm import llvm_config
from lit.llvm.subst import ToolSubst
from lit.llvm.subst import FindTool
# Configuration file for the 'lit' test runner.
# name: The name of this test suite.
config.name = 'debuginfo-tests'
# 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.
config.test_format = lit.formats.ShTest(not llvm_config.use_lit_shell)
# suffixes: A list of file extensions to treat as test files.
config.suffixes = ['.c', '.cpp', '.m']
# excludes: A list of directories to exclude from the testsuite. The 'Inputs'
# subdirectories contain auxiliary inputs for various tests in their parent
# directories.
config.excludes = ['Inputs']
# test_source_root: The root path where tests are located.
config.test_source_root = os.path.join(config.debuginfo_tests_src_root)
# test_exec_root: The root path where tests should be run.
config.test_exec_root = config.debuginfo_tests_obj_root
llvm_config.use_default_substitutions()
# clang_src_dir is not used by these tests, but is required by
# use_clang(), so set it to "".
if not hasattr(config, 'clang_src_dir'):
config.clang_src_dir = ""
llvm_config.use_clang()
if config.llvm_use_sanitizer:
# Propagate path to symbolizer for ASan/MSan.
llvm_config.with_system_environment(
['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH'])
tool_dirs = [config.llvm_tools_dir]
tools = [
ToolSubst('%test_debuginfo', command=os.path.join(
config.debuginfo_tests_src_root, 'test_debuginfo.pl')),
]
llvm_config.add_tool_substitutions(tools, tool_dirs)
lit.util.usePlatformSdkOnDarwin(config, lit_config)
if platform.system() == 'Darwin':
xcode_lldb_vers = commands.getoutput("xcrun lldb --version")
match = re.search('lldb-(\d+)', xcode_lldb_vers)
if match:
apple_lldb_vers = int(match.group(1))
if apple_lldb_vers < 1000:
config.available_features.add('apple-lldb-pre-1000')