| # 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, |
| 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, |
| 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 |
| ) |