aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java
diff options
context:
space:
mode:
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.java40
1 files changed, 40 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 f602e8b441..14c4b1fb2f 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
@@ -60,6 +60,46 @@ public class AspectTest extends AnalysisTestCase {
}
@Test
+ public void testAspectAppliedToAliasWithSelect() throws Exception {
+ setRulesAvailableInTests(new TestAspects.BaseRule(), new AspectRequiringRule());
+ pkg("a",
+ "aspect(name='a', foo=[':b'])",
+ "alias(name='b', actual=select({'//conditions:default': ':c'}))",
+ "base(name='c')");
+ ConfiguredTarget a = getConfiguredTarget("//a:a");
+ assertThat(a.getProvider(RuleInfo.class).getData())
+ .containsExactly("aspect //a:c", "rule //a:a");
+ }
+
+ @Test
+ public void testAspectAppliedToChainedAliases() throws Exception {
+ setRulesAvailableInTests(new TestAspects.BaseRule(), new AspectRequiringRule());
+ pkg("a",
+ "aspect(name='a', foo=[':b'])",
+ "alias(name='b', actual=':c')",
+ "alias(name='c', actual=':d')",
+ "alias(name='d', actual=':e')",
+ "base(name='e')");
+
+ ConfiguredTarget a = getConfiguredTarget("//a:a");
+ assertThat(a.getProvider(RuleInfo.class).getData())
+ .containsExactly("aspect //a:e", "rule //a:a");
+ }
+
+ @Test
+ public void testAspectAppliedToChainedAliasesAndSelect() throws Exception {
+ setRulesAvailableInTests(new TestAspects.BaseRule(), new AspectRequiringRule());
+ pkg("a",
+ "aspect(name='a', foo=[':b'])",
+ "alias(name='b', actual=select({'//conditions:default': ':c'}))",
+ "alias(name='c', actual=select({'//conditions:default': ':d'}))",
+ "base(name='d')");
+ ConfiguredTarget a = getConfiguredTarget("//a:a");
+ assertThat(a.getProvider(RuleInfo.class).getData())
+ .containsExactly("aspect //a:d", "rule //a:a");
+ }
+
+ @Test
public void providersOfAspectAreMergedIntoDependency() throws Exception {
setRulesAvailableInTests(new TestAspects.BaseRule(), new AspectRequiringRule());
pkg("a",