diff options
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lldbplatform.py')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/lldbplatform.py | 44 |
1 files changed, 44 insertions, 0 deletions
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 |