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 |