diff options
author | dslomov <dslomov@google.com> | 2017-08-01 20:47:59 +0200 |
---|---|---|
committer | Dmitry Lomov <dslomov@google.com> | 2017-08-02 10:40:02 +0200 |
commit | 7df851524497afd7b1833418cc639d9c8f417451 (patch) | |
tree | 5a8f0c12749fdda9731bc9571c7e4f780ef09c5c /src/test/java/com/google/devtools/build/lib/packages | |
parent | 71238601b8ca147cfd4f9498e11d8517b25ac69a (diff) |
Automated rollback of commit c32e1b1efcd703b3780de47fba62974123593d71.
*** Reason for rollback ***
Breaks depot b/64250728
*** Original change description ***
Use RequiredProviders to validate rule prerequisites in RuleContext.
We now use a unified way to check provider requirements everywhere.
RELNOTES: None.
PiperOrigin-RevId: 163862067
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/packages')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/packages/RequiredProvidersTest.java | 112 |
1 files changed, 40 insertions, 72 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/packages/RequiredProvidersTest.java b/src/test/java/com/google/devtools/build/lib/packages/RequiredProvidersTest.java index ca8a9960d7..e86cc41f16 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/RequiredProvidersTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/RequiredProvidersTest.java @@ -16,6 +16,7 @@ package com.google.devtools.build.lib.packages; import static com.google.common.truth.Truth.assertThat; +import com.google.common.base.Predicates; import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.LabelSyntaxException; @@ -30,9 +31,6 @@ import org.junit.runners.JUnit4; */ @RunWith(JUnit4.class) public class RequiredProvidersTest { - - private static final String NO_PROVIDERS_REQUIRED = "no providers required"; - private static final class P1 {} private static final class P2 {} private static final class P3 {} @@ -61,11 +59,10 @@ public class RequiredProvidersTest { RequiredProviders requiredProviders) { boolean result = requiredProviders.isSatisfiedBy(providers); - assertThat( - requiredProviders.isSatisfiedBy( - providers.getNativeProviders()::contains, - providers.getSkylarkProviders()::contains)) - .isEqualTo(result); + assertThat(requiredProviders.isSatisfiedBy( + Predicates.in(providers.getNativeProviders()), + Predicates.in(providers.getSkylarkProviders()) + )).isEqualTo(result); return result; } @@ -111,34 +108,32 @@ public class RequiredProvidersTest { .addNative(P1.class) .addNative(P2.class) .build(); - assertThat( - validateNative( - providerSet, - NO_PROVIDERS_REQUIRED, - ImmutableSet.of(P1.class, P2.class))) + assertThat(validateNative(providerSet, ImmutableSet.<Class<?>>of(P1.class, P2.class))) .isTrue(); } @Test public void nativeProvidersBranchMatch() { assertThat( - validateNative( - AdvertisedProviderSet.builder().addNative(P1.class).build(), - NO_PROVIDERS_REQUIRED, - ImmutableSet.<Class<?>>of(P1.class), - ImmutableSet.<Class<?>>of(P2.class))) - .isTrue(); + validateNative( + AdvertisedProviderSet.builder() + .addNative(P1.class) + .build(), + ImmutableSet.<Class<?>>of(P1.class), + ImmutableSet.<Class<?>>of(P2.class) + )).isTrue(); } @Test public void nativeProvidersNoMatch() { assertThat( - validateNative( - AdvertisedProviderSet.builder().addNative(P3.class).build(), - "P1 or P2", - ImmutableSet.<Class<?>>of(P1.class), - ImmutableSet.<Class<?>>of(P2.class))) - .isFalse(); + validateNative( + AdvertisedProviderSet.builder() + .addNative(P3.class) + .build(), + ImmutableSet.<Class<?>>of(P1.class), + ImmutableSet.<Class<?>>of(P2.class) + )).isFalse(); } @Test @@ -149,7 +144,6 @@ public class RequiredProvidersTest { .addSkylark(ID_SKYLARK) .build(); assertThat(validateSkylark(providerSet, - NO_PROVIDERS_REQUIRED, ImmutableSet.of( ID_LEGACY, ID_SKYLARK, ID_NATIVE))) .isTrue(); @@ -158,64 +152,44 @@ public class RequiredProvidersTest { @Test public void skylarkProvidersBranchMatch() { assertThat( - validateSkylark( - AdvertisedProviderSet.builder().addSkylark(ID_LEGACY).build(), - NO_PROVIDERS_REQUIRED, - ImmutableSet.of(ID_LEGACY), - ImmutableSet.of(ID_NATIVE))) - .isTrue(); + validateSkylark( + AdvertisedProviderSet.builder() + .addSkylark(ID_LEGACY) + .build(), + ImmutableSet.of(ID_LEGACY), + ImmutableSet.of(ID_NATIVE) + )).isTrue(); } @Test public void skylarkProvidersNoMatch() { assertThat( - validateSkylark( - AdvertisedProviderSet.builder().addSkylark(ID_SKYLARK).build(), - "'p_legacy' or 'p_native'", - ImmutableSet.of(ID_LEGACY), - ImmutableSet.of(ID_NATIVE))) - .isFalse(); - } - - @Test - public void checkDescriptions() { - assertThat(RequiredProviders.acceptAnyBuilder().build().getDescription()) - .isEqualTo("no providers required"); - assertThat(RequiredProviders.acceptNoneBuilder().build().getDescription()) - .isEqualTo("no providers accepted"); - assertThat( - RequiredProviders.acceptAnyBuilder() - .addSkylarkSet(ImmutableSet.of(ID_LEGACY, ID_SKYLARK)) - .addSkylarkSet(ImmutableSet.of(ID_SKYLARK)) - .addNativeSet(ImmutableSet.of(P1.class, P2.class)) - .build() - .getDescription()) - .isEqualTo("[P1, P2] or ['p_legacy', 'p_skylark'] or 'p_skylark'"); + validateSkylark( + AdvertisedProviderSet.builder() + .addSkylark(ID_SKYLARK) + .build(), + ImmutableSet.of(ID_LEGACY), + ImmutableSet.of(ID_NATIVE) + )).isFalse(); } @SafeVarargs - private static boolean validateNative( - AdvertisedProviderSet providerSet, String missing, ImmutableSet<Class<?>>... sets) { + private static boolean validateNative(AdvertisedProviderSet providerSet, + ImmutableSet<Class<?>>... sets) { Builder anyBuilder = RequiredProviders.acceptAnyBuilder(); Builder noneBuilder = RequiredProviders.acceptNoneBuilder(); for (ImmutableSet<Class<?>> set : sets) { anyBuilder.addNativeSet(set); noneBuilder.addNativeSet(set); } - RequiredProviders rpStartingFromAny = anyBuilder.build(); - boolean result = satisfies(providerSet, rpStartingFromAny); - assertThat(rpStartingFromAny.getMissing(providerSet).getDescription()).isEqualTo(missing); - - RequiredProviders rpStaringFromNone = noneBuilder.build(); - assertThat(satisfies(providerSet, rpStaringFromNone)).isEqualTo(result); - assertThat(rpStaringFromNone.getMissing(providerSet).getDescription()).isEqualTo(missing); + boolean result = satisfies(providerSet, anyBuilder.build()); + assertThat(satisfies(providerSet, noneBuilder.build())).isEqualTo(result); return result; } @SafeVarargs private static boolean validateSkylark( AdvertisedProviderSet providerSet, - String missing, ImmutableSet<SkylarkProviderIdentifier>... sets) { Builder anyBuilder = RequiredProviders.acceptAnyBuilder(); Builder noneBuilder = RequiredProviders.acceptNoneBuilder(); @@ -223,14 +197,8 @@ public class RequiredProvidersTest { anyBuilder.addSkylarkSet(set); noneBuilder.addSkylarkSet(set); } - - RequiredProviders rpStartingFromAny = anyBuilder.build(); - boolean result = satisfies(providerSet, rpStartingFromAny); - assertThat(rpStartingFromAny.getMissing(providerSet).getDescription()).isEqualTo(missing); - - RequiredProviders rpStaringFromNone = noneBuilder.build(); - assertThat(satisfies(providerSet, rpStaringFromNone)).isEqualTo(result); - assertThat(rpStaringFromNone.getMissing(providerSet).getDescription()).isEqualTo(missing); + boolean result = satisfies(providerSet, anyBuilder.build()); + assertThat(satisfies(providerSet, noneBuilder.build())).isEqualTo(result); return result; } } |