ProtoResultReporter

public abstract class ProtoResultReporter
extends Object implements ITestInvocationListener, ILogSaverListener

java.lang.Object
   ↳ com.android.tradefed.result.proto.ProtoResultReporter


Result reporter build a TestRecord protobuf with all the results inside. Should be extended to handle what to do with the final proto in processFinalProto(com.android.tradefed.result.proto.TestRecordProto.TestRecord).

Summary

Public constructors

ProtoResultReporter()

Public methods

final void invocationEnded(long elapsedTime)

Reports that the invocation has terminated, whether successfully or due to some error condition.

void invocationFailed(Throwable cause)

Reports an incomplete invocation due to some error condition.

final void invocationStarted(IInvocationContext context)

Reports the start of the test invocation.

final void logAssociation(String dataName, LogFile logFile)

In some cases, log must be strongly associated with a test cases, but the opportunity to do so on the direct testLogSaved(String, com.android.tradefed.result.LogDataType, com.android.tradefed.result.InputStreamSource, com.android.tradefed.result.LogFile) callback is not possible.

void processFinalProto(TestRecordProto.TestRecord finalRecord)

Handling of the final proto with all results.

void processStartInvocation(TestRecordProto.TestRecord invocationStartRecord, IInvocationContext invocationContext)

Handling of the partial invocation test record proto after invocationStarted(com.android.tradefed.invoker.IInvocationContext) occurred.

void processTestCaseEnded(TestRecordProto.TestRecord testCaseRecord)

Handling of the finalized test case record proto after ERROR(/#testEnded(com.android.tradefed.result.TestDescription,long,HashMap)) occurred.

void processTestCaseStarted(TestRecordProto.TestRecord testCaseStartedRecord)

Handling of the partial test case record proto after testStarted(com.android.tradefed.result.TestDescription, long) occurred.

void processTestModuleEnd(TestRecordProto.TestRecord moduleRecord)

Handling of the finalized module record proto after testModuleEnded() occurred.

void processTestModuleStarted(TestRecordProto.TestRecord moduleStartRecord)

Handling of the partial module record proto after testModuleStarted(com.android.tradefed.invoker.IInvocationContext) occurred.

void processTestRunEnded(TestRecordProto.TestRecord runRecord)

Handling of the finalized run record proto after ERROR(/#testRunEnded(long,HashMap)) occurred.

void processTestRunStarted(TestRecordProto.TestRecord runStartedRecord)

Handling of the partial test run record proto after testRunStarted(String, int) occurred.

final void testAssumptionFailure(TestDescription test, String trace)

Called when an atomic test flags that it assumes a condition that is false

final void testEnded(TestDescription test, long endTime, testMetrics)

Alternative to ERROR(/#testEnded(com.android.tradefed.result.TestDescription,Map)) where we can specify the end time directly.

void testEnded(TestDescription test, testMetrics)

Reports the execution end of an individual test case.

final void testFailed(TestDescription test, String trace)

Reports the failure of a individual test case.

final void testIgnored(TestDescription test)

Called when a test will not be run, generally because a test method is annotated with org.junit.Ignore.

final void testModuleEnded()

Reports the end of a module run.

final void testModuleStarted(IInvocationContext moduleContext)

Reports the beginning of a module running.

final void testRunEnded(long elapsedTimeMillis, runMetrics)

Reports end of test run.

final void testRunFailed(String errorMessage)

Reports test run failed to complete due to a fatal error.

void testRunStarted(String runName, int testCount, int attemptNumber)

Reports the start of a test run.

final void testRunStarted(String runName, int testCount)

Reports the start of a test run.

void testRunStarted(String runName, int testCount, int attemptNumber, long startTime)

Reports the start of a test run.

final void testStarted(TestDescription test, long startTime)

Alternative to testStarted(com.android.tradefed.result.TestDescription) where we also specify when the test was started, combined with ERROR(/#testEnded(com.android.tradefed.result.TestDescription,long,Map)) for accurate measure.

final void testStarted(TestDescription test)

Reports the start of an individual test case.

Public constructors

ProtoResultReporter

public ProtoResultReporter ()

Public methods

invocationEnded

public final void invocationEnded (long elapsedTime)

Reports that the invocation has terminated, whether successfully or due to some error condition.

Will be automatically called by the TradeFederation framework.

Parameters
elapsedTime long: the elapsed time of the invocation in ms

invocationFailed

public void invocationFailed (Throwable cause)

Reports an incomplete invocation due to some error condition.

Will be automatically called by the TradeFederation framework.

Parameters
cause Throwable: the Throwable cause of the failure

invocationStarted

public final void invocationStarted (IInvocationContext context)

Reports the start of the test invocation.

Will be automatically called by the TradeFederation framework. Reporters need to override this method to support multiple devices reporting.

Parameters
context IInvocationContext: information about the invocation

logAssociation

public final void logAssociation (String dataName, 
                LogFile logFile)

In some cases, log must be strongly associated with a test cases, but the opportunity to do so on the direct testLogSaved(String, com.android.tradefed.result.LogDataType, com.android.tradefed.result.InputStreamSource, com.android.tradefed.result.LogFile) callback is not possible. Thus, this callback allows to provide a strong association explicitly.

Parameters
dataName String: The name of the data

logFile LogFile: the LogFile that was logged before and should be associated with the test case.

processFinalProto

public void processFinalProto (TestRecordProto.TestRecord finalRecord)

Handling of the final proto with all results.

Parameters
finalRecord TestRecordProto.TestRecord: The finalized proto with all the invocation results.

processStartInvocation

public void processStartInvocation (TestRecordProto.TestRecord invocationStartRecord, 
                IInvocationContext invocationContext)

Handling of the partial invocation test record proto after invocationStarted(com.android.tradefed.invoker.IInvocationContext) occurred.

Parameters
invocationStartRecord TestRecordProto.TestRecord: The partial proto populated after the invocationStart.

invocationContext IInvocationContext: The invocation IInvocationContext.

processTestCaseEnded

public void processTestCaseEnded (TestRecordProto.TestRecord testCaseRecord)

Handling of the finalized test case record proto after ERROR(/#testEnded(com.android.tradefed.result.TestDescription,long,HashMap)) occurred.

Parameters
testCaseRecord TestRecordProto.TestRecord: The finalized proto representing a test case.

processTestCaseStarted

public void processTestCaseStarted (TestRecordProto.TestRecord testCaseStartedRecord)

Handling of the partial test case record proto after testStarted(com.android.tradefed.result.TestDescription, long) occurred.

Parameters
testCaseStartedRecord TestRecordProto.TestRecord: The partial proto representing the test case.

processTestModuleEnd

public void processTestModuleEnd (TestRecordProto.TestRecord moduleRecord)

Handling of the finalized module record proto after testModuleEnded() occurred.

Parameters
moduleRecord TestRecordProto.TestRecord: The finalized proto representing the module.

processTestModuleStarted

public void processTestModuleStarted (TestRecordProto.TestRecord moduleStartRecord)

Handling of the partial module record proto after testModuleStarted(com.android.tradefed.invoker.IInvocationContext) occurred.

Parameters
moduleStartRecord TestRecordProto.TestRecord: The partial proto representing the module.

processTestRunEnded

public void processTestRunEnded (TestRecordProto.TestRecord runRecord)

Handling of the finalized run record proto after ERROR(/#testRunEnded(long,HashMap)) occurred.

Parameters
runRecord TestRecordProto.TestRecord: The finalized proto representing the run.

processTestRunStarted

public void processTestRunStarted (TestRecordProto.TestRecord runStartedRecord)

Handling of the partial test run record proto after testRunStarted(String, int) occurred.

Parameters
runStartedRecord TestRecordProto.TestRecord: The partial proto representing the run.

testAssumptionFailure

public final void testAssumptionFailure (TestDescription test, 
                String trace)

Called when an atomic test flags that it assumes a condition that is false

Parameters
test TestDescription: identifies the test

trace String: stack trace of failure

testEnded

public final void testEnded (TestDescription test, 
                long endTime, 
                 testMetrics)

Alternative to ERROR(/#testEnded(com.android.tradefed.result.TestDescription,Map)) where we can specify the end time directly. Combine with testStarted(com.android.tradefed.result.TestDescription, long) for accurate measure.

Parameters
test TestDescription: identifies the test

endTime long: the time the test ended, measured via System.currentTimeMillis()

testMetrics : a ERROR(/Map) of the metrics emitted

testEnded

public void testEnded (TestDescription test, 
                 testMetrics)

Reports the execution end of an individual test case.

If testFailed(TestDescription, String) was not invoked, this test passed. Also returns any key/value metrics which may have been emitted during the test case's execution.

Parameters
test TestDescription: identifies the test

testMetrics : a ERROR(/Map) of the metrics emitted

testFailed

public final void testFailed (TestDescription test, 
                String trace)

Reports the failure of a individual test case.

Will be called between testStarted and testEnded.

Parameters
test TestDescription: identifies the test

trace String: stack trace of failure

testIgnored

public final void testIgnored (TestDescription test)

Called when a test will not be run, generally because a test method is annotated with org.junit.Ignore.

Parameters
test TestDescription: identifies the test

testModuleEnded

public final void testModuleEnded ()

Reports the end of a module run.

testModuleStarted

public final void testModuleStarted (IInvocationContext moduleContext)

Reports the beginning of a module running. This callback is associated with testModuleEnded() and is optional in the sequence. It is only used during a run that uses modules: ITestSuite based runners.

Parameters
moduleContext IInvocationContext: the IInvocationContext of the module.

testRunEnded

public final void testRunEnded (long elapsedTimeMillis, 
                 runMetrics)

Reports end of test run. FIXME: We cannot have two Map<> interfaces with different type, so we have to use HashMap here.

Parameters
elapsedTimeMillis long: device reported elapsed time, in milliseconds

runMetrics : key-value pairs reported at the end of a test run with Metric.

testRunFailed

public final void testRunFailed (String errorMessage)

Reports test run failed to complete due to a fatal error.

Parameters
errorMessage String: String describing reason for run failure.

testRunStarted

public void testRunStarted (String runName, 
                int testCount, 
                int attemptNumber)

Reports the start of a test run.

Parameters
runName String: the test run name

testCount int: total number of tests in test run

attemptNumber int: order number, identifying the different attempts of the same runName that run multiple times. The attemptNumber is 0-indexed and should increment everytime a new run happens. e.g. A test is granular retried 3 times, it should have 4 total runs under the same runName and the attemptNumber is from 0 to 3.

testRunStarted

public final void testRunStarted (String runName, 
                int testCount)

Reports the start of a test run.

Parameters
runName String: the test run name

testCount int: total number of tests in test run

testRunStarted

public void testRunStarted (String runName, 
                int testCount, 
                int attemptNumber, 
                long startTime)

Reports the start of a test run.

Parameters
runName String: the test run name

testCount int: total number of tests in test run

attemptNumber int: order number, identifying the different attempts of the same runName that run multiple times. The attemptNumber is 0-indexed and should increment everytime a new run happens. e.g. A test is granular retried 3 times, it should have 4 total runs under the same runName and the attemptNumber is from 0 to 3.

startTime long: the time the run started, measured via System.currentTimeMillis()

testStarted

public final void testStarted (TestDescription test, 
                long startTime)

Alternative to testStarted(com.android.tradefed.result.TestDescription) where we also specify when the test was started, combined with ERROR(/#testEnded(com.android.tradefed.result.TestDescription,long,Map)) for accurate measure.

Parameters
test TestDescription: identifies the test

startTime long: the time the test started, measured via System.currentTimeMillis()

testStarted

public final void testStarted (TestDescription test)

Reports the start of an individual test case. Older interface, should use testStarted(com.android.tradefed.result.TestDescription) whenever possible.

Parameters
test TestDescription: identifies the test