summaryrefslogtreecommitdiff
path: root/android-gradle-jps
diff options
context:
space:
mode:
authorSiva Velusamy <vsiva@google.com>2013-11-11 16:35:37 -0800
committerSiva Velusamy <vsiva@google.com>2013-11-12 09:39:43 -0800
commit7053e4043f732bd9e0ea0d1c7ee2b7cc107660ad (patch)
treec8a3395e6991433fd620f6f47afdaf2406bbaa47 /android-gradle-jps
parentb6e66494d086cd59d2175fac9f45bf1b994a266e (diff)
downloadidea-7053e4043f732bd9e0ea0d1c7ee2b7cc107660ad.tar.gz
Build tests for Java modules.
This CL adds a task to compile a Java module's test classes when compilation is invoked in the context of a JUnit run configuration. Fixes: https://code.google.com/p/android/issues/detail?id=60916 Change-Id: Ic56606109837287bbf0fa1d2b711598463512e2a
Diffstat (limited to 'android-gradle-jps')
-rw-r--r--android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java47
1 files changed, 31 insertions, 16 deletions
diff --git a/android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java b/android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java
index 6ec13789c03..969076275a8 100644
--- a/android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java
+++ b/android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java
@@ -27,6 +27,7 @@ import com.google.common.collect.Lists;
import com.google.common.io.Closeables;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.io.FileUtil;
+import com.intellij.util.ArrayUtil;
import com.intellij.util.SystemProperties;
import org.gradle.tooling.BuildException;
import org.gradle.tooling.BuildLauncher;
@@ -140,25 +141,25 @@ public class AndroidGradleTargetBuilder extends TargetBuilder<AndroidGradleBuild
private static String[] getBuildTasks(@NotNull JpsProject project,
@NotNull CompileContext context,
@NotNull BuilderExecutionSettings executionSettings) {
- boolean buildTests = AndroidJpsUtil.isInstrumentationTestContext(context);
- List<String> tasks = Lists.newArrayList();
-
BuildMode buildMode = executionSettings.getBuildMode();
if (buildMode.equals(BuildMode.CLEAN)) {
- tasks.add(GradleBuilds.CLEAN_TASK_NAME);
+ return new String[] { GradleBuilds.CLEAN_TASK_NAME };
}
- else {
- for (JpsModule module : getModulesToBuild(project, executionSettings)) {
- populateBuildTasks(module, executionSettings, tasks, buildTests);
- }
- if (!tasks.isEmpty()) {
- boolean rebuild = JavaBuilderUtil.isForcedRecompilationAllJavaModules(context);
- if (rebuild) {
- tasks.add(0, GradleBuilds.CLEAN_TASK_NAME);
- }
+
+ List<String> tasks = Lists.newArrayList();
+
+ for (JpsModule module : getModulesToBuild(project, executionSettings)) {
+ populateBuildTasks(module, executionSettings, tasks, context);
+ }
+
+ if (!tasks.isEmpty()) {
+ boolean rebuild = JavaBuilderUtil.isForcedRecompilationAllJavaModules(context);
+ if (rebuild) {
+ tasks.add(0, GradleBuilds.CLEAN_TASK_NAME);
}
}
- return tasks.toArray(new String[tasks.size()]);
+
+ return ArrayUtil.toStringArray(tasks);
}
@NotNull
@@ -180,7 +181,7 @@ public class AndroidGradleTargetBuilder extends TargetBuilder<AndroidGradleBuild
private static void populateBuildTasks(@NotNull JpsModule module,
@NotNull BuilderExecutionSettings executionSettings,
@NotNull List<String> tasks,
- boolean buildTests) {
+ CompileContext context) {
JpsAndroidGradleModuleExtension androidGradleFacet = AndroidGradleJps.getExtension(module);
if (androidGradleFacet == null) {
return;
@@ -189,7 +190,21 @@ public class AndroidGradleTargetBuilder extends TargetBuilder<AndroidGradleBuild
JpsAndroidModuleExtensionImpl androidFacet = (JpsAndroidModuleExtensionImpl)AndroidJpsUtil.getExtension(module);
JpsAndroidModuleProperties properties = androidFacet != null ? androidFacet.getProperties() : null;
- GradleBuilds.findAndAddBuildTask(module.getName(), executionSettings.getBuildMode(), gradleProjectPath, properties, tasks, buildTests);
+ GradleBuilds.TestCompileContext testCompileContext;
+ if (AndroidJpsUtil.isInstrumentationTestContext(context)) {
+ testCompileContext = GradleBuilds.TestCompileContext.ANDROID_TESTS;
+ } else if (AndroidJpsUtil.isJunitTestContext(context)) {
+ testCompileContext = GradleBuilds.TestCompileContext.JAVA_TESTS;
+ } else {
+ testCompileContext = GradleBuilds.TestCompileContext.NONE;
+ }
+
+ GradleBuilds.findAndAddBuildTask(module.getName(),
+ executionSettings.getBuildMode(),
+ gradleProjectPath,
+ properties,
+ tasks,
+ testCompileContext);
}
private static void ensureTempDirExists() {