mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-04-14 20:32:24 +00:00

This just adds the simulator platforms to the lldbplatform enumerations and the respective test decorator. The platform names for the simulator are just the SDK names since D85537, so that's why we are not using LLDB's usual platform names here (e.g., SDK = "iphonesimulator" vs LLDB platform ="ios-simulator"). Also removes the duplicate platform enumaration in lldbplatformutil.py. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D89694
54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
""" 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, darwin_simulator, freebsd, netbsd, bsd_all, android \
|
|
= range(15)
|
|
|
|
__darwin_embedded = ["ios", "tvos", "watchos", "bridgeos"]
|
|
__darwin_simulators = ["iphonesimulator", "watchsimulator", "appletvsimulator"]
|
|
|
|
__name_lookup = {
|
|
windows: ["windows"],
|
|
linux: ["linux"],
|
|
macosx: ["macosx"],
|
|
darwin: ["darwin"],
|
|
ios: ["ios", "iphonesimulator"],
|
|
tvos: ["tvos", "appletvsimulator"],
|
|
watchos: ["watchos", "watchsimulator"],
|
|
bridgeos: ["bridgeos"],
|
|
darwin_all: ["macosx", "darwin"] + __darwin_embedded + __darwin_simulators,
|
|
darwin_embedded: __darwin_embedded + __darwin_simulators,
|
|
darwin_simulator: __darwin_simulators,
|
|
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
|