aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/packages
diff options
context:
space:
mode:
authorGravatar dslomov <dslomov@google.com>2017-08-01 20:47:59 +0200
committerGravatar Dmitry Lomov <dslomov@google.com>2017-08-02 10:40:02 +0200
commit7df851524497afd7b1833418cc639d9c8f417451 (patch)
tree5a8f0c12749fdda9731bc9571c7e4f780ef09c5c /src/test/java/com/google/devtools/build/lib/packages
parent71238601b8ca147cfd4f9498e11d8517b25ac69a (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.java112
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;
}
}