native_binary() and native_test() rule implementations.

These rules let you wrap a pre-built binary or script in a conventional binary and test rule respectively. They fulfill the same goal as sh_binary and sh_test do, but they run the wrapped binary directly, instead of through Bash, so they don't depend on Bash and work with --shell_exectuable="".

Macros and Functions

native_binary

Wraps a pre-built binary or script with a binary rule.

You can "bazel run" this rule like any other binary rule, and use it as a tool in genrule.tools for example. You can also augment the binary with runfiles.

Example usage (generated)

load("@bazel_skylib//rules:native_binary.bzl", "native_binary")

native_binary(
    # The name of the rule.
    name = "",
    # label; path of the pre-built executable
    src = "",
    # output; an output name for the copy of the binary
    out = "",
)

name

The name of the rule.

src

label; path of the pre-built executable

out

output; an output name for the copy of the binary. (Bazel requires that this rule make a copy of 'src'.)

data

list of labels; data dependencies

kwargs

The common attributes for binaries.


native_test

Wraps a pre-built binary or script with a test rule.

You can "bazel test" this rule like any other test rule. You can also augment the binary with runfiles.

Example usage (generated)

load("@bazel_skylib//rules:native_binary.bzl", "native_test")

native_test(
    # The name of the test rule.
    name = "",
    # label; path of the pre-built executable
    src = "",
    # output; an output name for the copy of the binary
    out = "",
)

name

The name of the test rule.

src

label; path of the pre-built executable

out

output; an output name for the copy of the binary. (Bazel requires that this rule make a copy of 'src'.)

data

list of labels; data dependencies

kwargs

The common attributes for tests.