• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1"""Contains a unittest to verify that `cc_proto_library` does not generate code for blacklisted `.proto` sources (i.e. WKPs)."""
2
3load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest")
4
5def _cc_proto_blacklist_test_impl(ctx):
6    """Verifies that there are no C++ compile actions for Well-Known-Protos.
7
8    Args:
9      ctx: The rule context.
10
11    Returns: A (not further specified) sequence of providers.
12    """
13
14    env = unittest.begin(ctx)
15
16    for dep in ctx.attr.deps:
17        files = len(dep.files.to_list())
18        asserts.equals(
19            env,
20            0,
21            files,
22            "Expected that target '{}' does not provide files, got {}".format(
23                dep.label,
24                files,
25            ),
26        )
27
28    return unittest.end(env)
29
30cc_proto_blacklist_test = unittest.make(
31    impl = _cc_proto_blacklist_test_impl,
32    attrs = {
33        "deps": attr.label_list(
34            mandatory = True,
35            providers = [CcInfo],
36        ),
37    },
38)
39