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 = [
    'x86_64', 'x86_64h', 'arm', 'aarch64', 'arm64', 'powerpc64le', 'mips',
    'mipsel', 'mips64', 'mips64el'
]

# Only on platforms we support.
supported_oses = [
    'linux'
]

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 len(triple_set.intersection(supported_oses)) == 0 or 'android' in triple_set:
  config.unsupported = True

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