blob: 33bef08aa2478eb8d289541354f6117561f9c480 [file] [log] [blame]
"""Tools for building QUICHE tests."""
load("@bazel_skylib//lib:dicts.bzl", "dicts")
load("@bazel_skylib//lib:paths.bzl", "paths")
def test_suite_from_source_list(name, srcs, **kwargs):
"""
Generates a test target for every individual test source file specified.
Args:
name: the name of the resulting test_suite target.
srcs: the list of source files from which the test targets are generated.
**kwargs: other arguments that are passed to the cc_test rule directly.s
"""
tests = []
for sourcefile in srcs:
if not sourcefile.endswith("_test.cc"):
fail("All source files passed to test_suite_from_source_list() must end with _test.cc")
test_name, _ = paths.split_extension(paths.basename(sourcefile))
extra_kwargs = {}
if test_name == "end_to_end_test":
extra_kwargs["shard_count"] = 16
native.cc_test(
name = test_name,
srcs = [sourcefile],
**dicts.add(kwargs, extra_kwargs)
)
tests.append(test_name)
native.test_suite(name = name, tests = tests)