diff options
author | 2016-02-23 18:37:44 +0000 | |
---|---|---|
committer | 2016-02-23 22:18:25 +0000 | |
commit | 83fbb91a5a2afd15f0ab1e251812bd6692e0728a (patch) | |
tree | 1a402de1d2fbd15b6163b1a967c8fbede8743610 /src/test/java/com/google/devtools/build/lib/testutil/TestRuleClassProvider.java | |
parent | 17129d4f838cd18b74551e0dd56e290975a6dc8c (diff) |
Support "mandatoryProvidersList" in Skylark and added necessary tests
The type of attribute "providers" now is a list of lists of string. But a list
of string is still supported.
--
MOS_MIGRATED_REVID=115357326
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/testutil/TestRuleClassProvider.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/testutil/TestRuleClassProvider.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/TestRuleClassProvider.java b/src/test/java/com/google/devtools/build/lib/testutil/TestRuleClassProvider.java index eaf1ceec6c..8b708a3d18 100644 --- a/src/test/java/com/google/devtools/build/lib/testutil/TestRuleClassProvider.java +++ b/src/test/java/com/google/devtools/build/lib/testutil/TestRuleClassProvider.java @@ -20,6 +20,7 @@ import static com.google.devtools.build.lib.packages.BuildType.OUTPUT_LIST; import static com.google.devtools.build.lib.syntax.Type.INTEGER; import static com.google.devtools.build.lib.syntax.Type.STRING_LIST; +import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.analysis.BaseRuleClasses; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.analysis.RuleDefinition; @@ -59,6 +60,7 @@ public class TestRuleClassProvider { new ConfiguredRuleClassProvider.Builder(); addStandardRules(builder); builder.addRuleDefinition(new TestingDummyRule()); + builder.addRuleDefinition(new TestingRuleForMandatoryProviders()); ruleProvider = builder.build(); } return ruleProvider; @@ -85,4 +87,25 @@ public class TestRuleClassProvider { .build(); } } + + public static final class TestingRuleForMandatoryProviders implements RuleDefinition { + @Override + public RuleClass build(Builder builder, RuleDefinitionEnvironment env) { + return builder + .setUndocumented() + .add(attr("srcs", LABEL_LIST).allowedFileTypes(FileTypeSet.ANY_FILE)) + .override(builder.copy("deps").mandatoryProvidersList(ImmutableList.of( + ImmutableList.of("a"), ImmutableList.of("b", "c")))) + .build(); + } + + @Override + public Metadata getMetadata() { + return RuleDefinition.Metadata.builder() + .name("testing_rule_for_mandatory_providers") + .ancestors(BaseRuleClasses.RuleBase.class) + .factoryClass(UnknownRuleConfiguredTarget.class) + .build(); + } + } } |