InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
解析从 shell 运行的插桩测试的“protoStd 输出模式”结果,并将结果告知 ITestRunListener。
带有“-m”选项的 am 插桩命令会以二进制 protobuf 格式增量输出测试执行状态。输出 protobuf 消息为 InstrumentationData.Session,其中包含两个字段:1) 重复字段 InstrumentationData.TestStatus,2) InstrumentationData.SessionStatus。am 插桩命令会在每次测试执行前/后输出测试状态消息。addOutput(byte, int, int) 使用 data 参数(即 TestStatus 的序列化字节)进行调用。所有测试完成后,该命令最后会输出 SessionStatus。
如需查看完整的 protobuf 定义,请参阅 https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto。
InstrumentationProtoResultParser 是一个状态机,状态在 ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState) 中定义。该状态以 ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED) 开头。当它看到第一个测试用例状态时,会移至 ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING)。如果所有测试均已完成,状态会更改为 ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED);如果通过调用 cancel() 请求,则状态会更改为 ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED)。
每当有新的测试状态可用时,系统都会通知已注册的监听器。
摘要
公共构造函数 | |
|---|---|
InstrumentationProtoResultParser(String runName,
|
|
公共方法 | |
|---|---|
void
|
addOutput(byte[] data, int offset, int length)
每当有新数据可用时,系统都会调用此方法。 |
void
|
cancel()
|
void
|
flush()
|
void
|
handleTestRunFailed(String errorMsg)
|
boolean
|
isCancelled()
|
公共构造函数
InstrumentationProtoResultParser
public InstrumentationProtoResultParser (String runName,
listeners) 构造 InstrumentationProtoResultParser。
| 参数 | |
|---|---|
runName |
String:要提供给 ITestRunListener.testRunStarted 的测试运行作业名称 |
listeners |
:在测试执行期间获知测试结果 |
公共方法
addOutput
public void addOutput (byte[] data,
int offset,
int length)每当有新数据可用时,系统都会调用此方法。
| 参数 | |
|---|---|
data |
byte:InstrumentationData.Session 消息的序列化数据。如果 data 是未完成的块,则会添加到内部缓冲区,并在下一次 addOutput(byte, int, int) 调用中进行处理。 |
offset |
int:存储在 data 中的新数据的偏移量 |
length |
int:要处理的 data 中新数据的字节数。 |
取消
public void cancel ()
flush
public void flush ()
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
| 参数 | |
|---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
| 返回 | |
|---|---|
boolean |
|