OSDN Git Service

Make InstrumentationResultParser less chatty on unexpected output.
authorBrett Chabot <brettchabot@android.com>
Sat, 15 Oct 2011 04:42:40 +0000 (21:42 -0700)
committerBrett Chabot <brettchabot@android.com>
Sat, 15 Oct 2011 04:42:40 +0000 (21:42 -0700)
Bug 5459282

Change-Id: Ib3069b628f476cf73649802f51b7bb22b6ceebaa

ddms/libs/ddmlib/src/com/android/ddmlib/testrunner/InstrumentationResultParser.java
ddms/libs/ddmlib/tests/src/com/android/ddmlib/testrunner/InstrumentationResultParserTest.java

index 22648a9..cbb1c5a 100644 (file)
@@ -327,7 +327,7 @@ public class InstrumentationResultParser extends MultiLineReceiver {
                     try {
                         testInfo.mNumTests = Integer.parseInt(statusValue);
                     } catch (NumberFormatException e) {
-                        Log.e(LOG_TAG, "Unexpected integer number of tests, received "
+                        Log.w(LOG_TAG, "Unexpected integer number of tests, received "
                                 + statusValue);
                     }
                 } else if (mCurrentKey.equals(StatusKeys.ERROR)) {
@@ -404,7 +404,8 @@ public class InstrumentationResultParser extends MultiLineReceiver {
         try {
             testInfo.mCode = Integer.parseInt(value);
         } catch (NumberFormatException e) {
-            Log.e(LOG_TAG, "Expected integer status code, received: " + value);
+            Log.w(LOG_TAG, "Expected integer status code, received: " + value);
+            testInfo.mCode = StatusCodes.ERROR;
         }
         if (testInfo.mCode != StatusCodes.IN_PROGRESS) {
             // this means we're done with current test result bundle
index 650e79c..0bbb20e 100644 (file)
@@ -208,6 +208,26 @@ public class InstrumentationResultParserTest extends TestCase {
     }
 
     /**
+     * Test parsing output when a status code cannot be parsed
+     */
+    public void testParse_invalidCode() {
+        StringBuilder output = new StringBuilder();
+        addLine(output, "android.util.AndroidException: INSTRUMENTATION_FAILED: foo/foo");
+        addLine(output, "INSTRUMENTATION_STATUS: id=ActivityManagerService");
+        addLine(output, "INSTRUMENTATION_STATUS: Error=Unable to find instrumentation target package: foo");
+        addLine(output, "INSTRUMENTATION_STATUS_CODE: -1at com.android.commands.am.Am.runInstrument(Am.java:532)");
+        addLine(output, "");
+        addLine(output, "        at com.android.commands.am.Am.run(Am.java:111)");
+        addLineBreak(output);
+
+        mMockListener.testRunStarted(RUN_NAME, 0);
+        mMockListener.testRunFailed((String)EasyMock.anyObject());
+        mMockListener.testRunEnded(0, Collections.EMPTY_MAP);
+
+        injectAndVerifyTestString(output.toString());
+    }
+
+    /**
      * Test parsing output for a test run failure, where an instrumentation component failed to
      * load.
      * <p/>