diff options
author | Brett Chabot <brettchabot@android.com> | 2010-04-06 13:07:41 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-04-06 13:07:41 -0700 |
commit | dbe32daf2f98a6a44b4ae80e2ffa6ceb86f9c7e2 (patch) | |
tree | 8076abae6ae51aec6c5ce74b36b328312ab4b660 | |
parent | 43cdfcc57cb88f88d760d75f07e0a697b8631df5 (diff) | |
parent | f486eceb8881d987d3e3bd4eefa0490b37f7e697 (diff) | |
download | sdk-dbe32daf2f98a6a44b4ae80e2ffa6ceb86f9c7e2.zip sdk-dbe32daf2f98a6a44b4ae80e2ffa6ceb86f9c7e2.tar.gz sdk-dbe32daf2f98a6a44b4ae80e2ffa6ceb86f9c7e2.tar.bz2 |
Merge "Add setTestSize to ddms test runner."
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); |