diff options
author | Stas Negara <snegara@google.com> | 2015-05-24 15:42:27 -0700 |
---|---|---|
committer | Stas Negara <snegara@google.com> | 2015-05-24 15:44:59 -0700 |
commit | ae4d4ec4cb183dee32496411c48f3f96472c006b (patch) | |
tree | 1e967bde12814bb03c015c3c1f35ab61cf6eb738 | |
parent | 4dcfd27b61fa9ccbdf2e2f9d42fdd262454a1b93 (diff) | |
download | testing-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
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; } |