blob: aafc09327cbd95a04792520f6b16b19dfe078db4 [file]
"Helper rule for checking coverage"
load("//js/private:js_binary.bzl", "js_binary_lib")
# _lcov_merger must be a private attribute, so each merger needs its own rule.
def _coverage_test(merger, coverage_report = True):
attrs = {
"_lcov_merger": attr.label(
executable = True,
default = Label("//js/private/test/coverage:" + merger),
cfg = "exec",
),
}
if coverage_report:
# Generate + stash the report in the test action, the same as js_test.
attrs["_coverage_report"] = attr.label(
default = Label("//js/private/coverage:coverage.js"),
allow_single_file = [".js"],
)
return rule(
implementation = js_binary_lib.implementation,
attrs = dict(js_binary_lib.attrs, **attrs),
test = True,
toolchains = js_binary_lib.toolchains,
)
coverage_preexisting_test = _coverage_test("preexisting_merger")
coverage_pass_test = _coverage_test("pass_merger")
coverage_no_report_test = _coverage_test("no_report_merger", coverage_report = False)