import platform
target_triple_components = config.target_triple.split('-')
config.available_features.update(target_triple_components)

# Only run the tests in platforms where XRay instrumentation is supported.
supported_targets = [
    'amd64', 'x86_64', 'x86_64h', 'arm', 'aarch64', 'arm64', 'powerpc64le', 'mips',
    'mipsel', 'mips64', 'mips64el'
]

# Only on platforms we support.
supported_oses = [
    'Linux', 'FreeBSD', 'Darwin'
]

triple_set = set(target_triple_components)
if len(triple_set.intersection(supported_targets)) == 0:
  config.unsupported = True

# Do not run for 'android' despite being linux.
if platform.system() not in supported_oses or 'android' in triple_set:
  config.unsupported = True

if config.enable_shared:
  config.available_features.update(['enable_shared'])
