aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2016-08-09 16:49:32 +0000
committerGravatar Yue Gan <yueg@google.com>2016-08-10 08:36:43 +0000
commitcf6021a7153f4e135bec2098af4dfa4291b5b398 (patch)
treeaea1f2211fce1b3e7b3b64656a0def134b202c44 /src/test/java/com/google/devtools/build
parent3e0f933556f1d10165e9cb02cc90cc1ed7bea4ac (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.java43
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