[Lldb-commits] [lldb] r253273 - Python 3 - Skip a certain test for a particular (swig, python) combo.

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Mon Nov 16 15:58:20 PST 2015


Author: zturner
Date: Mon Nov 16 17:58:20 2015
New Revision: 253273

URL: http://llvm.org/viewvc/llvm-project?rev=253273&view=rev
Log:
Python 3 - Skip a certain test for a particular (swig,python) combo.

Current versions of SWIG have a bug with Python 3 that causes
Python to assert when iterating over a generator.  This patch
skips the test for the right combination of Python version and
SWIG version.  I'm attempting to upstream a patch to SWIG to
fix this in a subsequent as-of-yet unreleased version, but
I don't know how long that will take.

Modified:
    lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py
    lldb/trunk/packages/Python/lldbsuite/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py

Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py?rev=253273&r1=253272&r2=253273&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py Mon Nov 16 17:58:20 2015
@@ -40,6 +40,7 @@ import collections
 from distutils.version import LooseVersion
 import gc
 import glob
+import inspect
 import os, sys, traceback
 import os.path
 import re
@@ -1109,7 +1110,13 @@ def skipIf(bugnumber=None, oslist=None,
                 debug_info_passes and
                 swig_version_passes and
                 py_version_passes)
-    return skipTestIfFn(fn, bugnumber, skipReason="skipping because os:%s compiler: %s %s arch: %s debug info: %s"%(oslist, compiler, compiler_version, archs, debug_info))
+
+    local_vars = locals()
+    args = [x for x in inspect.getargspec(skipIf).args]
+    arg_vals = [eval(x, globals(), local_vars) for x in args]
+    args = [x for x in zip(args, arg_vals) if x[1] is not None]
+    reasons = ['%s=%s' % (x, str(y)) for (x,y) in args]
+    return skipTestIfFn(fn, bugnumber, skipReason='skipping because ' + ' && '.join(reasons))
 
 def skipIfDebugInfo(bugnumber=None, debug_info=None):
     return skipIf(bugnumber=bugnumber, debug_info=debug_info)

Modified: lldb/trunk/packages/Python/lldbsuite/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py?rev=253273&r1=253272&r2=253273&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py Mon Nov 16 17:58:20 2015
@@ -227,6 +227,8 @@ class APIDefaultConstructorTestCase(Test
 
     @add_test_categories(['pyapi'])
     @no_debug_info_test
+    # Py3 asserts due to a bug in SWIG.  Trying to upstream a patch to fix this in 3.0.8
+    @skipIf(py_version=['>=', (3,0)], swig_version=['<', (3,0,8)])
     def test_SBModule(self):
         obj = lldb.SBModule()
         if self.TraceOn():




More information about the lldb-commits mailing list