[bazel] Fix blacklisted_protos in cc_toolchain and add test (#7075)
parent
2d9b1788e7
commit
948740bc9d
5 changed files with 66 additions and 6 deletions
@ -0,0 +1,38 @@ |
||||
"""Contains a unittest to verify that `cc_proto_library` does not generate code for blacklisted `.proto` sources (i.e. WKPs).""" |
||||
|
||||
load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") |
||||
|
||||
def _cc_proto_blacklist_test_impl(ctx): |
||||
"""Verifies that there are no C++ compile actions for Well-Known-Protos. |
||||
|
||||
Args: |
||||
ctx: The rule context. |
||||
|
||||
Returns: A (not further specified) sequence of providers. |
||||
""" |
||||
|
||||
env = unittest.begin(ctx) |
||||
|
||||
for dep in ctx.attr.deps: |
||||
files = len(dep.files.to_list()) |
||||
asserts.equals( |
||||
env, |
||||
0, |
||||
files, |
||||
"Expected that target '{}' does not provide files, got {}".format( |
||||
dep.label, |
||||
files, |
||||
), |
||||
) |
||||
|
||||
return unittest.end(env) |
||||
|
||||
cc_proto_blacklist_test = unittest.make( |
||||
impl = _cc_proto_blacklist_test_impl, |
||||
attrs = { |
||||
"deps": attr.label_list( |
||||
mandatory = True, |
||||
providers = [CcInfo], |
||||
), |
||||
}, |
||||
) |
Loading…
Reference in new issue