[Lldb-commits] [PATCH] Skip fdleak tests on android

Tamas Berghammer tberghammer at google.com
Thu Mar 12 10:11:26 PDT 2015


Hi labath,

Skip fdleak tests on android

Android have more file descriptor opened by the shell what are inherited to the process (different ones on device and on emulator).

http://reviews.llvm.org/D8299

Files:
  test/functionalities/avoids-fd-leak/TestFdLeak.py
  test/lldbtest.py

Index: test/functionalities/avoids-fd-leak/TestFdLeak.py
===================================================================
--- test/functionalities/avoids-fd-leak/TestFdLeak.py
+++ test/functionalities/avoids-fd-leak/TestFdLeak.py
@@ -14,11 +14,13 @@
 
     @expectedFailure(lambda x: sys.version_info >= (2, 7, 8), "bugs.freebsd.org/197376") # python random leaks fd
     @skipIfWindows # The check for descriptor leakage needs to be implemented differently here.
+    @skipIfTargetAndroid # Android have some other file descriptors open by the shell
     def test_fd_leak_basic (self):
         self.do_test([])
 
     @expectedFailure(lambda x: sys.version_info >= (2, 7, 8), "bugs.freebsd.org/197376") # python random leaks fd
     @skipIfWindows # The check for descriptor leakage needs to be implemented differently here.
+    @skipIfTargetAndroid # Android have some other file descriptors open by the shell
     def test_fd_leak_log (self):
         self.do_test(["log enable -f '/dev/null' lldb commands"])
 
@@ -40,13 +42,14 @@
 
     @expectedFailure(lambda x: sys.version_info >= (2, 7, 8), "bugs.freebsd.org/197376") # python random leaks fd
     @skipIfWindows # The check for descriptor leakage needs to be implemented differently here.
+    @skipIfTargetAndroid # Android have some other file descriptors open by the shell
     def test_fd_leak_multitarget (self):
         self.buildDefault()
         exe = os.path.join (os.getcwd(), "a.out")
 
         target = self.dbg.CreateTarget(exe)
-	breakpoint = target.BreakpointCreateBySourceRegex ('Set breakpoint here', lldb.SBFileSpec ("main.c", False))
-	self.assertTrue(breakpoint, VALID_BREAKPOINT)
+        breakpoint = target.BreakpointCreateBySourceRegex ('Set breakpoint here', lldb.SBFileSpec ("main.c", False))
+        self.assertTrue(breakpoint, VALID_BREAKPOINT)
 
         process1 = target.LaunchSimple (None, None, self.get_process_working_directory())
         self.assertTrue(process1, PROCESS_IS_VALID)
Index: test/lldbtest.py
===================================================================
--- test/lldbtest.py
+++ test/lldbtest.py
@@ -778,6 +778,21 @@
             func(*args, **kwargs)
     return wrapper
 
+def skipIfTargetAndroid(func):
+    """Decorate the item to skip tests that should be skipped when the target is Android."""
+    if isinstance(func, type) and issubclass(func, unittest2.TestCase):
+        raise Exception("@skipIfTargetAndroid can only be used to decorate a test method")
+    @wraps(func)
+    def wrapper(*args, **kwargs):
+        from unittest2 import case
+        self = args[0]
+        triple = self.dbg.GetSelectedPlatform().GetTriple()
+        if re.match(".*-.*-.*-android", triple):
+            self.skipTest("skip on Android target")
+        else:
+            func(*args, **kwargs)
+    return wrapper
+
 def skipUnlessCompilerRt(func):
     """Decorate the item to skip tests if testing remotely."""
     if isinstance(func, type) and issubclass(func, unittest2.TestCase):

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D8299.21846.patch
Type: text/x-patch
Size: 3010 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20150312/d476b955/attachment.bin>


More information about the lldb-commits mailing list