• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1"""Unittest to verify that we can treat all dependencies as direct dependencies"""
2
3load("@bazel_skylib//lib:unittest.bzl", "analysistest")
4load("//rust:defs.bzl", "rust_library")
5load("//test/unit:common.bzl", "assert_action_mnemonic", "assert_argv_contains_prefix")
6load("//test/unit/force_all_deps_direct:generator.bzl", "generator")
7
8def _force_all_deps_direct_rustc_flags_test(ctx):
9    env = analysistest.begin(ctx)
10    tut = analysistest.target_under_test(env)
11    action = tut.actions[1]
12    assert_action_mnemonic(env, action, "Rustc")
13    assert_argv_contains_prefix(
14        env,
15        action,
16        "--extern=transitive",
17    )
18    return analysistest.end(env)
19
20force_all_deps_direct_test = analysistest.make(_force_all_deps_direct_rustc_flags_test)
21
22def _force_all_deps_direct_test():
23    rust_library(
24        name = "direct",
25        srcs = ["direct.rs"],
26        edition = "2018",
27        deps = [":transitive"],
28    )
29
30    rust_library(
31        name = "transitive",
32        srcs = ["transitive.rs"],
33        edition = "2018",
34    )
35
36    generator(
37        name = "generate",
38        deps = [":direct"],
39        tags = [
40            "no-clippy",
41            "no-unpretty",
42        ],
43    )
44
45    force_all_deps_direct_test(
46        name = "force_all_deps_direct_rustc_flags_test",
47        target_under_test = ":generate",
48    )
49
50def force_all_deps_direct_test_suite(name):
51    """Entry-point macro called from the BUILD file.
52
53    Args:
54        name: Name of the macro.
55    """
56    _force_all_deps_direct_test()
57
58    native.test_suite(
59        name = name,
60        tests = [
61            ":force_all_deps_direct_rustc_flags_test",
62        ],
63    )
64