summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lldb/packages/Python/lldbsuite/test/lldbplatform.py
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2020-08-03 14:33:06 +0000
committerpatrick <patrick@openbsd.org>2020-08-03 14:33:06 +0000
commit061da546b983eb767bad15e67af1174fb0bcf31c (patch)
tree83c78b820819d70aa40c36d90447978b300078c5 /gnu/llvm/lldb/packages/Python/lldbsuite/test/lldbplatform.py
parentImport LLVM 10.0.0 release including clang, lld and lldb. (diff)
downloadwireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.tar.xz
wireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.zip
Import LLVM 10.0.0 release including clang, lld and lldb.
ok hackroom tested by plenty
Diffstat (limited to 'gnu/llvm/lldb/packages/Python/lldbsuite/test/lldbplatform.py')
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/lldbplatform.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/lldbplatform.py b/gnu/llvm/lldb/packages/Python/lldbsuite/test/lldbplatform.py
new file mode 100644
index 00000000000..365c752758d
--- /dev/null
+++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/lldbplatform.py
@@ -0,0 +1,48 @@
+""" 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 lldb
+
+windows, linux, macosx, darwin, ios, tvos, watchos, bridgeos, darwin_all, darwin_embedded, freebsd, netbsd, bsd_all, android = range(
+ 14)
+
+__name_lookup = {
+ windows: ["windows"],
+ linux: ["linux"],
+ macosx: ["macosx"],
+ darwin: ["darwin"],
+ ios: ["ios"],
+ tvos: ["tvos"],
+ watchos: ["watchos"],
+ bridgeos: ["bridgeos"],
+ darwin_all: ["macosx", "darwin", "ios", "tvos", "watchos", "bridgeos"],
+ darwin_embedded: ["ios", "tvos", "watchos", "bridgeos"],
+ 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