summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite')
-rw-r--r--lldb/packages/Python/lldbsuite/test/decorators.py12
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py3
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py3
-rw-r--r--lldb/packages/Python/lldbsuite/test/lldbplatform.py44
-rw-r--r--lldb/packages/Python/lldbsuite/test/lldbplatformutil.py2
5 files changed, 57 insertions, 7 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py
index 4a667cd053c..d23e0d85efe 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -4,6 +4,7 @@ from __future__ import absolute_import
# System modules
from distutils.version import LooseVersion, StrictVersion
from functools import wraps
+import itertools
import os
import re
import sys
@@ -20,6 +21,7 @@ from . import configuration
from . import test_categories
from .result_formatter import EventBuilder
from lldbsuite.support import funcutils
+from lldbsuite.test import lldbplatform
from lldbsuite.test import lldbplatformutil
class DecorateMode:
@@ -138,8 +140,8 @@ def _decorateTest(mode,
swig_version=None, py_version=None,
remote=None):
def fn(self):
- skip_for_os = _match_decorator_property(oslist, self.getPlatform())
- skip_for_hostos = _match_decorator_property(hostoslist, lldbplatformutil.getHostPlatform())
+ skip_for_os = _match_decorator_property(lldbplatform.translate(oslist), self.getPlatform())
+ skip_for_hostos = _match_decorator_property(lldbplatform.translate(hostoslist), lldbplatformutil.getHostPlatform())
skip_for_compiler = _match_decorator_property(compiler, self.getCompiler()) and self.expectedCompilerVersion(compiler_version)
skip_for_arch = _match_decorator_property(archs, self.getArchitecture())
skip_for_debug_info = _match_decorator_property(debug_info, self.debug_info)
@@ -296,10 +298,10 @@ def expectedFailureOS(oslist, bugnumber=None, compilers=None, debug_info=None, a
def expectedFailureDarwin(bugnumber=None, compilers=None, debug_info=None):
# For legacy reasons, we support both "darwin" and "macosx" as OS X triples.
- return expectedFailureOS(lldbplatformutil.getDarwinOSTriples(), bugnumber, compilers, debug_info=debug_info)
+ return expectedFailureOS(lldbplatform.darwin_all, bugnumber, compilers, debug_info=debug_info)
def expectedFailureFreeBSD(bugnumber=None, compilers=None, debug_info=None):
- return expectedFailureOS(['freebsd'], bugnumber, compilers, debug_info=debug_info)
+ return expectedFailureOS(lldbplatform.freebsd, bugnumber, compilers, debug_info=debug_info)
def expectedFailureAndroid(bugnumber=None, api_levels=None, archs=None):
""" Mark a test as xfail for Android.
@@ -426,7 +428,7 @@ def skipIfNetBSD(func):
def skipIfDarwin(func):
"""Decorate the item to skip tests that should be skipped on Darwin."""
- return skipIfPlatform(lldbplatformutil.getDarwinOSTriples())(func)
+ return skipIfPlatform(lldbplatform.translate(lldbplatform.darwin_all))(func)
def skipIfLinux(func):
"""Decorate the item to skip tests that should be skipped on Linux."""
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py b/lldb/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py
index f43374e631b..9cd5981e5df 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py
@@ -10,6 +10,7 @@ import os, time
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbplatform
from lldbsuite.test import lldbutil
class AsanTestCase(TestBase):
@@ -20,7 +21,7 @@ class AsanTestCase(TestBase):
@skipIfFreeBSD # llvm.org/pr21136 runtimes not yet available by default
@skipIfRemote
@skipUnlessCompilerRt
- @expectedFailureDarwin
+ @expectedFailureAll(oslist=lldbplatform.darwin_all)
def test (self):
self.build ()
self.asan_tests ()
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py b/lldb/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py
index 9df94e4551e..7a9ded03ad2 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py
@@ -10,6 +10,7 @@ import os
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbplatform
from lldbsuite.test import lldbutil
class CommandLineCompletionTestCase(TestBase):
@@ -256,7 +257,7 @@ class CommandLineCompletionTestCase(TestBase):
self.complete_from_to('target va', 'target variable ')
@expectedFailureAll(hostoslist=["windows"], bugnumber="llvm.org/pr24679")
- @expectedFailureDarwin("llvm.org/pr25485")
+ @expectedFailureAll(oslist=lldbplatform.darwin_all, bugnumber="llvm.org/pr25485")
def test_symbol_name(self):
self.build()
self.complete_from_to('''file a.out
diff --git a/lldb/packages/Python/lldbsuite/test/lldbplatform.py b/lldb/packages/Python/lldbsuite/test/lldbplatform.py
new file mode 100644
index 00000000000..33927df6c0f
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/lldbplatform.py
@@ -0,0 +1,44 @@
+""" This module represents an abstraction of an lldb target / host platform. """
+
+from __future__ import absolute_import
+
+# System modules
+import itertools
+
+# Third-party modules
+import six
+
+# LLDB modules
+import use_lldb_suite
+import lldb
+
+windows, linux, macosx, darwin, ios, darwin_all, freebsd, netbsd, bsd_all, android = range(10)
+
+__name_lookup = {
+ windows : ["windows"],
+ linux : ["linux"],
+ macosx : ["macosx"],
+ darwin : ["darwin"],
+ ios : ["ios"],
+ darwin_all : ["macosx", "darwin", "ios"],
+ freebsd : ["freebsd"],
+ netbsd : ["netbsd"],
+ bsd_all : ["freebsd", "netbsd"],
+ android : ["android"]
+}
+
+
+def translate(values):
+
+ if isinstance(values, six.integer_types):
+ # This is a value from the platform enumeration, translate it.
+ return __name_lookup[values]
+ elif isinstance(values, six.string_types):
+ # This is a raw string, return it.
+ return [values]
+ elif hasattr(values, "__iter__"):
+ # This is an iterable, convert each item.
+ result = [translate(x) for x in values]
+ result = list(itertools.chain(*result))
+ return result
+ return values
diff --git a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
index efc806c5a0e..bf06e184dc4 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
@@ -4,11 +4,13 @@ architecture and/or the platform dependent nature of the tests. """
from __future__ import absolute_import
# System modules
+import itertools
import re
import subprocess
import sys
# Third-party modules
+import six
from six.moves.urllib import parse as urlparse
# LLDB modules
OpenPOWER on IntegriCloud