InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
Phân tích cú pháp kết quả "chế độ đầu ra protoStd" của một lần chạy kiểm thử đo lường từ shell và thông báo cho ITestRunListener về kết quả.
Lệnh am instrument có tuỳ chọn "-m" sẽ xuất trạng thái thực thi kiểm thử ở định dạng protobuf nhị phân theo gia số. Thông báo protobuf đầu ra là InstrumentationData.Session, có 2 trường: 1) một trường lặp lại của InstrumentationData.TestStatus, 2) InstrumentationData.SessionStatus. Lệnh am instrument xuất thông báo trạng thái kiểm thử trước/sau mỗi lần thực thi kiểm thử. addOutput(byte, int, int) được gọi bằng đối số data. Đây là các byte được chuyển đổi tuần tự của TestStatus. Khi tất cả các bài kiểm thử hoàn tất, lệnh sẽ xuất ra SessionStatus ở cuối.
Hãy xem https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto để biết định nghĩa đầy đủ về protobuf.
InstrumentationProtoResultParser là một máy trạng thái và các trạng thái được xác định trong ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState). Trạng thái bắt đầu bằng ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED). Khi thấy trạng thái trường hợp kiểm thử đầu tiên, nó sẽ chuyển sang ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING). Trạng thái sẽ thay đổi thành ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED) nếu tất cả các kiểm thử đã hoàn tất hoặc ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) nếu được yêu cầu bằng cách gọi cancel().
Mỗi khi có trạng thái kiểm thử mới, trạng thái đó sẽ được thông báo cho những người nghe đã đăng ký.
Tóm tắt
Hàm khởi tạo công khai | |
|---|---|
InstrumentationProtoResultParser(String runName,
|
|
Phương thức công khai | |
|---|---|
void
|
addOutput(byte[] data, int offset, int length)
Phương thức này được gọi mỗi khi có dữ liệu mới. |
void
|
cancel()
Yêu cầu huỷ chạy thử. |
void
|
flush()
Được gọi khi kết thúc quá trình thực thi (trừ phi quá trình bị huỷ). |
void
|
handleTestRunFailed(String errorMsg)
Phương thức này được gọi khi lệnh "am instrument" gặp sự cố do một ngoại lệ. |
boolean
|
isCancelled()
Phương thức huỷ để dừng thực thi lệnh shell từ xa. |
Hàm khởi tạo công khai
InstrumentationProtoResultParser
public InstrumentationProtoResultParser (String runName,
listeners) Tạo InstrumentationProtoResultParser.
| Tham số | |
|---|---|
runName |
String: tên của lần chạy thử nghiệm cần cung cấp cho ITestRunListener.testRunStarted |
listeners |
: được thông báo về kết quả kiểm thử khi các kiểm thử đang thực thi |
Phương thức công khai
addOutput
public void addOutput (byte[] data,
int offset,
int length)Phương thức này được gọi mỗi khi có dữ liệu mới.
| Tham số | |
|---|---|
data |
byte: dữ liệu được chuyển đổi tuần tự của thông báo InstrumentationData.Session. Nếu data là một khối chưa hoàn chỉnh, thì các khối này sẽ được thêm vào một vùng đệm nội bộ và sẽ được xử lý trong lệnh gọi addOutput(byte, int, int) tiếp theo. |
offset |
int: độ lệch của dữ liệu mới được lưu trữ trong data |
length |
int: byte của dữ liệu mới trong data cần được xử lý. |
hủy
public void cancel ()
Yêu cầu huỷ lượt chạy thử.
flush
public void flush ()
Được gọi khi kết thúc quá trình thực thi (trừ phi quá trình bị huỷ). Điều này cho phép bộ nhận kết thúc và xoá mọi dữ liệu chưa được xử lý.
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
Phương thức này được gọi khi lệnh "am instrument" gặp sự cố với một ngoại lệ. Tất cả trình nghe đã đăng ký sẽ được thông báo ITestRunListener.testRunFailed, sau đó là ITestRunListener.testRunEnded(long, nếu sự cố xảy ra trong quá trình thực thi kiểm thử.
| Tham số | |
|---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
Phương thức huỷ để dừng thực thi lệnh shell từ xa.
| Giá trị trả về | |
|---|---|
boolean |
true để huỷ quá trình thực thi lệnh. |