aboutsummaryrefslogtreecommitdiff
path: root/tests/rule_based_toolchain/features/BUILD
diff options
context:
space:
mode:
Diffstat (limited to 'tests/rule_based_toolchain/features/BUILD')
-rw-r--r--tests/rule_based_toolchain/features/BUILD116
1 files changed, 116 insertions, 0 deletions
diff --git a/tests/rule_based_toolchain/features/BUILD b/tests/rule_based_toolchain/features/BUILD
new file mode 100644
index 0000000..cc3c0c7
--- /dev/null
+++ b/tests/rule_based_toolchain/features/BUILD
@@ -0,0 +1,116 @@
+load("@rules_testing//lib:util.bzl", "util")
+load("//cc/toolchains:args.bzl", "cc_args")
+load("//cc/toolchains:feature.bzl", "cc_feature")
+load("//cc/toolchains:feature_constraint.bzl", "cc_feature_constraint")
+load("//cc/toolchains:feature_set.bzl", "cc_feature_set")
+load("//cc/toolchains:mutually_exclusive_category.bzl", "cc_mutually_exclusive_category")
+load("//cc/toolchains/impl:external_feature.bzl", "cc_external_feature")
+load("//tests/rule_based_toolchain:analysis_test_suite.bzl", "analysis_test_suite")
+load(":features_test.bzl", "TARGETS", "TESTS")
+
+util.helper_target(
+ cc_args,
+ name = "c_compile",
+ actions = ["//tests/rule_based_toolchain/actions:c_compile"],
+ args = ["c"],
+ data = ["//tests/rule_based_toolchain/testdata:file1"],
+)
+
+util.helper_target(
+ cc_feature,
+ name = "simple",
+ args = [":c_compile"],
+ enabled = False,
+ feature_name = "feature_name",
+ visibility = ["//tests/rule_based_toolchain:__subpackages__"],
+)
+
+util.helper_target(
+ cc_feature,
+ name = "simple2",
+ args = [":c_compile"],
+ enabled = False,
+ feature_name = "simple2",
+)
+
+util.helper_target(
+ cc_feature_set,
+ name = "feature_set",
+ all_of = [
+ ":simple",
+ ":simple2",
+ ],
+)
+
+util.helper_target(
+ cc_feature,
+ name = "requires",
+ args = [":c_compile"],
+ enabled = True,
+ feature_name = "requires",
+ requires_any_of = [":feature_set"],
+)
+
+util.helper_target(
+ cc_feature,
+ name = "implies",
+ args = [":c_compile"],
+ enabled = True,
+ feature_name = "implies",
+ implies = [":simple"],
+)
+
+cc_mutually_exclusive_category(
+ name = "category",
+)
+
+util.helper_target(
+ cc_feature,
+ name = "mutual_exclusion_feature",
+ args = [":c_compile"],
+ enabled = True,
+ feature_name = "mutual_exclusion",
+ mutually_exclusive = [
+ ":simple",
+ ":category",
+ ],
+)
+
+util.helper_target(
+ cc_feature_constraint,
+ name = "direct_constraint",
+ all_of = [":simple"],
+ none_of = [":simple2"],
+ visibility = ["//tests/rule_based_toolchain:__subpackages__"],
+)
+
+util.helper_target(
+ cc_feature_constraint,
+ name = "transitive_constraint",
+ all_of = [
+ ":direct_constraint",
+ ":requires",
+ ],
+ none_of = [":implies"],
+)
+
+util.helper_target(
+ cc_external_feature,
+ name = "builtin_feature",
+ feature_name = "builtin_feature",
+ overridable = True,
+)
+
+util.helper_target(
+ cc_feature,
+ name = "overrides",
+ args = [":c_compile"],
+ enabled = True,
+ overrides = ":builtin_feature",
+)
+
+analysis_test_suite(
+ name = "test_suite",
+ targets = TARGETS,
+ tests = TESTS,
+)