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
GitOrigin-RevId: efab30c73ee9793c780665fbd46a68aa5ac2a138
diff --git a/asan-deque.cpp b/asan-deque.cpp
index 6e6cdfd..fe82db5 100644
--- a/asan-deque.cpp
+++ b/asan-deque.cpp
@@ -3,7 +3,7 @@
 // REQUIRES: not_asan
 //           Zorg configures the ASAN stage2 bots to not build the asan
 //           compiler-rt. Only run this test on non-asanified configurations.
-
+// UNSUPPORTED: apple-lldb-pre-1000
 #include <deque>
 
 struct A {
diff --git a/lit.cfg.py b/lit.cfg.py
index cd20eaa..6b47dd5 100644
--- a/lit.cfg.py
+++ b/lit.cfg.py
@@ -5,6 +5,7 @@
 import re
 import subprocess
 import tempfile
+import commands
 
 import lit.formats
 import lit.util
@@ -61,3 +62,11 @@
 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')