[asan] Make the Darwin/dead-strip.c test require El Capitan or newer
authorRyan Govostes <rzg@apple.com>
Tue, 29 Mar 2016 18:54:29 +0000 (18:54 +0000)
committerRyan Govostes <rzg@apple.com>
Tue, 29 Mar 2016 18:54:29 +0000 (18:54 +0000)
llvm-svn: 264766

compiler-rt/test/asan/TestCases/Darwin/dead-strip.c
compiler-rt/test/lit.common.cfg

index 3b9bb3d..e016e37 100644 (file)
@@ -5,6 +5,7 @@
 // detected after dead stripping has been performed. This proves that the
 // runtime is able to register globals in the __DATA,__asan_globals section.
 
+// REQUIRES: osx-ld64-live_support
 // RUN: %clang_asan -Xlinker -dead_strip -o %t %s
 // RUN: llvm-nm -format=posix %t | FileCheck --check-prefix NM-CHECK %s
 // RUN: not %run %t 2>&1 | FileCheck --check-prefix ASAN-CHECK %s
index 595a9e9..e0f9b27 100644 (file)
@@ -119,12 +119,14 @@ if config.can_symbolize:
 lit.util.usePlatformSdkOnDarwin(config, lit_config)
 
 if config.host_os == 'Darwin':
-  ld_cmd = subprocess.Popen(["bash", "-c", "sw_vers -productVersion | awk -F '.' '{print $1 \".\" $2}'"], stdout = subprocess.PIPE)
-  ld_out = ld_cmd.stdout.read().decode()
-  ld_cmd.wait()
-  osx_version = float(ld_out)
-  if osx_version >= 10.11:
-    config.available_features.add('osx-autointerception')
+  try:
+    osx_version = subprocess.check_output(["sw_vers", "-productVersion"])
+    osx_version = tuple(int(x) for x in osx_version.split('.'))
+    if osx_version >= (10, 11):
+      config.available_features.add('osx-autointerception')
+      config.available_features.add('osx-ld64-live_support')
+  except:
+    pass
 
 sancovcc_path = os.path.join(llvm_tools_dir, "sancov") 
 if os.path.exists(sancovcc_path):