diff options
author | 2015-09-14 08:44:25 +0000 | |
---|---|---|
committer | 2015-09-14 15:39:33 +0000 | |
commit | fc567b333e4bb6d2f5f64024c4adba1f446da3b4 (patch) | |
tree | 7bcc1b83883e454a632d8383d28624d78d43d264 /src/test/java/com/google | |
parent | c9e52201d11765638101e570664b09eaf1357cbd (diff) |
Fix a bug, when we have dependency from one aspect to another aspect1->aspect2 and aspect2 fails then aspect1 throws IllegalStateException.
--
MOS_MIGRATED_REVID=102976139
Diffstat (limited to 'src/test/java/com/google')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java | 23 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java | 2 |
2 files changed, 25 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 02b4f3e1dc..b051db1a8c 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 @@ -126,6 +126,29 @@ public class AspectTest extends AnalysisTestCase { } @Test + public void transitiveAspectInError() throws Exception { + setRules(new TestAspects.BaseRule(), new TestAspects.ErrorAspectRule(), + new TestAspects.SimpleRule()); + + pkg("a", + "error_aspect(name='a', foo=[':b'])", + "error_aspect(name='b', bar=[':c'])", + "error_aspect(name='c', bar=[':d'])", + "error_aspect(name='d')"); + + reporter.removeHandler(failFastHandler); + // getConfiguredTarget() uses a separate code path that does not hit + // SkyframeBuildView#configureTargets + try { + update("//a:a"); + fail(); + } catch (ViewCreationFailedException e) { + // expected + } + assertContainsEvent("Aspect error"); + } + + @Test public void sameTargetInDifferentAttributes() throws Exception { setRules(new TestAspects.BaseRule(), new TestAspects.AspectRequiringRule(), new TestAspects.SimpleRule()); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java b/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java index 5f41e3d4ec..c0ee9111a0 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java @@ -237,6 +237,7 @@ public class TestAspects { } private static final AspectDefinition ERROR_ASPECT = new AspectDefinition.Builder("error") + .attributeAspect("bar", ErrorAspect.class) .build(); /** @@ -367,6 +368,7 @@ public class TestAspects { return builder .add(attr("foo", LABEL_LIST).allowedFileTypes(FileTypeSet.ANY_FILE) .aspect(ErrorAspect.class)) + .add(attr("bar", LABEL_LIST).allowedFileTypes(FileTypeSet.ANY_FILE)) .build(); } |