This revision was automatically updated to reflect the committed changes.
Closed by commit rL286490: [Test-Suite] Fix all the sanitizer tests to be based 
on compiler capabilities (authored by cbieneman).

Changed prior to commit:
  https://reviews.llvm.org/D26513?vs=77506&id=77518#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D26513

Files:
  lldb/trunk/packages/Python/lldbsuite/test/decorators.py
  
lldb/trunk/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py
  
lldb/trunk/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py
  
lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/basic/TestTsanBasic.py
  
lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/cpp_global_location/TestTsanCPPGlobalLocation.py
  
lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/global_location/TestTsanGlobalLocation.py
  
lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/multiple/TestTsanMultiple.py
  
lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/thread_leak/TestTsanThreadLeak.py
  
lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/thread_numbers/TestTsanThreadNumbers.py

Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/multiple/TestTsanMultiple.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/multiple/TestTsanMultiple.py
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/multiple/TestTsanMultiple.py
@@ -20,7 +20,6 @@
         bugnumber="non-core functionality, need to reenable and fix later (DES 2014.11.07)")
     @skipIfFreeBSD  # llvm.org/pr21136 runtimes not yet available by default
     @skipIfRemote
-    @skipUnlessCompilerRt
     @skipUnlessThreadSanitizer
     def test(self):
         self.build()
Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/cpp_global_location/TestTsanCPPGlobalLocation.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/cpp_global_location/TestTsanCPPGlobalLocation.py
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/cpp_global_location/TestTsanCPPGlobalLocation.py
@@ -20,7 +20,6 @@
         bugnumber="non-core functionality, need to reenable and fix later (DES 2014.11.07)")
     @skipIfFreeBSD  # llvm.org/pr21136 runtimes not yet available by default
     @skipIfRemote
-    @skipUnlessCompilerRt
     @skipUnlessThreadSanitizer
     def test(self):
         self.build()
Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/global_location/TestTsanGlobalLocation.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/global_location/TestTsanGlobalLocation.py
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/global_location/TestTsanGlobalLocation.py
@@ -20,7 +20,6 @@
         bugnumber="non-core functionality, need to reenable and fix later (DES 2014.11.07)")
     @skipIfFreeBSD  # llvm.org/pr21136 runtimes not yet available by default
     @skipIfRemote
-    @skipUnlessCompilerRt
     @skipUnlessThreadSanitizer
     def test(self):
         self.build()
Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/thread_leak/TestTsanThreadLeak.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/thread_leak/TestTsanThreadLeak.py
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/thread_leak/TestTsanThreadLeak.py
@@ -20,7 +20,6 @@
         bugnumber="non-core functionality, need to reenable and fix later (DES 2014.11.07)")
     @skipIfFreeBSD  # llvm.org/pr21136 runtimes not yet available by default
     @skipIfRemote
-    @skipUnlessCompilerRt
     @skipUnlessThreadSanitizer
     def test(self):
         self.build()
Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/thread_numbers/TestTsanThreadNumbers.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/thread_numbers/TestTsanThreadNumbers.py
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/thread_numbers/TestTsanThreadNumbers.py
@@ -20,7 +20,6 @@
         bugnumber="non-core functionality, need to reenable and fix later (DES 2014.11.07)")
     @skipIfFreeBSD  # llvm.org/pr21136 runtimes not yet available by default
     @skipIfRemote
-    @skipUnlessCompilerRt
     @skipUnlessThreadSanitizer
     def test(self):
         self.build()
Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/basic/TestTsanBasic.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/basic/TestTsanBasic.py
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/tsan/basic/TestTsanBasic.py
@@ -20,7 +20,6 @@
         bugnumber="non-core functionality, need to reenable and fix later (DES 2014.11.07)")
     @skipIfFreeBSD  # llvm.org/pr21136 runtimes not yet available by default
     @skipIfRemote
-    @skipUnlessCompilerRt
     @skipUnlessThreadSanitizer
     def test(self):
         self.build()
Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py
@@ -23,7 +23,7 @@
         bugnumber="non-core functionality, need to reenable and fix later (DES 2014.11.07)")
     @skipIfFreeBSD  # llvm.org/pr21136 runtimes not yet available by default
     @skipIfRemote
-    @skipUnlessCompilerRt
+    @skipUnlessAddressSanitizer
     @expectedFailureAll(archs=['i386'], bugnumber="rdar://28658860")
     def test(self):
         self.build()
Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py
@@ -23,7 +23,7 @@
         bugnumber="non-core functionality, need to reenable and fix later (DES 2014.11.07)")
     @skipIfFreeBSD  # llvm.org/pr21136 runtimes not yet available by default
     @skipIfRemote
-    @skipUnlessCompilerRt
+    @skipUnlessAddressSanitizer
     def test(self):
         self.build()
         self.asan_tests()
Index: lldb/trunk/packages/Python/lldbsuite/test/decorators.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/decorators.py
+++ lldb/trunk/packages/Python/lldbsuite/test/decorators.py
@@ -656,31 +656,6 @@
             archs))
 
 
-def skipUnlessCompilerRt(func):
-    """Decorate the item to skip tests if testing remotely."""
-    def is_compiler_rt_missing():
-        compilerRtPath = os.path.join(
-            os.environ["LLDB_SRC"],
-            "..",
-            "..",
-            "..",
-            "llvm",
-            "projects",
-            "compiler-rt")
-        if not os.path.exists(compilerRtPath):
-            compilerRtPath = os.path.join(
-            os.environ["LLDB_SRC"],
-            "..",
-            "..",
-            "..",
-            "llvm",
-            "runtimes",
-            "compiler-rt")
-        return "compiler-rt not found" if not os.path.exists(
-            compilerRtPath) else None
-    return skipTestIfFn(is_compiler_rt_missing)(func)
-
-
 def skipUnlessThreadSanitizer(func):
     """Decorate the item to skip test unless Clang -fsanitize=thread is supported."""
 
@@ -701,3 +676,19 @@
             return "Compiler cannot compile with -fsanitize=thread"
         return None
     return skipTestIfFn(is_compiler_clang_with_thread_sanitizer)(func)
+
+def skipUnlessAddressSanitizer(func):
+    """Decorate the item to skip test unless Clang -fsanitize=thread is supported."""
+
+    def is_compiler_with_address_sanitizer(self):
+        compiler_path = self.getCompiler()
+        compiler = os.path.basename(compiler_path)
+        f = tempfile.NamedTemporaryFile()
+        cmd = "echo 'int main() {}' | %s -x c -o %s -" % (compiler_path, f.name)
+        if os.popen(cmd).close() is not None:
+            return None  # The compiler cannot compile at all, let's *not* skip the test
+        cmd = "echo 'int main() {}' | %s -fsanitize=address -x c -o %s -" % (compiler_path, f.name)
+        if os.popen(cmd).close() is not None:
+            return "Compiler cannot compile with -fsanitize=address"
+        return None
+    return skipTestIfFn(is_compiler_with_address_sanitizer)(func)
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to