aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrett Chabot <brettchabot@android.com>2010-04-06 13:07:41 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-04-06 13:07:41 -0700
commitdbe32daf2f98a6a44b4ae80e2ffa6ceb86f9c7e2 (patch)
tree8076abae6ae51aec6c5ce74b36b328312ab4b660
parent43cdfcc57cb88f88d760d75f07e0a697b8631df5 (diff)
parentf486eceb8881d987d3e3bd4eefa0490b37f7e697 (diff)
downloadsdk-dbe32daf2f98a6a44b4ae80e2ffa6ceb86f9c7e2.zip
sdk-dbe32daf2f98a6a44b4ae80e2ffa6ceb86f9c7e2.tar.gz
sdk-dbe32daf2f98a6a44b4ae80e2ffa6ceb86f9c7e2.tar.bz2
Merge "Add setTestSize to ddms test runner."
-rw-r--r--ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/IRemoteAndroidTestRunner.java53
-rwxr-xr-xddms/libs/ddmlib/src/com/android/ddmlib/testrunner/InstrumentationResultParser.java5
-rw-r--r--ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/RemoteAndroidTestRunner.java11
3 files changed, 65 insertions, 4 deletions
diff --git a/ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/IRemoteAndroidTestRunner.java b/ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/IRemoteAndroidTestRunner.java
index 67b999d..b40f164 100644
--- a/ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/IRemoteAndroidTestRunner.java
+++ b/ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/IRemoteAndroidTestRunner.java
@@ -24,6 +24,51 @@ import java.util.Collection;
*/
public interface IRemoteAndroidTestRunner {
+ public static enum TestSize {
+ /** Run tests annotated with SmallTest */
+ SMALL("small"),
+ /** Run tests annotated with MediumTest */
+ MEDIUM("medium"),
+ /** Run tests annotated with LargeTest */
+ LARGE("large");
+
+ private String mRunnerValue;
+
+ /**
+ * Create a {@link TestSize}.
+ *
+ * @param runnerValue the {@link String} value that represents the size that is passed to
+ * device. Defined on device in android.test.InstrumentationTestRunner.
+ */
+ TestSize(String runnerValue) {
+ mRunnerValue = runnerValue;
+ }
+
+ String getRunnerValue() {
+ return mRunnerValue;
+ }
+
+ /**
+ * Return the {@link TestSize} corresponding to the given Android platform defined value.
+ *
+ * @throws IllegalArgumentException if {@link TestSize} cannot be found.
+ */
+ public static TestSize getTestSize(String value) {
+ // build the error message in the success case too, to avoid two for loops
+ StringBuilder msgBuilder = new StringBuilder("Unknown TestSize ");
+ msgBuilder.append(value);
+ msgBuilder.append(", Must be one of ");
+ for (TestSize size : values()) {
+ if (size.getRunnerValue().equals(value)) {
+ return size;
+ }
+ msgBuilder.append(size.getRunnerValue());
+ msgBuilder.append(", ");
+ }
+ throw new IllegalArgumentException(msgBuilder.toString());
+ }
+ }
+
/**
* Returns the application package name.
*/
@@ -71,6 +116,14 @@ public interface IRemoteAndroidTestRunner {
public void setTestPackageName(String packageName);
/**
+ * Sets to run only tests of given size.
+ * Must be called before 'run'.
+ *
+ * @param size the {@link TestSize} to run.
+ */
+ public void setTestSize(TestSize size);
+
+ /**
* Adds a argument to include in instrumentation command.
* <p/>
* Must be called before 'run'. If an argument with given name has already been provided, it's
diff --git a/ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/InstrumentationResultParser.java b/ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/InstrumentationResultParser.java
index 708377e..2bc5710 100755
--- a/ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/InstrumentationResultParser.java
+++ b/ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/InstrumentationResultParser.java
@@ -234,8 +234,8 @@ public class InstrumentationResultParser extends MultiLineReceiver {
// this is a value that has wrapped to next line.
mCurrentValue.append("\r\n");
mCurrentValue.append(line);
- } else {
- Log.i(LOG_TAG, "unrecognized line " + line);
+ } else if (line.trim().length() > 0){
+ Log.d(LOG_TAG, "unrecognized line " + line);
}
}
}
@@ -462,7 +462,6 @@ public class InstrumentationResultParser extends MultiLineReceiver {
listener.testRunFailed(errorMsg);
}
mTestRunFailReported = true;
-
}
/**
diff --git a/ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/RemoteAndroidTestRunner.java b/ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/RemoteAndroidTestRunner.java
index fec2af0..0d22886 100644
--- a/ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/RemoteAndroidTestRunner.java
+++ b/ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/RemoteAndroidTestRunner.java
@@ -52,6 +52,7 @@ public class RemoteAndroidTestRunner implements IRemoteAndroidTestRunner {
private static final String DEBUG_ARG_NAME = "debug";
private static final String COVERAGE_ARG_NAME = "coverage";
private static final String PACKAGE_ARG_NAME = "package";
+ private static final String SIZE_ARG_NAME = "size";
/**
* Creates a remote Android test runner.
@@ -183,6 +184,13 @@ public class RemoteAndroidTestRunner implements IRemoteAndroidTestRunner {
/**
* {@inheritDoc}
*/
+ public void setTestSize(TestSize size) {
+ addInstrumentationArg(SIZE_ARG_NAME, size.getRunnerValue());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public void run(ITestRunListener... listeners) throws IOException {
run(Arrays.asList(listeners));
}
@@ -193,7 +201,8 @@ public class RemoteAndroidTestRunner implements IRemoteAndroidTestRunner {
public void run(Collection<ITestRunListener> listeners) throws IOException {
final String runCaseCommandStr = String.format("am instrument -w -r %s %s",
getArgsCommand(), getRunnerPath());
- Log.d(LOG_TAG, runCaseCommandStr);
+ Log.i(LOG_TAG, String.format("Running %s on %s", runCaseCommandStr,
+ mRemoteDevice.getSerialNumber()));
mParser = new InstrumentationResultParser(listeners);
mRemoteDevice.executeShellCommand(runCaseCommandStr, mParser);