summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStas Negara <snegara@google.com>2015-05-24 15:42:27 -0700
committerStas Negara <snegara@google.com>2015-05-24 15:44:59 -0700
commitae4d4ec4cb183dee32496411c48f3f96472c006b (patch)
tree1e967bde12814bb03c015c3c1f35ab61cf6eb738
parent4dcfd27b61fa9ccbdf2e2f9d42fdd262454a1b93 (diff)
downloadtesting-ae4d4ec4cb183dee32496411c48f3f96472c006b.tar.gz
Distinguish between physical and virtual devices in results.
Also, do not allow (with a message) debugging on physical devices. Change-Id: Ib47eb184f3ab00711718db232b897fcd3fda0878
-rw-r--r--src/com/google/gct/testing/ConfigurationInstance.java10
-rw-r--r--src/com/google/gct/testing/DebugConfigurationAction.java12
-rw-r--r--src/com/google/gct/testing/dimension/DeviceDimension.java11
3 files changed, 29 insertions, 4 deletions
diff --git a/src/com/google/gct/testing/ConfigurationInstance.java b/src/com/google/gct/testing/ConfigurationInstance.java
index 66cd276..a162ac4 100644
--- a/src/com/google/gct/testing/ConfigurationInstance.java
+++ b/src/com/google/gct/testing/ConfigurationInstance.java
@@ -22,6 +22,7 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import com.google.gct.testing.dimension.CloudConfigurationDimension;
import com.google.gct.testing.dimension.CloudTestingType;
+import com.google.gct.testing.dimension.DeviceDimension;
import java.util.*;
import java.util.regex.Pattern;
@@ -52,6 +53,8 @@ public class ConfigurationInstance {
public static final String ENCODED_NAME_DELIMITER = "-";
private final Map<String, CloudTestingType> typesByDimensionName = new LinkedHashMap<String, CloudTestingType>();
+ private boolean isVirtual = false;
+
private ConfigurationInstance() {
}
@@ -88,9 +91,16 @@ public class ConfigurationInstance {
if (dimensionName == null) {
throw new NoSuchElementException("Could not find the corresponding dimension for type: " + type.getResultsViewerDisplayName());
}
+ if (type instanceof DeviceDimension.Device) {
+ result.isVirtual = ((DeviceDimension.Device) type).isVirtual();
+ }
result.typesByDimensionName.put(dimensionName, type);
}
+ public boolean isVirtual() {
+ return isVirtual;
+ }
+
public CloudTestingType getTypeForDimension(CloudConfigurationDimension dimension) {
return typesByDimensionName.get(dimension.getDisplayName());
}
diff --git a/src/com/google/gct/testing/DebugConfigurationAction.java b/src/com/google/gct/testing/DebugConfigurationAction.java
index 81c7c79..f8c565c 100644
--- a/src/com/google/gct/testing/DebugConfigurationAction.java
+++ b/src/com/google/gct/testing/DebugConfigurationAction.java
@@ -105,8 +105,14 @@ public class DebugConfigurationAction extends AnAction {
configurationName = selectedNode.getParent().getParent().getName();
}
+ ConfigurationInstance configurationInstance = ConfigurationInstance.parseFromResultsViewerDisplayString(configurationName);
+ if (!configurationInstance.isVirtual()) {
+ CloudTestingUtils.showBalloonMessage(project, "Debugging on physical devices is not supported yet", MessageType.WARNING, 10);
+ return;
+ }
+
ApplicationManager.getApplication()
- .executeOnPooledThread(new DebuggingStater(environment, project, configurationName, className, methodName));
+ .executeOnPooledThread(new DebuggingStater(environment, project, configurationInstance, className, methodName));
}
private class DebuggingStater extends Thread {
@@ -118,11 +124,11 @@ public class DebugConfigurationAction extends AnAction {
private final RunProfile runProfile;
private final ProgramRunner runner;
- private DebuggingStater(ExecutionEnvironment environment, Project project, @NotNull String configurationName,
+ private DebuggingStater(ExecutionEnvironment environment, Project project, @NotNull ConfigurationInstance configurationInstance,
@Nullable String className, @Nullable String methodName) {
this.environment = environment;
this.project = project;
- configurationInstance = ConfigurationInstance.parseFromResultsViewerDisplayString(configurationName);
+ this.configurationInstance = configurationInstance;
this.className = className;
this.methodName = methodName;
runProfile = environment.getRunProfile();
diff --git a/src/com/google/gct/testing/dimension/DeviceDimension.java b/src/com/google/gct/testing/dimension/DeviceDimension.java
index 73b55ef..a66e0d7 100644
--- a/src/com/google/gct/testing/dimension/DeviceDimension.java
+++ b/src/com/google/gct/testing/dimension/DeviceDimension.java
@@ -129,7 +129,7 @@ public class DeviceDimension extends CloudConfigurationDimension {
@Override
public String getGroupDescription() {
- return form.equals("VIRTUAL")
+ return isVirtual()
? "Android OS running on Google Compute Engine."
: "An actual physical device managed by Google.";
}
@@ -140,6 +140,15 @@ public class DeviceDimension extends CloudConfigurationDimension {
}
@Override
+ public String getResultsViewerDisplayName() {
+ return getConfigurationDialogDisplayName() + (isVirtual() ? " (virtual)" : "");
+ }
+
+ public boolean isVirtual() {
+ return form.equals("VIRTUAL");
+ }
+
+ @Override
public String getId() {
return id;
}