diff options
author | 2016-08-09 16:49:32 +0000 | |
---|---|---|
committer | 2016-08-10 08:36:43 +0000 | |
commit | cf6021a7153f4e135bec2098af4dfa4291b5b398 (patch) | |
tree | aea1f2211fce1b3e7b3b64656a0def134b202c44 /src/test/java/com/google/devtools/build | |
parent | 3e0f933556f1d10165e9cb02cc90cc1ed7bea4ac (diff) |
Apply extra actions to top-level aspects.
--
MOS_MIGRATED_REVID=129759632
Diffstat (limited to 'src/test/java/com/google/devtools/build')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java | 43 |
1 files changed, 38 insertions, 5 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 6746341eae..c13eac8f37 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 @@ -39,15 +39,12 @@ import com.google.devtools.build.lib.rules.java.Jvm; import com.google.devtools.build.lib.skyframe.AspectValue; import com.google.devtools.build.lib.syntax.SkylarkNestedSet; import com.google.devtools.build.lib.vfs.FileSystemUtils; - +import java.util.Arrays; +import javax.annotation.Nullable; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -import java.util.Arrays; - -import javax.annotation.Nullable; - /** * Tests for Skylark aspects */ @@ -1101,6 +1098,42 @@ public class SkylarkAspectsTest extends AnalysisTestCase { assertContainsEvent("Aspect //test:aspect.bzl%my_aspect added more than once"); } + @Test + public void topLevelAspectsAndExtraActions() throws Exception { + scratch.file( + "test/aspect.bzl", + "def _aspect_impl(target,ctx):", + " f = ctx.new_file('dummy.txt')", + " ctx.action(outputs = [f], command='echo xxx > $(location f)', mnemonic='AspectAction')", + " return struct()", + "my_aspect = aspect(implementation = _aspect_impl)" + ); + scratch.file( + "test/BUILD", + "extra_action(", + " name = 'xa',", + " cmd = 'echo $(EXTRA_ACTION_FILE) > $(output file.xa)',", + " out_templates = ['file.xa'],", + ")", + "action_listener(", + " name = 'al',", + " mnemonics = [ 'AspectAction' ],", + " extra_actions = [ ':xa' ])", + "java_library(name = 'xxx')" + ); + useConfiguration("--experimental_action_listener=//test:al"); + AnalysisResult analysisResult = update( + ImmutableList.<String>of("test/aspect.bzl%my_aspect"), + "//test:xxx"); + assertThat(Iterables.transform(analysisResult.getAdditionalArtifactsToBuild(), + new Function<Artifact, String>() { + @Override + public String apply(Artifact artifact) { + return artifact.getFilename(); + } + })).contains("file.xa"); + } + @RunWith(JUnit4.class) public static final class WithKeepGoing extends SkylarkAspectsTest { @Override |