Author: zturner Date: Thu Feb 18 12:50:02 2016 New Revision: 261241 URL: http://llvm.org/viewvc/llvm-project?rev=261241&view=rev Log: Add target and host platform enumerations so we're not using strings.
Differential Revision: http://reviews.llvm.org/D17088 Added: lldb/trunk/packages/Python/lldbsuite/test/lldbplatform.py Modified: 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/completion/TestCompletion.py lldb/trunk/packages/Python/lldbsuite/test/lldbplatformutil.py Modified: lldb/trunk/packages/Python/lldbsuite/test/decorators.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/decorators.py?rev=261241&r1=261240&r2=261241&view=diff ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/decorators.py (original) +++ lldb/trunk/packages/Python/lldbsuite/test/decorators.py Thu Feb 18 12:50:02 2016 @@ -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= 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.""" Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py?rev=261241&r1=261240&r2=261241&view=diff ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py (original) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py Thu Feb 18 12:50:02 2016 @@ -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 () Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py?rev=261241&r1=261240&r2=261241&view=diff ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py (original) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py Thu Feb 18 12:50:02 2016 @@ -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(Test 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 Added: lldb/trunk/packages/Python/lldbsuite/test/lldbplatform.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbplatform.py?rev=261241&view=auto ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/lldbplatform.py (added) +++ lldb/trunk/packages/Python/lldbsuite/test/lldbplatform.py Thu Feb 18 12:50:02 2016 @@ -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 Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbplatformutil.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbplatformutil.py?rev=261241&r1=261240&r2=261241&view=diff ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/lldbplatformutil.py (original) +++ lldb/trunk/packages/Python/lldbsuite/test/lldbplatformutil.py Thu Feb 18 12:50:02 2016 @@ -4,11 +4,13 @@ architecture and/or the platform depende 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 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits