blob: 18fdd6c9ce8aba747915f5eb03b5fec696a2d568 [file] [log] [blame]
# 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
)