diff options
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skylark')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java | 2 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java | 42 |
2 files changed, 33 insertions, 11 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java index 08b9ccdf39..6db90093bd 100644 --- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java +++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java @@ -711,7 +711,7 @@ public class SkylarkIntegrationTest extends BuildViewTestCase { "main_rule = rule(implementation = rule_impl, attrs = {", " 'deps': attr.label_list(providers = [", " 'files', 'data_runfiles', 'default_runfiles',", - " 'files_to_run', 'label', 'output_groups',", + " 'files_to_run', 'output_groups',", " ])", "})"); scratch.file( diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java index b3d614816d..9c20c6bd02 100644 --- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java +++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java @@ -249,19 +249,44 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { buildAttribute("a1", "b = provider()", "attr.label_list(allow_files = True, providers = ['a', b])"); - assertThat(attr.getMandatoryProvidersList()) - .containsExactly(ImmutableSet.of(legacy("a"), declared("b"))); + assertThat(attr.getRequiredProviders().isSatisfiedBy(set(legacy("a"), declared("b")))) + .isTrue(); + assertThat(attr.getRequiredProviders().isSatisfiedBy(set(legacy("a")))) + .isFalse(); + } @Test + public void testAttrWithProvidersOneEmpty() throws Exception { + Attribute attr = + buildAttribute("a1", + "b = provider()", + "attr.label_list(allow_files = True, providers = [['a', b],[]])"); + assertThat(attr.getRequiredProviders().acceptsAny()).isTrue(); + } + + + @Test public void testAttrWithProvidersList() throws Exception { Attribute attr = buildAttribute("a1", "b = provider()", "attr.label_list(allow_files = True, providers = [['a', b], ['c']])"); - assertThat(attr.getMandatoryProvidersList()).containsExactly( - ImmutableSet.of(legacy("a"), declared("b")), - ImmutableSet.of(legacy("c"))); + assertThat(attr.getRequiredProviders().isSatisfiedBy(set(legacy("a"), declared("b")))) + .isTrue(); + assertThat(attr.getRequiredProviders().isSatisfiedBy(set(legacy("c")))) + .isTrue(); + assertThat(attr.getRequiredProviders().isSatisfiedBy(set(legacy("a")))) + .isFalse(); + + } + + private static AdvertisedProviderSet set(SkylarkProviderIdentifier ...ids) { + AdvertisedProviderSet.Builder builder = AdvertisedProviderSet.builder(); + for (SkylarkProviderIdentifier id : ids) { + builder.addSkylark(id); + } + return builder.build(); } private void checkAttributeError(String expectedMessage, String... lines) throws Exception { @@ -425,11 +450,8 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { private static final RuleClass.ConfiguredTargetFactory<Object, Object> DUMMY_CONFIGURED_TARGET_FACTORY = - new RuleClass.ConfiguredTargetFactory<Object, Object>() { - @Override - public Object create(Object ruleContext) throws InterruptedException { - throw new IllegalStateException(); - } + ruleContext -> { + throw new IllegalStateException(); }; private RuleClass ruleClass(String name) { |