to top
public class

BugreportCollector

extends Object
implements ITestInvocationListener
java.lang.Object
   ↳ com.android.tradefed.result.BugreportCollector

Class Overview

A pass-through ITestInvocationListener that collects bugreports when configurable events occur and then calls testLog(String, LogDataType, InputStreamSource) on its children after each bugreport is collected.

Behaviors: (FIXME: finish this)

  • Capture after each if any testcases failed
  • Capture after each testcase
  • Capture after each failed testcase
  • Capture

Summary

Nested Classes
enum BugreportCollector.Filter  
enum BugreportCollector.Freq  
enum BugreportCollector.Noun  
class BugreportCollector.Predicate A full predicate describing when to capture a bugreport. 
enum BugreportCollector.Relation  
interface BugreportCollector.SubPredicate  
Fields
public static final BugreportCollector.Predicate AFTER_FAILED_TESTCASES A predefined predicate which fires after each failed testcase
public static final BugreportCollector.Predicate AT_START A predefined predicate which fires as the first invocation begins
Public Constructors
BugreportCollector(ITestInvocationListener listener, ITestDevice testDevice)
Public Methods
void addPredicate(BugreportCollector.Predicate p)
void blockUntilIdle()
Block until the collector is not collecting any bugreports.
TestSummary getSummary()
Allows the InvocationListener to return a summary.
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.
void invocationStarted(IBuildInfo buildInfo)
Reports the start of the test invocation.
void setAsynchronous(boolean asynchronous)
Set whether bugreport collection should collect the bugreport in a different thread (asynchronous = true), or block the caller until the bugreport is captured (asynchronous = false).
void setDescriptiveName(String name)
Set the descriptive name to use when recording bugreports.
void setDeviceWaitTime(int waitTime)
Set the time (in seconds) to wait for the device to be Online before we try to capture a bugreport.
void testAssumptionFailure(TestIdentifier test, String trace)
void testEnded(TestIdentifier test, Map<String, String> testMetrics)
void testFailed(TestIdentifier test, String trace)
void testIgnored(TestIdentifier test)
void testLog(String dataName, LogDataType dataType, InputStreamSource dataStream)
Provides the associated log or debug data from the test invocation.
void testRunEnded(long elapsedTime, Map<String, String> runMetrics)
void testRunFailed(String errorMessage)
void testRunStarted(String runName, int testCount)
void testRunStopped(long elapsedTime)
void testStarted(TestIdentifier test)
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.android.ddmlib.testrunner.ITestRunListener
From interface com.android.tradefed.result.ITestInvocationListener

Fields

public static final BugreportCollector.Predicate AFTER_FAILED_TESTCASES

A predefined predicate which fires after each failed testcase

public static final BugreportCollector.Predicate AT_START

A predefined predicate which fires as the first invocation begins

Public Constructors

public BugreportCollector (ITestInvocationListener listener, ITestDevice testDevice)

Public Methods

public void addPredicate (BugreportCollector.Predicate p)

public void blockUntilIdle ()

Block until the collector is not collecting any bugreports. If the collector isn't actively collecting a bugreport, return immediately

public TestSummary getSummary ()

Allows the InvocationListener to return a summary.

Returns

public 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 the elapsed time of the invocation in ms

public void invocationFailed (Throwable cause)

Reports an incomplete invocation due to some error condition.

Will be automatically called by the TradeFederation framework.

Parameters
cause the Throwable cause of the failure

public void invocationStarted (IBuildInfo buildInfo)

Reports the start of the test invocation.

Will be automatically called by the TradeFederation framework.

Parameters
buildInfo information about the build being tested

public void setAsynchronous (boolean asynchronous)

Set whether bugreport collection should collect the bugreport in a different thread (asynchronous = true), or block the caller until the bugreport is captured (asynchronous = false).

public void setDescriptiveName (String name)

Set the descriptive name to use when recording bugreports. If null, BugreportCollector will fall back to the default behavior of serializing the name of the event that caused the bugreport to be collected.

public void setDeviceWaitTime (int waitTime)

Set the time (in seconds) to wait for the device to be Online before we try to capture a bugreport. If negative, no check will be performed. Any DeviceNotAvailableException encountered during this check will be logged and ignored.

public void testAssumptionFailure (TestIdentifier test, String trace)

public void testEnded (TestIdentifier test, Map<String, String> testMetrics)

public void testFailed (TestIdentifier test, String trace)

public void testIgnored (TestIdentifier test)

public void testLog (String dataName, LogDataType dataType, InputStreamSource dataStream)

Provides the associated log or debug data from the test invocation.

Must be called before invocationFailed(Throwable) or invocationEnded(long)

The TradeFederation framework will automatically call this method, providing the host log and if applicable, the device logcat.

Parameters
dataName a String descriptive name of the data. e.g. "device_logcat". Note dataName may not be unique per invocation. ie implementers must be able to handle multiple calls with same dataName
dataType the LogDataType of the data
dataStream the InputStreamSource of the data. Implementers should call createInputStream to start reading the data, and ensure to close the resulting InputStream when complete. Callers should ensure the source of the data remains present and accessible until the testLog method completes.

public void testRunEnded (long elapsedTime, Map<String, String> runMetrics)

public void testRunFailed (String errorMessage)

public void testRunStarted (String runName, int testCount)

public void testRunStopped (long elapsedTime)

public void testStarted (TestIdentifier test)