<gh_stars>1-10
# Copyright 2019 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

"""Bazel macros for running lit tests."""

load(":lit_test.bzl", "lit_test", "lit_test_suite")

def iree_lit_test(
        name,
        cfg = "//iree:lit.cfg.py",
        tools = None,
        env = None,
        **kwargs):
    """A thin wrapper around lit_test with some opinionated settings.

    See the base lit_test for more details on argument meanings.

    Args:
      name: name for the test.
      cfg: string. lit config file.
      tools: label_list. tools that should be included on the PATH.
        llvm-symbolizer is added by default.
      env: string_dict. Environment variables available to the test at runtime.
        FILECHECK_OPTS=--enable-var-scope is added if FILECHECK_OPTS is not
        already set.
      **kwargs: additional keyword args to forward to the underyling lit_test.
    """

    tools = tools or []
    env = env or {}

    # Always include llvm-symbolizer so we get useful stack traces. Maybe it
    # would be better to force everyone to do this explicitly, but since
    # forgetting wouldn't cause the test to fail, only make debugging harder
    # when it does, I think better to hardcode it here.
    llvm_symbolizer = "@llvm-project//llvm:llvm-symbolizer"
    if llvm_symbolizer not in tools:
        tools.append(llvm_symbolizer)

    filecheck_env_var = "FILECHECK_OPTS"
    if filecheck_env_var not in env:
        env[filecheck_env_var] = "--enable-var-scope"

    lit_test(
        name = name,
        cfg = cfg,
        tools = tools,
        env = env,
        **kwargs
    )

def iree_lit_test_suite(
        name,
        cfg = "//iree:lit.cfg.py",
        tools = None,
        env = None,
        **kwargs):
    """A thin wrapper around lit_test_suite with some opinionated settings.

    See the base lit_test for more details on argument meanings.

    Args:
      name: name for the test suite.
      cfg: string. lit config file.
      tools: label_list. tools that should be included on the PATH.
        llvm-symbolizer is added by default.
      env: string_dict. Environment variables available to the test at runtime.
        FILECHECK_OPTS=--enable-var-scope is added if FILECHECK_OPTS is not
        already set.
      **kwargs: additional keyword args to forward to the underyling
        lit_test_suite.
    """
    tools = tools or []
    env = env or {}

    # Always include llvm-symbolizer so we get useful stack traces. Maybe it
    # would be better to force everyone to do this explicitly, but since
    # forgetting wouldn't cause the test to fail, only make debugging harder
    # when it does, I think better to hardcode it here.
    llvm_symbolizer = "@llvm-project//llvm:llvm-symbolizer"
    if llvm_symbolizer not in tools:
        tools.append(llvm_symbolizer)

    filecheck_env_var = "FILECHECK_OPTS"
    if filecheck_env_var not in env:
        env[filecheck_env_var] = "--enable-var-scope"

    lit_test_suite(
        name = name,
        cfg = cfg,
        tools = tools,
        env = env,
        **kwargs
    )

# Copyright 2019 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

"""Bazel macros for running lit tests."""

load(":lit_test.bzl", "lit_test", "lit_test_suite")

def iree_lit_test(
        name,
        cfg = "//iree:lit.cfg.py",
        tools = None,
        env = None,
        **kwargs):
    """A thin wrapper around lit_test with some opinionated settings.

    See the base lit_test for more details on argument meanings.

    Args:
      name: name for the test.
      cfg: string. lit config file.
      tools: label_list. tools that should be included on the PATH.
        llvm-symbolizer is added by default.
      env: string_dict. Environment variables available to the test at runtime.
        FILECHECK_OPTS=--enable-var-scope is added if FILECHECK_OPTS is not
        already set.
      **kwargs: additional keyword args to forward to the underyling lit_test.
    """

    tools = tools or []
    env = env or {}

    # Always include llvm-symbolizer so we get useful stack traces. Maybe it
    # would be better to force everyone to do this explicitly, but since
    # forgetting wouldn't cause the test to fail, only make debugging harder
    # when it does, I think better to hardcode it here.
    llvm_symbolizer = "@llvm-project//llvm:llvm-symbolizer"
    if llvm_symbolizer not in tools:
        tools.append(llvm_symbolizer)

    filecheck_env_var = "FILECHECK_OPTS"
    if filecheck_env_var not in env:
        env[filecheck_env_var] = "--enable-var-scope"

    lit_test(
        name = name,
        cfg = cfg,
        tools = tools,
        env = env,
        **kwargs
    )

def iree_lit_test_suite(
        name,
        cfg = "//iree:lit.cfg.py",
        tools = None,
        env = None,
        **kwargs):
    """A thin wrapper around lit_test_suite with some opinionated settings.

    See the base lit_test for more details on argument meanings.

    Args:
      name: name for the test suite.
      cfg: string. lit config file.
      tools: label_list. tools that should be included on the PATH.
        llvm-symbolizer is added by default.
      env: string_dict. Environment variables available to the test at runtime.
        FILECHECK_OPTS=--enable-var-scope is added if FILECHECK_OPTS is not
        already set.
      **kwargs: additional keyword args to forward to the underyling
        lit_test_suite.
    """
    tools = tools or []
    env = env or {}

    # Always include llvm-symbolizer so we get useful stack traces. Maybe it
    # would be better to force everyone to do this explicitly, but since
    # forgetting wouldn't cause the test to fail, only make debugging harder
    # when it does, I think better to hardcode it here.
    llvm_symbolizer = "@llvm-project//llvm:llvm-symbolizer"
    if llvm_symbolizer not in tools:
        tools.append(llvm_symbolizer)

    filecheck_env_var = "FILECHECK_OPTS"
    if filecheck_env_var not in env:
        env[filecheck_env_var] = "--enable-var-scope"

    lit_test_suite(
        name = name,
        cfg = cfg,
        tools = tools,
        env = env,
        **kwargs
    )
# Copyright 2019 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 Bazel macros for running lit tests. A thin wrapper around lit_test with some opinionated settings.      See the base lit_test for more details on argument meanings.      Args:       name: name for the test.       cfg: string. lit config file.       tools: label_list. tools that should be included on the PATH.         llvm-symbolizer is added by default.       env: string_dict. Environment variables available to the test at runtime.         FILECHECK_OPTS=--enable-var-scope is added if FILECHECK_OPTS is not         already set.       **kwargs: additional keyword args to forward to the underyling lit_test. # Always include llvm-symbolizer so we get useful stack traces. Maybe it # would be better to force everyone to do this explicitly, but since # forgetting wouldn't cause the test to fail, only make debugging harder # when it does, I think better to hardcode it here. A thin wrapper around lit_test_suite with some opinionated settings.      See the base lit_test for more details on argument meanings.      Args:       name: name for the test suite.       cfg: string. lit config file.       tools: label_list. tools that should be included on the PATH.         llvm-symbolizer is added by default.       env: string_dict. Environment variables available to the test at runtime.         FILECHECK_OPTS=--enable-var-scope is added if FILECHECK_OPTS is not         already set.       **kwargs: additional keyword args to forward to the underyling         lit_test_suite. # Always include llvm-symbolizer so we get useful stack traces. Maybe it # would be better to force everyone to do this explicitly, but since # forgetting wouldn't cause the test to fail, only make debugging harder # when it does, I think better to hardcode it here.