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