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