aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2016-08-30 12:26:18 +0000
committerGravatar Klaus Aehlig <aehlig@google.com>2016-08-31 08:09:03 +0000
commitea988b691aa9c1ceb67d05885b947ca58c13cbf7 (patch)
treeade5d14eb2bba1d326798b1176877159a632a64e /src/test/java/com/google
parent1b2071f1809e8fd91a238b3b08fc1b32bf24b89b (diff)
Make aspects attached to aliases work when their actual= attribute is a select.
Fixes https://github.com/bazelbuild/e4b/issues/6 . -- MOS_MIGRATED_REVID=131698950
Diffstat (limited to 'src/test/java/com/google')
-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",