com.android.ddmlib.testrunner
Class InstrumentationResultParser

java.lang.Object
  extended by com.android.ddmlib.MultiLineReceiver
      extended by com.android.ddmlib.testrunner.InstrumentationResultParser
All Implemented Interfaces:
IShellOutputReceiver

public class InstrumentationResultParser
extends MultiLineReceiver

Parses the 'raw output mode' results of an instrumentation test run from shell and informs a ITestRunListener of the results.

Expects the following output:

If fatal error occurred when attempted to run the tests:

 INSTRUMENTATION_STATUS: Error=error Message
 INSTRUMENTATION_FAILED:
 

or

 INSTRUMENTATION_RESULT: shortMsg=error Message
 

Otherwise, expect a series of test results, each one containing a set of status key/value pairs, delimited by a start(1)/pass(0)/fail(-2)/error(-1) status code result. At end of test run, expects that the elapsed test time in seconds will be displayed

For example:

 INSTRUMENTATION_STATUS_CODE: 1
 INSTRUMENTATION_STATUS: class=com.foo.FooTest
 INSTRUMENTATION_STATUS: test=testFoo
 INSTRUMENTATION_STATUS: numtests=2
 INSTRUMENTATION_STATUS: stack=com.foo.FooTest#testFoo:312
    com.foo.X
 INSTRUMENTATION_STATUS_CODE: -2
 ...

 Time: X
 

Note that the "value" portion of the key-value pair may wrap over several text lines


Constructor Summary
InstrumentationResultParser(String runName, Collection<ITestRunListener> listeners)
          Creates the InstrumentationResultParser.
InstrumentationResultParser(String runName, ITestRunListener listener)
          Creates the InstrumentationResultParser for a single listener.
 
Method Summary
 void cancel()
          Requests cancellation of test run.
 void done()
          Called by parent when adb session is complete.
 boolean isCancelled()
          Returns true if test run canceled.
 void processNewLines(String[] lines)
          Processes the instrumentation test output from shell.
 
Methods inherited from class com.android.ddmlib.MultiLineReceiver
addOutput, flush, setTrimLine
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InstrumentationResultParser

public InstrumentationResultParser(String runName,
                                   Collection<ITestRunListener> listeners)
Creates the InstrumentationResultParser.

Parameters:
runName - the test run name to provide to ITestRunListener.testRunStarted(String, int)
listeners - informed of test results as the tests are executing

InstrumentationResultParser

public InstrumentationResultParser(String runName,
                                   ITestRunListener listener)
Creates the InstrumentationResultParser for a single listener.

Parameters:
runName - the test run name to provide to ITestRunListener.testRunStarted(String, int)
listener - informed of test results as the tests are executing
Method Detail

processNewLines

public void processNewLines(String[] lines)
Processes the instrumentation test output from shell.

Specified by:
processNewLines in class MultiLineReceiver
Parameters:
lines - The array containing the new lines.
See Also:
MultiLineReceiver.processNewLines(java.lang.String[])

isCancelled

public boolean isCancelled()
Returns true if test run canceled.

Returns:
true to cancel the execution of the command.
See Also:
IShellOutputReceiver.isCancelled()

cancel

public void cancel()
Requests cancellation of test run.


done

public void done()
Called by parent when adb session is complete.

Overrides:
done in class MultiLineReceiver


Copyright © 2008-2012. All Rights Reserved.