| # 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 |
| |
| """Creates a binary and a test for a cc benchmark target. |
| |
| It's good to test that benchmarks run, but it's really annoying to run a billion |
| iterations of them every time you try to run tests. So we create these as |
| binaries and then invoke them as tests with `--benchmark_min_time=0`. |
| """ |
| |
| load(":native_binary.bzl", "native_test") |
| |
| def cc_binary_benchmark( |
| name, |
| srcs = None, |
| data = None, |
| deps = None, |
| copts = None, |
| defines = None, |
| linkopts = None, |
| tags = None, |
| testonly = True, |
| size = "small", |
| timeout = None, |
| **kwargs): |
| """Creates a binary and a test for a cc benchmark target. |
| |
| Arguments passed to the binary target: |
| name, srcs, data, deps, copts, defines, linkopts, tags, testonly, **kwargs |
| Arguments passed to the test target: |
| {name}_test, tags, size, timeout, **kwargs |
| """ |
| native.cc_binary( |
| name = name, |
| srcs = srcs, |
| data = data, |
| deps = deps, |
| copts = copts, |
| defines = defines, |
| linkopts = linkopts, |
| tags = tags, |
| testonly = testonly, |
| **kwargs |
| ) |
| |
| native_test( |
| name = "{}_test".format(name), |
| src = name, |
| size = size, |
| tags = tags, |
| timeout = timeout, |
| args = ["--benchmark_min_time=0"], |
| **kwargs |
| ) |