diff options
author | 2016-11-30 16:03:10 +0000 | |
---|---|---|
committer | 2016-12-01 10:13:55 +0000 | |
commit | 6f8393f5c5bddbb49a74d3229411e1050d799208 (patch) | |
tree | 2168142e35cc1f428837b00936504b1387ef2f51 /src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java | |
parent | 5fe7230880cdb87ade113980a2d2351b6a7f64ea (diff) |
Allow aspects to specify multiple sets of required providers to match against rules. Aspects can attach to a rule if at least one set of required providers are present on the rule.
--
MOS_MIGRATED_REVID=140605023
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java index 37abaafb46..ae4f5337cf 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java @@ -163,6 +163,21 @@ public class AspectTest extends AnalysisTestCase { } @Test + public void aspectCreatedIfAtLeastOneSetOfAdvertisedProvidersArePresent() throws Exception { + setRulesAvailableInTests(new TestAspects.BaseRule(), new TestAspects.HonestRule(), + new TestAspects.HonestRule2(), new TestAspects.AspectRequiringProviderSetsRule()); + + pkg("a", + "aspect_requiring_provider_sets(name='a', foo=[':b', ':c'])", + "honest(name='b', foo=[])", + "honest2(name='c', foo=[])"); + + ConfiguredTarget a = getConfiguredTarget("//a:a"); + assertThat(a.getProvider(RuleInfo.class).getData()) + .containsExactly("rule //a:a", "aspect //a:b", "aspect //a:c"); + } + + @Test public void aspectWithParametrizedDefinition() throws Exception { setRulesAvailableInTests( new TestAspects.BaseRule(), |