1load("@rules_testing//lib:util.bzl", "util") 2load("//cc/toolchains:args.bzl", "cc_args") 3load("//cc/toolchains:feature.bzl", "cc_feature") 4load("//cc/toolchains:feature_constraint.bzl", "cc_feature_constraint") 5load("//cc/toolchains:feature_set.bzl", "cc_feature_set") 6load("//cc/toolchains:mutually_exclusive_category.bzl", "cc_mutually_exclusive_category") 7load("//cc/toolchains/impl:external_feature.bzl", "cc_external_feature") 8load("//tests/rule_based_toolchain:analysis_test_suite.bzl", "analysis_test_suite") 9load(":features_test.bzl", "TARGETS", "TESTS") 10 11util.helper_target( 12 cc_args, 13 name = "c_compile", 14 actions = ["//tests/rule_based_toolchain/actions:c_compile"], 15 args = ["c"], 16 data = ["//tests/rule_based_toolchain/testdata:file1"], 17) 18 19util.helper_target( 20 cc_feature, 21 name = "simple", 22 args = [":c_compile"], 23 enabled = False, 24 feature_name = "feature_name", 25 visibility = ["//tests/rule_based_toolchain:__subpackages__"], 26) 27 28util.helper_target( 29 cc_feature, 30 name = "simple2", 31 args = [":c_compile"], 32 enabled = False, 33 feature_name = "simple2", 34) 35 36util.helper_target( 37 cc_feature_set, 38 name = "feature_set", 39 all_of = [ 40 ":simple", 41 ":simple2", 42 ], 43) 44 45util.helper_target( 46 cc_feature, 47 name = "requires", 48 args = [":c_compile"], 49 enabled = True, 50 feature_name = "requires", 51 requires_any_of = [":feature_set"], 52) 53 54util.helper_target( 55 cc_feature, 56 name = "implies", 57 args = [":c_compile"], 58 enabled = True, 59 feature_name = "implies", 60 implies = [":simple"], 61) 62 63cc_mutually_exclusive_category( 64 name = "category", 65) 66 67util.helper_target( 68 cc_feature, 69 name = "mutual_exclusion_feature", 70 args = [":c_compile"], 71 enabled = True, 72 feature_name = "mutual_exclusion", 73 mutually_exclusive = [ 74 ":simple", 75 ":category", 76 ], 77) 78 79util.helper_target( 80 cc_feature_constraint, 81 name = "direct_constraint", 82 all_of = [":simple"], 83 none_of = [":simple2"], 84 visibility = ["//tests/rule_based_toolchain:__subpackages__"], 85) 86 87util.helper_target( 88 cc_feature_constraint, 89 name = "transitive_constraint", 90 all_of = [ 91 ":direct_constraint", 92 ":requires", 93 ], 94 none_of = [":implies"], 95) 96 97util.helper_target( 98 cc_external_feature, 99 name = "builtin_feature", 100 feature_name = "builtin_feature", 101 overridable = True, 102) 103 104util.helper_target( 105 cc_feature, 106 name = "overrides", 107 args = [":c_compile"], 108 enabled = True, 109 overrides = ":builtin_feature", 110) 111 112analysis_test_suite( 113 name = "test_suite", 114 targets = TARGETS, 115 tests = TESTS, 116) 117