aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/skylark
diff options
context:
space:
mode:
authorGravatar dslomov <dslomov@google.com>2017-05-08 08:47:44 -0400
committerGravatar Kristina Chodorow <kchodorow@google.com>2017-05-08 09:50:19 -0400
commitfa50c3ddd67d835a134ea8da0cb9ba02fed704d1 (patch)
tree4e1b00014069ee50029e8cab4349f2879fdbb385 /src/test/java/com/google/devtools/build/lib/skylark
parentc5c9aced57681cce897f3286d41b935d33876caa (diff)
Do not report errors when aspects try to attach to files.
Instead, silently ignore them in the same way we do for rules to which aspects are not applicable. In the future aspects will gain the ability to apply to, and propagate through, files. RELNOTES: None. PiperOrigin-RevId: 155369925
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skylark')
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java47
1 files changed, 34 insertions, 13 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
index dec93cbf94..2ecdf0864d 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
@@ -151,7 +151,6 @@ public class SkylarkAspectsTest extends AnalysisTestCase {
public List<Key> apply(AspectValue aspectValue) {
return aspectValue
.getConfiguredAspect()
- .getProviders()
.getProvider(SkylarkProviders.class)
.getDeclaredProviderKeys()
.asList();
@@ -784,20 +783,41 @@ public class SkylarkAspectsTest extends AnalysisTestCase {
" deps = ['//external:yyy'],",
")");
- reporter.removeHandler(failFastHandler);
- try {
- AnalysisResult result = update(ImmutableList.of("test/aspect.bzl%MyAspect"), "//test:xxx");
- assertThat(keepGoing()).isTrue();
- assertThat(result.hasError()).isTrue();
- } catch (ViewCreationFailedException expected) {
- assertThat(expected.getMessage())
- .contains("Analysis of aspect '/test/aspect%MyAspect of //test:xxx' failed");
- }
- assertContainsEvent("//test:aspect.bzl%MyAspect is attached to source file zzz.jar but "
- + "aspects must be attached to rules");
+ AnalysisResult result = update(ImmutableList.of("test/aspect.bzl%MyAspect"), "//test:xxx");
+ assertThat(result.hasError()).isFalse();
}
@Test
+ public void aspectsDoNotAttachToTopLevelFiles() throws Exception {
+ FileSystemUtils.appendIsoLatin1(scratch.resolve("WORKSPACE"),
+ "bind(name = 'yyy', actual = '//test:zzz.jar')");
+ scratch.file(
+ "test/aspect.bzl",
+ "p = provider()",
+ "def _impl(target, ctx):",
+ " return [p()]",
+ "",
+ "MyAspect = aspect(",
+ " implementation=_impl,",
+ " attr_aspects=['deps'],",
+ ")");
+ scratch.file("test/zzz.jar");
+ scratch.file(
+ "test/BUILD",
+ "exports_files(['zzz.jar'])",
+ "java_library(",
+ " name = 'xxx',",
+ " srcs = ['A.java'],",
+ " deps = ['//external:yyy'],",
+ ")");
+
+ AnalysisResult result = update(ImmutableList.of("test/aspect.bzl%MyAspect"), "//test:zzz.jar");
+ assertThat(result.hasError()).isFalse();
+ assertThat(Iterables.getOnlyElement(result.getAspects()).getConfiguredAspect()).isEmpty();
+ }
+
+
+ @Test
public void aspectFailingExecution() throws Exception {
scratch.file(
"test/aspect.bzl",
@@ -1694,7 +1714,8 @@ public class SkylarkAspectsTest extends AnalysisTestCase {
AnalysisResult analysisResult =
update(ImmutableList.of("test/aspect.bzl%MyAspect"), "//test:file.txt");
assertThat(analysisResult.hasError()).isFalse();
- assertThat(analysisResult.getAspects()).isEmpty();
+ assertThat(Iterables.getOnlyElement(analysisResult.getAspects()).getConfiguredAspect())
+ .isEmpty();
}
@Test