blob: 7b90950538aad84191fb5c63cbbede3fe5172d36 [file]
# Copyright 2022 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
"""Lit config for IREE."""
# Lint for undefined variables is disabled as config is not defined inside this
# file, instead config is injected by way of evaluating runlit.cfg.py from
# runlit.site.cfg.py which in turn is evaluated by lit.py.
# pylint: disable=undefined-variable
import os
import tempfile
import lit.formats
config.name = "IREE"
config.suffixes = [".mlir", ".txt"]
config.test_format = lit.formats.ShTest(
execute_external=True, force_execute_external=True
)
# Forward all IREE environment variables
passthrough_env_vars = ["VK_ICD_FILENAMES"]
config.environment.update(
{
k: v
for k, v in os.environ.items()
if k.startswith("IREE_") or k in passthrough_env_vars
}
)
# Bazel passes plugin paths relative to the runfiles root, CMake absolute.
_test_srcdir = os.environ.get("TEST_SRCDIR", "")
for _key, _value in sorted(config.environment.items(), key=lambda kv: -len(kv[0])):
if not _key.endswith("_PLUGIN") or not _value:
continue
if not os.path.isabs(_value):
for _root in (_test_srcdir, os.path.join(_test_srcdir, "_main"), os.getcwd()):
_candidate = os.path.join(_root, _value)
if os.path.exists(_candidate):
config.environment[_key] = os.path.abspath(_candidate)
break
config.substitutions.append(("%" + _key.lower(), config.environment[_key]))
if any(
_key.endswith("_PLUGIN") and _value for _key, _value in config.environment.items()
):
config.available_features.add("iree_dynamic_plugins")
# Use the most preferred temp directory.
config.test_exec_root = (
os.environ.get("TEST_UNDECLARED_OUTPUTS_DIR")
or os.environ.get("TEST_TMPDIR")
or os.path.join(tempfile.gettempdir(), "lit")
)