InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
셸에서 계측 테스트 실행의 'protoStd 출력 모드' 결과를 파싱하고 ITestRunListener에 결과를 알립니다.
'-m' 옵션이 있는 am instrument 명령어는 테스트 실행 상태를 바이너리 protobuf 형식으로 점진적으로 출력합니다. 출력 protobuf 메시지는 InstrumentationData.Session이며, 여기에는 1) InstrumentationData.TestStatus의 반복 필드, 2) InstrumentationData.SessionStatus의 두 필드가 있습니다. am instrument 명령어는 각 테스트 실행 전후에 테스트 상태 메시지를 출력합니다. addOutput(byte, int, int)는 TestStatus의 직렬화된 바이트인 data 인수로 호출됩니다. 모든 테스트가 완료되면 명령어는 마지막으로 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)
이 메서드는 'am instrument' 명령어가 예외와 함께 비정상 종료될 때 호출됩니다. |
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 ()
테스트 실행 취소를 요청합니다.
플러시
public void flush ()
프로세스 실행이 끝날 때 호출됩니다 (프로세스가 취소되지 않은 경우). 이를 통해 수신자는 아직 처리되지 않은 데이터를 종료하고 플러시할 수 있습니다.
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
이 메서드는 'am instrument' 명령어가 예외와 함께 비정상 종료될 때 호출됩니다. 등록된 모든 리스너는 테스트 실행 중에 비정상 종료가 발생하면 ITestRunListener.testRunFailed에 이어 ITestRunListener.testRunEnded(long, 를 통지받아야 합니다.
| 매개변수 | |
|---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
원격 셸 명령어의 실행을 중지하는 취소 메서드
| 반환 값 | |
|---|---|
boolean |
명령어 실행을 취소하려면 true입니다. |