import platform

# 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(config.target_triple.split("-"))
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"])
